yann@1: # Overall toolchain configuration: paths, jobs, etc... yann@1: yann@121: # Ah, this option is here to break the dependency tracking, and allow yann@121: # dependent option to line-up with the options they depend on ,rather yann@121: # than being indented yann@244: # Use it to intersperse two config options depending one on the other, yann@244: # but don't want the second to be indented (for example because you have yann@244: # a comment between the two to separate them). See DOWNLOAD and EXTRACT yann@244: # options to see how it is used. yann@121: config FOOBAR yann@121: bool yann@121: default n yann@121: yann@1: menu "Paths and misc options" yann@1: yann@197: comment "crosstool-NG behavior" yann@121: yann@244: config OBSOLETE yann@244: bool yann@244: prompt "Use obsolete features" yann@244: default n yann@244: help yann@244: If you set this to Y, you will be able to select obsolete features. yann@244: yann@244: Such obsolete features are the use of old kernel headers, old yann@244: gcc versions, etc... yann@244: yann@41: config EXPERIMENTAL yann@41: bool yann@41: prompt "Try features marked as EXPERIMENTAL" yann@41: default n yann@41: help yann@41: If you set this to Y, then you will be able to try very experimental yann@41: features. yann@41: yann@41: Experimental features can be one of: yann@41: - working, in which case you should tell me it is! yann@41: - buggy, in which case you could try patching and send me the result yann@41: - unfinished, in which case you could try hacking it and send me the result yann@384: - non-existant, in which case you could also try hacking it in and send me yann@384: the result yann@41: yann@244: config BROKEN yann@61: bool yann@244: prompt "Try broken stuff" yann@61: default n yann@244: depends on EXPERIMENTAL yann@61: help yann@244: Select this if you want to _debug_ broken stuff. yann@61: yann@121: config DEBUG_CT yann@121: bool yann@121: prompt "Debug crosstool-NG" yann@121: default n yann@121: help yann@121: Say 'y' here to get some debugging options yann@121: yann@121: if DEBUG_CT yann@121: yann@121: config DEBUG_CT_PAUSE_STEPS yann@121: bool yann@121: prompt "Pause between every steps" yann@121: default n yann@121: help yann@121: Say 'y' if you intend to attend the build, and want to investigate yann@121: the result of each steps before running the next one. yann@121: yann@121: config DEBUG_CT_SAVE_STEPS yann@121: bool yann@121: prompt "Save intermediate steps" yann@121: default n yann@121: help yann@121: If you say 'y' here, then you will be able to restart crosstool-NG at yann@168: any step. yann@121: yann@121: It is not currently possible to rstart at any of the debug facility. yann@168: They are treated as a whole. yann@168: yann@168: See docs/overview.txt for the list of steps. yann@121: yann@121: config DEBUG_CT_SAVE_STEPS_GZIP yann@121: bool yann@121: prompt "gzip saved states" yann@121: default y yann@121: depends on DEBUG_CT_SAVE_STEPS yann@121: help yann@121: If you are tight on space, then you can ask to gzip the saved states yann@121: tarballs. On the other hand, this takes some longer time... yann@121: yann@121: To lose as less time as possible, the gzip process is done with a low yann@121: compression ratio (-3), which gives roughly 70% gain in size. Going yann@121: further doesn't gain much, and takes far more time (believe me, I've yann@121: got figures here! :-) ). yann@121: yann@121: endif yann@121: yann@121: comment "Build behavior" yann@121: yann@1: config PARALLEL_JOBS yann@1: int yann@1: prompt "Number of parallel jobs" yann@1: default 1 yann@1: help yann@1: Number of jobs make will be allowed to run concurently. yann@1: Set this higher than the number of processors you have, but not too high. yann@1: A good rule of thumb is twice the number of processors you have. yann@1: yann@1: Enter 1 (or 0) to have only one job at a time. yann@1: yann@1: config LOAD yann@1: int yann@1: prompt "Maximum allowed load" yann@1: default 0 yann@1: help yann@1: Specifies that no new jobs should be started if there are others jobs yann@1: running and the load average is at least this value. yann@1: yann@1: Makes sense on SMP machines only. yann@1: yann@1: Enter 0 to have no limit on the load average. yann@1: yann@1: Note: only the integer part of the load is allowed here (you can't enter yann@1: 0.75 for example). yann@1: yann@1: config NICE yann@1: int yann@1: prompt "Nice level" yann@1: default 0 yann@1: range 0 19 yann@1: help yann@1: Renices the build process up. yann@1: yann@1: config USE_PIPES yann@1: bool yann@1: prompt "Use -pipe" yann@1: default y yann@1: help yann@1: Use gcc's option -pipe to use pipes rather than temp files when building yann@1: the toolchain. yann@1: yann@1: comment "Paths" yann@1: yann@85: config LOCAL_TARBALLS_DIR yann@1: string yann@85: prompt "Local tarballs directory" yann@85: default "" yann@1: help yann@85: If you have previously downloaded the tarballs, enter the PATH where yann@85: you stored them here. yann@31: yann@265: config SAVE_TARBALLS yann@265: bool yann@265: prompt "Save new tarballs" yann@265: default n yann@265: depends on LOCAL_TARBALLS_DIR != "" yann@265: help yann@425: If you say 'y' here, new downloaded tarballs will be saved in the yann@265: directory you entered above. yann@265: yann@1: config PREFIX_DIR yann@1: string yann@1: prompt "Prefix directory" yann@1: default "${HOME}/${CT_TARGET}" yann@1: help yann@1: This is the path the toolchain will run from. yann@1: yann@1: config INSTALL_DIR yann@1: string yann@1: # prompt "Install directory" yann@1: default "${CT_PREFIX_DIR}" yann@1: # help yann@1: # This is the path the target will be installed into. yann@1: # yann@1: # Normally, you would set this to ${CT_PREFIX_DIR}, but if for some reasons yann@1: # you can't write there, you can install somewhere else and have a third yann@1: # person do the install for you. yann@1: # The reason you might also want to install elsewhere is if you are going yann@1: # to package your shinny new toolchain for distribution. yann@1: yann@1: config CUSTOM_PATCH yann@1: bool yann@1: prompt "Use custom patch directory" yann@1: default n yann@1: help yann@1: If you have custom patches that you want to be applied, say 'Y' here and yann@1: enter the path directory below. yann@1: yann@1: Note that you must ensure that the patch directory is arranged the same yann@1: way the official directory is. yann@1: yann@1: config CUSTOM_PATCH_ONLY yann@1: bool yann@1: prompt "Only use custom patches" yann@1: default n yann@1: depends on CUSTOM_PATCH yann@1: help yann@197: Don't apply patches coming with crosstool-NG, only those patches available yann@197: in the directory below. yann@1: yann@197: If you say 'N' here, then the patches provided with crosstool-NG will be yann@197: applied first, and then your patches. yann@1: yann@1: config CUSTOM_PATCH_DIR yann@1: string yann@1: prompt "Custom patch directory" yann@1: default "" yann@1: depends on CUSTOM_PATCH yann@1: help yann@1: Enter the custom patch directory here. yann@1: yann@14: config REMOVE_DOCS yann@14: bool yann@14: prompt "Remove documentation" yann@14: default n yann@14: help yann@14: Remove the installed documentation (man and info pages). yann@14: Gains around 8MiB for a uClibc-based, C and C++ compiler. yann@14: yann@174: config INSTALL_DIR_RO yann@174: bool yann@174: prompt "Render the toolchain read-only" yann@174: default n yann@174: help yann@174: Render the directory of the toolchain (and its sub-directories) yann@174: read-only. yann@174: yann@174: Usefull for toolchains destined for production. yann@174: yann@63: comment "Downloading" yann@1: yann@63: config FORCE_DOWNLOAD yann@1: bool yann@63: prompt "Force downloads" yann@1: default n yann@1: help yann@63: Force downloading tarballs, even if one already exists. yann@63: yann@63: Usefull if you suspect a tarball to be damaged. yann@1: yann@1: config ONLY_DOWNLOAD yann@1: bool yann@63: prompt "Stop after downloading tarballs" yann@1: default n yann@1: help yann@1: Only download the tarballs. Exit once it done. yann@1: yann@1: Usefull to pre-retrieve the tarballs before going off-line. yann@1: yann@121: config FOOBAR yann@121: yann@244: if ! ONLY_DOWNLOAD yann@244: yann@63: comment "Extracting" yann@1: yann@1: config FORCE_EXTRACT yann@1: bool yann@1: prompt "Force extractions" yann@1: default n yann@1: help yann@1: Force extraction of already exctracted tarballs. yann@1: yann@1: Usefull if you suspect a previous extract did not complete (eg. broken yann@1: tarball), or you added a new set of patches for this component. yann@1: yann@63: config ONLY_EXTRACT yann@63: bool yann@63: prompt "Stop after extracting tarballs" yann@63: default n yann@63: help yann@63: Exit after unpacking and patching tarballs. yann@63: yann@63: Usefull to look at the code before doing the build itself. yann@63: yann@244: endif # ! ONLY_DOWNLOAD yann@244: yann@1: comment "Logging" yann@1: yann@1: choice yann@1: bool yann@1: prompt "Maximum log level to see:" yann@252: default LOG_INFO if !DEBUG_CT yann@252: default LOG_DEBUG if DEBUG_CT yann@1: yann@1: config LOG_ERROR yann@1: bool yann@1: prompt "ERROR" yann@1: help yann@1: The build will be silent. yann@174: Only if there is an error will you see a message. yann@1: yann@1: config LOG_WARN yann@1: bool yann@1: prompt "WARN" yann@1: help yann@1: The same as above, plus warnings. yann@1: yann@1: config LOG_INFO yann@1: bool yann@1: prompt "INFO" yann@1: help yann@1: The same as above, plus informational messages (main steps). yann@1: yann@1: config LOG_EXTRA yann@1: bool yann@1: prompt "EXTRA" yann@1: help yann@1: The same as above, plus extra messages (sub-steps). yann@1: yann@1: config LOG_DEBUG yann@1: bool yann@1: prompt "DEBUG" yann@1: help yann@78: The same as above, plus lots of crosstool-NG debug information. yann@78: yann@78: config LOG_ALL yann@78: bool yann@78: prompt "ALL" yann@78: help yann@78: The same as above, plus all components build messages (very noisy!). yann@1: yann@1: endchoice yann@1: yann@1: config LOG_LEVEL_MAX yann@1: string yann@1: default "ERROR" if LOG_ERROR yann@1: default "WARN" if LOG_WARN yann@1: default "INFO" if LOG_INFO yann@1: default "EXTRA" if LOG_EXTRA yann@1: default "DEBUG" if LOG_DEBUG yann@78: default "ALL" if LOG_ALL yann@1: yann@47: config LOG_SEE_TOOLS_WARN yann@47: bool yann@174: prompt "Warnings from the tools' builds" yann@47: default n yann@47: depends on ! LOG_ERROR yann@47: help yann@197: Treat warnings from the different tools as crosstool-NG warnings. yann@108: If you say 'y' here, then those warnings will be prefixed with yann@108: '[WARN ]' instead of the default '[ALL ]'. yann@47: yann@108: You can safely say 'n' here. Those warnings will anyway be yann@108: recorded in the log file (provided you configured one). yann@47: yann@197: Tools error will always be logged as crosstool-NG errors. yann@174: yann@1: config LOG_PROGRESS_BAR yann@1: bool yann@1: prompt "Progress bar" yann@173: default y yann@78: depends on ! LOG_ALL yann@1: help yann@112: If you say 'y' here, you'll be able to see the elapsed time. yann@1: yann@112: As a bonus, you'll also get a rotating bar (/-\|) showing you yann@112: that the build is not stalled (the bar rotates 1/4 every 10 lines yann@112: of components build log). yann@112: yann@112: Note that the elapsed time can stall for a little while if a yann@112: component has long commands, as the elapsed time is only updated yann@112: each line. yann@1: yann@1: config LOG_TO_FILE yann@1: bool yann@1: prompt "Log to a file" yann@1: default y yann@1: help yann@1: Save *full* logs to a file. Even log levels you didn't specify above yann@174: will be available in this file. The log file will be named build.log yann@174: and stored in the toolchain prefix dir (set above). yann@1: yann@47: As a bonus, there is a script in tools/extractConfig.sh that is able yann@47: to extract the configuration of crosstool-NG from the log file. yann@47: yann@47: Definitely, say Y. yann@47: yann@174: config LOG_FILE_COMPRESS yann@174: bool yann@174: prompt "Compress the log file" yann@174: default n yann@1: depends on LOG_TO_FILE yann@1: help yann@174: Compress the log file once the toolchain is successfully built. yann@1: yann@1: endmenu