summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2014-03-15 15:36:31 +0100
committerAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2014-03-15 15:36:31 +0100
commit6ed98f3175529dc2bb7babbe050f5cf0b9100889 (patch)
tree4b82de53163ec68af120559280a30d80c2718fa2 /mk
parent53f2a8edd2172150370f2db9d35375330ddfbb77 (diff)
downloadembtoolkit-6ed98f3175529dc2bb7babbe050f5cf0b9100889.tar.gz
embtoolkit-6ed98f3175529dc2bb7babbe050f5cf0b9100889.tar.bz2
embtoolkit-6ed98f3175529dc2bb7babbe050f5cf0b9100889.tar.xz
Toolchain: move kconfig and makefile in its own dir
Signed-off-by: Abdoulaye Walsimou Gaye <awg@embtoolkit.org>
Diffstat (limited to 'mk')
-rw-r--r--mk/toolchain.mk359
1 files changed, 0 insertions, 359 deletions
diff --git a/mk/toolchain.mk b/mk/toolchain.mk
deleted file mode 100644
index 5cf40fd..0000000
--- a/mk/toolchain.mk
+++ /dev/null
@@ -1,359 +0,0 @@
-################################################################################
-# Copyright(C) 2009-2014 Abdoulaye Walsimou GAYE <awg@embtoolkit.org>.
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-################################################################################
-#
-# \file toolchain.mk
-# \brief toolchain.mk of Embtoolkit
-# \author Abdoulaye Walsimou GAYE <awg@embtoolkit.org>
-# \date May 2009
-################################################################################
-
-TARGETGCC := $(embtk_tools)/bin/$(STRICT_GNU_TARGET)-gcc
-TARGETGCXX := $(embtk_tools)/bin/$(STRICT_GNU_TARGET)-g++
-TARGETCLANG := $(embtk_tools)/bin/$(STRICT_GNU_TARGET)-clang
-TARGETCLANGXX := $(embtk_tools)/bin/$(STRICT_GNU_TARGET)-clang++
-
-#
-# Default compilers to use for packages.
-#
-__TARGETCC-y := $(TARGETGCC)
-__TARGETCXX-y := $(TARGETGCXX)
-
-__TARGETCC-$(embtk_toolchain_use_llvm-y) := $(TARGETCLANG)
-__TARGETCXX-$(embtk_toolchain_use_llvm-y) := $(TARGETCLANGXX)
-
-#
-# FIXME: remove this when clang++ will support exceptions in c++ for arm,
-# as exceptions seem to work for mips.
-#
-ifeq ($(CONFIG_EMBTK_ARCH_MIPS),y)
-__TARGETCXX-$(CONFIG_EMBTK_LLVM_ONLY_TOOLCHAIN) := $(TARGETCLANGXX)
-__TARGETCXX-$(CONFIG_EMBTK_LLVM_DEFAULT_TOOLCHAIN) := $(TARGETCLANGXX)
-else
-__TARGETCXX-$(CONFIG_EMBTK_LLVM_ONLY_TOOLCHAIN) := $(TARGETGCXX)
-__TARGETCXX-$(CONFIG_EMBTK_LLVM_DEFAULT_TOOLCHAIN) := $(TARGETGCXX)
-endif
-
-TARGETCC := $(__TARGETCC-y)
-TARGETCXX := $(__TARGETCXX-y)
-
-#
-# Clang static analyzer tools
-#
-ifeq ($(CONFIG_EMBTK_GCC_ONLY_TOOLCHAIN),)
-TARGETSCANBUILD := $(embtk_tools)/bin/clang-scan-build/scan-build
-TARGETSCANBUILD += --use-analyzer=$(TARGETCLANG)
-TARGETSCANBUILD += --use-cc=$(TARGETCC)
-TARGETSCANBUILD += --use-c++=$(TARGETCXX)
-TARGETSCANVIEW := $(embtk_tools)/bin/clang-scan-view/scan-view
-endif
-
-#
-# 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
-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
-TARGETREADELF := $(embtk_tools)/bin/$(STRICT_GNU_TARGET)-readelf
-
-#
-# 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),-O2)
-__TARGET_CFLAGS += $(if $(CONFIG_EMBTK_TARGET_WITH_DEBUG_DATA),-g)
-
-# cflags for clang
-__clang_cflags := -Qunused-arguments -fcolor-diagnostics
-__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))
-TARGET_CXXFLAGS := $(filter-out $(__clang_cflags),$(TARGET_CFLAGS))
-CROSS_COMPILE := $(embtk_tools)/bin/$(STRICT_GNU_TARGET)-
-
-export TARGETCC TARGETCXX TARGETAR TARGETRANLIB TARGETLD TARGETNM
-export TARGETSTRIP TARGETOBJDUMP TARGETOBJCOPY TARGET_CFLAGS CROSS_COMPILE
-
-ac_cv_func_malloc_0_nonnull=yes
-export ac_cv_func_malloc_0_nonnull
-ac_cv_func_realloc_0_nonnull=yes
-export ac_cv_func_realloc_0_nonnull
-
-PATH := $(embtk_htools)/usr/bin:$(embtk_htools)/usr/sbin:$(PATH)
-export PATH
-
-LIBDIR := $(if $(CONFIG_EMBTK_64BITS_FS_COMPAT32),lib32,lib)
-export LIBDIR
-
-# ccache
-include mk/ccache.mk
-
-# GMP
-include mk/gmp.mk
-
-# MPFR
-include mk/mpfr.mk
-
-# MPC
-include mk/mpc.mk
-
-# binutils
-include mk/binutils.mk
-
-# GCC
-include mk/gcc.mk
-
-# llvm/clang compiler infrastructure
-include mk/llvm/clang.mk
-include mk/llvm/llvm.mk
-include mk/llvm/compiler-rt/compiler-rt.mk
-include mk/libc++/libcxxrt/libcxxrt.mk
-include mk/libc++/libc++/libcxx.mk
-
-# linux kernel headers
-include mk/linux.mk
-
-# toolchain addon: strace
-include mk/strace.mk
-TOOLCHAIN_ADDONS-$(CONFIG_EMBTK_HAVE_STRACE) += strace_install
-
-# toolchain addon: gdb
-include packages/development/gdb/gdb.mk
-TOOLCHAIN_ADDONS-$(CONFIG_EMBTK_HAVE_GDB) += gdb_install
-TOOLCHAIN_ADDONS-$(CONFIG_EMBTK_HAVE_GDBSERVER) += gdbserver_install
-TOOLCHAIN_ADDONS-$(CONFIG_EMBTK_HOST_HAVE_GDB) += gdb_host_install
-
-# Autotools
-include mk/libtool.mk
-include mk/autoconf.mk
-include mk/automake.mk
-include mk/m4.mk
-AUTOTOOLS_INSTALL := m4_install libtool_install autoconf_install
-AUTOTOOLS_INSTALL += automake_install
-
-# GNU sed
-include mk/gsed.mk
-
-# BSD make
-include mk/bmake.mk
-
-# GNU make
-include mk/gmake.mk
-
-# Toolchain internals
-__xtools_compiler-$(CONFIG_EMBTK_LLVM_ONLY_TOOLCHAIN) := clangllvm-$(LLVM_VERSION)
-__xtools_compiler-$(CONFIG_EMBTK_LLVM_DEFAULT_TOOLCHAIN) := clangllvm-$(LLVM_VERSION)
-__xtools_compiler-$(CONFIG_EMBTK_GCC_ONLY_TOOLCHAIN) := gcc-$(GCC_VERSION)
-__xtools_compiler-$(CONFIG_EMBTK_GCC_DEFAULT_TOOLCHAIN) := gcc-$(GCC_VERSION)
-__xtools_bins := $(__xtools_compiler-y)-$(embtk_clib)-$(embtk_clib_version)
-
-TOOLCHAIN_PACKAGE := toolchain-$(HOST_ARCH)-target-$(__xtools_archos)-$(__xtools_bins)-$(__xtools_env).tar.bz2
-TOOLCHAIN_DIR := $(embtk_generated)/toolchain-$(__xtools_archos)-$(__xtools_bins)-$(__xtools_env)
-TOOLCHAIN_NAME := toolchain
-TOOLCHAIN_BUILD_DIR := $(TOOLCHAIN_DIR)/.embtk-toolchain-toolchain
-TOOLCHAIN_SRC_DIR := $(TOOLCHAIN_DIR)/.embtk-toolchain-toolchain
-
-TOOLCHAIN_PRE_DEPS-y := ccache_install $(AUTOTOOLS_INSTALL)
-ifeq ($(embtk_buildhost_os_type),bsd)
-TOOLCHAIN_PRE_DEPS-y += gsed_install gmake_install
-endif
-TOOLCHAIN_PRE_DEPS-$(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
-# FIXME: When libc++ will be used with clang/llvm toolchain, remove this
-__gcc3_toolchain-$(CONFIG_EMBTK_GCC_LANGUAGE_CPP) := gcc3_install
-
-__gcc3_toolchain-$(CONFIG_EMBTK_GCC_LANGUAGE_OBJECTIVEC) := gcc3_install
-__gcc3_toolchain-$(CONFIG_EMBTK_GCC_LANGUAGE_OBJECTIVECPP) := gcc3_install
-
-#
-# Handle clang/llvm/uClibc based toolchain where linuxthread.old is used or non
-# threading is used at all.
-# FIXME: print a warning
-
-ifeq ($(CONFIG_EMBTK_HAVE_COMPILER-RT)$(CONFIG_KEMBTK_UCLIBC_LINUXTHREADS_OLD),yy)
-else ifeq ($(CONFIG_EMBTK_HAVE_COMPILER-RT)$(CONFIG_KEMBTK_UCLIBC_LINUXTHREADS_OLD),yy)
-else
-__llvm_compiler-rt-$(CONFIG_EMBTK_HAVE_COMPILER-RT) := compiler-rt_install
-endif
-
-TOOLCHAIN_DEPS-y := linux_headers_install gmp_host_install
-TOOLCHAIN_DEPS-y += mpfr_host_install mpc_host_install binutils_install
-TOOLCHAIN_DEPS-$(CONFIG_EMBTK_HAVE_LLVM) += llvm_install
-TOOLCHAIN_DEPS-y += gcc1_install
-TOOLCHAIN_DEPS-$(CONFIG_EMBTK_CLIB_UCLIBC) += $(embtk_clib)_headers_install gcc2_install
-TOOLCHAIN_DEPS-y += $(embtk_clib)_install
-TOOLCHAIN_DEPS-y += $(__gcc3_toolchain-y) $(__llvm_compiler-rt-y)
-
-TOOLCHAIN_DEPS := $(TOOLCHAIN_DEPS-y)
-TOOLCHAIN_ADDONS_NAME := toolchain_addons
-TOOLCHAIN_ADDONS_DEPS := $(TOOLCHAIN_ADDONS-y)
-TOOLCHAIN_ADDONS_BUILD_DIR := $(TOOLCHAIN_DIR)/.embtk-toolchain_addons-toolchain_addons
-TOOLCHAIN_ADDONS_SRC_DIR := $(TOOLCHAIN_DIR)/.embtk-toolchain_addons-toolchain_addons
-
--include mk/$(embtk_clib).mk
-
-define __embtk_toolchain_mkinitdirs
- mkdir -p $(embtk_generated)
- mkdir -p $(TOOLCHAIN_DIR)
- mkdir -p $(TOOLCHAIN_ADDONS_BUILD_DIR)
- $(__embtk_mk_initsysrootdirs)
- $(__embtk_mk_inittoolsdirs)
- $(__embtk_mk_inithosttoolsdirs)
- $(__embtk_mk_initpkgdirs)
-endef
-
-define __embtk_toolchain_symlinktools
- cd $(embtk_tools)/bin; \
- tools=$$(ls $(STRICT_GNU_TARGET)-*); \
- toolsnames=$$(echo $$tools | sed 's/$(STRICT_GNU_TARGET)-*//g'); \
- for tool in $$toolsnames; do \
- ln -sf $(STRICT_GNU_TARGET)-$$tool $(GNU_TARGET)-$$tool; \
- done
-endef
-
-define __embtk_toolchain_compress
- tar -cjf $(TOOLCHAIN_PACKAGE) \
- $(notdir $(embtk_sysroot)) $(notdir $(embtk_tools)) && \
- mv $(TOOLCHAIN_PACKAGE) $(TOOLCHAIN_DIR)/$(TOOLCHAIN_PACKAGE)
-endef
-
-define ___embtk_toolchain_decompress
- rm -rf $(embtk_sysroot) $(embtk_tools)
- cd $(EMBTK_ROOT) && tar xjf $(TOOLCHAIN_DIR)/$(TOOLCHAIN_PACKAGE)
- $(__embtk_toolchain_mkinitdirs)
- $(MAKE) $(TOOLCHAIN_PRE_DEPS-y)
-endef
-
-define __embtk_toolchain_decompress
- $(if $(call __embtk_pkg_notdecompressed-y,toolchain),
- $(call embtk_pinfo,"Decompressing cached $(GNU_TARGET)/$(EMBTK_MCU_FLAG) toolchain - please wait...")
- $(___embtk_toolchain_decompress)
- $(call __embtk_setdecompressed_pkg,toolchain))
-endef
-
-__embtk_toolchain_deps-y = $(patsubst %_install,%,$(TOOLCHAIN_DEPS))
-__embtk_toolchain_predeps-y = $(patsubst %_install,%,$(TOOLCHAIN_PRE_DEPS-y))
-__embtk_toolchain_addons-y = $(patsubst %_install,%,$(TOOLCHAIN_ADDONS-y))
-__embtk_toolchain_addons-n = $(patsubst %_install,%,$(TOOLCHAIN_ADDONS-))
-__embtk_toolchain_built_msg = $(call embtk_pinfo,"New $(GNU_TARGET)/$(EMBTK_MCU_FLAG) toolchain successfully built!")
-__embtk_toolchain_building_msg = $(call embtk_pinfo,"Building new $(GNU_TARGET)/$(EMBTK_MCU_FLAG) CORE toolchain - please wait...")
-__embtk_toolsaddons_build_msg = $(call embtk_pinfo,"Building new $(GNU_TARGET)/$(EMBTK_MCU_FLAG) toolchain ADDONS - please wait...")
-
-define __embtk_toolchain_build_core
- $(__embtk_toolchain_building_msg)
- $(call __embtk_unsetinstalled_pkg,toolchain)
- $(call __embtk_unsetdecompressed_pkg,toolchain)
- $(foreach dep,$(__embtk_toolchain_deps-y),
- $(call embtk_cleanup_pkg,$(dep)))
- $(foreach pkg,$(__embtk_rootfs_pkgs-y),
- $(call embtk_cleanup_pkg,$(pkg)))
- $(foreach pkgn,$(__embtk_rootfs_pkgs-n),
- $(call embtk_cleanup_pkg,$(pkgn)))
- rm -rf $(embtk_sysroot) $(embtk_tools)
- $(__embtk_toolchain_mkinitdirs)
- $(foreach pdep,$(__embtk_toolchain_predeps-y),
- $(call embtk_install_xpkg,$(pdep)))
- $(foreach dep,$(__embtk_toolchain_deps-y),
- $(call embtk_install_xpkg,$(dep)))
- $(call __embtk_setinstalled_pkg,toolchain)
- $(call __embtk_pkg_gen_dotkconfig_f,toolchain)
-endef
-
-define __embtk_toolchain_build_addons
- $(__embtk_toolsaddons_build_msg)
- $(call __embtk_unsetinstalled_pkg,toolchain_addons)
- $(call __embtk_unsetdecompressed_pkg,toolchain_addons)
- $(__embtk_toolchain_mkinitdirs)
- $(if $(findstring core,$(1)),,
- $(foreach rootfspkg,$(__embtk_rootfs_pkgs-y),
- $(call embtk_cleanup_pkg,$(rootfspkg)))
- $(foreach rootfsnpkg,$(__embtk_rootfs_pkgs-n),
- $(call embtk_cleanup_pkg,$(rootfsnpkg)))
- $(___embtk_toolchain_decompress))
- $(if $(findstring core,$(1)),
- $(foreach addon,$(__embtk_toolchain_addons-y),
- $(call embtk_cleanup_pkg,$(addon))))
- $(if $(TOOLCHAIN_ADDONS-),
- $(foreach addon,$(__embtk_toolchain_addons-n),
- $(call embtk_cleanup_pkg,$(addon))))
- $(if $(TOOLCHAIN_ADDONS-y),
- $(foreach pdep,$(__embtk_toolchain_predeps-y),
- $(call embtk_install_xpkg,$(pdep)))
- $(foreach addon,$(__embtk_toolchain_addons-y),
- $(call embtk_install_xpkg,$(addon))))
- $(call __embtk_setinstalled_pkg,toolchain_addons)
- $(if $(TOOLCHAIN_ADDONS-y),
- $(call __embtk_pkg_gen_dotkconfig_f,toolchain_addons),
- $(call __embtk_pkg_setkconfigured,toolchain_addons))
-endef
-
-define __embtk_toolchain_build
- $(if $(findstring core,$(1)),$(__embtk_toolchain_build_core))
- $(if $(findstring addons,$(1)),$(__embtk_toolchain_build_addons))
- $(if $(findstring core,$(1))$(findstring addons,$(1)),
- $(__embtk_toolchain_symlinktools)
- $(call embtk_pinfo,"Packaging new $(GNU_TARGET)/$(EMBTK_MCU_FLAG) toolchain - please wait...")
- $(__embtk_toolchain_compress)
- $(call __embtk_setdecompressed_pkg,toolchain)
- $(call __embtk_setdecompressed_pkg,toolchain_addons)
- $(__embtk_toolchain_built_msg),
- $(__embtk_toolchain_decompress))
-endef
-
-define __embtk_toolchain_runrecipe-y
- $(or $(call __embtk_pkg_runrecipe-y,toolchain),$(if $(wildcard $(TOOLCHAIN_DIR)/$(TOOLCHAIN_PACKAGE)),,y))
-endef
-
-define __embtk_toolchain_addons_runrecipe-y
- $(or $(call __embtk_pkg_runrecipe-y,toolchain_addons),$(if $(wildcard $(TOOLCHAIN_DIR)/$(TOOLCHAIN_PACKAGE)),,y))
-endef
-
-__embtk_toolchain_buildargs := $(if $(strip $(__embtk_toolchain_runrecipe-y)),core-addons)
-__embtk_toolchain_buildargs +=$(if $(strip $(__embtk_toolchain_addons_runrecipe-y)),addons)
-
-toolchain_install:
- $(Q)$(call __embtk_toolchain_build,$(__embtk_toolchain_buildargs))
-
-define __embtk_toolchain_clean
- $(call __embtk_unsetdecompressed_pkg,toolchain)
-endef
-
-toolchain_clean:
- $(Q)$(__embtk_toolchain_clean)
-
-pembtk_toolchain_mkinitdirs:
- $(call __embtk_toolchain_mkinitdirs)
-
-pembtk_toolchain_predeps_install:
- $(call __embtk_toolchain_mkinitdirs)
- $(MAKE) $(TOOLCHAIN_PRE_DEPS-y)
-
-# Download target for offline build
-TOOLCHAIN_ALL_DEPS := $(TOOLCHAIN_PRE_DEPS-y) $(TOOLCHAIN_DEPS)
-TOOLCHAIN_ALL_DEPS += $(TOOLCHAIN_ADDONS_DEPS)
-
-packages_fetch:: $(patsubst %_install,download_%,$(TOOLCHAIN_ALL_DEPS))