gmp.mk 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #############################################################
  2. #
  3. # gmp
  4. #
  5. #############################################################
  6. GMP_VERSION:=4.2.4
  7. GMP_SOURCE:=gmp-$(GMP_VERSION).tar.bz2
  8. GMP_SITE:=$(BR2_GNU_MIRROR)/gmp
  9. GMP_CAT:=$(BZCAT)
  10. GMP_DIR:=$(TOOLCHAIN_DIR)/gmp-$(GMP_VERSION)
  11. GMP_TARGET_DIR:=$(BUILD_DIR)/gmp-$(GMP_VERSION)
  12. GMP_BINARY:=libgmp$(LIBTGTEXT)
  13. GMP_HOST_BINARY:=libgmp$(HOST_LIBEXT)
  14. GMP_LIBVERSION:=3.4.4
  15. # this is a workaround for a bug in GMP, please see
  16. # http://gmplib.org/list-archives/gmp-devel/2006-April/000618.html
  17. ifeq ($(HOST_EXEEXT),.exe)
  18. GMP_CPP_FLAGS:=CPPFLAGS=-DDLL_EXPORT
  19. endif
  20. $(DL_DIR)/$(GMP_SOURCE):
  21. $(call DOWNLOAD,$(GMP_SITE),$(GMP_SOURCE))
  22. libgmp-source: $(DL_DIR)/$(GMP_SOURCE)
  23. $(GMP_DIR)/.unpacked: $(DL_DIR)/$(GMP_SOURCE)
  24. $(GMP_CAT) $(DL_DIR)/$(GMP_SOURCE) | tar -C $(TOOLCHAIN_DIR) $(TAR_OPTIONS) -
  25. toolchain/patch-kernel.sh $(GMP_DIR) package/gmp/ \*.patch
  26. $(CONFIG_UPDATE) $(@D)
  27. touch $@
  28. $(GMP_TARGET_DIR)/.configured: $(GMP_DIR)/.unpacked
  29. mkdir -p $(GMP_TARGET_DIR)
  30. (cd $(GMP_TARGET_DIR); rm -rf config.cache; \
  31. $(TARGET_CONFIGURE_OPTS) \
  32. $(TARGET_CONFIGURE_ARGS) \
  33. $(GMP_CPP_FLAGS) \
  34. $(GMP_DIR)/configure $(QUIET) \
  35. --target=$(GNU_TARGET_NAME) \
  36. --host=$(GNU_TARGET_NAME) \
  37. --build=$(GNU_HOST_NAME) \
  38. --prefix=/usr \
  39. $(PREFERRED_LIB_FLAGS) \
  40. $(DISABLE_NLS) \
  41. )
  42. touch $@
  43. $(GMP_TARGET_DIR)/.libs/$(GMP_BINARY): $(GMP_TARGET_DIR)/.configured
  44. #$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(GMP_TARGET_DIR)
  45. $(MAKE) -C $(GMP_TARGET_DIR)
  46. $(STAGING_DIR)/usr/lib/$(GMP_BINARY): $(GMP_TARGET_DIR)/.libs/$(GMP_BINARY)
  47. $(MAKE) DESTDIR=$(STAGING_DIR) -C $(GMP_TARGET_DIR) install
  48. $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(STAGING_DIR)/usr/lib/libgmp$(LIBTGTEXT)*
  49. $(TARGET_DIR)/usr/lib/libgmp.so $(TARGET_DIR)/usr/lib/libgmp.so.$(GMP_LIBVERSION) $(TARGET_DIR)/usr/lib/libgmp.a: $(STAGING_DIR)/usr/lib/$(GMP_BINARY)
  50. cp -dpf $(STAGING_DIR)/usr/lib/libgmp$(LIBTGTEXT)* $(TARGET_DIR)/usr/lib/
  51. ifeq ($(BR2_PACKAGE_LIBGMP_HEADERS),y)
  52. test -d $(TARGET_DIR)/usr/include || mkdir -p $(TARGET_DIR)/usr/include
  53. cp -dpf $(STAGING_DIR)/usr/include/gmp.h $(TARGET_DIR)/usr/include/
  54. endif
  55. libgmp: $(TARGET_DIR)/usr/lib/libgmp$(LIBTGTEXT)
  56. stage-libgmp: $(STAGING_DIR)/usr/lib/$(GMP_BINARY)
  57. libgmp-clean:
  58. rm -f $(TARGET_DIR)/usr/lib/libgmp.* $(TARGET_DIR)/usr/include/gmp.h \
  59. $(STAGING_DIR)/usr/lib/libgmp* $(STAGING_DIR)/usr/include/gmp.h
  60. -$(MAKE) -C $(GMP_TARGET_DIR) clean
  61. libgmp-dirclean:
  62. rm -rf $(GMP_TARGET_DIR) $(GMP_DIR)
  63. GMP_DIR2:=$(TOOLCHAIN_DIR)/gmp-$(GMP_VERSION)-host
  64. GMP_HOST_DIR:=$(TOOLCHAIN_DIR)/gmp
  65. $(GMP_DIR2)/.configured: $(GMP_DIR)/.unpacked
  66. mkdir -p $(GMP_DIR2)
  67. (cd $(GMP_DIR2); rm -rf config.cache; \
  68. $(HOST_CONFIGURE_OPTS) \
  69. $(GMP_CPP_FLAGS) \
  70. $(GMP_DIR)/configure $(QUIET) \
  71. --prefix="$(GMP_HOST_DIR)" \
  72. --build=$(GNU_HOST_NAME) \
  73. --host=$(GNU_HOST_NAME) \
  74. --disable-shared \
  75. --enable-static \
  76. $(DISABLE_NLS) \
  77. )
  78. touch $@
  79. $(GMP_HOST_DIR)/lib/libgmp$(HOST_LIBEXT): $(GMP_DIR2)/.configured
  80. $(MAKE) -C $(GMP_DIR2) install
  81. host-libgmp: $(GMP_HOST_DIR)/lib/$(GMP_HOST_BINARY)
  82. host-libgmp-source: libgmp-source
  83. host-libgmp-clean:
  84. rm -rf $(GMP_HOST_DIR)
  85. -$(MAKE) -C $(GMP_DIR2) clean
  86. host-libgmp-dirclean:
  87. rm -rf $(GMP_HOST_DIR) $(GMP_DIR2)
  88. #############################################################
  89. #
  90. # Toplevel Makefile options
  91. #
  92. #############################################################
  93. ifeq ($(BR2_PACKAGE_LIBGMP),y)
  94. TARGETS+=libgmp
  95. endif