summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/cc.in2
-rw-r--r--config/config.in1
-rw-r--r--config/global.in14
-rw-r--r--config/target.in132
-rw-r--r--config/toolchain.in164
5 files changed, 182 insertions, 131 deletions
diff --git a/config/cc.in b/config/cc.in
index 18eb559..1412a0f 100644
--- a/config/cc.in
+++ b/config/cc.in
@@ -38,6 +38,7 @@ config CC_CORE_GCC
#config CC_CORE_TCC
# bool
# prompt "tcc (EXPERIMENTAL)"
+# depends on EXPERIMENTAL
endchoice
@@ -78,6 +79,7 @@ config CC_GCC
# bool
# prompt "tcc (EXPERIMENTAL)"
# select CC_LANG_C
+# depends on EXPERIMENTAL
endchoice
diff --git a/config/config.in b/config/config.in
index 76bc8ca..c858b3b 100644
--- a/config/config.in
+++ b/config/config.in
@@ -1,5 +1,6 @@
source config/global.in
source config/target.in
+source config/toolchain.in
source config/kernel.in
source config/binutils.in
source config/cc.in
diff --git a/config/global.in b/config/global.in
index 767ce3a..fe55589 100644
--- a/config/global.in
+++ b/config/global.in
@@ -2,6 +2,20 @@
menu "Paths and misc options"
+config EXPERIMENTAL
+ bool
+ prompt "Try features marked as EXPERIMENTAL"
+ default n
+ help
+ If you set this to Y, then you will be able to try very experimental
+ features.
+
+ Experimental features can be one of:
+ - working, in which case you should tell me it is!
+ - buggy, in which case you could try patching and send me the result
+ - unfinished, in which case you could try hacking it and send me the result
+ - non-existant, in which case you could also try hacking it in and send the result
+
config PARALLEL_JOBS
int
prompt "Number of parallel jobs"
diff --git a/config/target.in b/config/target.in
index 1c87ff1..27ddc83 100644
--- a/config/target.in
+++ b/config/target.in
@@ -172,7 +172,7 @@ config ARCH_FLOAT_SW_LIBFLOAT
config TARGET_CFLAGS
string
- prompt "Default target CFLAGS"
+ prompt "Target CFLAGS"
default ""
help
Used to add specific options when compiling libraries of the toolchain,
@@ -183,134 +183,4 @@ config TARGET_CFLAGS
Leave blank if you don't know better.
-comment "Toolchain options"
-
-config USE_SYSROOT
- bool
- prompt "Use sysroot'ed toolchain"
- default y
- help
- Use the 'shinny new' sysroot feature of gcc: libraries split between
- prefix/target/sys-root/lib and prefix/target/sys-root/usr/lib
-
- You definitely want to say 'Y' here. Yes you do. I know you do. Say 'Y'.
-
-config SHARED_LIBS
- bool
- prompt "Build shared libraries"
- default y
- help
- Say 'y' here, unless you don't want shared libraries.
-
- You might not want shared librries if you're building for a target that
- don't support it (maybe some nommu targets, for example, or bare metal).
-
-config TARGET_MULTILIB
- bool
-# prompt "Enable 'multilib' support (EXPERIMENTAL)"
- default n
- help
- Enable the so-called 'multilib' support.
-
- With the same toolchain, and on some architectures, you will be able to
- build big and little endian binaries, soft- and hard-float, etc...
-
- See the gcc configure manual at http://gcc.gnu.org/install/configure.html
- to see what multilib your target supports.
-
- It's preferable for now to build two (or more) toolchains, one for each
- configuration you need to support (eg. one for thumb and one for ARM,
- etc...). You can use the vendor string to diferentiate those toolchains.
-
-config TARGET_VENDOR
- string
- prompt "Vendor string"
- default "unknown"
- help
- Vendor part of the machine triplet.
-
- A triplet is of the form arch-vendor-kernel-system.
- You can set the second part, vendor, to whatever you see fit.
- Use a single word, or use underscores "_" to separate words.
-
- Keep the default (unkown) if you don't know better.
-
-config TARGET_ALIAS
- string
- prompt "Target alias"
- default ""
- help
- Normaly, you'd call your toolchain component (especially gcc) by
- prefixing the target triplet followed by a dash and the component name
- (eg. armeb-unknown-linux-uclibc-gcc).
-
- You can enter a shortcut here. This string will be used to create
- symbolic links to the toolchain tools (eg. if you enter "foo-bar" here,
- then gcc for your toolchain will also be available as "foo-bar-gcc" along
- with the original name).
-
- You shouldn't need to enter anything here, unless you plan to manually
- call the tools (autotools-based ./configure will use the standard name).
-
-config ARCH
- string
- default "arm" if ARCH_ARM
- default "mips" if ARCH_MIPS
- default "x86" if ARCH_x86
- default "x86_64" if ARCH_x86_64
-
-config BUILD
- string
- prompt "Build system triplet"
- default ""
- help
- Canonical name of the machine building the toolchain.
- You should leave empty, unless you really now what you're doing.
-
-config CC_NATIVE
- string
- prompt "Native gcc"
- default "gcc"
- help
- The native C compiler.
-
- You can set this to an alternative compiler if you have more than one
- installed (eg. gcc is gcc-4.1.1 and you want to use gcc-3.4.6).
-
- You can leave this empty as well, in which case gcc will be used.
-
-config CANADIAN
- bool
- prompt "Canadian build (EXPERIMENTAL)"
- default n
- help
- A canadian build allows to build a compiler on a first machine
- (build system), that will run on second machine (host system),
- targetting a third machine (target system).
-
- An example where you'd want a candian cross-compiler is to create
- a native compiler for your target. In this case host and target
- are the same.
-
-config HOST
- string
- prompt "Host system triplet"
- default ""
- depends on CANADIAN
- help
- Canonical name of the machine serving as host.
-
-config HOST_CC
- string
- prompt "Host system compiler"
- default "${CT_HOST}-"
- depends on CANADIAN
- help
- C compiler targeting the host system.
- If HOST_CC ends with a dash (-), then it is considered to be the
- prefix to gcc (eg. x86-pc-linuc-gnu-).
- If it is empty, it is formed by appending '-gcc' to HOST.
- Else it is considered to be the complete name of the compiler, with
- full path, or without path (provided that it can be found in PATH).
-
endmenu
diff --git a/config/toolchain.in b/config/toolchain.in
new file mode 100644
index 0000000..86972c8
--- /dev/null
+++ b/config/toolchain.in
@@ -0,0 +1,164 @@
+menu "Toolchain options"
+
+comment "General toolchain options"
+
+config USE_SYSROOT
+ bool
+ prompt "Use sysroot'ed toolchain"
+ default y
+ help
+ Use the 'shinny new' sysroot feature of gcc: libraries split between
+ prefix/target/sys-root/lib and prefix/target/sys-root/usr/lib
+
+ You definitely want to say 'Y' here. Yes you do. I know you do. Say 'Y'.
+
+config SHARED_LIBS
+ bool
+ prompt "Build shared libraries"
+ default y
+ help
+ Say 'y' here, unless you don't want shared libraries.
+
+ You might not want shared librries if you're building for a target that
+ don't support it (maybe some nommu targets, for example, or bare metal).
+
+config TARGET_MULTILIB
+ bool
+# prompt "Enable 'multilib' support (EXPERIMENTAL)"
+ default n
+ help
+ Enable the so-called 'multilib' support.
+
+ With the same toolchain, and on some architectures, you will be able to
+ build big and little endian binaries, soft- and hard-float, etc...
+
+ See the gcc configure manual at http://gcc.gnu.org/install/configure.html
+ to see what multilib your target supports.
+
+ It's preferable for now to build two (or more) toolchains, one for each
+ configuration you need to support (eg. one for thumb and one for ARM,
+ etc...). You can use the vendor string to diferentiate those toolchains.
+
+config TARGET_VENDOR
+ string
+ prompt "Vendor string"
+ default "unknown"
+ help
+ Vendor part of the machine triplet.
+
+ A triplet is of the form arch-vendor-kernel-system.
+ You can set the second part, vendor, to whatever you see fit.
+ Use a single word, or use underscores "_" to separate words.
+
+ Keep the default (unkown) if you don't know better.
+
+config TARGET_ALIAS
+ string
+ prompt "Target alias"
+ default ""
+ help
+ Normaly, you'd call your toolchain component (especially gcc) by
+ prefixing the target triplet followed by a dash and the component name
+ (eg. armeb-unknown-linux-uclibc-gcc).
+
+ You can enter a shortcut here. This string will be used to create
+ symbolic links to the toolchain tools (eg. if you enter "foo-bar" here,
+ then gcc for your toolchain will also be available as "foo-bar-gcc" along
+ with the original name).
+
+ You shouldn't need to enter anything here, unless you plan to manually
+ call the tools (autotools-based ./configure will use the standard name).
+
+config ARCH
+ string
+ default "arm" if ARCH_ARM
+ default "mips" if ARCH_MIPS
+ default "x86" if ARCH_x86
+ default "x86_64" if ARCH_x86_64
+
+comment "Toolchain type"
+
+choice
+ bool
+ prompt "Type"
+ default CROSS
+
+config NATIVE
+ bool
+ prompt "Native (EXPERIMENTAL)"
+ depends on EXPERIMENTAL
+ help
+ Build a native toolchain.
+ See docs/overview.txt
+
+config CROSS
+ bool
+ prompt "Cross"
+ help
+ Build a cross-toolchain.
+ See docs/overview.txt
+
+config CROSS_NATIVE
+ bool
+ prompt "Croos-native (EXPERIMENTAL)"
+ depends on EXPERIMENTAL
+ help
+ Build a cross-native toolchain.
+ See docs/overview.txt
+
+config CANADIAN
+ bool
+ prompt "Canadian (EXPERIMENTAL)"
+ depends on EXPERIMENTAL
+ default n
+ help
+ Build a canadian-toolchain.
+ See docs/overview.txt
+
+endchoice
+
+config BUILD
+ string
+ prompt "Build system triplet"
+ default ""
+ help
+ Canonical name of the machine building the toolchain.
+ You should leave empty, unless you really now what you're doing.
+
+config CC_NATIVE
+ string
+ prompt "Native gcc"
+ default "gcc"
+ help
+ The native C compiler.
+
+ You can set this to an alternative compiler if you have more than one
+ installed (eg. gcc is gcc-4.1.1 and you want to use gcc-3.4.6).
+
+ You can leave this empty as well, in which case gcc will be used.
+
+config HOST
+ string
+ prompt "Host system triplet"
+ default ""
+ depends on NATIVE || CANADIAN
+ help
+ Canonical name of the machine running the toolchain.
+
+config HOST_CC
+ string
+ prompt "Cross-compiler prefix for host system"
+ default "${CT_HOST}-"
+ depends on NATIVE || CANADIAN
+ help
+ C compiler targeting the host system.
+
+config TARGET_CC
+ string
+ prompt "Cross-compiler prefix for target system"
+ default "${CT_TARGET}-"
+ depends on CANADIAN
+ help
+ C compiler targeting the target system.
+
+endmenu