From e53b2f3cbde7e0ef3978f0ab63c2ff42ff9ad807 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Thu, 17 Apr 2008 20:02:07 +0000 Subject: Break-down config/global.in into smaller, much more maintainable files. config/paths.in | 419 1 418 0 -------------------------------------------------------- 1 file changed, 1 insertion(+), 418 deletions(-) diff --git a/config/build-behave.in b/config/build-behave.in new file mode 100644 index 0000000..7c1175c --- /dev/null +++ b/config/build-behave.in @@ -0,0 +1,45 @@ +# Options related to how the build behaves + +comment "Build behavior" + +config PARALLEL_JOBS + int + prompt "Number of parallel jobs" + default 1 + help + Number of jobs make will be allowed to run concurently. + Set this higher than the number of processors you have, but not too high. + A good rule of thumb is twice the number of processors you have. + + Enter 1 (or 0) to have only one job at a time. + +config LOAD + int + prompt "Maximum allowed load" + default 0 + help + Specifies that no new jobs should be started if there are others jobs + running and the load average is at least this value. + + Makes sense on SMP machines only. + + Enter 0 to have no limit on the load average. + + Note: only the integer part of the load is allowed here (you can't enter + 0.75 for example). + +config NICE + int + prompt "Nice level" + default 0 + range 0 19 + help + Renices the build process up. + +config USE_PIPES + bool + prompt "Use -pipe" + default y + help + Use gcc's option -pipe to use pipes rather than temp files when building + the toolchain. diff --git a/config/ct-behave.in b/config/ct-behave.in new file mode 100644 index 0000000..737028b --- /dev/null +++ b/config/ct-behave.in @@ -0,0 +1,82 @@ +# Options specific to crosstool-NG overall behavior + +comment "crosstool-NG behavior" + +config OBSOLETE + bool + prompt "Use obsolete features" + default n + help + If you set this to Y, you will be able to select obsolete features. + + Such obsolete features are the use of old kernel headers, old + gcc versions, etc... + +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 me + the result + +config BROKEN + bool + prompt "Try broken stuff" + default n + depends on EXPERIMENTAL + help + Select this if you want to _debug_ broken stuff. + +config DEBUG_CT + bool + prompt "Debug crosstool-NG" + default n + help + Say 'y' here to get some debugging options + +if DEBUG_CT + +config DEBUG_CT_PAUSE_STEPS + bool + prompt "Pause between every steps" + default n + help + Say 'y' if you intend to attend the build, and want to investigate + the result of each steps before running the next one. + +config DEBUG_CT_SAVE_STEPS + bool + prompt "Save intermediate steps" + default n + help + If you say 'y' here, then you will be able to restart crosstool-NG at + any step. + + It is not currently possible to restart at any of the debug facility. + They are treated as a whole. + + See docs/overview.txt for the list of steps. + +config DEBUG_CT_SAVE_STEPS_GZIP + bool + prompt "gzip saved states" + default y + depends on DEBUG_CT_SAVE_STEPS + help + If you are tight on space, then you can ask to gzip the saved states + tarballs. On the other hand, this takes some longer time... + + To lose as less time as possible, the gzip process is done with a low + compression ratio (-3), which gives roughly 70% gain in size. Going + further doesn't gain much, and takes far more time (believe me, I've + got figures here! :-) ). + +endif diff --git a/config/download_extract.in b/config/download_extract.in new file mode 100644 index 0000000..08b66ce --- /dev/null +++ b/config/download_extract.in @@ -0,0 +1,171 @@ +# Options specific to downloading and extracting packages + +comment "Downloading" + +config FORCE_DOWNLOAD + bool + prompt "Force downloads" + default n + help + Force downloading tarballs, even if one already exists. + + Usefull if you suspect a tarball to be damaged. + +config ONLY_DOWNLOAD + bool + prompt "Stop after downloading tarballs" + default n + help + Only download the tarballs. Exit once it done. + + Usefull to pre-retrieve the tarballs before going off-line. + +choice + bool + prompt "Proxy type" + default USE_NO_PROXY + +config PROXY_TYPE_NONE + bool + prompt "No proxy" + help + Select this option if you have a direct connection to the internet, + or if you already set the environment adequately. + +config PROXY_TYPE_HTTP + bool + prompt "HTTP proxy" + help + Use an HTTP proxy to connect to to the internet. + Only the http and ftp protocols will be tunneled through this + proxy. + + Alternatively to setting this option, you can set and export the + following variables in your environment: + ftp_proxy=http://user:passwd@proxy.server:port/ + http_proxy=http://user:passwd@proxy.server:port/ + https_proxy=http://user:passwd@proxy.server:port/ + +# Haha! Here is an interesting feature/bug of mconf! +# The following config entries will be shown out-side the +# choice menu! +# To add a third entry in the choice menu, add it after the +# if...endif conditional below, and so on for a fourth entry... +if PROXY_TYPE_HTTP + +config PROXY_HOST + string + prompt "hostname/IP" + +config PROXY_PORT + int + prompt "port" + default 0 + +config PROXY_USER + string + prompt "user name" + +config PROXY_PASS + string + prompt "password" + +endif # USE_HTTP_PROXY + +config PROXY_TYPE_SOCKS + bool + prompt "SOCKS 4/5 proxy" + help + Use a Socks 4/5 proxy to connect to the internet. + All protocols can get tunneled through this kind of proxy (depending + on your proxy configuration, so;e do not allow all protocols, but + chances are that protocols needed by crosstool-NG are allowed). + + Alternatively to setting this option, you can set and export the + following variable in your environment: + LD_PRELOAD=/path/to/your/tsocks-library.so + + In any case, wether you set this option or you export the aforementionned + variable, you will _have_ to configure the /etc/tsocks.conf file + accordingly to your network setup. + + This option makes use of the tsocks library. You will have to have tsocks + installed on your system, of course. + + If you think you do not know what tsocks is, or how to configure it, + chances are that you do not need to set this option. + +if PROXY_TYPE_SOCKS + +choice + bool + prompt "type" + default PROXY_TYPE_SOCKS_5 + +config PROXY_TYPE_SOCKS_5 + bool + prompt "SOCKS 5" + +config PROXY_TYPE_SOCKS_4 + bool + prompt "SOCKS 4" + +endchoice + +config PROXY_HOST + string + prompt "hostname/IP" + +config PROXY_PORT + int + prompt "port" + default 0 + +config PROXY_USER + string + prompt "user name" + +config PROXY_PASS + string + prompt "password" + +endif # USE_SOCKS_PROXY + +endchoice + +config PROXY_TYPE + string + default "none" if PROXY_TYPE_NONE + default "HTTP" if PROXY_TYPE_HTTP + default "socks5" if PROXY_TYPE_SOCKS_5 + default "socks4" if PROXY_TYPE_SOCKS_4 + +# Force restore indentation +config BREAK_INDENT + bool + default n + +if ! ONLY_DOWNLOAD + +comment "Extracting" + +config FORCE_EXTRACT + bool + prompt "Force extractions" + default n + help + Force extraction of already exctracted tarballs. + + Usefull if you suspect a previous extract did not complete (eg. broken + tarball), or you added a new set of patches for this component. + +config ONLY_EXTRACT + bool + prompt "Stop after extracting tarballs" + default n + help + Exit after unpacking and patching tarballs. + + Usefull to look at the code before doing the build itself. + +endif # ! ONLY_DOWNLOAD diff --git a/config/global.in b/config/global.in index ed11f6e..1a02dba 100644 --- a/config/global.in +++ b/config/global.in @@ -1,506 +1,11 @@ # Overall toolchain configuration: paths, jobs, etc... -# Ah, this option is here to break the dependency tracking, and allow -# dependent option to line-up with the options they depend on ,rather -# than being indented -# Use it to intersperse two config options depending one on the other, -# but don't want the second to be indented (for example because you have -# a comment between the two to separate them). See DOWNLOAD and EXTRACT -# options to see how it is used. -config FOOBAR - bool - default n - menu "Paths and misc options" -comment "crosstool-NG behavior" - -config OBSOLETE - bool - prompt "Use obsolete features" - default n - help - If you set this to Y, you will be able to select obsolete features. - - Such obsolete features are the use of old kernel headers, old - gcc versions, etc... - -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 me - the result - -config BROKEN - bool - prompt "Try broken stuff" - default n - depends on EXPERIMENTAL - help - Select this if you want to _debug_ broken stuff. - -config DEBUG_CT - bool - prompt "Debug crosstool-NG" - default n - help - Say 'y' here to get some debugging options - -if DEBUG_CT - -config DEBUG_CT_PAUSE_STEPS - bool - prompt "Pause between every steps" - default n - help - Say 'y' if you intend to attend the build, and want to investigate - the result of each steps before running the next one. - -config DEBUG_CT_SAVE_STEPS - bool - prompt "Save intermediate steps" - default n - help - If you say 'y' here, then you will be able to restart crosstool-NG at - any step. - - It is not currently possible to rstart at any of the debug facility. - They are treated as a whole. - - See docs/overview.txt for the list of steps. - -config DEBUG_CT_SAVE_STEPS_GZIP - bool - prompt "gzip saved states" - default y - depends on DEBUG_CT_SAVE_STEPS - help - If you are tight on space, then you can ask to gzip the saved states - tarballs. On the other hand, this takes some longer time... - - To lose as less time as possible, the gzip process is done with a low - compression ratio (-3), which gives roughly 70% gain in size. Going - further doesn't gain much, and takes far more time (believe me, I've - got figures here! :-) ). - -endif - -comment "Build behavior" - -config PARALLEL_JOBS - int - prompt "Number of parallel jobs" - default 1 - help - Number of jobs make will be allowed to run concurently. - Set this higher than the number of processors you have, but not too high. - A good rule of thumb is twice the number of processors you have. - - Enter 1 (or 0) to have only one job at a time. - -config LOAD - int - prompt "Maximum allowed load" - default 0 - help - Specifies that no new jobs should be started if there are others jobs - running and the load average is at least this value. - - Makes sense on SMP machines only. - - Enter 0 to have no limit on the load average. - - Note: only the integer part of the load is allowed here (you can't enter - 0.75 for example). - -config NICE - int - prompt "Nice level" - default 0 - range 0 19 - help - Renices the build process up. - -config USE_PIPES - bool - prompt "Use -pipe" - default y - help - Use gcc's option -pipe to use pipes rather than temp files when building - the toolchain. - -comment "Paths" - -config LOCAL_TARBALLS_DIR - string - prompt "Local tarballs directory" - default "" - help - If you have previously downloaded the tarballs, enter the PATH where - you stored them here. - -config SAVE_TARBALLS - bool - prompt "Save new tarballs" - default n - depends on LOCAL_TARBALLS_DIR != "" - help - If you say 'y' here, new downloaded tarballs will be saved in the - directory you entered above. - -config PREFIX_DIR - string - prompt "Prefix directory" - default "${HOME}/${CT_TARGET}" - help - This is the path the toolchain will run from. - -config INSTALL_DIR - string -# prompt "Install directory" - default "${CT_PREFIX_DIR}" -# help -# This is the path the target will be installed into. -# -# Normally, you would set this to ${CT_PREFIX_DIR}, but if for some reasons -# you can't write there, you can install somewhere else and have a third -# person do the install for you. -# The reason you might also want to install elsewhere is if you are going -# to package your shinny new toolchain for distribution. - -config CUSTOM_PATCH - bool - prompt "Use custom patch directory" - default n - help - If you have custom patches that you want to be applied, say 'Y' here and - enter the path directory below. - - Note that you must ensure that the patch directory is arranged the same - way the official directory is. - -config CUSTOM_PATCH_ONLY - bool - prompt "Only use custom patches" - default n - depends on CUSTOM_PATCH - help - Don't apply patches coming with crosstool-NG, only those patches available - in the directory below. - - If you say 'N' here, then the patches provided with crosstool-NG will be - applied first, and then your patches. - -config CUSTOM_PATCH_DIR - string - prompt "Custom patch directory" - default "" - depends on CUSTOM_PATCH - help - Enter the custom patch directory here. - -config REMOVE_DOCS - bool - prompt "Remove documentation" - default n - help - Remove the installed documentation (man and info pages). - Gains around 8MiB for a uClibc-based, C and C++ compiler. - -config INSTALL_DIR_RO - bool - prompt "Render the toolchain read-only" - default n - help - Render the directory of the toolchain (and its sub-directories) - read-only. - - Usefull for toolchains destined for production. - -comment "Downloading" - -config FORCE_DOWNLOAD - bool - prompt "Force downloads" - default n - help - Force downloading tarballs, even if one already exists. - - Usefull if you suspect a tarball to be damaged. - -config ONLY_DOWNLOAD - bool - prompt "Stop after downloading tarballs" - default n - help - Only download the tarballs. Exit once it done. - - Usefull to pre-retrieve the tarballs before going off-line. - -choice - bool - prompt "Proxy type" - default USE_NO_PROXY - -config PROXY_TYPE_NONE - bool - prompt "No proxy" - help - Select this option if you have a direct connection to the internet, - or if you already set the environment adequately. - -config PROXY_TYPE_HTTP - bool - prompt "HTTP proxy" - help - Use an HTTP proxy to connect to to the internet. - Only the http and ftp protocols will be tunneled through this - proxy. - - Alternatively to setting this option, you can set and export the - following variables in your environment: - ftp_proxy=http://user:passwd@proxy.server:port/ - http_proxy=http://user:passwd@proxy.server:port/ - https_proxy=http://user:passwd@proxy.server:port/ - -# Haha! Here is an interesting feature/bug of mconf! -# The following config entries will be shown out-side the -# choice menu! -# To add a third entry in the choice menu, add it after the -# if...endif conditional below, and so on for a fourth entry... -if PROXY_TYPE_HTTP - -config PROXY_HOST - string - prompt "hostname/IP" - -config PROXY_PORT - int - prompt "port" - default 0 - -config PROXY_USER - string - prompt "user name" - -config PROXY_PASS - string - prompt "password" - -endif # USE_HTTP_PROXY - -config PROXY_TYPE_SOCKS - bool - prompt "SOCKS 4/5 proxy" - help - Use a Socks 4/5 proxy to connect to the internet. - All protocols can get tunneled through this kind of proxy (depending - on your proxy configuration, so;e do not allow all protocols, but - chances are that protocols needed by crosstool-NG are allowed). - - Alternatively to setting this option, you can set and export the - following variable in your environment: - LD_PRELOAD=/path/to/your/tsocks-library.so - - In any case, wether you set this option or you export the aforementionned - variable, you will _have_ to configure the /etc/tsocks.conf file - accordingly to your network setup. - - This option makes use of the tsocks library. You will have to have tsocks - installed on your system, of course. - - If you think you do not know what tsocks is, or how to configure it, - chances are that you do not need to set this option. - -if PROXY_TYPE_SOCKS - -choice - bool - prompt "type" - default PROXY_TYPE_SOCKS_5 - -config PROXY_TYPE_SOCKS_5 - bool - prompt "SOCKS 5" - -config PROXY_TYPE_SOCKS_4 - bool - prompt "SOCKS 4" - -endchoice - -config PROXY_HOST - string - prompt "hostname/IP" - -config PROXY_PORT - int - prompt "port" - default 0 - -config PROXY_USER - string - prompt "user name" - -config PROXY_PASS - string - prompt "password" - -endif # USE_SOCKS_PROXY - -endchoice - -config PROXY_TYPE - string - default "none" if PROXY_TYPE_NONE - default "HTTP" if PROXY_TYPE_HTTP - default "socks5" if PROXY_TYPE_SOCKS_5 - default "socks4" if PROXY_TYPE_SOCKS_4 - -# Force restore indentation -config FOOBAR - -if ! ONLY_DOWNLOAD - -comment "Extracting" - -config FORCE_EXTRACT - bool - prompt "Force extractions" - default n - help - Force extraction of already exctracted tarballs. - - Usefull if you suspect a previous extract did not complete (eg. broken - tarball), or you added a new set of patches for this component. - -config ONLY_EXTRACT - bool - prompt "Stop after extracting tarballs" - default n - help - Exit after unpacking and patching tarballs. - - Usefull to look at the code before doing the build itself. - -endif # ! ONLY_DOWNLOAD - -comment "Logging" - -choice - bool - prompt "Maximum log level to see:" - default LOG_INFO if !DEBUG_CT - default LOG_DEBUG if DEBUG_CT - -config LOG_ERROR - bool - prompt "ERROR" - help - The build will be silent. - Only if there is an error will you see a message. - -config LOG_WARN - bool - prompt "WARN" - help - The same as above, plus warnings. - -config LOG_INFO - bool - prompt "INFO" - help - The same as above, plus informational messages (main steps). - -config LOG_EXTRA - bool - prompt "EXTRA" - help - The same as above, plus extra messages (sub-steps). - -config LOG_DEBUG - bool - prompt "DEBUG" - help - The same as above, plus lots of crosstool-NG debug information. - -config LOG_ALL - bool - prompt "ALL" - help - The same as above, plus all components build messages (very noisy!). - -endchoice - -config LOG_LEVEL_MAX - string - default "ERROR" if LOG_ERROR - default "WARN" if LOG_WARN - default "INFO" if LOG_INFO - default "EXTRA" if LOG_EXTRA - default "DEBUG" if LOG_DEBUG - default "ALL" if LOG_ALL - -config LOG_SEE_TOOLS_WARN - bool - prompt "Warnings from the tools' builds" - default n - depends on ! LOG_ERROR - help - Treat warnings from the different tools as crosstool-NG warnings. - If you say 'y' here, then those warnings will be prefixed with - '[WARN ]' instead of the default '[ALL ]'. - - You can safely say 'n' here. Those warnings will anyway be - recorded in the log file (provided you configured one). - - Tools error will always be logged as crosstool-NG errors. - -config LOG_PROGRESS_BAR - bool - prompt "Progress bar" - default y - depends on ! LOG_ALL - help - If you say 'y' here, you'll be able to see the elapsed time. - - As a bonus, you'll also get a rotating bar (/-\|) showing you - that the build is not stalled (the bar rotates 1/4 every 10 lines - of components build log). - - Note that the elapsed time can stall for a little while if a - component has long commands, as the elapsed time is only updated - each line. - -config LOG_TO_FILE - bool - prompt "Log to a file" - default y - help - Save *full* logs to a file. Even log levels you didn't specify above - will be available in this file. The log file will be named build.log - and stored in the toolchain prefix dir (set above). - - As a bonus, there is a script in tools/extractConfig.sh that is able - to extract the configuration of crosstool-NG from the log file. - - Definitely, say Y. - -config LOG_FILE_COMPRESS - bool - prompt "Compress the log file" - default n - depends on LOG_TO_FILE - help - Compress the log file once the toolchain is successfully built. +source "config/ct-behave.in" +source "config/download_extract.in" +source "config/build-behave.in" +source "config/paths.in" +source "config/logging.in" endmenu diff --git a/config/logging.in b/config/logging.in new file mode 100644 index 0000000..49cda1f --- /dev/null +++ b/config/logging.in @@ -0,0 +1,110 @@ +# Options specific to logging + +comment "Logging" + +choice + bool + prompt "Maximum log level to see:" + default LOG_INFO if !DEBUG_CT + default LOG_DEBUG if DEBUG_CT + +config LOG_ERROR + bool + prompt "ERROR" + help + The build will be silent. + Only if there is an error will you see a message. + +config LOG_WARN + bool + prompt "WARN" + help + The same as above, plus warnings. + +config LOG_INFO + bool + prompt "INFO" + help + The same as above, plus informational messages (main steps). + +config LOG_EXTRA + bool + prompt "EXTRA" + help + The same as above, plus extra messages (sub-steps). + +config LOG_DEBUG + bool + prompt "DEBUG" + help + The same as above, plus lots of crosstool-NG debug information. + +config LOG_ALL + bool + prompt "ALL" + help + The same as above, plus all components build messages (very noisy!). + +endchoice + +config LOG_LEVEL_MAX + string + default "ERROR" if LOG_ERROR + default "WARN" if LOG_WARN + default "INFO" if LOG_INFO + default "EXTRA" if LOG_EXTRA + default "DEBUG" if LOG_DEBUG + default "ALL" if LOG_ALL + +config LOG_SEE_TOOLS_WARN + bool + prompt "Warnings from the tools' builds" + default n + depends on ! LOG_ERROR + help + Treat warnings from the different tools as crosstool-NG warnings. + If you say 'y' here, then those warnings will be prefixed with + '[WARN ]' instead of the default '[ALL ]'. + + You can safely say 'n' here. Those warnings will anyway be + recorded in the log file (provided you configured one). + + Tools error will always be logged as crosstool-NG errors. + +config LOG_PROGRESS_BAR + bool + prompt "Progress bar" + default y + depends on ! LOG_ALL + help + If you say 'y' here, you'll be able to see the elapsed time. + + As a bonus, you'll also get a rotating bar (/-\|) showing you + that the build is not stalled (the bar rotates 1/4 every 10 lines + of components build log). + + Note that the elapsed time can stall for a little while if a + component has long commands, as the elapsed time is only updated + each line. + +config LOG_TO_FILE + bool + prompt "Log to a file" + default y + help + Save *full* logs to a file. Even log levels you didn't specify above + will be available in this file. The log file will be named build.log + and stored in the toolchain prefix dir (set above). + + As a bonus, there is a script in tools/extractConfig.sh that is able + to extract the configuration of crosstool-NG from the log file. + + Definitely, say Y. + +config LOG_FILE_COMPRESS + bool + prompt "Compress the log file" + default n + depends on LOG_TO_FILE + help + Compress the log file once the toolchain is successfully built. diff --git a/config/paths.in b/config/paths.in new file mode 100644 index 0000000..3736d66 --- /dev/null +++ b/config/paths.in @@ -0,0 +1,89 @@ +# Options related to paths and install + +comment "Paths" + +config LOCAL_TARBALLS_DIR + string + prompt "Local tarballs directory" + default "" + help + If you have previously downloaded the tarballs, enter the PATH where + you stored them here. + +config SAVE_TARBALLS + bool + prompt "Save new tarballs" + default n + depends on LOCAL_TARBALLS_DIR != "" + help + If you say 'y' here, new downloaded tarballs will be saved in the + directory you entered above. + +config PREFIX_DIR + string + prompt "Prefix directory" + default "${HOME}/${CT_TARGET}" + help + This is the path the toolchain will run from. + +config INSTALL_DIR + string +# prompt "Install directory" + default "${CT_PREFIX_DIR}" +# help +# This is the path the target will be installed into. +# +# Normally, you would set this to ${CT_PREFIX_DIR}, but if for some reasons +# you can't write there, you can install somewhere else and have a third +# person do the install for you. +# The reason you might also want to install elsewhere is if you are going +# to package your shinny new toolchain for distribution. + +config CUSTOM_PATCH + bool + prompt "Use custom patch directory" + default n + help + If you have custom patches that you want to be applied, say 'Y' here and + enter the path directory below. + + Note that you must ensure that the patch directory is arranged the same + way the official directory is. + +config CUSTOM_PATCH_ONLY + bool + prompt "Only use custom patches" + default n + depends on CUSTOM_PATCH + help + Don't apply patches coming with crosstool-NG, only those patches available + in the directory below. + + If you say 'N' here, then the patches provided with crosstool-NG will be + applied first, and then your patches. + +config CUSTOM_PATCH_DIR + string + prompt "Custom patch directory" + default "" + depends on CUSTOM_PATCH + help + Enter the custom patch directory here. + +config REMOVE_DOCS + bool + prompt "Remove documentation" + default n + help + Remove the installed documentation (man and info pages). + Gains around 8MiB for a uClibc-based, C and C++ compiler. + +config INSTALL_DIR_RO + bool + prompt "Render the toolchain read-only" + default n + help + Render the directory of the toolchain (and its sub-directories) + read-only. + + Usefull for toolchains destined for production. -- cgit v0.10.2-6-g49f6