summaryrefslogtreecommitdiff
path: root/config/companion_libs.in
blob: 7437d1ffe44cd74183102b8527cfa6e09564c0d8 (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
# 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"

config WRAPPER_NEEDED
    bool
    default n

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

if GMP_MPFR
source config/companion_libs/gmp.in
source config/companion_libs/mpfr.in
endif

config PPL_CLOOG_MPC
    bool
    prompt "PPL, GLooG/PPL and MPC"
    select GMP_MPFR
    select WRAPPER_NEEDED
    help
      gcc-4.4.0 and above requires PPL and CLooG/PPL to build some parts
      of the optimiser (GRAPHITE loop optimisation, to be precise).
      
      In addition to those, gcc-4.4 also optionally uses 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.
      
      These 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 them.

if PPL_CLOOG_MPC
source config/companion_libs/ppl.in
source config/companion_libs/cloog.in
source config/companion_libs/mpc.in
endif

config FOO
    bool

comment "Companion libraries common options"
    depends on GMP_MPFR || PPL_CLOOG_MPC

config COMP_LIBS_CHECK
    bool
    prompt "|  Check the companion libraries builds (!!! READ HELP!!!)"
    depends on GMP_MPFR || PPL_CLOOG_MPC
    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 COMP_LIBS_TARGET
    bool
    prompt "|  Build companion libraries for the target"
    depends on GMP_MPFR || PPL_CLOOG_MPC
    depends on ! BARE_METAL
    default n
    help
      Also build companion libraries for the target. This can be usefull if
      you want to later build a compiler that will run on the target, or if
      you want to run gdb natively on the target.
      
      Please note that for now, crosstool-NG can only build GMP and MPFR so.

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

endmenu