From 149935592c2d0122ff8f510236c69b72528b8403 Mon Sep 17 00:00:00 2001 From: Mike Baker Date: Thu, 10 Aug 2006 19:25:26 +0000 Subject: [PATCH] add secret option to use host's toolchain when native compiling SVN-Revision: 4553 --- openwrt/Config.in | 2 +- openwrt/package/base-files/Makefile | 3 +++ openwrt/rules.mk | 9 ++++++--- openwrt/toolchain/Config.in | 7 +++++++ openwrt/toolchain/Makefile | 15 +++++++++++---- 5 files changed, 28 insertions(+), 8 deletions(-) diff --git a/openwrt/Config.in b/openwrt/Config.in index caa79447993..d1d66ff0db2 100644 --- a/openwrt/Config.in +++ b/openwrt/Config.in @@ -16,7 +16,7 @@ menuconfig DEVEL bool "Advanced configuration options (for developers)" default n select BUILDOPTS - select TOOLCHAINOPTS + select TOOLCHAINOPTS if !NATIVE_TOOLCHAIN config BROKEN bool "Show broken platforms / packages" if DEVEL diff --git a/openwrt/package/base-files/Makefile b/openwrt/package/base-files/Makefile index e41e1fd7987..dce07fe5074 100644 --- a/openwrt/package/base-files/Makefile +++ b/openwrt/package/base-files/Makefile @@ -86,6 +86,7 @@ define Package/libgcc SECTION:=libs CATEGORY:=Libraries DEFAULT:=y + DEPENDS:=@!NATIVE_TOOLCHAIN TITLE:=GCC support library VERSION:=$(LIBGCC_VERSION)-$(PKG_RELEASE) DESCRIPTION:=$(TITLE) @@ -94,6 +95,7 @@ endef define Package/libpthread $(call Package/base-files$(TARGET)) DEFAULT:=n + DEPENDS:=@!NATIVE_TOOLCHAIN VERSION:=$(UCLIBC_VERSION)-$(PKG_RELEASE) TITLE:=POSIX thread library DESCRIPTION:=POSIX thread library @@ -103,6 +105,7 @@ endef define Package/uclibc $(call Package/base-files$(TARGET)) VERSION:=$(UCLIBC_VERSION)-$(PKG_RELEASE) + DEPENDS:=@!NATIVE_TOOLCHAIN TITLE:=C library DESCRIPTION:=C library for embedded systems endef diff --git a/openwrt/rules.mk b/openwrt/rules.mk index a8d3647b6dd..3645b064f7b 100644 --- a/openwrt/rules.mk +++ b/openwrt/rules.mk @@ -33,9 +33,12 @@ STAMP_DIR:=$(BUILD_DIR)/stamp TARGET_DIR:=$(BUILD_DIR)/root IPKG_STATE_DIR:=$(TARGET_DIR)/usr/lib/ipkg -REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux-uclibc -GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux -TARGET_CROSS:=$(OPTIMIZE_FOR_CPU)-linux-uclibc- +ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) + REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux-uclibc + GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux + TARGET_CROSS:=$(OPTIMIZE_FOR_CPU)-linux-uclibc- +endif + IMAGE:=$(BUILD_DIR)/root_fs_$(ARCH) TARGET_PATH:=$(STAGING_DIR)/usr/bin:$(STAGING_DIR)/bin:$(PATH) diff --git a/openwrt/toolchain/Config.in b/openwrt/toolchain/Config.in index 37af938b3b7..b5258ddce98 100644 --- a/openwrt/toolchain/Config.in +++ b/openwrt/toolchain/Config.in @@ -1,7 +1,14 @@ # +config NATIVE_TOOLCHAIN + bool + prompt "Use host's toolchain" if DEVEL && BROKEN + default n + help + If enabled, OpenWrt will compile using your existing toolchain instead of compiling one menuconfig TOOLCHAINOPTS bool "Toolchain Options" if DEVEL + depends !NATIVE_TOOLCHAIN source "toolchain/binutils/Config.in" source "toolchain/gcc/Config.in" diff --git a/openwrt/toolchain/Makefile b/openwrt/toolchain/Makefile index 92069acb985..fb54bddf908 100644 --- a/openwrt/toolchain/Makefile +++ b/openwrt/toolchain/Makefile @@ -7,7 +7,12 @@ # Main makefile for the toolchain # include $(TOPDIR)/rules.mk -TARGETS-y:=sed kernel-headers sstrip binutils gcc uClibc ipkg-utils libnotimpl ext2fs squashfs jffs2 lzma +TARGETS-y:=sed kernel-headers sstrip +ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) + TARGETS-y+=binutils gcc uClibc +endif +TARGETS-y+=ipkg-utils libnotimpl ext2fs squashfs jffs2 lzma + TARGETS-$(CONFIG_GDB) += gdb TARGETS_DOWNLOAD:=$(patsubst %,%-download,$(TARGETS-y)) @@ -21,9 +26,11 @@ clean: $(TARGETS_CLEAN) kernel-headers-prepare: sed-install uClibc-prepare: kernel-headers-prepare sstrip-install -binutils-prepare: uClibc-prepare -gcc-prepare: binutils-install -uClibc-compile: gcc-compile +ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) + binutils-prepare: uClibc-prepare + gcc-prepare: binutils-install + uClibc-compile: gcc-compile +endif gcc-install: uClibc-install squashfs-compile: lzma-install