coreutils.mk 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #############################################################
  2. #
  3. # coreutils
  4. #
  5. #############################################################
  6. COREUTILS_SOURCE:=coreutils-5.0.tar.bz2
  7. COREUTILS_SITE:=ftp://ftp.gnu.org/gnu/coreutils/
  8. COREUTILS_CAT:=bzcat
  9. COREUTILS_DIR:=$(BUILD_DIR)/coreutils-5.0
  10. COREUTILS_BINARY:=src/vdir
  11. COREUTILS_TARGET_BINARY:=bin/vdir
  12. BIN_PROGS:=cat chgrp chmod chown cp date dd df dir echo false hostname \
  13. ln ls mkdir mknod mv pwd rm rmdir vdir sleep stty sync touch true uname
  14. $(DL_DIR)/$(COREUTILS_SOURCE):
  15. $(WGET) -P $(DL_DIR) $(COREUTILS_SITE)/$(COREUTILS_SOURCE)
  16. coreutils-source: $(DL_DIR)/$(COREUTILS_SOURCE)
  17. $(COREUTILS_DIR)/.unpacked: $(DL_DIR)/$(COREUTILS_SOURCE)
  18. $(COREUTILS_CAT) $(DL_DIR)/$(COREUTILS_SOURCE) | tar -C $(BUILD_DIR) -xvf -
  19. touch $(COREUTILS_DIR)/.unpacked
  20. $(COREUTILS_DIR)/.configured: $(COREUTILS_DIR)/.unpacked
  21. (cd $(COREUTILS_DIR); rm -rf config.cache; \
  22. $(TARGET_CONFIGURE_OPTS) \
  23. ./configure \
  24. --target=$(GNU_TARGET_NAME) \
  25. --host=$(GNU_TARGET_NAME) \
  26. --build=$(GNU_HOST_NAME) \
  27. --prefix=/usr \
  28. --exec-prefix=/usr \
  29. --bindir=/usr/bin \
  30. --sbindir=/usr/sbin \
  31. --libexecdir=/usr/lib \
  32. --sysconfdir=/etc \
  33. --datadir=/usr/share \
  34. --localstatedir=/var \
  35. --mandir=/usr/man \
  36. --infodir=/usr/info \
  37. $(DISABLE_NLS) \
  38. --disable-rpath \
  39. --disable-dependency-tracking \
  40. );
  41. #Fix up the max number of open files per process, which apparently
  42. # is not set when cross compiling
  43. perl -i -p -e 's,.*UTILS_OPEN_MAX.*,#define UTILS_OPEN_MAX 1019,g' \
  44. $(COREUTILS_DIR)/config.h
  45. # This is undefined when crosscompiling...
  46. perl -i -p -e 's,.*HAVE_PROC_UPTIME.*,#define HAVE_PROC_UPTIME 1,g' \
  47. $(COREUTILS_DIR)/config.h
  48. touch $(COREUTILS_DIR)/.configured
  49. $(COREUTILS_DIR)/$(COREUTILS_BINARY): $(COREUTILS_DIR)/.configured
  50. $(MAKE) CC=$(TARGET_CC) -C $(COREUTILS_DIR)
  51. rm -f $(TARGET_DIR)/$(COREUTILS_TARGET_BINARY)
  52. $(TARGET_DIR)/$(COREUTILS_TARGET_BINARY): $(COREUTILS_DIR)/$(COREUTILS_BINARY)
  53. $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(COREUTILS_DIR) install
  54. # some things go in root rather than usr
  55. for f in $(BIN_PROGS); do \
  56. mv $(TARGET_DIR)/usr/bin/$$f $(TARGET_DIR)/bin/$$f; \
  57. done
  58. # link for archaic shells
  59. ln -fs test $(TARGET_DIR)/usr/bin/[
  60. # gnu thinks chroot is in bin, debian thinks it's in sbin
  61. mv $(TARGET_DIR)/usr/bin/chroot $(TARGET_DIR)/usr/sbin/chroot
  62. rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
  63. $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
  64. coreutils: uclibc $(TARGET_DIR)/$(COREUTILS_TARGET_BINARY)
  65. coreutils-clean:
  66. $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(COREUTILS_DIR) uninstall
  67. -$(MAKE) -C $(COREUTILS_DIR) clean
  68. coreutils-dirclean:
  69. rm -rf $(COREUTILS_DIR)