# HG changeset patch # User "Yann E. MORIN" # Date 1176848682 0 # Node ID fd6ad5721f773a0ec0d3a93cfac13592deb6fb7f # Parent 8601bce189051e158dd10999a1832a06e7e43d8e Add the EXPERIMENTAL option to show options marked as such. Add the four types of toolchains ct-ng is able to build as EXPERIMENTAL, except for CROSS which *is* functional. Reorder menus accordingly. diff -r 8601bce18905 -r fd6ad5721f77 config/cc.in --- a/config/cc.in Tue Apr 17 22:22:46 2007 +0000 +++ b/config/cc.in Tue Apr 17 22:24:42 2007 +0000 @@ -38,6 +38,7 @@ #config CC_CORE_TCC # bool # prompt "tcc (EXPERIMENTAL)" +# depends on EXPERIMENTAL endchoice @@ -78,6 +79,7 @@ # bool # prompt "tcc (EXPERIMENTAL)" # select CC_LANG_C +# depends on EXPERIMENTAL endchoice diff -r 8601bce18905 -r fd6ad5721f77 config/config.in --- a/config/config.in Tue Apr 17 22:22:46 2007 +0000 +++ b/config/config.in Tue Apr 17 22:24:42 2007 +0000 @@ -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 -r 8601bce18905 -r fd6ad5721f77 config/global.in --- a/config/global.in Tue Apr 17 22:22:46 2007 +0000 +++ b/config/global.in Tue Apr 17 22:24:42 2007 +0000 @@ -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 -r 8601bce18905 -r fd6ad5721f77 config/target.in --- a/config/target.in Tue Apr 17 22:22:46 2007 +0000 +++ b/config/target.in Tue Apr 17 22:24:42 2007 +0000 @@ -172,7 +172,7 @@ 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 @@ 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 -r 8601bce18905 -r fd6ad5721f77 config/toolchain.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/config/toolchain.in Tue Apr 17 22:24:42 2007 +0000 @@ -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