libxml2.mk 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #############################################################
  2. #
  3. # libxml2
  4. #
  5. #############################################################
  6. LIBXML2_VERSION=2.6.29
  7. LIBXML2_SOURCE=libxml2-sources-$(LIBXML2_VERSION).tar.gz
  8. LIBXML2_SITE=ftp://xmlsoft.org/libxml2
  9. LIBXML2_DIR=$(BUILD_DIR)/libxml2-$(LIBXML2_VERSION)
  10. LIBXML2_CAT:=$(ZCAT)
  11. $(DL_DIR)/$(LIBXML2_SOURCE):
  12. $(WGET) -P $(DL_DIR) $(LIBXML2_SITE)/$(LIBXML2_SOURCE)
  13. $(LIBXML2_DIR)/.unpacked: $(DL_DIR)/$(LIBXML2_SOURCE)
  14. $(LIBXML2_CAT) $(DL_DIR)/$(LIBXML2_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
  15. touch $(LIBXML2_DIR)/.unpacked
  16. $(LIBXML2_DIR)/.configured: $(LIBXML2_DIR)/.unpacked
  17. (cd $(LIBXML2_DIR); rm -rf config.cache; \
  18. $(TARGET_CONFIGURE_OPTS) \
  19. $(TARGET_CONFIGURE_ARGS) \
  20. ./configure \
  21. --target=$(GNU_TARGET_NAME) \
  22. --host=$(GNU_TARGET_NAME) \
  23. --build=$(GNU_HOST_NAME) \
  24. --prefix=/usr \
  25. --exec-prefix=/usr \
  26. --bindir=/usr/bin \
  27. --sbindir=/usr/sbin \
  28. --libexecdir=/usr/lib \
  29. --sysconfdir=/etc \
  30. --datadir=/usr/share \
  31. --localstatedir=/var \
  32. --mandir=/usr/man \
  33. --infodir=/usr/info \
  34. --includedir=/usr/include \
  35. --with-gnu-ld \
  36. --enable-shared \
  37. --enable-static \
  38. --enable-ipv6=no \
  39. --without-debugging \
  40. --without-python \
  41. --without-threads \
  42. $(DISABLE_NLS) \
  43. )
  44. touch $(LIBXML2_DIR)/.configured
  45. $(STAGING_DIR)/usr/lib/libxml2.so: $(LIBXML2_DIR)/.configured
  46. $(MAKE) CC=$(TARGET_CC) -C $(LIBXML2_DIR)
  47. $(MAKE) DESTDIR=$(STAGING_DIR) -C $(LIBXML2_DIR) install
  48. rm -f $(STAGING_DIR)/usr/lib/libxml2.la
  49. $(SED) 's:prefix=/usr:prefix=$(STAGING_DIR)/usr:' \
  50. -e 's:includedir=/usr/include:includedir=$(STAGING_DIR)/usr/include:' \
  51. $(STAGING_DIR)/usr/bin/xml2-config
  52. $(TARGET_DIR)/usr/lib/libxml2.so: $(STAGING_DIR)/usr/lib/libxml2.so
  53. mkdir -p $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/lib
  54. cp -dpf $(STAGING_DIR)/usr/lib/libxml2.so* $(TARGET_DIR)/usr/lib/
  55. $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libxml2.so*
  56. $(TARGET_DIR)/usr/lib/libxml2.a: $(STAGING_DIR)/usr/lib/libxml2.so
  57. cp -dpf $(STAGING_DIR)/usr/lib/libxml2.*a $(TARGET_DIR)/usr/lib/
  58. libxml2: uclibc $(TARGET_DIR)/usr/lib/libxml2.so libxml2-headers
  59. $(STAGING_DIR)/usr/include/libxml2: $(TARGET_DIR)/usr/lib/libxml2.so
  60. cp -af $(LIBXML2_DIR)/include/libxml $(STAGING_DIR)/usr/include/libxml2
  61. touch -c $@
  62. $(TARGET_DIR)/usr/include/libxml2: libxml2-headers
  63. cp -af $(LIBXML2_DIR)/usr/include/libxml2 $(TARGET_DIR)/usr/include/libxml2
  64. touch -c $@
  65. $(TARGET_DIR)/usr/include/libxml: libxml2-headers
  66. ln -s libxml2/libxml $(LIBXML2_DIR)/usr/include/libxml
  67. touch -c $@
  68. libxml2-headers: $(STAGING_DIR)/usr/include/libxml2
  69. libxml2-target-headers: $(TARGET_DIR)/usr/include/libxml2 \
  70. $(TARGET_DIR)/usr/include/libxml2 \
  71. $(TARGET_DIR)/usr/lib/libxml2.a
  72. libxml2-source: $(DL_DIR)/$(LIBXML2_SOURCE)
  73. libxml2-clean:
  74. @if [ -d $(LIBXML2_DIR)/Makefile ]; then \
  75. $(MAKE) -C $(LIBXML2_DIR) clean; \
  76. fi
  77. rm -f $(STAGING_DIR)/usr/lib/libxml2.*
  78. rm -f $(TARGET_DIR)/usr/lib/libxml2.*
  79. libxml2-dirclean:
  80. rm -rf $(LIBXML2_DIR)
  81. .PHONY: libxml2-headers libxml2-target-headers
  82. #############################################################
  83. #
  84. # Toplevel Makefile options
  85. #
  86. #############################################################
  87. ifeq ($(strip $(BR2_PACKAGE_LIBXML2)),y)
  88. TARGETS+=libxml2
  89. endif
  90. ifeq ($(strip $(BR2_PACKAGE_LIBXML2_TARGET_HEADERS)),y)
  91. TARGETS+=libxml2-target-headers
  92. endif