b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 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 | |
| 9 | PKG_NAME:=binutils |
| 10 | PKG_VERSION:=$(call qstrip,$(CONFIG_BINUTILS_VERSION)) |
| 11 | BIN_VERSION:=$(PKG_VERSION) |
| 12 | |
| 13 | PKG_SOURCE_URL:=@GNU/binutils/ |
| 14 | PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz |
| 15 | PKG_CPE_ID:=cpe:/a:gnu:binutils |
| 16 | |
| 17 | TAR_OPTIONS += --exclude='*.rej' |
| 18 | |
| 19 | ifeq ($(PKG_VERSION),2.40) |
| 20 | PKG_HASH:=0f8a4c272d7f17f369ded10a4aca28b8e304828e95526da482b0ccc4dfc9d8e1 |
| 21 | endif |
| 22 | |
| 23 | ifeq ($(PKG_VERSION),2.42) |
| 24 | PKG_HASH:=f6e4d41fd5fc778b06b7891457b3620da5ecea1006c6a4a41ae998109f85a800 |
| 25 | endif |
| 26 | |
| 27 | ifeq ($(PKG_VERSION),2.43.1) |
| 28 | PKG_HASH:=13f74202a3c4c51118b797a39ea4200d3f6cfbe224da6d1d95bb938480132dfd |
| 29 | endif |
| 30 | |
| 31 | HOST_BUILD_PARALLEL:=1 |
| 32 | |
| 33 | PATCH_DIR:=./patches/$(PKG_VERSION) |
| 34 | |
| 35 | include $(INCLUDE_DIR)/toolchain-build.mk |
| 36 | |
| 37 | ifdef CONFIG_GCC_USE_GRAPHITE |
| 38 | GRAPHITE_CONFIGURE:= --with-isl=$(STAGING_DIR_HOST) |
| 39 | else |
| 40 | GRAPHITE_CONFIGURE:= --without-isl --without-cloog |
| 41 | endif |
| 42 | |
| 43 | HOST_CONFIGURE_ARGS = \ |
| 44 | --prefix=$(TOOLCHAIN_DIR) \ |
| 45 | --build=$(GNU_HOST_NAME) \ |
| 46 | --host=$(GNU_HOST_NAME) \ |
| 47 | --target=$(REAL_GNU_TARGET_NAME) \ |
| 48 | --with-sysroot=$(TOOLCHAIN_DIR) \ |
| 49 | --with-system-zlib \ |
| 50 | --with-zstd \ |
| 51 | --enable-deterministic-archives \ |
| 52 | --enable-plugins \ |
| 53 | --enable-lto \ |
| 54 | --disable-gprofng \ |
| 55 | --disable-multilib \ |
| 56 | --disable-werror \ |
| 57 | --disable-nls \ |
| 58 | --disable-sim \ |
| 59 | --disable-gdb \ |
| 60 | $(GRAPHITE_CONFIGURE) \ |
| 61 | $(SOFT_FLOAT_CONFIG_OPTION) \ |
| 62 | $(call qstrip,$(CONFIG_EXTRA_BINUTILS_CONFIG_OPTIONS)) |
| 63 | |
| 64 | ifneq ($(CONFIG_SSP_SUPPORT),) |
| 65 | HOST_CONFIGURE_ARGS+= \ |
| 66 | --enable-libssp |
| 67 | else |
| 68 | HOST_CONFIGURE_ARGS+= \ |
| 69 | --disable-libssp |
| 70 | endif |
| 71 | |
| 72 | ifneq ($(CONFIG_EXTRA_TARGET_ARCH),) |
| 73 | HOST_CONFIGURE_ARGS+= \ |
| 74 | --enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-$(TARGET_SUFFIX) |
| 75 | endif |
| 76 | |
| 77 | HOST_CONFIGURE_VARS += \ |
| 78 | acx_cv_cc_gcc_supports_ada=false |
| 79 | |
| 80 | define Host/Prepare |
| 81 | $(call Host/Prepare/Default) |
| 82 | ln -snf $(notdir $(HOST_BUILD_DIR)) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) |
| 83 | $(CP) $(SCRIPT_DIR)/config.{guess,sub} $(HOST_BUILD_DIR)/ |
| 84 | endef |
| 85 | |
| 86 | define Host/Compile |
| 87 | +$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) all |
| 88 | endef |
| 89 | |
| 90 | define Host/Install |
| 91 | $(MAKE) -C $(HOST_BUILD_DIR) \ |
| 92 | install |
| 93 | $(call FixupLibdir,$(TOOLCHAIN_DIR)) |
| 94 | $(CP) $(TOOLCHAIN_DIR)/bin/$(REAL_GNU_TARGET_NAME)-readelf $(HOST_BUILD_PREFIX)/bin/readelf |
| 95 | endef |
| 96 | |
| 97 | define Host/Clean |
| 98 | rm -rf \ |
| 99 | $(HOST_BUILD_DIR) \ |
| 100 | $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) |
| 101 | endef |
| 102 | |
| 103 | $(eval $(call HostBuild)) |