summaryrefslogtreecommitdiff
path: root/config/toolchain.in
blob: 6a97e4cfad1fc3e05646704f5898af69cb75a150 (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
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 SYSROOT_DIR_PREFIX
    string
    prompt "sysroot prefix dir (READ HELP)"
    depends on USE_SYSROOT
    depends on EXPERIMENTAL
    default ""
    help
      *
      * Unless you realy know you need that, leave it empty!
      *
      
      This string will be interpreted as a directory component to be added
      to the sysroot path, just before the actual sysroot directory.
      
      In fact, the sysroot path is constructed as:
        ${CT_PREFIX_DIR}/${CT_TARGET}/${CT_SYSROOT_DIR_PREFIX}/sys-root

config SHARED_LIBS
    bool
    prompt "Build shared libraries"
    depends on ! BARE_METAL
    default y
    help
      Say 'y' here, unless you don't want shared libraries.
      
      You might not want shared libraries if you're building for a target that
      don't support it (maybe some nommu targets, for example, or bare metal).

config TARGET_VENDOR
    string
    prompt "Vendor string"
    default "unknown"
    help
      Vendor part of the target tuple.
      
      A tuple 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.
      Use neither dash nor space, as it breaks things.
      
      Keep the default (unkown) if you don't know better.

config TARGET_ALIAS_SED_EXPR
    string
    prompt "Target sed transform"
    default ""
    help
      Normaly, you'd call your toolchain components (especially gcc) by
      prefixing the target tuple followed by a dash and the component name
      (eg. armeb-unknown-linux-uclibc-gcc).
      
      You can enter here a sed expression to be applied to ${CT_TARGET} to
      create an alias for your toolchain.
      
      For example, "s/${CT_TARGET_VENDOR}/foobar/" (without the double quotes)
      will create the armeb-foobar-linux-uclibc alias to the above-mentioned
      toolchain.
      
      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 TARGET_ALIAS
    string
    prompt "Target alias"
    default ""
    help
      Normaly, you'd call your toolchain components (especially gcc) by
      prefixing the target tuple 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).

comment "Toolchain type"

choice
    bool
    prompt "Type"
    default CROSS

config NATIVE
    bool
    prompt "Native       (NO CODE!) (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 "Cross-native (NO CODE!) (EXPERIMENTAL)"
    depends on EXPERIMENTAL
    help
      Build a cross-native toolchain.
      See docs/overview.txt

config CANADIAN
    bool
    prompt "Canadian     (NO CODE!) (EXPERIMENTAL)"
    depends on EXPERIMENTAL
    help
      Build a canadian-toolchain.
      See docs/overview.txt

endchoice

config TOOLCHAIN_TYPE
    string
    default "native"        if NATIVE
    default "cross"         if CROSS
    default "cross-native"  if CROSS_NATIVE
    default "canadian"      if CANADIAN

comment "Build system"

config BUILD 
    string
    prompt "|  Tuple        (READ HELP!)"
    default ""
    help
      Canonical name of the machine building the toolchain.
      You should leave empty, unless you really now what you're doing.

config BUILD_PREFIX
    string
    prompt "|  Tools prefix (READ HELP!)"
    default ""
    help
      If you have your *build system* tools in a weird location, and/or
      they have an unusual prefix, enter it here.
      
      Usually, you should leave that empty!
      
      Eg.:
        If your *build* gcc is /opt/build-tools/bin/weird-gcc then you
        should enter:
            /opt/build-tools/bin/weird-
        
        If your *build* gcc is /opt/build-tools/bin/weird-gcc and
        /opt/build-tools/bin is in your PATH, you should enter:
            weird-
        
        If your *build* gcc is /opt/build-tools/bin/gcc then you
        should enter (do not forget to add the trailing '/'):
            /opt/build-tools/bin/

config BUILD_SUFFIX
    string
    prompt "|  Tools suffix (READ HELP!)"
    default ""
    help
      If your *build system* tools have an unusual suffix, enter it
      here.
      
      Usually, you should leave that empty!
      
      Eg.:
        If your 'default' gcc is gcc 4.3.1, but you also have gcc-3.4.2
        installed as gcc-3.4, then you should enter:
            -3.4
      
      It can happen that some of the tools have a suffix, when others
      don't, eg. you can have 'gcc-3.4' and 'ar'. crosstool-NG accounts
      for that by checking the tools without the suffix in case it can
      not find some of the tool.

if CANADIAN

comment "Host system"

config HOST
    string
    prompt "|  Tuple        (READ HELP!)"
    default ""
    help
      Canonical name of the machine running the toolchain.

config HOST_PREFIX
    string
    prompt "|  Tools prefix (READ HELP!)"
    default ""
    help
      If you have your *host system* tools in a weird location, and/or
      they have an unusual prefix, enter it here.
      
      Usually, you should leave that empty!
      
      Eg.:
        If your *host* gcc is /opt/host-tools/bin/weird-gcc then you
        should enter:
            /opt/host-tools/bin/weird-
        
        If your *host* gcc is /opt/host-tools/bin/weird-gcc and
        /opt/host-tools/bin is in your PATH, you should enter:
            weird-
        
        If your *host* gcc is /opt/host-tools/bin/gcc then you
        should enter (do not forget to add the trailing '/'):
            /opt/host-tools/bin/

config HOST_SUFFIX
    string
    prompt "|  Tools suffix (READ HELP!)"
    default ""
    help
      If your *host system* tools have an unusual suffix, enter it
      here.
      
      Usually, you should leave that empty!
      
      Eg.:
        If your 'default' gcc is gcc 4.3.1, but you also have gcc-3.4.2
        installed as gcc-3.4, then you should enter:
            -3.4
      
      It can happen that some of the tools have a suffix, when others
      don't, eg. you can have 'gcc-3.4' and 'ar'. crosstool-NG accounts
      for that by checking the tools without the suffix in case it can
      not find some of the tool.

endif # CANADIAN

if CROSS_NATIVE || CANADIAN

comment "Target system"

config TARGET_PREFIX
    string
    prompt "|  Tools prefix (READ HELP!)"
    default ""
    help
      If you have your *target system* tools in a weird location, and/or
      they have an unusual prefix, enter it here.
      
      Usually, you should leave that empty!
      
      Eg.:
        If your *target* gcc is /opt/target-tools/bin/weird-gcc then you
        should enter:
            /opt/target-tools/bin/weird-
        
        If your *target* gcc is /opt/target-tools/bin/weird-gcc and
        /opt/target-tools/bin is in your PATH, you should enter:
            weird-
        
        If your *target* gcc is /opt/target-tools/bin/gcc then you
        should enter (do not forget to add the trailing '/'):
            /opt/target-tools/bin/

config TARGET_SUFFIX
    string
    prompt "|  Tools suffix (READ HELP!)"
    default ""
    help
      If your *target system* tools have an unusual suffix, enter it
      here.
      
      Usually, you should leave that empty!
      
      Eg.:
        If your 'default' gcc is gcc 4.3.1, but you also have gcc-3.4.2
        installed as gcc-3.4, then you should enter:
            -3.4
      
      It can happen that some of the tools have a suffix, when others
      don't, eg. you can have 'gcc-3.4' and 'ar'. crosstool-NG accounts
      for that by checking the tools without the suffix in case it can
      not find some of the tool.

endif # CROSS_NATIVE || CANADIAN

endmenu