libtool.mk 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. #############################################################
  2. #
  3. # libtool
  4. #
  5. #############################################################
  6. LIBTOOL_VERSION:=1.5.24
  7. LIBTOOL_SOURCE:=libtool-$(LIBTOOL_VERSION).tar.gz
  8. LIBTOOL_SITE:=$(BR2_GNU_MIRROR)/libtool
  9. LIBTOOL_CAT:=$(ZCAT)
  10. LIBTOOL_SRC_DIR:=$(TOOL_BUILD_DIR)/libtool-$(LIBTOOL_VERSION)
  11. LIBTOOL_DIR:=$(BUILD_DIR)/libtool-$(LIBTOOL_VERSION)
  12. LIBTOOL_HOST_DIR:=$(TOOL_BUILD_DIR)/libtool-$(LIBTOOL_VERSION)-host
  13. LIBTOOL_BINARY:=libtool
  14. LIBTOOL_TARGET_BINARY:=usr/bin/libtool
  15. LIBTOOL:=$(STAGING_DIR)/usr/bin/libtool
  16. $(DL_DIR)/$(LIBTOOL_SOURCE):
  17. $(call DOWNLOAD,$(LIBTOOL_SITE),$(LIBTOOL_SOURCE))
  18. libtool-source: $(DL_DIR)/$(LIBTOOL_SOURCE)
  19. $(LIBTOOL_SRC_DIR)/.unpacked: $(DL_DIR)/$(LIBTOOL_SOURCE)
  20. $(LIBTOOL_CAT) $(DL_DIR)/$(LIBTOOL_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
  21. $(CONFIG_UPDATE) $(LIBTOOL_SRC_DIR)
  22. $(CONFIG_UPDATE) $(LIBTOOL_SRC_DIR)/libltdl
  23. touch $@
  24. #############################################################
  25. #
  26. # libtool for the target
  27. #
  28. #############################################################
  29. $(LIBTOOL_DIR)/.configured: $(LIBTOOL_SRC_DIR)/.unpacked
  30. mkdir -p $(LIBTOOL_DIR)
  31. (cd $(LIBTOOL_DIR); rm -rf config.cache; \
  32. $(TARGET_CONFIGURE_OPTS) \
  33. $(TARGET_CONFIGURE_ARGS) \
  34. $(LIBTOOL_SRC_DIR)/configure \
  35. --target=$(GNU_TARGET_NAME) \
  36. --host=$(GNU_TARGET_NAME) \
  37. --build=$(GNU_HOST_NAME) \
  38. --prefix=/usr \
  39. --exec-prefix=/usr \
  40. --bindir=/usr/bin \
  41. --sbindir=/usr/sbin \
  42. --libdir=/lib \
  43. --libexecdir=/usr/lib \
  44. --sysconfdir=/etc \
  45. --datadir=/usr/share \
  46. --localstatedir=/var \
  47. --mandir=/usr/share/man \
  48. --infodir=/usr/share/info \
  49. $(DISABLE_NLS) \
  50. )
  51. touch $@
  52. $(LIBTOOL_DIR)/$(LIBTOOL_BINARY): $(LIBTOOL_DIR)/.configured
  53. $(MAKE) CC=$(TARGET_CC) RANLIB=$(TARGET_RANLIB) AR=$(TARGET_AR) -C $(LIBTOOL_DIR)
  54. touch -c $@
  55. $(TARGET_DIR)/$(LIBTOOL_TARGET_BINARY): $(LIBTOOL_DIR)/$(LIBTOOL_BINARY)
  56. $(MAKE) \
  57. prefix=$(TARGET_DIR)/usr \
  58. exec_prefix=$(TARGET_DIR)/usr \
  59. bindir=$(TARGET_DIR)/usr/bin \
  60. sbindir=$(TARGET_DIR)/usr/sbin \
  61. libexecdir=$(TARGET_DIR)/usr/lib \
  62. datadir=$(TARGET_DIR)/usr/share \
  63. sysconfdir=$(TARGET_DIR)/etc \
  64. localstatedir=$(TARGET_DIR)/var \
  65. libdir=$(TARGET_DIR)/usr/lib \
  66. infodir=$(TARGET_DIR)/usr/share/info \
  67. mandir=$(TARGET_DIR)/usr/share/man \
  68. includedir=$(TARGET_DIR)/usr/include \
  69. -C $(LIBTOOL_DIR) install
  70. $(STRIPCMD) $(TARGET_DIR)//usr/lib/libltdl.so.*.*.* > /dev/null 2>&1
  71. $(SED) "s,^CC.*,CC=\"/usr/bin/gcc\"," $(TARGET_DIR)/usr/bin/libtool
  72. $(SED) "s,^LD.*,LD=\"/usr/bin/ld\"," $(TARGET_DIR)/usr/bin/libtool
  73. rm -rf $(TARGET_DIR)/share/locale
  74. rm -rf $(TARGET_DIR)/usr/share/doc
  75. ifneq ($(BR2_HAVE_INFOPAGES),y)
  76. rm -rf $(TARGET_DIR)/usr/share/info
  77. endif
  78. ifneq ($(BR2_HAVE_MANPAGES),y)
  79. rm -rf $(TARGET_DIR)/usr/share/man
  80. endif
  81. touch -c $@
  82. libtool: uclibc $(TARGET_DIR)/$(LIBTOOL_TARGET_BINARY)
  83. libtool-clean:
  84. -$(MAKE) DESTDIR=$(TARGET_DIR) -C $(LIBTOOL_DIR) uninstall
  85. -$(MAKE) -C $(LIBTOOL_DIR) clean
  86. libtool-cross: uclibc $(LIBTOOL_DIR)/$(LIBTOOL_BINARY)
  87. libtool-cross-clean:
  88. -$(MAKE) -C $(LIBTOOL_DIR) clean
  89. libtool-dirclean:
  90. rm -rf $(LIBTOOL_DIR)
  91. #############################################################
  92. #
  93. # libtool for the host
  94. #
  95. #############################################################
  96. $(LIBTOOL_HOST_DIR)/.configured: $(LIBTOOL_SRC_DIR)/.unpacked
  97. mkdir -p $(LIBTOOL_HOST_DIR)
  98. (cd $(LIBTOOL_HOST_DIR); rm -rf config.cache; \
  99. $(HOST_CONFIGURE_OPTS) \
  100. CFLAGS="$(HOST_CFLAGS)" \
  101. LDFLAGS="$(HOST_LDFLAGS)" \
  102. $(LIBTOOL_SRC_DIR)/configure \
  103. --prefix=$(STAGING_DIR)/usr \
  104. $(DISABLE_NLS) \
  105. )
  106. touch $@
  107. $(LIBTOOL_HOST_DIR)/$(LIBTOOL_BINARY): $(LIBTOOL_HOST_DIR)/.configured
  108. $(MAKE) -C $(LIBTOOL_HOST_DIR)
  109. touch -c $@
  110. $(LIBTOOL): $(LIBTOOL_HOST_DIR)/$(LIBTOOL_BINARY)
  111. $(MAKE) -C $(LIBTOOL_HOST_DIR) install
  112. rm -rf $(STAGING_DIR)/share/locale
  113. rm -rf $(STAGING_DIR)/usr/share/doc
  114. ifneq ($(BR2_HAVE_INFOPAGES),y)
  115. rm -rf $(STAGING_DIR)/usr/share/info
  116. endif
  117. ifneq ($(BR2_HAVE_MANPAGES),y)
  118. rm -rf $(STAGING_DIR)/usr/share/man
  119. endif
  120. touch -c $@
  121. host-libtool: $(LIBTOOL)
  122. host-libtool-clean:
  123. -$(MAKE) -C $(LIBTOOL_HOST_DIR) uninstall
  124. -$(MAKE) -C $(LIBTOOL_HOST_DIR) clean
  125. host-libtool-dirclean:
  126. rm -rf $(LIBTOOL_HOST_DIR)
  127. #############################################################
  128. #
  129. # Toplevel Makefile options
  130. #
  131. #############################################################
  132. ifeq ($(BR2_PACKAGE_LIBTOOL),y)
  133. TARGETS+=libtool
  134. endif