summaryrefslogtreecommitdiff
path: root/config/toolchain.in
blob: bebf5b833e5a77375745add2c810792589682a55 (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
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 SHARED_LIBS
    bool
    prompt "Build shared libraries"
    default y
    help
      Say 'y' here, unless you don't want shared libraries.
      
      You might not want shared librries if you're building for a target that
      don't support it (maybe some nommu targets, for example, or bare metal).

choice
    bool
    prompt "Threading implentation to use:"
    default THREADS_NPTL           if LIBC_SUPPORT_NPTL
    default THREADS_LINUXTHREADS   if LIBC_SUPPORT_LINUXTHREADS && ! LIBC_SUPPORT_NPTL
    default THREADS_NONE           if ! LIBC_SUPPORT_LINUXTHREADS && ! LIBC_SUPPORT_NPTL

config THREADS_NPTL
    bool
    prompt "nptl"
    depends on LIBC_SUPPORT_NPTL

config THREADS_LINUXTHREADS
    bool
    prompt "linuxthreads"
    depends on LIBC_SUPPORT_LINUXTHREADS

config THREADS_NONE
    bool
    prompt "none"

endchoice

config THREADS
    string
    default "nptl"          if THREADS_NPTL
    default "linuxthreads"  if THREADS_LINUXTHREADS
    default "none"          if THREADS_NONE

#config TARGET_MULTILIB
#    bool
#    prompt "Enable 'multilib' support (EXPERIMENTAL)"
#    default n
#    depends on EXPERIMENTAL
#    help
#      Enable the so-called 'multilib' support.
#      
#      With the same toolchain, and on some architectures, you will be able to
#      build big and little endian binaries, soft- and hard-float, etc...
#      
#      See the gcc configure manual at http://gcc.gnu.org/install/configure.html
#      to see what multilib your target supports.
#      
#      It's preferable for now to build two (or more) toolchains, one for each
#      configuration you need to support (eg. one for thumb and one for ARM,
#      etc...). You can use the vendor string to diferentiate those toolchains.

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.
      
      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 (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 "Croos-native (EXPERIMENTAL)"
    depends on EXPERIMENTAL
    help
      Build a cross-native toolchain.
      See docs/overview.txt

config CANADIAN
    bool
    prompt "Canadian (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

config BUILD 
    string
    prompt "Build system tuple"
    default ""
    help
      Canonical name of the machine building the toolchain.
      You should leave empty, unless you really now what you're doing.

config CC_NATIVE
    string
    prompt "Native gcc"
    default "gcc"
    help
      The native C compiler.
      
      You can set this to an alternative compiler if you have more than one
      installed (eg. gcc is gcc-4.1.1 and you want to use gcc-3.4.6).
      
      You can leave this empty as well, in which case gcc will be used.

config HOST
    string
    prompt "Host system tuple"
    default ""
    depends on NATIVE || CANADIAN
    help
      Canonical name of the machine running the toolchain.

config HOST_CC
    string
    prompt "Cross-compiler prefix for host system"
    default "${CT_HOST}-"
    depends on NATIVE || CANADIAN
    help
      C compiler targeting the host system.

config TARGET_CC
    string
    prompt "Cross-compiler prefix for target system"
    default "${CT_TARGET}-"
    depends on CANADIAN
    help
      C compiler targeting the target system.

endmenu