diff options
-rw-r--r-- | Config.in | 2 | ||||
-rw-r--r-- | package/base-files/Makefile | 3 | ||||
-rw-r--r-- | rules.mk | 9 | ||||
-rw-r--r-- | toolchain/Config.in | 7 | ||||
-rw-r--r-- | toolchain/Makefile | 15 |
5 files changed, 28 insertions, 8 deletions
@@ -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/package/base-files/Makefile b/package/base-files/Makefile index e41e1fd79..dce07fe50 100644 --- a/package/base-files/Makefile +++ b/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 @@ -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/toolchain/Config.in b/toolchain/Config.in index 37af938b3..b5258ddce 100644 --- a/toolchain/Config.in +++ b/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/toolchain/Makefile b/toolchain/Makefile index 92069acb9..fb54bddf9 100644 --- a/toolchain/Makefile +++ b/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 |