diff options
author | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-01-18 03:08:09 +0000 |
---|---|---|
committer | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-01-18 03:08:09 +0000 |
commit | ae5914acdf354f8f15fe34a8aa942cf2d9450452 (patch) | |
tree | 5882c76d27659554dfaae43b1c02487bdd358478 /toolchain/wrapper | |
parent | be99e06ec864511c5b9973924334d216c7e44c3f (diff) |
[buildroot] use ext-toolchain.sh to integrate external toolchains
Use ext-toolchain.sh to wrap external toolchain commands,
abort build if certain features such as CONFIG_SOFT_FLOAT or
CONFIG_IPV6 are enabled but not supported by the toolchain.
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29766 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'toolchain/wrapper')
-rw-r--r-- | toolchain/wrapper/Makefile | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/toolchain/wrapper/Makefile b/toolchain/wrapper/Makefile new file mode 100644 index 000000000..417ed8cd3 --- /dev/null +++ b/toolchain/wrapper/Makefile @@ -0,0 +1,62 @@ +# +# Copyright (C) 2012 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:=wrapper +PKG_VERSION:=1 + +include $(INCLUDE_DIR)/toolchain-build.mk + + +# 1: args +define toolchain_util +$(strip $(SCRIPT_DIR)/ext-toolchain.sh --toolchain $(CONFIG_TOOLCHAIN_ROOT) \ + --cflags $(CONFIG_TARGET_OPTIMIZATION) \ + --cflags "-muclibc $(if $(CONFIG_SOFT_FLOAT),-msoft-float)" \ + --cflags "$(patsubst ./%,-I$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_INC_PATH)))" \ + --cflags "$(patsubst ./%,-L$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_LIB_PATH)))" \ + $(1)) +endef + +# 1: config symbol +# 2: feature +define toolchain_test +$$(if $$($(1)), \ + @echo -n "Testing external toolchain for $(2) support ... "; \ + if $(call toolchain_util,--test "$(2)"); then \ + echo "ok"; exit 0; \ + else \ + echo "failed"; \ + echo "ERROR: $(1) is enabled but the external toolchain does not support it"; \ + exit 1; \ + fi) +endef + + +define Host/Prepare + $(call toolchain_test,CONFIG_SOFT_FLOAT,softfloat) + $(call toolchain_test,CONFIG_IPV6,ipv6) + $(call toolchain_test,CONFIG_NLS,wchar) + $(call toolchain_test,CONFIG_PACKAGE_libpthread,threads) +endef + +define Host/Configure +endef + +define Host/Compile +endef + +define Host/Install + $(call toolchain_util,--wrap "$(TOOLCHAIN_DIR)/bin") +endef + +define Host/Clean + rm -rf $(TOOLCHAIN_DIR)/bin +endef + +$(eval $(call HostBuild)) |