summaryrefslogtreecommitdiff
path: root/kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'kconfig')
-rw-r--r--kconfig/llvm/clang.kconfig77
-rw-r--r--kconfig/llvm/compiler-rt.kconfig77
-rw-r--r--kconfig/llvm/llvm.kconfig76
-rw-r--r--kconfig/toolchain.kconfig70
4 files changed, 297 insertions, 3 deletions
diff --git a/kconfig/llvm/clang.kconfig b/kconfig/llvm/clang.kconfig
new file mode 100644
index 0000000..4525ac2
--- /dev/null
+++ b/kconfig/llvm/clang.kconfig
@@ -0,0 +1,77 @@
+################################################################################
+# Embtoolkit
+# Copyright(C) 2012 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 clang.kconfig
+# \brief clang.kconfig of Embtoolkit
+# \author Abdoulaye Walsimou GAYE <awg@embtoolkit.org>
+# \date October 2012
+################################################################################
+
+config EMTK_HAVE_CLANG
+ bool
+ default y
+
+#
+# clang version
+#
+choice
+ prompt "Version of clang you wish"
+ help
+ Version of clang you wish
+
+ config EMBTK_CLANG_VERSION_GIT
+ bool "Use clang git repository"
+ help
+ Answer Y here if you want to build your toolchain based on
+ clang sources from its GIT repository.
+endchoice
+
+#
+# GIT repository options
+#
+config EMBTK_CLANG_GIT_BRANCH
+ string "Branch to use"
+ default "master"
+ depends on EMBTK_CLANG_VERSION_GIT
+ help
+ The branch of the git repository to use, the default is master.
+
+config EMBTK_CLANG_GIT_REVISION
+ string "Checkout a specific revision instead of the latest"
+ depends on EMBTK_CLANG_VERSION_GIT
+ help
+ Chechout a specific revision instead of the latest.
+
+config EMBTK_CLANG_REFSPEC
+ string
+ default "toolchain"
+
+#
+# Versions strings for tarball packages.
+#
+config EMBTK_CLANG_VERSION_STRING
+ string
+ default "git" if EMBTK_CLANG_VERSION_GIT
+
+
+config EMBTK_CLANG_NEED_PATCH
+ bool
+config EMBTK_CLANG_NEED_AUTORECONF
+ bool
+
diff --git a/kconfig/llvm/compiler-rt.kconfig b/kconfig/llvm/compiler-rt.kconfig
new file mode 100644
index 0000000..4823786
--- /dev/null
+++ b/kconfig/llvm/compiler-rt.kconfig
@@ -0,0 +1,77 @@
+################################################################################
+# Embtoolkit
+# Copyright(C) 2012 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 compiler-rt.kconfig
+# \brief compiler-rt.kconfig of Embtoolkit
+# \author Abdoulaye Walsimou GAYE <awg@embtoolkit.org>
+# \date October 2012
+################################################################################
+
+config EMTK_HAVE_COMPILER-RT
+ bool
+ default y
+
+#
+# compiler-rt version
+#
+choice
+ prompt "Version of compiler-rt you wish"
+ help
+ Version of compiler-rt you wish
+
+ config EMBTK_COMPILER-RT_VERSION_GIT
+ bool "Use compiler-rt git repository"
+ help
+ Answer Y here if you want to build your toolchain based on
+ compiler-rt sources from its GIT repository.
+endchoice
+
+#
+# GIT repository options
+#
+config EMBTK_COMPILER-RT_GIT_BRANCH
+ string "Branch to use"
+ default "master"
+ depends on EMBTK_COMPILER-RT_VERSION_GIT
+ help
+ The branch of the git repository to use, the default is master.
+
+config EMBTK_COMPILER-RT_GIT_REVISION
+ string "Checkout a specific revision instead of the latest"
+ depends on EMBTK_COMPILER-RT_VERSION_GIT
+ help
+ Chechout a specific revision instead of the latest.
+
+config EMBTK_COMPILER-RT_REFSPEC
+ string
+ default "toolchain"
+
+#
+# Versions strings for tarball packages.
+#
+config EMBTK_COMPILER-RT_VERSION_STRING
+ string
+ default "git" if EMBTK_COMPILER-RT_VERSION_GIT
+
+
+config EMBTK_COMPILER-RT_NEED_PATCH
+ bool
+config EMBTK_COMPILER-RT_NEED_AUTORECONF
+ bool
+
diff --git a/kconfig/llvm/llvm.kconfig b/kconfig/llvm/llvm.kconfig
new file mode 100644
index 0000000..c85b1a8
--- /dev/null
+++ b/kconfig/llvm/llvm.kconfig
@@ -0,0 +1,76 @@
+################################################################################
+# Embtoolkit
+# Copyright(C) 2012 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 llvm.kconfig
+# \brief llvm.kconfig of Embtoolkit
+# \author Abdoulaye Walsimou GAYE <awg@embtoolkit.org>
+# \date October 2012
+################################################################################
+
+config EMTK_HAVE_LLVM
+ bool
+ default y
+
+#
+# llvm version
+#
+choice
+ prompt "Version of llvm you wish"
+ help
+ Version of llvm you wish
+
+ config EMBTK_LLVM_VERSION_GIT
+ bool "Use llvm git repository"
+ help
+ Answer Y here if you want to build your toolchain based on
+ llvm sources from its GIT repository.
+endchoice
+
+#
+# GIT repository options
+#
+config EMBTK_LLVM_GIT_BRANCH
+ string "Branch to use"
+ default "master"
+ depends on EMBTK_LLVM_VERSION_GIT
+ help
+ The branch of the git repository to use, the default is master.
+
+config EMBTK_LLVM_GIT_REVISION
+ string "Checkout a specific revision instead of the latest"
+ depends on EMBTK_LLVM_VERSION_GIT
+ help
+ Chechout a specific revision instead of the latest.
+
+config EMBTK_LLVM_REFSPEC
+ string
+ default "toolchain"
+
+#
+# Versions strings for tarball packages.
+#
+config EMBTK_LLVM_VERSION_STRING
+ string
+ default "git" if EMBTK_LLVM_VERSION_GIT
+
+
+config EMBTK_LLVM_NEED_PATCH
+ bool
+config EMBTK_LLVM_NEED_AUTORECONF
+ bool
diff --git a/kconfig/toolchain.kconfig b/kconfig/toolchain.kconfig
index bd5029c..2c20c05 100644
--- a/kconfig/toolchain.kconfig
+++ b/kconfig/toolchain.kconfig
@@ -1,6 +1,6 @@
################################################################################
# Embtoolkit
-# Copyright(C) 2009-2011 Abdoulaye Walsimou GAYE.
+# Copyright(C) 2009-2012 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
@@ -42,6 +42,8 @@ choice
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
@@ -55,8 +57,70 @@ endif
endmenu
-menu "GCC compiler"
-source "kconfig/gcc.kconfig"
+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)"
+ 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"
+ 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/llvm.kconfig
+source kconfig/llvm/clang.kconfig
+source kconfig/llvm/compiler-rt.kconfig
+endif
+
endmenu
menu "Binutils"