package/skeleton: add macro to rsync skeleton directory
authorYann E. MORIN <yann.morin.1998@free.fr>
Tue, 18 Jul 2017 17:25:29 +0000 (19:25 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sat, 22 Jul 2017 13:40:35 +0000 (15:40 +0200)
The rsync command is currently called from a single location. In
follow-up patches, it will be called from various places then.

It will be easier to update and fix this command if it is defined in a
single location, rather than if duplicated in many places.

Define a macro that skeleton packages can call to install their skeleton
directories. Since at least one occurrence of it will want to install in
staging, the macro must accept a destination path, rather than hard-code
target as the destination.

Since it is to be used by other skeleton packages, define it early,
outside of any conditional block.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/skeleton/skeleton.mk

index 9b7407a23647f2c50d956441f482ed077e3c3dfc..017479a9908e4b92737dec217f099d7f709e3e60 100644 (file)
@@ -14,6 +14,18 @@ SKELETON_ADD_SKELETON_DEPENDENCY = NO
 # The skeleton also handles the merged /usr case in the sysroot
 SKELETON_INSTALL_STAGING = YES
 
+############
+# Macros available for use by any skeleton package:
+# - SKELETON_RSYNC
+
+# This function rsyncs the skeleton directory in $(1) to the destination
+# in $(2), which should be either $(TARTGET_DIR) or $(STAGING_DIR)
+define SKELETON_RSYNC
+       rsync -a --ignore-times $(RSYNC_VCS_EXCLUSIONS) \
+               --chmod=u=rwX,go=rX --exclude .empty --exclude '*~' \
+               $(1)/ $(2)/
+endef
+
 ifeq ($(BR2_ROOTFS_SKELETON_CUSTOM),y)
 
 SKELETON_PATH = $(call qstrip,$(BR2_ROOTFS_SKELETON_CUSTOM_PATH))
@@ -89,9 +101,7 @@ SKELETON_LIB_SYMLINK = lib32
 endif
 
 define SKELETON_INSTALL_TARGET_CMDS
-       rsync -a --ignore-times $(RSYNC_VCS_EXCLUSIONS) \
-               --chmod=u=rwX,go=rX --exclude .empty --exclude '*~' \
-               $(SKELETON_PATH)/ $(TARGET_DIR)/
+       $(call SKELETON_RSYNC,$(SKELETON_PATH),$(TARGET_DIR))
        $(call SKELETON_USR_SYMLINKS_OR_DIRS,$(TARGET_DIR))
        ln -snf lib $(TARGET_DIR)/$(SKELETON_LIB_SYMLINK)
        ln -snf lib $(TARGET_DIR)/usr/$(SKELETON_LIB_SYMLINK)