config/global.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Fri Jul 13 12:15:53 2007 +0000 (2007-07-13)
changeset 244 d5a7240240c5
parent 197 9383bf4a2e2e
child 252 ff95210bd9bd
permissions -rw-r--r--
Introduce a BROKEN option (depends on EXPERIMENTAL) to hide/see broken stuff for debugging sessions!
Re-order: OBSOLETE goes before EXPERIMENTAL.
     1 # Overall toolchain configuration: paths, jobs, etc...
     2 
     3 # Ah, this option is here to break the dependency tracking, and allow
     4 # dependent option to line-up with the options they depend on ,rather
     5 # than being indented
     6 # Use it to intersperse two config options depending one on the other,
     7 # but don't want the second to be indented (for example because you have
     8 # a comment between the two to separate them). See DOWNLOAD and EXTRACT
     9 # options to see how it is used.
    10 config FOOBAR
    11     bool
    12     default n
    13 
    14 menu "Paths and misc options"
    15 
    16 comment "crosstool-NG behavior"
    17 
    18 config OBSOLETE
    19     bool
    20     prompt "Use obsolete features"
    21     default n
    22     help
    23       If you set this to Y, you will be able to select obsolete features.
    24       
    25       Such obsolete features are the use of old kernel headers, old
    26       gcc versions, etc...
    27 
    28 config EXPERIMENTAL
    29     bool
    30     prompt "Try features marked as EXPERIMENTAL"
    31     default n
    32     help
    33       If you set this to Y, then you will be able to try very experimental
    34       features.
    35       
    36       Experimental features can be one of:
    37         - working, in which case you should tell me it is!
    38         - buggy, in which case you could try patching and send me the result
    39         - unfinished, in which case you could try hacking it and send me the result
    40         - non-existant, in which case you could also try hacking it in and send the result
    41 
    42 config BROKEN
    43     bool
    44     prompt "Try broken stuff"
    45     default n
    46     depends on EXPERIMENTAL
    47     help
    48       Select this if you want to _debug_ broken stuff.
    49 
    50 config DEBUG_CT
    51     bool
    52     prompt "Debug crosstool-NG"
    53     default n
    54     help
    55       Say 'y' here to get some debugging options
    56 
    57 if DEBUG_CT
    58 
    59 config DEBUG_CT_PAUSE_STEPS
    60     bool
    61     prompt "Pause between every steps"
    62     default n
    63     help
    64       Say 'y' if you intend to attend the build, and want to investigate
    65       the result of each steps before running the next one.
    66 
    67 config DEBUG_CT_SAVE_STEPS
    68     bool
    69     prompt "Save intermediate steps"
    70     default n
    71     help
    72       If you say 'y' here, then you will be able to restart crosstool-NG at
    73       any step.
    74       
    75       It is not currently possible to rstart at any of the debug facility.
    76       They are treated as a whole.
    77 
    78       See docs/overview.txt for the list of steps.
    79 
    80 config DEBUG_CT_SAVE_STEPS_GZIP
    81     bool
    82     prompt "gzip saved states"
    83     default y
    84     depends on DEBUG_CT_SAVE_STEPS
    85     help
    86       If you are tight on space, then you can ask to gzip the saved states
    87       tarballs. On the other hand, this takes some longer time...
    88       
    89       To lose as less time as possible, the gzip process is done with a low
    90       compression ratio (-3), which gives roughly 70% gain in size. Going
    91       further doesn't gain much, and takes far more time (believe me, I've
    92       got figures here! :-) ).
    93 
    94 endif
    95 
    96 comment "Build behavior"
    97 
    98 config PARALLEL_JOBS
    99     int
   100     prompt "Number of parallel jobs"
   101     default 1
   102     help
   103       Number of jobs make will be allowed to run concurently.
   104       Set this higher than the number of processors you have, but not too high.
   105       A good rule of thumb is twice the number of processors you have.
   106       
   107       Enter 1 (or 0) to have only one job at a time.
   108 
   109 config LOAD
   110     int
   111     prompt "Maximum allowed load"
   112     default 0
   113     help
   114       Specifies that no new jobs should be started if there are others jobs
   115       running and the load average is at least this value.
   116       
   117       Makes sense on SMP machines only.
   118       
   119       Enter 0 to have no limit on the load average.
   120       
   121       Note: only the integer part of the load is allowed here (you can't enter
   122             0.75 for example).
   123 
   124 config NICE
   125     int
   126     prompt "Nice level"
   127     default 0
   128     range 0 19
   129     help
   130       Renices the build process up.
   131 
   132 config USE_PIPES
   133     bool
   134     prompt "Use -pipe"
   135     default y
   136     help
   137       Use gcc's option -pipe to use pipes rather than temp files when building
   138       the toolchain.
   139 
   140 comment "Paths"
   141 
   142 config LOCAL_TARBALLS_DIR
   143     string
   144     prompt "Local tarballs directory"
   145     default ""
   146     help
   147       If you have previously downloaded the tarballs, enter the PATH where
   148       you stored them here.
   149 
   150 config PREFIX_DIR
   151     string
   152     prompt "Prefix directory"
   153     default "${HOME}/${CT_TARGET}"
   154     help
   155       This is the path the toolchain will run from.
   156 
   157 config INSTALL_DIR
   158     string
   159 #    prompt "Install directory"
   160     default "${CT_PREFIX_DIR}"
   161 #    help
   162 #      This is the path the target will be installed into.
   163 #      
   164 #      Normally, you would set this to ${CT_PREFIX_DIR}, but if for some reasons
   165 #      you can't write there, you can install somewhere else and have a third
   166 #      person do the install for you.
   167 #      The reason you might also want to install elsewhere is if you are going
   168 #      to package your shinny new toolchain for distribution.
   169 
   170 config CUSTOM_PATCH
   171     bool
   172     prompt "Use custom patch directory"
   173     default n
   174     help
   175       If you have custom patches that you want to be applied, say 'Y' here and
   176       enter the path directory below.
   177       
   178       Note that you must ensure that the patch directory is arranged the same
   179       way the official directory is.
   180 
   181 config CUSTOM_PATCH_ONLY
   182     bool
   183     prompt "Only use custom patches"
   184     default n
   185     depends on CUSTOM_PATCH
   186     help
   187       Don't apply patches coming with crosstool-NG, only those patches available
   188       in the directory below.
   189       
   190       If you say 'N' here, then the patches provided with crosstool-NG will be
   191       applied first, and then your patches.
   192 
   193 config CUSTOM_PATCH_DIR
   194     string
   195     prompt "Custom patch directory"
   196     default ""
   197     depends on CUSTOM_PATCH
   198     help
   199       Enter the custom patch directory here.
   200 
   201 config REMOVE_DOCS
   202     bool
   203     prompt "Remove documentation"
   204     default n
   205     help
   206       Remove the installed documentation (man and info pages).
   207       Gains around 8MiB for a uClibc-based, C and C++ compiler.
   208 
   209 config INSTALL_DIR_RO
   210     bool
   211     prompt "Render the toolchain read-only"
   212     default n
   213     help
   214       Render the directory of the toolchain (and its sub-directories)
   215       read-only.
   216       
   217       Usefull for toolchains destined for production.
   218 
   219 comment "Downloading"
   220 
   221 config FORCE_DOWNLOAD
   222     bool
   223     prompt "Force downloads"
   224     default n
   225     help
   226       Force downloading tarballs, even if one already exists.
   227       
   228       Usefull if you suspect a tarball to be damaged.
   229 
   230 config ONLY_DOWNLOAD
   231     bool
   232     prompt "Stop after downloading tarballs"
   233     default n
   234     help
   235       Only download the tarballs. Exit once it done.
   236       
   237       Usefull to pre-retrieve the tarballs before going off-line.
   238 
   239 config FOOBAR
   240 
   241 if ! ONLY_DOWNLOAD
   242 
   243 comment "Extracting"
   244 
   245 config FORCE_EXTRACT
   246     bool
   247     prompt "Force extractions"
   248     default n
   249     help
   250       Force extraction of already exctracted tarballs.
   251       
   252       Usefull if you suspect a previous extract did not complete (eg. broken
   253       tarball), or you added a new set of patches for this component.
   254 
   255 config ONLY_EXTRACT
   256     bool
   257     prompt "Stop after extracting tarballs"
   258     default n
   259     help
   260       Exit after unpacking and patching tarballs.
   261       
   262       Usefull to look at the code before doing the build itself.
   263 
   264 endif # ! ONLY_DOWNLOAD
   265 
   266 comment "Logging"
   267 
   268 choice
   269     bool
   270     prompt "Maximum log level to see:"
   271     default LOG_INFO
   272 
   273 config LOG_ERROR
   274     bool
   275     prompt "ERROR"
   276     help
   277       The build will be silent.
   278       Only if there is an error will you see a message.
   279 
   280 config LOG_WARN
   281     bool
   282     prompt "WARN"
   283     help
   284       The same as above, plus warnings.
   285 
   286 config LOG_INFO
   287     bool
   288     prompt "INFO"
   289     help
   290       The same as above, plus informational messages (main steps).
   291 
   292 config LOG_EXTRA
   293     bool
   294     prompt "EXTRA"
   295     help
   296       The same as above, plus extra messages (sub-steps).
   297 
   298 config LOG_DEBUG
   299     bool
   300     prompt "DEBUG"
   301     help
   302       The same as above, plus lots of crosstool-NG debug information.
   303 
   304 config LOG_ALL
   305     bool
   306     prompt "ALL"
   307     help
   308       The same as above, plus all components build messages (very noisy!).
   309 
   310 endchoice
   311 
   312 config LOG_LEVEL_MAX
   313     string
   314     default "ERROR"   if LOG_ERROR
   315     default "WARN"    if LOG_WARN
   316     default "INFO"    if LOG_INFO
   317     default "EXTRA"   if LOG_EXTRA
   318     default "DEBUG"   if LOG_DEBUG
   319     default "ALL"     if LOG_ALL
   320 
   321 config LOG_SEE_TOOLS_WARN
   322     bool
   323     prompt "Warnings from the tools' builds"
   324     default n
   325     depends on ! LOG_ERROR
   326     help
   327       Treat warnings from the different tools as crosstool-NG warnings.
   328       If you say 'y' here, then those warnings will be prefixed with
   329       '[WARN ]' instead of the default '[ALL  ]'.
   330 
   331       You can safely say 'n' here. Those warnings will anyway be
   332       recorded in the log file (provided you configured one).
   333 
   334       Tools error will always be logged as crosstool-NG errors.
   335 
   336 config LOG_PROGRESS_BAR
   337     bool
   338     prompt "Progress bar"
   339     default y
   340     depends on ! LOG_ALL
   341     help
   342       If you say 'y' here, you'll be able to see the elapsed time.
   343       
   344       As a bonus, you'll also get a rotating bar (/-\|) showing you
   345       that the build is not stalled (the bar rotates 1/4 every 10 lines
   346       of components build log).
   347 
   348       Note that the elapsed time can stall for a little while if a
   349       component has long commands, as the elapsed time is only updated
   350       each line.
   351 
   352 config LOG_TO_FILE
   353     bool
   354     prompt "Log to a file"
   355     default y
   356     help
   357       Save *full* logs to a file. Even log levels you didn't specify above
   358       will be available in this file. The log file will be named build.log
   359       and stored in the toolchain prefix dir (set above).
   360 
   361       As a bonus, there is a script in tools/extractConfig.sh that is able
   362       to extract the configuration of crosstool-NG from the log file.
   363 
   364       Definitely, say Y.
   365 
   366 config LOG_FILE_COMPRESS
   367     bool
   368     prompt "Compress the log file"
   369     default n
   370     depends on LOG_TO_FILE
   371     help
   372       Compress the log file once the toolchain is successfully built.
   373 
   374 endmenu