################################################################################
# Embtoolkit
# Copyright(C) 2009-2013 Abdoulaye Walsimou GAYE.
#
# 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 .
#
################################################################################
#
# \file toolchain.kconfig
# \brief toolchain.kconfig of Embtoolkit
# \author Abdoulaye Walsimou GAYE
# \date July 2009
################################################################################
menu "Cross Compiler environment"
choice
prompt "Cross Compiler environment setup"
help
Choose your cross compiler environment setup combination between
clang/llvm and GCC.
config EMBTK_GCC_ONLY_TOOLCHAIN
bool "GCC only"
help
Choose this configuration if you want to use only traditional
GCC cross compiler environment.
config EMBTK_LLVM_ONLY_TOOLCHAIN
bool "clang/llvm only (experimental)"
depends on EMBTK_ARCH_ARM || (EMBTK_ARCH_MIPS && EMBTK_TARGET_ARCH_32BITS)
help
Choose this configuration if you want to use only clang/llvm
cross compiler environment.
With this configuration:
* All userspace packages will use clang as compiler.
* A bare metal gcc compiler will still be built, but you will
be able to only build linux kernel/u-boot etc. with this gcc.
config EMBTK_GCC_AND_LLVM_TOOLCHAIN
bool "clang/llvm and GCC"
depends on EMBTK_ARCH_ARM || (EMBTK_ARCH_MIPS && EMBTK_TARGET_ARCH_32BITS)
help
With this configuration you will have full clang/llvm and GGC
built and available to build your userspace packages.
endchoice
choice
prompt "Default cross compiler to build packages"
depends on EMBTK_GCC_AND_LLVM_TOOLCHAIN
help
Choose which cross compiler environment to use by default to build
packages.
config EMBTK_LLVM_DEFAULT_TOOLCHAIN
bool "clang/llvm"
help
Userspace packages will be built with clang by default.
config EMBTK_GCC_DEFAULT_TOOLCHAIN
bool "GCC"
help
Userspace packages will be built with clang by default.
endchoice
comment "------------------------------------------"
comment "--- GCC versions"
comment "------------------------------------------"
source kconfig/gcc.kconfig
if EMBTK_LLVM_ONLY_TOOLCHAIN || EMBTK_GCC_AND_LLVM_TOOLCHAIN
comment "------------------------------------------"
comment "--- clang/llvm versions"
comment "------------------------------------------"
source kconfig/llvm/clang-llvm.kconfig
source kconfig/llvm/llvm.kconfig
source kconfig/llvm/clang.kconfig
source kconfig/llvm/compiler-rt.kconfig
endif
comment "------------------------------------------"
comment "--- Additional programming languages"
comment "------------------------------------------"
source kconfig/compiler-options.kconfig
endmenu
menu "C library to use"
choice
prompt "Choose which C library to use"
help
Choose here which C library your toolchain will use.
config EMBTK_CLIB_EGLIBC
bool "eglibc"
help
EGLIBC is suitable for source and binary compatibility with
glibc, but care is also taken to satisfy embedded systems
constraints.
see http://www.eglibc.org for more information about eglibc.
config EMBTK_CLIB_UCLIBC
bool "uClibc"
help
uClibc is suitable for high memory constraints and MMU-less
embedded systems. But compatibility with glibc is not guaranted
and even between different uClibc versions.
see http://www.uclibc.org for more information about uclibc.
endchoice
if EMBTK_CLIB_EGLIBC
source "kconfig/eglibc.kconfig"
endif
if EMBTK_CLIB_UCLIBC
source "kconfig/uclibc-kconfigs/embtk-uclibc.kconfig"
endif
endmenu
menu "Binutils"
source "kconfig/binutils.kconfig"
endmenu
menu "Linux kernel headers"
source "kconfig/linux.kconfig"
endmenu
#
# GMP
#
source kconfig/gmp.kconfig
#
# MPFR
#
source kconfig/mpfr.kconfig
#
# MPC
#
source kconfig/mpc.kconfig
#
# ccache
#
source kconfig/ccache.kconfig
#
# Autotools
#
source kconfig/m4.kconfig
source kconfig/libtool.kconfig
source kconfig/autoconf.kconfig
source kconfig/automake.kconfig
# GNU sed
source kconfig/gsed.kconfig
# BSD make
source kconfig/bmake.kconfig
# GNU make
source kconfig/gmake.kconfig
#
# pkgconf
#
source kconfig/pkgconf.kconfig
#
# fakeroot
#
source kconfig/fakeroot.kconfig
#
# gperf for host
#
source kconfig/gperf_host.kconfig
#
# libelf
#
source packages/misc/libelf/libelf.kconfig
#
# Select of optional features
#
config EMBTK_TOOLCHAIN_PREDEP_GPERF_HOST
bool
default y if KEMBTK_EGLIBC_OPTION_EGLIBC_LOCALE_CODE
select EMBTK_HOST_HAVE_GPERF
help
select gperf for host if needed to build the toolchain.