bzip2.mk 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. #############################################################
  2. #
  3. # bzip2
  4. #
  5. #############################################################
  6. BZIP2_VERSION:=1.0.5
  7. BZIP2_SONAME=1.0.4
  8. BZIP2_SOURCE:=bzip2-$(BZIP2_VERSION).tar.gz
  9. BZIP2_SITE:=http://www.bzip.org/$(BZIP2_VERSION)
  10. BZIP2_INSTALL_STAGING=YES
  11. define BZIP2_FIX_MAKEFILE
  12. $(SED) "s,ln \$$(,ln -snf \$$(,g" $(@D)/Makefile
  13. $(SED) "s,ln -s (lib.*),ln -snf \$$1; ln -snf libbz2.so.$(BZIP2_SONAME) \
  14. libbz2.so,g" $(@D)/Makefile-libbz2_so
  15. $(SED) "s:-O2:$(TARGET_CFLAGS):" $(@D)/Makefile
  16. $(SED) "s:-O2:$(TARGET_CFLAGS):" $(@D)/Makefile-libbz2_so
  17. endef
  18. BZIP2_POST_PATCH_HOOKS += BZIP2_FIX_MAKEFILE
  19. define BZIP2_NOLARGEFILE_FIX_MAKEFILE
  20. $(SED) "s,^BIGFILES,#BIGFILES,g" $(@D)/Makefile
  21. $(SED) "s,^BIGFILES,#BIGFILES,g" $(@D)/Makefile-libbz2_so
  22. endef
  23. ifneq ($(BR2_LARGEFILE),y)
  24. BZIP2_POST_PATCH_HOOKS += BZIP2_NOLARGEFILE_FIX_MAKEFILE
  25. endif
  26. define BZIP2_BUILD_CMDS
  27. $(TARGET_MAKE_ENV) \
  28. $(MAKE) -C $(@D) -f Makefile-libbz2_so \
  29. CC="$(TARGET_CC)" RANLIB="$(TARGET_RANLIB)" AR="$(TARGET_AR)"
  30. $(TARGET_MAKE_ENV) \
  31. $(MAKE) -C $(@D) \
  32. CC="$(TARGET_CC)" RANLIB="$(TARGET_RANLIB)" AR="$(TARGET_AR)" \
  33. libbz2.a bzip2 bzip2recover
  34. endef
  35. define BZIP2_INSTALL_STAGING_CMDS
  36. $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) \
  37. $(MAKE) PREFIX=$(STAGING_DIR)/usr -C $(@D) install
  38. $(INSTALL) -m 0755 -d $(STAGING_DIR)/usr/lib
  39. cp $(@D)/libbz2.so.$(BZIP2_SONAME) $(STAGING_DIR)/usr/lib/
  40. cp $(@D)/libbz2.a $(STAGING_DIR)/usr/lib/
  41. (cd $(STAGING_DIR)/usr/lib/; \
  42. ln -snf libbz2.so.$(BZIP2_SONAME) libbz2.so; \
  43. ln -snf libbz2.so.$(BZIP2_SONAME) libbz2.so.1.0; \
  44. ln -snf libbz2.so.$(BZIP2_SONAME) libbz2.so.1; \
  45. )
  46. endef
  47. # make sure busybox doesn't get overwritten by make install
  48. define BZIP2_INSTALL_TARGET_CMDS
  49. rm -f $(addprefix $(TARGET_DIR)/usr/bin/,bzip2 bunzip2 bzcat)
  50. $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) \
  51. $(MAKE) PREFIX=$(TARGET_DIR)/usr -C $(@D) install
  52. cp $(@D)/libbz2.so.$(BZIP2_SONAME) $(TARGET_DIR)/usr/lib/
  53. (cd $(TARGET_DIR)/usr/lib; \
  54. ln -snf libbz2.so.$(BZIP2_SONAME) libbz2.so.1.0; \
  55. ln -snf libbz2.so.$(BZIP2_SONAME) libbz2.so; \
  56. )
  57. (cd $(TARGET_DIR)/usr/bin; \
  58. ln -snf bzip2 bunzip2; \
  59. ln -snf bzip2 bzcat; \
  60. ln -snf bzdiff bzcmp; \
  61. ln -snf bzmore bzless; \
  62. ln -snf bzgrep bzegrep; \
  63. ln -snf bzgrep bzfgrep; \
  64. )
  65. endef
  66. define BZIP2_CLEAN_CMDS
  67. rm -f $(addprefix $(TARGET_DIR),/lib/libbz2.* \
  68. /usr/lib/libbz2.* \
  69. /usr/include/bzlib.h)
  70. rm -f $(addprefix $(STAGING_DIR),/lib/libbz2.* \
  71. /usr/lib/libbz2.* \
  72. /usr/include/bzlib.h)
  73. -$(MAKE) -C $(@D) clean
  74. endef
  75. define HOST_BZIP2_FIX_MAKEFILE
  76. $(SED) "s,ln \$$(,ln -snf \$$(,g" $(@D)/Makefile
  77. $(SED) "s,ln -s (lib.*),ln -snf \$$1; ln -snf libbz2.so.$(BZIP2_SONAME) \
  78. libbz2.so,g" $(@D)/Makefile-libbz2_so
  79. $(SED) "s:-O2:$(HOST_CFLAGS):" $(@D)/Makefile
  80. $(SED) "s:-O2:$(HOST_CFLAGS):" $(@D)/Makefile-libbz2_so
  81. endef
  82. HOST_BZIP2_POST_PATCH_HOOKS += HOST_BZIP2_FIX_MAKEFILE
  83. define HOST_BZIP2_BUILD_CMDS
  84. $(HOST_MAKE_ENV) $(MAKE) -C $(@D) -f Makefile-libbz2_so
  85. $(HOST_MAKE_ENV) $(MAKE) -C $(@D) libbz2.a bzip2 bzip2recover
  86. endef
  87. define HOST_BZIP2_INSTALL_CMDS
  88. $(HOST_MAKE_ENV) \
  89. $(MAKE) PREFIX=$(HOST_DIR)/usr -C $(@D) install
  90. endef
  91. $(eval $(call GENTARGETS))
  92. $(eval $(call GENTARGETS,host))