mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-08-08 08:30:47 -09:00
Commit1187c34d88(support/scripts: move merged-usr errors message into check-merged-usr.sh) introduced the use of getopt to parse its options; doing so allowed to use long option (with two leading dashes), which is more descriptive than the usual one-character options. However, getopt is part of util-linux; it is not a shell built-in. util-linux is not a prerequisite of Buildroot, so we may end up running on a system where it is missing. We could add host-util-linux as a dependency when the system does not provide getopt, but that's not very nice; even though host-skeleton does not need to check for merged-bin for now, it does not need getopt, and thus we could add host-util-linux (which depends on host-skeleton) as a dependency of skeleton-custom. But that will not be tenable over the long run, especially if/when we do a merged-bin in host dir. Requiring that util-linux be installed system-wide is not nice either; it's an additional requirement on the host. We can do like we do in the oter scripts, though: use the shell built-in getopts. Its usage is slightly different, and does not support long options. As it's just for use in an internal script, we can live with the less descriptive options, though. Switch to using getopts, it removes the need for a new host dependency. Fixes:1187c34d88Reported-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Signed-off-by: Julien Olivain <ju.o@free.fr>
53 lines
1.7 KiB
Makefile
53 lines
1.7 KiB
Makefile
################################################################################
|
|
#
|
|
# skeleton-custom
|
|
#
|
|
################################################################################
|
|
|
|
# The skeleton can't depend on the toolchain, since all packages depends on the
|
|
# skeleton and the toolchain is a target package, as is skeleton.
|
|
# Hence, skeleton would depends on the toolchain and the toolchain would depend
|
|
# on skeleton.
|
|
SKELETON_CUSTOM_ADD_TOOLCHAIN_DEPENDENCY = NO
|
|
SKELETON_CUSTOM_ADD_SKELETON_DEPENDENCY = NO
|
|
|
|
SKELETON_CUSTOM_PROVIDES = skeleton
|
|
|
|
SKELETON_CUSTOM_INSTALL_STAGING = YES
|
|
|
|
SKELETON_CUSTOM_PATH = $(call qstrip,$(BR2_ROOTFS_SKELETON_CUSTOM_PATH))
|
|
|
|
ifeq ($(BR2_PACKAGE_SKELETON_CUSTOM)$(BR_BUILDING),yy)
|
|
ifeq ($(SKELETON_CUSTOM_PATH),)
|
|
$(error No path specified for the custom skeleton)
|
|
endif
|
|
endif
|
|
|
|
define SKELETON_CUSTOM_CONFIGURE_CMDS
|
|
support/scripts/check-merged \
|
|
-t skeleton \
|
|
$(if $(BR2_ROOTFS_MERGED_USR),-u) \
|
|
$(if $(BR2_ROOTFS_MERGED_BIN),-b) \
|
|
$(SKELETON_CUSTOM_PATH)
|
|
endef
|
|
|
|
# The target-dir-warning file and the lib{32,64} symlinks are the only
|
|
# things we customise in the custom skeleton.
|
|
define SKELETON_CUSTOM_INSTALL_TARGET_CMDS
|
|
$(call SYSTEM_RSYNC,$(SKELETON_CUSTOM_PATH),$(TARGET_DIR))
|
|
$(call SYSTEM_USR_SYMLINKS_OR_DIRS,$(TARGET_DIR))
|
|
$(call SYSTEM_LIB_SYMLINK,$(TARGET_DIR))
|
|
$(INSTALL) -m 0644 support/misc/target-dir-warning.txt \
|
|
$(TARGET_DIR_WARNING_FILE)
|
|
endef
|
|
|
|
# For the staging dir, we don't really care what we install, but we
|
|
# need the /lib and /usr/lib appropriately setup.
|
|
define SKELETON_CUSTOM_INSTALL_STAGING_CMDS
|
|
$(call SYSTEM_RSYNC,$(SKELETON_CUSTOM_PATH),$(STAGING_DIR))
|
|
$(call SYSTEM_USR_SYMLINKS_OR_DIRS,$(STAGING_DIR))
|
|
$(call SYSTEM_LIB_SYMLINK,$(STAGING_DIR))
|
|
endef
|
|
|
|
$(eval $(generic-package))
|