libtool.mk 4.3 KB

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