diff options
author | Abdoulaye Walsimou Gaye <awg@embtoolkit.org> | 2012-12-15 14:38:41 +0100 |
---|---|---|
committer | Abdoulaye Walsimou Gaye <awg@embtoolkit.org> | 2012-12-15 14:38:41 +0100 |
commit | afeb13da5a449d9f1d6d4f08fafe258dd9cac889 (patch) | |
tree | ddff4bf0672b50aeee263c3562c15616e9ca7a13 /mk | |
parent | 33f62c67ca267d94c421d03183122549edba1fa0 (diff) | |
download | embtoolkit-afeb13da5a449d9f1d6d4f08fafe258dd9cac889.tar.gz embtoolkit-afeb13da5a449d9f1d6d4f08fafe258dd9cac889.tar.bz2 embtoolkit-afeb13da5a449d9f1d6d4f08fafe258dd9cac889.tar.xz |
Toolchain: build components based use of llvm/clang
Signed-off-by: Abdoulaye Walsimou Gaye <awg@embtoolkit.org>
Diffstat (limited to 'mk')
-rw-r--r-- | mk/toolchain.mk | 46 |
1 files changed, 42 insertions, 4 deletions
diff --git a/mk/toolchain.mk b/mk/toolchain.mk index a8061ed..d1534d4 100644 --- a/mk/toolchain.mk +++ b/mk/toolchain.mk @@ -27,8 +27,25 @@ TARGETGCXX := $(embtk_tools)/bin/$(STRICT_GNU_TARGET)-g++ TARGETCLANG := $(embtk_tools)/bin/$(STRICT_GNU_TARGET)-clang TARGETCLANGXX := $(embtk_tools)/bin/$(STRICT_GNU_TARGET)-clang++ -TARGETCC := $(TARGETGCC) -TARGETCXX := $(TARGETGCXX) +# +# Default compilers to use for packages. +# +__TARGETCC-$(CONFIG_EMBTK_GCC_ONLY_TOOLCHAIN) := $(TARGETGCC) +__TARGETCC-$(CONFIG_EMBTK_GCC_DEFAULT_TOOLCHAIN) := $(TARGETGCC) +__TARGETCXX-$(CONFIG_EMBTK_GCC_ONLY_TOOLCHAIN) := $(TARGETGCXX) +__TARGETCXX-$(CONFIG_EMBTK_GCC_DEFAULT_TOOLCHAIN) := $(TARGETGCXX) + +__TARGETCC-$(CONFIG_EMBTK_LLVM_ONLY_TOOLCHAIN) := $(TARGETCLANG) +__TARGETCC-$(CONFIG_EMBTK_LLVM_DEFAULT_TOOLCHAIN) := $(TARGETCLANG) +__TARGETCXX-$(CONFIG_EMBTK_LLVM_ONLY_TOOLCHAIN) := $(TARGETCLANGXX) +__TARGETCXX-$(CONFIG_EMBTK_LLVM_DEFAULT_TOOLCHAIN) := $(TARGETCLANGXX) + +TARGETCC := $(__TARGETCC-y) +TARGETCXX := $(__TARGETCXX-y) + +# +# Some binutils components. +# TARGETAR := $(embtk_tools)/bin/$(STRICT_GNU_TARGET)-ar TARGETRANLIB := $(embtk_tools)/bin/$(STRICT_GNU_TARGET)-ranlib TARGETLD := $(embtk_tools)/bin/$(STRICT_GNU_TARGET)-ld @@ -36,12 +53,24 @@ TARGETNM := $(embtk_tools)/bin/$(STRICT_GNU_TARGET)-nm TARGETSTRIP := $(embtk_tools)/bin/$(STRICT_GNU_TARGET)-strip TARGETOBJDUMP := $(embtk_tools)/bin/$(STRICT_GNU_TARGET)-objdump TARGETOBJCOPY := $(embtk_tools)/bin/$(STRICT_GNU_TARGET)-objcopy + +# +# TARGET cflags +# __kconfig-cflags := $(strip $(CONFIG_EMBTK_TARGET_COMPILER_CFLAGS)) __TARGET_CFLAGS := $(subst ",,$(__kconfig-cflags)) __TARGET_CFLAGS += $(if $(CONFIG_EMBTK_TARGET_NONE_OPTIMIZED),-O0) __TARGET_CFLAGS += $(if $(CONFIG_EMBTK_TARGET_SIZE_OPTIMIZED),-Os) __TARGET_CFLAGS += $(if $(CONFIG_EMBTK_TARGET_SPEED_OPTIMIZED),-O3) __TARGET_CFLAGS += $(if $(CONFIG_EMBTK_TARGET_WITH_DEBUG_DATA),-g) + +# cflags for clang +__clang_cflags := $(EMBTK_TARGET_MCPU) +__clang_cflags += $(if $(CONFIG_EMBTK_SOFTFLOAT),-mfloat-abi=soft) +__clang_cflags += $(if $(CONFIG_EMBTK_HARDFLOAT),-mfloat-abi=hard) +__TARGET_CFLAGS += $(if $(CONFIG_EMBTK_LLVM_ONLY_TOOLCHAIN),$(__clang_cflags)) +__TARGET_CFLAGS += $(if $(CONFIG_EMBTK_LLVM_DEFAULT_TOOLCHAIN),$(__clang_cflags)) + TARGET_CFLAGS := $(strip $(__TARGET_CFLAGS)) CROSS_COMPILE := $(embtk_tools)/bin/$(STRICT_GNU_TARGET)- @@ -114,11 +143,20 @@ TOOLCHAIN_PRE_DEPS-y := ccache_install $(AUTOTOOLS_INSTALL) TOOLCHAIN_PRE_DEPS-y += $(if $(CONFIG_EMBTK_TOOLCHAIN_PREDEP_GPERF_HOST), \ gperf_host_install) +__gcc3_toolchain-$(CONFIG_EMBTK_GCC_ONLY_TOOLCHAIN) := gcc3_install +__gcc3_toolchain-$(CONFIG_EMBTK_GCC_DEFAULT_TOOLCHAIN) := gcc3_install + +__llvm_toolchain-$(CONFIG_EMBTK_LLVM_ONLY_TOOLCHAIN) := clang_install +__llvm_toolchain-$(CONFIG_EMBTK_LLVM_ONLY_TOOLCHAIN) += llvm_install +__llvm_toolchain-$(CONFIG_EMBTK_LLVM_DEFAULT_TOOLCHAIN) := clang_install +__llvm_toolchain-$(CONFIG_EMBTK_LLVM_DEFAULT_TOOLCHAIN) += llvm_install + TOOLCHAIN_DEPS := linux_headers_install gmp_host_install TOOLCHAIN_DEPS += mpfr_host_install mpc_host_install binutils_install -TOOLCHAIN_DEPS += clang_install llvm_install +TOOLCHAIN_DEPS += $(__llvm_toolchain-y) TOOLCHAIN_DEPS += gcc1_install $(embtk_clib)_headers_install -TOOLCHAIN_DEPS += gcc2_install $(embtk_clib)_install gcc3_install +TOOLCHAIN_DEPS += gcc2_install $(embtk_clib)_install +TOOLCHAIN_DEPS += $(__gcc3_toolchain-y) TOOLCHAIN_ADDONS_NAME := toolchain-addons TOOLCHAIN_ADDONS_DEPS := $(TOOLCHAIN_ADDONS-y) |