summaryrefslogtreecommitdiff
path: root/config/companion_libs.in
blob: 386d382f98a252f681f370ebaa33551071f45cbf (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
# Companion libraries config options
# Those libraries are required for different versions of gcc,
# and can be used by binutils and gdb (maybe others as well).

menu "Companion libraries"

comment "FIXME: check real dependencies!!!"

config COMPLIBS
    bool
    default n

config WRAPPER_NEEDED
    bool
    default n

config GMP
    bool
    select COMPLIBS
    help
      gcc 4.3.0 and above requires GMP to build some frontends, and some
      other components can use them as well.
      
      This will be automatically selected if you choose gcc>=4.3.0, but you
      can say 'Y' here if you want to build this library for the other
      components (that don't select them by default).
      
      The packages that can use GMP and MPFR are:
        - binutils
        - gcc
        - gdb

config MPFR
    bool
    select GMP
    select COMPLIBS
    help
      gcc 4.3.0 and above requires MPFR to build some frontends, and some
      other components can use them as well.
      
      This will be automatically selected if you choose gcc>=4.3.0, but you
      can say 'Y' here if you want to build this library for the other
      components (that don't select them by default).
      
      The packages that can use GMP and MPFR are:
        - binutils
        - gcc
        - gdb

config PPL
    bool
    select GMP
    select MPFR
    select COMPLIBS
    help
      gcc-4.4.0 and above requires PPL to build some parts of the optimiser
      (the GRAPHITE loop optimisation, to be precise).
      
      This will be automatically selected if you choose gcc>=4.4.0, but you
      can say 'Y' here, although it is unknown yet if any other component
      can use it.

config CLOOG
    bool
    select GMP
    select MPFR
    select PPL
    select COMPLIBS
    help
      gcc-4.4.0 and above requires CLooG/PPL to build some parts of the
      optimiser (the GRAPHITE loop optimisation, to be precise).
      
      This will be automatically selected if you choose gcc>=4.4.0, but you
      can say 'Y' here, although it is unknown yet if any other component
      can use it.

config MPC
    bool
    select GMP
    select MPFR
    select PPL
    select CLOOG
    select COMPLIBS
    help
      gcc-4.4.0 and above can also optionally use MPC to enable additional
      optimisations on complex numbers. Although MPC is optional,
      crosstool-NG requires it and uses it to build gcc >= 4.4.0.
      
      This will be automatically selected if you choose gcc>=4.4.0, but you
      can say 'Y' here, although it is unknown yet if any other component
      can use it.

config LIBELF
    bool
    select COMPLIBS
    help
      gcc-4.5.0 and above can also use libelf to enable some optimisation
      (LTO, Link-Time Optimisation, to be precise).  Although libelf is
      optional, crosstool-NG requires it and uses it to build gcc >= 4.5.0.
      
      This will be automatically selected if you choose gcc>=4.5.0, but you
      can say 'Y' here, although it is unknown yet if any other component
      can use it.

config GMP_TARGET
    bool

config MPFR_TARGET
    bool
    select GMP_TARGET

config PPL_TARGET
    bool
    select GMP_TARGET
    select MPFR_TARGET

config CLOOG_TARGET
    bool
    select GMP_TARGET
    select MPFR_TARGET
    select PPL_TARGET

config MPC_TARGET
    bool
    select GMP_TARGET
    select MPFR_TARGET
    select PPL_TARGET
    select CLOOG_TARGET

config LIBELF_TARGET
    bool

if GMP || GMP_TARGET
comment "GMP version needed to build for target"
    depends on !GMP
source "config/companion_libs/gmp.in"
endif
if MPFR || MPFR_TARGET
comment "MPFR version needed to build for target"
    depends on !MPFR
source "config/companion_libs/mpfr.in"
endif
if PPL || PPL_TARGET
comment "PPL version needed to build for target"
    depends on !PPL
source "config/companion_libs/ppl.in"
endif
if CLOOG || CLOOG_TARGET
comment "CLOOG version needed to build for target"
    depends on !CLOOG
source "config/companion_libs/cloog.in"
endif
if MPC || MPC_TARGET
comment "MPC version needed to build for target"
    depends on !MPC
source "config/companion_libs/mpc.in"
endif
if LIBELF || LIBELF_TARGET
comment "libelf version needed to build for target"
    depends on !LIBELF
source "config/companion_libs/libelf.in"
endif

config FOO
    bool

if COMPLIBS

comment "Companion libraries common options"

config COMPLIBS_CHECK
    bool
    prompt "Check the companion libraries builds (!!! READ HELP!!!)"
    default n
    help
      It is highly recommended to check the newly built companion libraries.
      Unfortunately, this is a very intensive task, and takes a loooong time.
      
      Checking the newly built companion libraries is thus disabled by default,
      but it is suggested that you check them at least once on your machine,
      and if they work, disable the check on subsequent builds.
      
      If you suspect that one (or more) of your companion libraries is the
      cause for incorrectly generated code, you should answer 'Y' here.
      Note however that this will take a really long time. For example,
      building PPL on my machine takes roughly 1'40", while checking it takes
      about 1h40'...

config COMPLIBS_SHARED
    bool
    prompt "Build shared companion libraries"
    default n
    depends on COMPLIBS
    select WRAPPER_NEEDED
    help
      By default, the companion libraries will be build static. If you want to
      build shared libraries, then you can say 'Y' here, but a wrapper will be
      needed (see docs/overview.txt,section "Tools wrapper").
      
      It is highly recommended that you keep static libraries.

choice
    bool
    prompt "|  Install tools wrapper as:"
    depends on WRAPPER_NEEDED
    default TOOLS_WRAPPER_SHELL

config TOOLS_WRAPPER_SCRIPT
    bool
    prompt "shell script"
    help
      If your host has a shell, then you should say 'Y' here, to use
      a (very very simple) shell script as wrapper.
      
      See docs/overview.txt, section "Tools wrapper".

config TOOLS_WRAPPER_EXEC
    bool
    prompt "executable"
    help
      If your host lacks a shell, then you should say 'Y' here, to use
      an executable.
      
      See docs/overview.txt, section "Tools wrapper".

endchoice

config TOOLS_WRAPPER
    string
    default "script" if TOOLS_WRAPPER_SCRIPT
    default "exec"   if TOOLS_WRAPPER_EXEC

endif # COMPLIBS

endmenu