file.mk 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. #############################################################
  2. #
  3. # file
  4. #
  5. #############################################################
  6. FILE_VERSION:=4.26
  7. FILE_SOURCE:=file-$(FILE_VERSION).tar.gz
  8. FILE_SITE:=ftp://ftp.astron.com/pub/file/
  9. FILE_SOURCE_DIR:=$(BUILD_DIR)/file-$(FILE_VERSION)
  10. FILE_DIR1:=$(TOOLCHAIN_DIR)/file-$(FILE_VERSION)-host
  11. FILE_DIR2:=$(BUILD_DIR)/file-$(FILE_VERSION)-target
  12. FILE_CAT:=$(ZCAT)
  13. FILE_BINARY:=src/file
  14. FILE_TARGET_BINARY:=usr/bin/file
  15. $(DL_DIR)/$(FILE_SOURCE):
  16. $(call DOWNLOAD,$(FILE_SITE),$(FILE_SOURCE))
  17. file-source: $(DL_DIR)/$(FILE_SOURCE)
  18. #############################################################
  19. #
  20. # build file for use on the host system
  21. #
  22. #############################################################
  23. $(FILE_DIR1)/.configured: $(FILE_SOURCE_DIR)/.unpacked
  24. mkdir -p $(FILE_DIR1)
  25. (cd $(FILE_DIR1); rm -rf config.cache; \
  26. CC="$(HOSTCC)" \
  27. $(FILE_SOURCE_DIR)/configure $(QUIET) \
  28. --prefix=$(FILE_DIR1)/install \
  29. )
  30. touch $@
  31. $(TOOLCHAIN_DIR)/bin/file: $(FILE_DIR1)/.configured
  32. $(MAKE) -C $(FILE_DIR1) install
  33. ln -sf $(FILE_DIR1)/install/bin/file $(TOOLCHAIN_DIR)/bin/file
  34. host-file: $(TOOLCHAIN_DIR)/bin/file
  35. host-file-clean:
  36. -$(MAKE) -C $(FILE_DIR1) clean
  37. host-file-dirclean:
  38. rm -rf $(FILE_DIR1)
  39. #############################################################
  40. #
  41. # build file for use on the target system
  42. #
  43. #############################################################
  44. file-unpacked: $(FILE_SOURCE_DIR)/.unpacked
  45. $(FILE_SOURCE_DIR)/.unpacked: $(DL_DIR)/$(FILE_SOURCE)
  46. $(FILE_CAT) $(DL_DIR)/$(FILE_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
  47. toolchain/patch-kernel.sh $(FILE_SOURCE_DIR) package/file/ file\*.patch
  48. $(CONFIG_UPDATE) $(FILE_SOURCE_DIR)
  49. touch $@
  50. $(FILE_DIR2)/.configured: $(FILE_SOURCE_DIR)/.unpacked
  51. mkdir -p $(FILE_DIR2)
  52. (cd $(FILE_DIR2); rm -rf config.cache; \
  53. $(TARGET_CONFIGURE_OPTS) \
  54. $(TARGET_CONFIGURE_ARGS) \
  55. $(FILE_SOURCE_DIR)/configure $(QUIET) \
  56. --target=$(GNU_TARGET_NAME) \
  57. --host=$(GNU_TARGET_NAME) \
  58. --build=$(GNU_HOST_NAME) \
  59. --prefix=/usr \
  60. --exec-prefix=/usr \
  61. --bindir=/usr/bin \
  62. --sbindir=/usr/sbin \
  63. --libdir=/lib \
  64. --libexecdir=/usr/lib \
  65. --sysconfdir=/etc \
  66. --datadir=/usr/share/misc \
  67. --localstatedir=/var \
  68. --mandir=/usr/share/man \
  69. --infodir=/usr/share/info \
  70. $(DISABLE_NLS) \
  71. $(DISABLE_LARGEFILE) \
  72. --enable-static \
  73. --disable-fsect-man5 \
  74. )
  75. touch $@
  76. $(FILE_DIR2)/$(FILE_BINARY): $(FILE_DIR2)/.configured $(TOOLCHAIN_DIR)/bin/file
  77. ln -sf $(FILE_DIR1)/install/bin/file $(FILE_DIR2)/magic/file
  78. $(MAKE) $(TARGET_CONFIGURE_OPTS) LDFLAGS="-static" -C $(FILE_DIR2)
  79. $(TARGET_DIR)/$(FILE_TARGET_BINARY): $(FILE_DIR2)/$(FILE_BINARY)
  80. $(MAKE) $(TARGET_CONFIGURE_OPTS) DESTDIR=$(TARGET_DIR) -C $(FILE_DIR2) install
  81. -($(STRIPCMD) $(TARGET_DIR)/usr/lib/libmagic.so.*.* > /dev/null 2>&1)
  82. rm -rf $(TARGET_DIR)/share/locale
  83. mv $(TARGET_DIR)/lib/libmagic.a $(STAGING_DIR)/lib
  84. rm -f $(TARGET_DIR)/lib/libmagic.la
  85. mv $(TARGET_DIR)/usr/include/magic.h $(STAGING_DIR)/usr/include
  86. file: zlib $(TARGET_DIR)/$(FILE_TARGET_BINARY)
  87. file-clean:
  88. -$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(FILE_DIR2) uninstall
  89. -$(MAKE) -C $(FILE_DIR2) clean
  90. file-dirclean:
  91. rm -rf $(FILE_DIR2)
  92. #############################################################
  93. #
  94. # Toplevel Makefile options
  95. #
  96. #############################################################
  97. ifeq ($(BR2_PACKAGE_FILE),y)
  98. TARGETS+=file
  99. endif