Commit 02f71aab authored by "Steven J. Hill"'s avatar "Steven J. Hill"
Browse files

Support building using an external toolchain. Questions to the mailing list...

Support building using an external toolchain. Questions to the mailing list and all other comments to <biteme@devnull.com>.
parent 4cdc4206
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -44,7 +44,11 @@ ifeq ($(strip $(BR2_HAVE_DOT_CONFIG)),y)
# along with the packages to build for the target.
#
##############################################################
ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
TARGETS:=uclibc-configured binutils gcc uclibc-target-utils
else
TARGETS:=uclibc
endif
include toolchain/Makefile.in
include package/Makefile.in

+20 −1
Original line number Diff line number Diff line
@@ -19,7 +19,12 @@ TAR_OPTIONS=$(subst ",, $(BR2_TAR_OPTIONS)) -xf
#")


ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING)
else
TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) -I$(STAGING_DIR)/include -I$(TOOLCHAIN_EXTERNAL_PATH)/$(TOOLCHAIN_EXTERNAL_PREFIX)/include
TARGET_LDFLAGS=-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib
endif
HOSTCC:=gcc
HOSTCXX:=g++

@@ -44,13 +49,14 @@ endif
#PATCH_DIR=$(BASE_DIR)/sources/patches
BUILD_DIR:=$(BASE_DIR)/$(TOPDIR_PREFIX)build_$(ARCH)$(ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)
TARGET_DIR:=$(BUILD_DIR)/root
TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(ARCH)$(ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)

GNU_TARGET_SUFFIX:=-$(strip $(subst ",, $(BR2_GNU_TARGET_SUFFIX)))
#"))

STAGING_DIR:=$(strip $(subst ",, $(BR2_STAGING_DIR)))
#"))
ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(ARCH)$(ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)

# Quotes are needed for spaces et al in path components.
TARGET_PATH="$(STAGING_DIR)/bin:$(TOOL_BUILD_DIR)/bin:$(PATH)"
@@ -59,6 +65,19 @@ REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)$(GNU_TARGET_SUFFIX)
GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux
KERNEL_CROSS=$(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)$(GNU_TARGET_SUFFIX)-
TARGET_CROSS=$(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)$(GNU_TARGET_SUFFIX)-
else
TOOLCHAIN_EXTERNAL_PREFIX:=$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_PREFIX)))
#"))
TOOLCHAIN_EXTERNAL_PATH:=$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_PATH)))
#"))
TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(TOOLCHAIN_EXTERNAL_PREFIX)
TARGET_PATH="$(STAGING_DIR)/bin:$(TOOL_BUILD_DIR)/bin:$(TOOLCHAIN_EXTERNAL_PATH)/bin:$(PATH)"
IMAGE:=$(BASE_DIR)/rootfs.$(TOOLCHAIN_EXTERNAL_PREFIX)
REAL_GNU_TARGET_NAME=$(TOOLCHAIN_EXTERNAL_PREFIX)
GNU_TARGET_NAME=$(TOOLCHAIN_EXTERNAL_PREFIX)
KERNEL_CROSS=$(TOOLCHAIN_EXTERNAL_PATH)/bin/$(TOOLCHAIN_EXTERNAL_PREFIX)-
TARGET_CROSS=$(TOOLCHAIN_EXTERNAL_PATH)/bin/$(TOOLCHAIN_EXTERNAL_PREFIX)-
endif
TARGET_CC=$(TARGET_CROSS)gcc
TARGET_CXX=$(TARGET_CROSS)g++
TARGET_RANLIB=$(TARGET_CROSS)ranlib
+3 −0
Original line number Diff line number Diff line
@@ -7,4 +7,7 @@ include target/powerpc/Makefile.in
# and finally build the filesystems/tarballs
include target/*/*.mk
# kernel rules
ifeq ($(BR2_PACKAGE_LINUX),y)
TARGETS+=linux26
endif
include target/linux*.mk
+0 −3
Original line number Diff line number Diff line
TARGET_DEVICE_DEPMOD:=target/device/x86/depmod.pl

-include target/device/*/Makefile.in
ifeq ($(BR2_PACKAGE_LINUX),y)
TARGETS+=linux26
endif
+14 −61
Original line number Diff line number Diff line
#

menu "Toolchain Options"


source "toolchain/kernel-headers/Config.in"
source "toolchain/uClibc/Config.in"
source "toolchain/binutils/Config.in"
source "toolchain/gcc/Config.in"
source "toolchain/ccache/Config.in"
source "toolchain/gdb/Config.in"
source "toolchain/elf2flt/Config.in"
source "toolchain/mklibs/Config.in"

comment "Common Toolchain Options"

source "toolchain/sstrip/Config.in"

config BR2_ENABLE_MULTILIB
	bool "Enable multilib support?"
	default n
	help
	    If you want multilib enabled, enable this...

config BR2_LARGEFILE
	bool "Enable large file (files > 2 GB) support?"
	depends on !BR2_cris
	default y
	help
	    Enable large file (files > 2 GB) support

config BR2_SOFT_FLOAT
	bool "Use software floating point by default"
	default n
	depends on BR2_arm || BR2_armeb || BR2_mips || BR2_mipsel || BR2_powerpc
	help
	  If your target CPU does not have a Floating Point Unit (FPU) or a
	  kernel FPU emulator, but you still wish to support floating point
	  functions, then everything will need to be compiled with soft
	  floating point support (-msoft-float).

	  Most people will answer N.

#config BR2_SOFT_FLOAT_FP
#	bool "Use softfp"
#	default n

config BR2_TARGET_OPTIMIZATION
	string "Target Optimizations"
	default "-Os -pipe"
	help
	  Optimizations to use when building for the target host.

config BR2_CROSS_TOOLCHAIN_TARGET_UTILS
	bool "Include target utils in cross toolchain"
	default y
choice
	prompt "Toolchain type"
	default BR2_TOOLCHAIN_BUILDROOT
	help
	  When using buildroot to build a deployable cross toolchain,
	  it is handy to include certain target apps with that toolchain
	  as a convenience.
	  Examples include ldd, gdbserver, and strace.
	  Select whether to use the toolchain built by the buildroot
	  system or an external pre-built toolchain.

	  Answer Y if you want these apps (if built) copied into the
	  cross toolchain dir under <arch>-linux-uclibc/target_utils/.
config BR2_TOOLCHAIN_BUILDROOT
	bool
	prompt "Buildroot toolchain"

endmenu
config BR2_TOOLCHAIN_EXTERNAL
	bool
	prompt " External toolchain"
endchoice

source "toolchain/Config.in.2"
source "toolchain/external-toolchain/Config.in"
Loading