openwrt/toolchain/binutils/Makefile
Jeremy Kerr 077d84f543 provide a cleaner way to specify a biarch toolchain build
Currently, to build a biarch toolchain, we need to explicitly give
options to the binutils and gcc configure commands:

CONFIG_EXTRA_BINUTILS_CONFIG_OPTIONS="--enable-targets=powerpc64-linux-uclibc"
CONFIG_EXTRA_GCC_CONFIG_OPTIONS="--enable-biarch --enable-targets=powerpc64-linux-uclibc"

This change replaces the command line options with an 'extra arch'
configure option:

CONFIG_EXTRA_TARGET_ARCH=y
CONFIG_EXTRA_TARGET_ARCH_NAME="powerpc64"

And a way to invoke this extra arch on the compiler command-line:

CONFIG_EXTRA_TARGET_ARCH_OPTS="-m64"

In this case, this results in an extra compiler:
 'powerpc64-linux-uclibc-gcc', which invokes
 'powerpc-linux-uclibc-gcc -m64'

This is a more standard way of building biarch toolchains, and allows
the packages to not have to care about how to invoke the 64-bit
compiler.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>

SVN-Revision: 10802
2008-04-12 23:14:42 +00:00

54 lines
1.4 KiB
Makefile

#
# Copyright (C) 2006 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=binutils
PKG_VERSION:=$(strip $(subst ",, $(CONFIG_BINUTILS_VERSION)))
#"))
PKG_SOURCE_URL:=http://ftp.gnu.org/gnu/binutils/ \
ftp://gatekeeper.dec.com/pub/GNU/ \
ftp://ftp.uu.net/archive/systems/gnu/ \
ftp://ftp.eu.uu.net/pub/gnu/ \
ftp://ftp.funet.fi/pub/gnu/prep/ \
ftp://ftp.leo.org/pub/comp/os/unix/gnu/
PKG_SOURCE:=binutils-$(PKG_VERSION).tar.bz2
PATCH_DIR:=./patches/$(PKG_VERSION)
STAGING_DIR_HOST:=$(TOOLCHAIN_DIR)
BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN)
include $(INCLUDE_DIR)/host-build.mk
EXTRA_TARGET=$(if $(CONFIG_EXTRA_TARGET_ARCH),--enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-uclibc)
define Build/Configure
$(CP) $(SCRIPT_DIR)/config.{guess,sub} $(PKG_BUILD_DIR)/
(cd $(PKG_BUILD_DIR); \
./configure \
--prefix=$(STAGING_DIR_HOST) \
--build=$(GNU_HOST_NAME) \
--host=$(GNU_HOST_NAME) \
--target=$(REAL_GNU_TARGET_NAME) \
--disable-werror \
--disable-nls \
$(EXTRA_TARGET) \
$(SOFT_FLOAT_CONFIG_OPTION) \
$(call qstrip,$(CONFIG_EXTRA_BINUTILS_CONFIG_OPTIONS)) \
);
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) all
endef
define Build/Install
$(MAKE) -C $(PKG_BUILD_DIR) install
endef
$(eval $(call HostBuild))