summaryrefslogtreecommitdiff
path: root/config/global.in
blob: 0523a0cfd56af974d5ed237ba13193ab8801a145 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
# 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
config FOOBAR
    bool
    default n

menu "Paths and misc options"

comment "Crosstool behavior"

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 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 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 by typing:
          make RESTART=<step_nane>
      
      where step_name is one of:
        - kernel_hdr
        - binutils
        - libc_hdr
        - cc_core
        - libfloat
        - libc
        - cc
        - libc_fin
        - debug
      
      It is not currently possible to rstart at any of the debug facility.
      They are treated a s a whole.

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 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 CT-NG, only those patches available in
      the directory below.
      
      If you say 'N' here, then the patches provided with CT-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.

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.

config FOOBAR

comment "Extracting"
    depends on ! ONLY_DOWNLOAD

config FORCE_EXTRACT
    bool
    prompt "Force extractions"
    depends on ! ONLY_DOWNLOAD
    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"
    depends on ! ONLY_DOWNLOAD
    default n
    help
      Exit after unpacking and patching tarballs.
      
      Usefull to look at the code before doing the build itself.

comment "Logging"

choice
    bool
    prompt "Maximum log level to see:"
    default LOG_INFO

config LOG_ERROR
    bool
    prompt "ERROR"
    help
      The build will be silent.
      Only if there is an error will you see a mesage.

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 tool builds as CT warnings"
    default n
    depends on ! LOG_ERROR
    help
      Treat warnings fron the different tools as crosstool 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).

config LOG_PROGRESS_BAR
    bool
    prompt "Progress bar"
    default n
    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.

      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
    string
    prompt "Log file"
    default "${CT_PREFIX_DIR}/${CT_TARGET}.log"
    depends on LOG_TO_FILE
    help
      File name into which to put logs.

endmenu