From 44aa03f2f9da7fbe9d18107b0cab73ae9ef6b233 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sat, 14 Nov 2009 17:51:32 +0000 Subject: Add a target (CONFIG_MAKE_CONFIG) that creates an exportable toolchain. The toolchain will zipped and saved under $(TOPDIR)/bin directory. Signed-off-by: Luigi 'Comio' Mantellini SVN-Revision: 18419 --- target/Makefile | 4 +-- target/toolchain/Config.in | 6 ++++ target/toolchain/Makefile | 53 +++++++++++++++++++++++++++++++++ target/toolchain/files/README.TOOLCHAIN | 2 ++ 4 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 target/toolchain/Config.in create mode 100644 target/toolchain/Makefile create mode 100644 target/toolchain/files/README.TOOLCHAIN (limited to 'target') diff --git a/target/Makefile b/target/Makefile index 3d36d26718..ff547f606f 100644 --- a/target/Makefile +++ b/target/Makefile @@ -6,9 +6,9 @@ # curdir:=target -$(curdir)/builddirs:=linux sdk imagebuilder +$(curdir)/builddirs:=linux sdk imagebuilder toolchain $(curdir)/builddirs-default:=linux -$(curdir)/builddirs-install:=linux $(if $(CONFIG_SDK),sdk) $(if $(CONFIG_IB),imagebuilder) +$(curdir)/builddirs-install:=linux $(if $(CONFIG_SDK),sdk) $(if $(CONFIG_IB),imagebuilder) $(if $(CONFIG_MAKE_TOOLCHAIN),toolchain) $(curdir)/imagebuilder/prepare:=$(curdir)/linux/install diff --git a/target/toolchain/Config.in b/target/toolchain/Config.in new file mode 100644 index 0000000000..18c3ab544d --- /dev/null +++ b/target/toolchain/Config.in @@ -0,0 +1,6 @@ +config MAKE_TOOLCHAIN + bool "Build the OpenWrt based Toolchain" + depends !EXTERNAL_TOOLCHAIN + help + This is essentially the toolchain created by OpenWrt. + diff --git a/target/toolchain/Makefile b/target/toolchain/Makefile new file mode 100644 index 0000000000..e9b452ec7f --- /dev/null +++ b/target/toolchain/Makefile @@ -0,0 +1,53 @@ +# +# Copyright (C) 2008-2009 Industrie Dial Face S.p.A. +# Luigi 'Comio' Mantellini +# Copyright (C) 2006-2008 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk +include $(INCLUDE_DIR)/host.mk + +override MAKEFLAGS= + +PKG_OS:=$(shell uname -s) +PKG_CPU:=$(shell uname -m) + +TOOLCHAIN_NAME:=OpenWrt-Toolchain-$(BOARD)-for-$(ARCH)-gcc-$(GCCV)_$(LIBC)-$(LIBCV) +TOOLCHAIN_BUILD_DIR:=$(BUILD_DIR)/$(TOOLCHAIN_NAME) +EXCLUDE_DIRS:=*/ccache \ + */stamp \ + */stampfiles \ + */man \ + */info + +all: compile + +$(BIN_DIR)/$(TOOLCHAIN_NAME).tar.bz2: clean + mkdir -p $(TOOLCHAIN_BUILD_DIR) + $(TAR) -cf - -C $(TOPDIR)/staging_dir/ \ + $(foreach exclude,$(EXCLUDE_DIRS),--exclude="$(exclude)") \ + toolchain-$(ARCH)_gcc-$(GCCV)_$(LIBC)-$(LIBCV) | \ + $(TAR) -xf - -C $(TOOLCHAIN_BUILD_DIR) + + $(CP) $(TOPDIR)/LICENSE ./files/README.TOOLCHAIN \ + $(TOOLCHAIN_BUILD_DIR)/ + + echo REVISION:="$(REVISION)" > $(TOOLCHAIN_BUILD_DIR)/version.mk + find $(TOOLCHAIN_BUILD_DIR) -name .git | $(XARGS) rm -rf + find $(TOOLCHAIN_BUILD_DIR) -name .svn | $(XARGS) rm -rf + find $(TOOLCHAIN_BUILD_DIR) -name CVS | $(XARGS) rm -rf + (cd $(BUILD_DIR); \ + tar cfj $@ $(TOOLCHAIN_NAME); \ + ) + +download: +prepare: +compile: $(BIN_DIR)/$(TOOLCHAIN_NAME).tar.bz2 +install: compile + +clean: + rm -rf $(TOOLCHAIN_BUILD_DIR) $(BIN_DIR)/$(TOOLCHAIN_NAME).tar.bz2 diff --git a/target/toolchain/files/README.TOOLCHAIN b/target/toolchain/files/README.TOOLCHAIN new file mode 100644 index 0000000000..40bfccceb4 --- /dev/null +++ b/target/toolchain/files/README.TOOLCHAIN @@ -0,0 +1,2 @@ +This is the OpenWrt SDK. It contains just the toolchain created +by buildroot. -- cgit v1.2.3