http://www.gnu.org/software/coreutils/
+if BR2_PACKAGE_COREUTILS
+
+config BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES
+ bool "Individual binaries"
+ depends on !BR2_STATIC_LIBS
+ help
+ By default (i.e. with this option disabled), coreutils is
+ installed as a single binary (Busybox style) called
+ /usr/bin/coreutils, and all core utilities are symbolic
+ links to this binary.
+
+ With this option enabled, each utility is a separate binary.
+
+comment "coreutils individual binaries need a toolchain w/ dynamic library"
+ depends on BR2_STATIC_LIBS
+
+endif
+
comment "coreutils needs a toolchain w/ wchar"
depends on BR2_USE_MMU
depends on !BR2_USE_WCHAR
COREUTILS_AUTORECONF = YES
COREUTILS_GETTEXTIZE = YES
-COREUTILS_CONF_OPTS = --disable-rpath --enable-single-binary=symlinks \
+COREUTILS_CONF_OPTS = --disable-rpath \
$(if $(BR2_TOOLCHAIN_USES_MUSL),--with-included-regex)
+
+ifeq ($(BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES),y)
+COREUTILS_CONF_OPTS += --disable-single-binary
+else
+COREUTILS_CONF_OPTS += --enable-single-binary=symlinks
+endif
+
COREUTILS_CONF_ENV = ac_cv_c_restrict=no \
ac_cv_func_chown_works=yes \
ac_cv_func_euidaccess=no \
endif
ifeq ($(BR2_ROOTFS_MERGED_USR),)
+# We want to move a few binaries from /usr/bin to /bin. In the case of
+# coreutils being built as multi-call binary, we do so by re-creating
+# the corresponding symlinks. If coreutils is built with individual
+# binaries, we actually move the binaries.
+ifeq ($(BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES),y)
+define COREUTILS_FIX_BIN_LOCATION
+ $(foreach f,$(COREUTILS_BIN_PROGS), \
+ mv $(TARGET_DIR)/usr/bin/$(f) $(TARGET_DIR)/bin
+ )
+endef
+else
define COREUTILS_FIX_BIN_LOCATION
# some things go in /bin rather than /usr/bin
$(foreach f,$(COREUTILS_BIN_PROGS), \
ln -sf ../usr/bin/coreutils $(TARGET_DIR)/bin/$(f)
)
endef
+endif
COREUTILS_POST_INSTALL_TARGET_HOOKS += COREUTILS_FIX_BIN_LOCATION
endif
endif
# link for archaic shells
+ifeq ($(BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES),y)
+define COREUTILS_CREATE_TEST_SYMLINK
+ ln -fs test $(TARGET_DIR)/usr/bin/[
+endef
+else
define COREUTILS_CREATE_TEST_SYMLINK
ln -fs coreutils $(TARGET_DIR)/usr/bin/[
endef
+endif
COREUTILS_POST_INSTALL_TARGET_HOOKS += COREUTILS_CREATE_TEST_SYMLINK
# gnu thinks chroot is in bin, debian thinks it's in sbin
+ifeq ($(BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES),y)
+define COREUTILS_FIX_CHROOT_LOCATION
+ mv $(TARGET_DIR)/usr/bin/chroot $(TARGET_DIR)/usr/sbin
+endef
+else
define COREUTILS_FIX_CHROOT_LOCATION
rm -f $(TARGET_DIR)/usr/bin/chroot
ln -sf ../bin/coreutils $(TARGET_DIR)/usr/sbin/chroot
endef
+endif
COREUTILS_POST_INSTALL_TARGET_HOOKS += COREUTILS_FIX_CHROOT_LOCATION
$(eval $(autotools-package))