Makefile 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. #
  2. # Copyright (C) 2006-2013 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. include $(TOPDIR)/rules.mk
  8. PKG_NAME:=binutils
  9. PKG_VERSION:=$(strip $(subst ",, $(CONFIG_BINUTILS_VERSION)))
  10. #"))
  11. PKG_RELEASE:=6
  12. ifeq ($(findstring linaro, $(CONFIG_BINUTILS_VERSION)),linaro)
  13. PKG_SOURCE_URL:=https://releases.linaro.org/13.12/components/toolchain/binutils-linaro/
  14. PKG_REV:=2.24-2013.12
  15. PKG_SOURCE:=$(PKG_NAME)-linaro-$(PKG_REV).tar.xz
  16. BINUTILS_DIR:=$(PKG_NAME)-linaro-$(PKG_REV)
  17. PKG_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(BINUTILS_DIR)
  18. PKG_VERSION:=$(PKG_REV)
  19. else
  20. PKG_SOURCE_URL:=@GNU/binutils
  21. PKG_SOURCE:=binutils-$(PKG_VERSION).tar.bz2
  22. endif
  23. PKG_MD5SUM:=
  24. PATCH_DIR:=$(TOPDIR)/toolchain/binutils/patches/$(PKG_VERSION)
  25. PKG_FIXUP:=autoreconf
  26. PKG_LIBTOOL_PATHS:=. gas bfd opcodes gprof binutils ld libiberty gold intl
  27. PKG_REMOVE_FILES:=libtool.m4
  28. PKG_INSTALL:=1
  29. PKG_MAINTAINER:=Felix Fietkau <[email protected]>
  30. PKG_BUILD_PARALLEL:=1
  31. include $(INCLUDE_DIR)/package.mk
  32. define Package/binutils
  33. SECTION:=devel
  34. CATEGORY:=Development
  35. TITLE:=binutils
  36. DEPENDS:=+objdump
  37. endef
  38. define Package/objdump
  39. SECTION:=devel
  40. CATEGORY:=Development
  41. TITLE:=objdump
  42. DEPENDS:=+zlib
  43. endef
  44. define Package/binutils/description
  45. The Binutils package contains a linker, an assembler, and other tools for handling object files
  46. endef
  47. CONFIGURE_ARGS = \
  48. --target=$(REAL_GNU_TARGET_NAME) \
  49. --host=$(REAL_GNU_TARGET_NAME) \
  50. --build=$(GNU_HOST_NAME) \
  51. --prefix=/usr \
  52. --disable-multilib \
  53. --disable-werror \
  54. --disable-nls \
  55. --enable-shared \
  56. $(SOFT_FLOAT_CONFIG_OPTION) \
  57. $(call qstrip,$(CONFIG_EXTRA_BINUTILS_CONFIG_OPTIONS))
  58. TARGET_CFLAGS += $(FPIC)
  59. TARGET_LDFLAGS := -L$(PKG_BUILD_DIR)/libiberty $(TARGET_LDFLAGS)
  60. define Build/Configure
  61. $(call Build/Configure/Default)
  62. $(call Build/Compile/Default, \
  63. configure-bfd \
  64. configure-binutils \
  65. configure-etc \
  66. configure-gas \
  67. configure-gprof \
  68. configure-intl \
  69. configure-ld \
  70. configure-libiberty \
  71. configure-opcodes \
  72. )
  73. $(MAKE) CFLAGS="$(TARGET_CFLAGS)" -C $(PKG_BUILD_DIR)/bfd/po Makefile
  74. endef
  75. define Build/InstallDev
  76. $(INSTALL_DIR) $(1)/usr/{lib,include}
  77. $(CP) \
  78. $(PKG_INSTALL_DIR)/usr/lib/* \
  79. $(1)/usr/lib/
  80. $(CP) \
  81. $(PKG_BUILD_DIR)/include/*.h \
  82. $(1)/usr/include/
  83. $(CP) \
  84. $(PKG_INSTALL_DIR)/usr/include/* \
  85. $(1)/usr/include/
  86. rm -f $(1)/usr/include/gdbm.h
  87. endef
  88. define Build/Compile
  89. +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/bfd/doc/ CFLAGS="-I$(PKG_BUILD_DIR)/include" chew
  90. $(call Build/Compile/Default)
  91. endef
  92. define Package/objdump/install
  93. $(INSTALL_DIR) $(1)/usr/bin $(1)/usr/lib
  94. $(CP) $(PKG_INSTALL_DIR)/usr/bin/objdump $(1)/usr/bin/
  95. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libopcodes*.so $(1)/usr/lib/
  96. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libbfd*.so $(1)/usr/lib/
  97. endef
  98. define Package/binutils/install
  99. $(INSTALL_DIR) $(1)/usr $(1)/bin
  100. $(CP) $(PKG_INSTALL_DIR)/usr/bin/ $(1)/usr/
  101. mv $(1)/usr/bin/strings $(1)/bin/strings
  102. rm -f $(1)/usr/bin/objdump
  103. endef
  104. $(eval $(call BuildPackage,binutils))
  105. $(eval $(call BuildPackage,objdump))