zlib.mk 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #############################################################
  2. #
  3. # zlib
  4. #
  5. #############################################################
  6. ZLIB_VERSION:=1.2.3
  7. ZLIB_SOURCE:=zlib-$(ZLIB_VERSION).tar.bz2
  8. ZLIB_CAT:=$(BZCAT)
  9. ZLIB_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/libpng
  10. ZLIB_DIR:=$(BUILD_DIR)/zlib-$(ZLIB_VERSION)
  11. $(DL_DIR)/$(ZLIB_SOURCE):
  12. $(call DOWNLOAD,$(ZLIB_SITE),$(ZLIB_SOURCE))
  13. $(ZLIB_DIR)/.patched: $(DL_DIR)/$(ZLIB_SOURCE)
  14. $(ZLIB_CAT) $(DL_DIR)/$(ZLIB_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
  15. toolchain/patch-kernel.sh $(ZLIB_DIR) package/zlib/ zlib\*.patch
  16. $(CONFIG_UPDATE) $(@D)
  17. touch $@
  18. ifneq ($(BR2_PREFER_STATIC_LIB),y)
  19. ZLIB_PIC := -fPIC
  20. ZLIB_SHARED := --shared
  21. ZLIB_TARGET := $(TARGET_DIR)/usr/lib/libz.so
  22. else
  23. ZLIB_PIC :=
  24. ZLIB_SHARED :=
  25. ZLIB_TARGET := $(STAGING_DIR)/usr/lib/libz.a
  26. endif
  27. $(ZLIB_DIR)/.configured: $(ZLIB_DIR)/.patched
  28. (cd $(ZLIB_DIR); rm -rf config.cache; \
  29. $(TARGET_CONFIGURE_ARGS) \
  30. $(TARGET_CONFIGURE_OPTS) \
  31. CFLAGS="$(TARGET_CFLAGS) $(ZLIB_PIC)" \
  32. ./configure \
  33. $(ZLIB_SHARED) \
  34. --prefix=/usr \
  35. --exec-prefix=$(STAGING_DIR)/usr/bin \
  36. --libdir=$(STAGING_DIR)/usr/lib \
  37. --includedir=$(STAGING_DIR)/usr/include \
  38. )
  39. touch $@
  40. $(ZLIB_DIR)/libz.a: $(ZLIB_DIR)/.configured
  41. $(MAKE) -C $(ZLIB_DIR) all libz.a
  42. touch -c $@
  43. $(STAGING_DIR)/usr/lib/libz.a: $(ZLIB_DIR)/libz.a
  44. $(INSTALL) -D $(ZLIB_DIR)/libz.a $(STAGING_DIR)/usr/lib/libz.a
  45. $(INSTALL) -D $(ZLIB_DIR)/zlib.h $(STAGING_DIR)/usr/include/zlib.h
  46. $(INSTALL) $(ZLIB_DIR)/zconf.h $(STAGING_DIR)/usr/include/
  47. touch -c $@
  48. $(STAGING_DIR)/usr/lib/libz.so: $(STAGING_DIR)/usr/lib/libz.a
  49. cp -dpf $(ZLIB_DIR)/libz.so* $(STAGING_DIR)/usr/lib/
  50. touch -c $@
  51. $(TARGET_DIR)/usr/lib/libz.so: $(STAGING_DIR)/usr/lib/libz.so
  52. mkdir -p $(TARGET_DIR)/usr/lib
  53. cp -dpf $(STAGING_DIR)/usr/lib/libz.so* $(TARGET_DIR)/usr/lib
  54. -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $@
  55. touch -c $@
  56. $(TARGET_DIR)/usr/lib/libz.a: $(STAGING_DIR)/usr/lib/libz.a
  57. $(INSTALL) -D $(STAGING_DIR)/usr/include/zlib.h $(TARGET_DIR)/usr/include/zlib.h
  58. $(INSTALL) $(STAGING_DIR)/usr/include/zconf.h $(TARGET_DIR)/usr/include/
  59. $(INSTALL) -D $(STAGING_DIR)/usr/lib/libz.a $(TARGET_DIR)/usr/lib/libz.a
  60. touch -c $@
  61. zlib-headers: $(TARGET_DIR)/usr/lib/libz.a
  62. zlib: uclibc $(ZLIB_TARGET)
  63. zlib-source: $(DL_DIR)/$(ZLIB_SOURCE)
  64. zlib-clean:
  65. rm -f $(TARGET_DIR)/usr/lib/libz.* \
  66. $(TARGET_DIR)/usr/include/zlib.h \
  67. $(TARGET_DIR)/usr/include/zconf.h \
  68. $(STAGING_DIR)/usr/include/zlib.h \
  69. $(STAGING_DIR)/usr/include/zconf.h \
  70. $(STAGING_DIR)/usr/lib/libz.*
  71. -$(MAKE) -C $(ZLIB_DIR) clean
  72. zlib-dirclean:
  73. rm -rf $(ZLIB_DIR)
  74. #############################################################
  75. #
  76. # Toplevel Makefile options
  77. #
  78. #############################################################
  79. ifeq ($(BR2_PACKAGE_ZLIB),y)
  80. TARGETS+=zlib
  81. endif
  82. ifeq ($(BR2_PACKAGE_ZLIB_TARGET_HEADERS),y)
  83. TARGETS+=zlib-headers
  84. endif