94b4383252
in the interest of our younger readers>. This works around some of the worst damage, thus allowing utils such as 'df' to properly cross compile so that ltp will produce proper results.
130 lines
4.4 KiB
Makefile
130 lines
4.4 KiB
Makefile
#############################################################
|
|
#
|
|
# coreutils
|
|
#
|
|
#############################################################
|
|
COREUTILS_VER:=5.2.1
|
|
COREUTILS_SOURCE:=coreutils-$(COREUTILS_VER).tar.bz2
|
|
COREUTILS_SITE:=ftp://ftp.gnu.org/gnu/coreutils/
|
|
COREUTILS_CAT:=bzcat
|
|
COREUTILS_DIR:=$(BUILD_DIR)/coreutils-$(COREUTILS_VER)
|
|
COREUTILS_BINARY:=src/vdir
|
|
COREUTILS_TARGET_BINARY:=bin/vdir
|
|
BIN_PROGS:=cat chgrp chmod chown cp date dd df dir echo false hostname \
|
|
ln ls mkdir mknod mv pwd rm rmdir vdir sleep stty sync touch true uname
|
|
|
|
$(DL_DIR)/$(COREUTILS_SOURCE):
|
|
$(WGET) -P $(DL_DIR) $(COREUTILS_SITE)/$(COREUTILS_SOURCE)
|
|
|
|
coreutils-source: $(DL_DIR)/$(COREUTILS_SOURCE)
|
|
|
|
$(COREUTILS_DIR)/.unpacked: $(DL_DIR)/$(COREUTILS_SOURCE)
|
|
$(COREUTILS_CAT) $(DL_DIR)/$(COREUTILS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
|
|
toolchain/patch-kernel.sh $(COREUTILS_DIR) package/coreutils/ coreutils*.patch
|
|
touch $(COREUTILS_DIR)/.unpacked
|
|
|
|
$(COREUTILS_DIR)/.configured: $(COREUTILS_DIR)/.unpacked
|
|
(cd $(COREUTILS_DIR); rm -rf config.cache; \
|
|
$(TARGET_CONFIGURE_OPTS) \
|
|
CFLAGS="$(TARGET_CFLAGS)" \
|
|
ac_cv_func_strtod=yes \
|
|
ac_fsusage_space=yes \
|
|
fu_cv_sys_stat_statfs2_bsize=yes \
|
|
ac_cv_func_closedir_void=no \
|
|
ac_cv_func_getloadavg=no \
|
|
ac_cv_lib_util_getloadavg=no \
|
|
ac_cv_lib_getloadavg_getloadavg=no \
|
|
ac_cv_func_getgroups=yes \
|
|
ac_cv_func_getgroups_works=yes \
|
|
ac_cv_func_chown_works=yes \
|
|
ac_cv_have_decl_euidaccess=no \
|
|
ac_cv_func_euidaccess=no \
|
|
ac_cv_have_decl_strnlen=yes \
|
|
ac_cv_func_strnlen_working=yes \
|
|
ac_cv_func_lstat_dereferences_slashed_symlink=yes \
|
|
ac_cv_func_lstat_empty_string_bug=no \
|
|
ac_cv_func_stat_empty_string_bug=no \
|
|
vb_cv_func_rename_trailing_slash_bug=no \
|
|
ac_cv_have_decl_nanosleep=yes \
|
|
jm_cv_func_nanosleep_works=yes \
|
|
gl_cv_func_working_utimes=yes \
|
|
ac_cv_func_utime_null=yes \
|
|
ac_cv_have_decl_strerror_r=yes \
|
|
ac_cv_func_strerror_r_char_p=yes \
|
|
jm_cv_func_svid_putenv=yes \
|
|
ac_cv_func_getcwd_null=yes \
|
|
ac_cv_func_getdelim=yes \
|
|
ac_cv_func_mkstemp=yes \
|
|
utils_cv_func_mkstemp_limitations=no \
|
|
utils_cv_func_mkdir_trailing_slash_bug=no \
|
|
ac_cv_func_memcmp_working=yes \
|
|
./configure \
|
|
--target=$(GNU_TARGET_NAME) \
|
|
--host=$(GNU_TARGET_NAME) \
|
|
--build=$(GNU_HOST_NAME) \
|
|
--prefix=/usr \
|
|
--exec-prefix=/usr \
|
|
--bindir=/usr/bin \
|
|
--sbindir=/usr/sbin \
|
|
--libexecdir=/usr/lib \
|
|
--sysconfdir=/etc \
|
|
--datadir=/usr/share \
|
|
--localstatedir=/var \
|
|
--mandir=/usr/man \
|
|
--infodir=/usr/info \
|
|
$(DISABLE_NLS) \
|
|
$(DISABLE_LARGEFILE) \
|
|
--disable-rpath \
|
|
--disable-dependency-tracking \
|
|
);
|
|
#Fix up the max number of open files per process, which apparently
|
|
# is not set when cross compiling
|
|
$(SED) 's,.*UTILS_OPEN_MAX.*,#define UTILS_OPEN_MAX 1019,g' \
|
|
$(COREUTILS_DIR)/config.h
|
|
# This is undefined when crosscompiling...
|
|
$(SED) 's,.*HAVE_PROC_UPTIME.*,#define HAVE_PROC_UPTIME 1,g' \
|
|
$(COREUTILS_DIR)/config.h
|
|
touch $(COREUTILS_DIR)/.configured
|
|
|
|
$(COREUTILS_DIR)/$(COREUTILS_BINARY): $(COREUTILS_DIR)/.configured
|
|
$(MAKE) CC=$(TARGET_CC) -C $(COREUTILS_DIR)
|
|
rm -f $(TARGET_DIR)/$(COREUTILS_TARGET_BINARY)
|
|
|
|
$(TARGET_DIR)/$(COREUTILS_TARGET_BINARY): $(COREUTILS_DIR)/$(COREUTILS_BINARY)
|
|
$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(COREUTILS_DIR) install
|
|
# some things go in root rather than usr
|
|
for f in $(BIN_PROGS); do \
|
|
mv $(TARGET_DIR)/usr/bin/$$f $(TARGET_DIR)/bin/$$f; \
|
|
done
|
|
# link for archaic shells
|
|
ln -fs test $(TARGET_DIR)/usr/bin/[
|
|
# gnu thinks chroot is in bin, debian thinks it's in sbin
|
|
mv $(TARGET_DIR)/usr/bin/chroot $(TARGET_DIR)/usr/sbin/chroot
|
|
$(STRIP) $(TARGET_DIR)/usr/sbin/chroot > /dev/null 2>&1
|
|
rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
|
|
$(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
|
|
|
|
#If both coreutils and busybox are selected, make certain coreutils
|
|
#wins the fight over who gets to have their utils actually installed
|
|
ifeq ($(BR2_PACKAGE_BUSYBOX),y)
|
|
coreutils: uclibc busybox $(TARGET_DIR)/$(COREUTILS_TARGET_BINARY)
|
|
else
|
|
coreutils: uclibc $(TARGET_DIR)/$(COREUTILS_TARGET_BINARY)
|
|
endif
|
|
|
|
coreutils-clean:
|
|
$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(COREUTILS_DIR) uninstall
|
|
-$(MAKE) -C $(COREUTILS_DIR) clean
|
|
|
|
coreutils-dirclean:
|
|
rm -rf $(COREUTILS_DIR)
|
|
|
|
#############################################################
|
|
#
|
|
# Toplevel Makefile options
|
|
#
|
|
#############################################################
|
|
ifeq ($(strip $(BR2_PACKAGE_COREUTILS)),y)
|
|
TARGETS+=coreutils
|
|
endif
|