config/companion_libs.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed Feb 17 23:41:17 2010 +0100 (2010-02-17)
changeset 1811 35cf5e2f110a
parent 1810 e44f67656c5f
child 1847 c311bf33c64d
permissions -rw-r--r--
comp-libs: make libelf a companion library

When gcc-4.5 is out, it will require libelf. So better make it a
companion library now rather than postponing the ineluctable.
yann@1318
     1
# Companion libraries config options
yann@1318
     2
# Those libraries are required for different versions of gcc,
yann@1318
     3
# and can be used by binutils and gdb (maybe others as well).
yann@602
     4
yann@1318
     5
menu "Companion libraries"
yann@602
     6
yann@1808
     7
comment "FIXME: check real dependencies!!!"
yann@1808
     8
yann@1809
     9
config COMPLIBS
yann@1809
    10
    bool
yann@1809
    11
    default n
yann@1809
    12
yann@1495
    13
config WRAPPER_NEEDED
yann@1495
    14
    bool
yann@1495
    15
    default n
yann@1495
    16
yann@1808
    17
config GMP
yann@602
    18
    bool
yann@1808
    19
    prompt "GMP"
yann@1809
    20
    select COMPLIBS
yann@1495
    21
    select WRAPPER_NEEDED
yann@602
    22
    help
yann@1808
    23
      gcc 4.3.0 and above requires GMP to build some frontends, and some
yann@1808
    24
      other components can use them as well.
yann@1318
    25
      
yann@1808
    26
      This will be automatically selected if you choose gcc>=4.3.0, but you
yann@1808
    27
      can say 'Y' here if you want to build this library for the other
yann@1324
    28
      components (that don't select them by default).
yann@1318
    29
      
yann@602
    30
      The packages that can use GMP and MPFR are:
yann@602
    31
        - binutils
yann@602
    32
        - gcc
yann@602
    33
        - gdb
yann@602
    34
yann@1808
    35
config MPFR
yann@1808
    36
    bool
yann@1808
    37
    prompt "MPFR"
yann@1808
    38
    select GMP
yann@1809
    39
    select COMPLIBS
yann@1808
    40
    select WRAPPER_NEEDED
yann@1808
    41
    help
yann@1808
    42
      gcc 4.3.0 and above requires MPFR to build some frontends, and some
yann@1808
    43
      other components can use them as well.
yann@1808
    44
      
yann@1808
    45
      This will be automatically selected if you choose gcc>=4.3.0, but you
yann@1808
    46
      can say 'Y' here if you want to build this library for the other
yann@1808
    47
      components (that don't select them by default).
yann@1808
    48
      
yann@1808
    49
      The packages that can use GMP and MPFR are:
yann@1808
    50
        - binutils
yann@1808
    51
        - gcc
yann@1808
    52
        - gdb
yann@1808
    53
yann@1808
    54
config PPL
yann@1808
    55
    bool
yann@1808
    56
    prompt "PPL"
yann@1808
    57
    select GMP
yann@1808
    58
    select MPFR
yann@1809
    59
    select COMPLIBS
yann@1808
    60
    select WRAPPER_NEEDED
yann@1808
    61
    help
yann@1808
    62
      gcc-4.4.0 and above requires PPL to build some parts of the optimiser
yann@1808
    63
      (the GRAPHITE loop optimisation, to be precise).
yann@1808
    64
      
yann@1808
    65
      This will be automatically selected if you choose gcc>=4.4.0, but you
yann@1808
    66
      can say 'Y' here, although it is unknown yet if any other component
yann@1808
    67
      can use it.
yann@1808
    68
yann@1808
    69
config CLOOG
yann@1808
    70
    bool
yann@1808
    71
    prompt "GLooG/PPL"
yann@1808
    72
    select GMP
yann@1808
    73
    select MPFR
yann@1808
    74
    select PPL
yann@1809
    75
    select COMPLIBS
yann@1808
    76
    select WRAPPER_NEEDED
yann@1808
    77
    help
yann@1808
    78
      gcc-4.4.0 and above requires CLooG/PPL to build some parts of the
yann@1808
    79
      optimiser (the GRAPHITE loop optimisation, to be precise).
yann@1808
    80
      
yann@1808
    81
      This will be automatically selected if you choose gcc>=4.4.0, but you
yann@1808
    82
      can say 'Y' here, although it is unknown yet if any other component
yann@1808
    83
      can use it.
yann@1808
    84
yann@1808
    85
config MPC
yann@1808
    86
    bool
yann@1808
    87
    prompt "MPC"
yann@1808
    88
    select GMP
yann@1808
    89
    select MPFR
yann@1808
    90
    select PPL
yann@1808
    91
    select CLOOG
yann@1809
    92
    select COMPLIBS
yann@1808
    93
    select WRAPPER_NEEDED
yann@1808
    94
    help
yann@1808
    95
      gcc-4.4.0 and above can also optionally use MPC to enable additional
yann@1808
    96
      optimisations on complex numbers. Although MPC is optional,
yann@1808
    97
      crosstool-NG requires it and uses it to build gcc >= 4.4.0.
yann@1808
    98
      
yann@1808
    99
      This will be automatically selected if you choose gcc>=4.4.0, but you
yann@1808
   100
      can say 'Y' here, although it is unknown yet if any other component
yann@1808
   101
      can use it.
yann@1808
   102
yann@1811
   103
config LIBELF
yann@1811
   104
    bool
yann@1811
   105
#    prompt "libelf"
yann@1811
   106
    select COMPLIBS
yann@1811
   107
    select WRAPPER_NEEDED
yann@1811
   108
    help
yann@1811
   109
      gcc-4.5.0 and above can also use libelf to enable some optimisation
yann@1811
   110
      (LTO, Link-Time Optimisation, to be precise).  Although libelf is
yann@1811
   111
      optional, crosstool-NG requires it and uses it to build gcc >= 4.5.0.
yann@1811
   112
      
yann@1811
   113
      This will be automatically selected if you choose gcc>=4.5.0, but you
yann@1811
   114
      can say 'Y' here, although it is unknown yet if any other component
yann@1811
   115
      can use it.
yann@1811
   116
yann@1810
   117
config GMP_TARGET
yann@1810
   118
    bool
yann@1810
   119
yann@1810
   120
config MPFR_TARGET
yann@1810
   121
    bool
yann@1810
   122
    select GMP_TARGET
yann@1810
   123
yann@1810
   124
config PPL_TARGET
yann@1810
   125
    bool
yann@1810
   126
    select GMP_TARGET
yann@1810
   127
    select MPFR_TARGET
yann@1810
   128
yann@1810
   129
config CLOOG_TARGET
yann@1810
   130
    bool
yann@1810
   131
    select GMP_TARGET
yann@1810
   132
    select MPFR_TARGET
yann@1810
   133
    select PPL_TARGET
yann@1810
   134
yann@1810
   135
config MPC_TARGET
yann@1810
   136
    bool
yann@1810
   137
    select GMP_TARGET
yann@1810
   138
    select MPFR_TARGET
yann@1810
   139
    select PPL_TARGET
yann@1810
   140
    select CLOOG_TARGET
yann@1810
   141
yann@1811
   142
config LIBELF_TARGET
yann@1811
   143
    bool
yann@1811
   144
yann@1810
   145
if GMP || GMP_TARGET
yann@1810
   146
comment "GMP version needed to build for target"
yann@1810
   147
    depends on !GMP
yann@1318
   148
source config/companion_libs/gmp.in
yann@1808
   149
endif
yann@1810
   150
if MPFR || MPFR_TARGET
yann@1810
   151
comment "MPFR version needed to build for target"
yann@1810
   152
    depends on !MPFR
yann@1318
   153
source config/companion_libs/mpfr.in
yann@602
   154
endif
yann@1810
   155
if PPL || PPL_TARGET
yann@1810
   156
comment "PPL version needed to build for target"
yann@1810
   157
    depends on !PPL
yann@1324
   158
source config/companion_libs/ppl.in
yann@1808
   159
endif
yann@1810
   160
if CLOOG || CLOOG_TARGET
yann@1810
   161
comment "CLOOG version needed to build for target"
yann@1810
   162
    depends on !CLOOG
yann@1380
   163
source config/companion_libs/cloog.in
yann@1808
   164
endif
yann@1810
   165
if MPC || MPC_TARGET
yann@1810
   166
comment "MPC version needed to build for target"
yann@1810
   167
    depends on !MPC
yann@1384
   168
source config/companion_libs/mpc.in
yann@1324
   169
endif
yann@1811
   170
if LIBELF || LIBELF_TARGET
yann@1811
   171
comment "libelf version needed to build for target"
yann@1811
   172
    depends on !LIBELF
yann@1811
   173
source config/companion_libs/libelf.in
yann@1811
   174
endif
yann@1324
   175
yann@1398
   176
config FOO
yann@1398
   177
    bool
yann@1398
   178
yann@1398
   179
comment "Companion libraries common options"
yann@1809
   180
    depends on COMPLIBS || WRAPPER_NEEDED
yann@1809
   181
yann@1386
   182
config COMP_LIBS_CHECK
yann@1386
   183
    bool
yann@1398
   184
    prompt "|  Check the companion libraries builds (!!! READ HELP!!!)"
yann@1386
   185
    default n
yann@1810
   186
    depends on COMPLIBS
yann@1386
   187
    help
yann@1386
   188
      It is highly recommended to check the newly built companion libraries.
yann@1386
   189
      Unfortunately, this is a very intensive task, and takes a loooong time.
Yann@1407
   190
      
yann@1386
   191
      Checking the newly built companion libraries is thus disabled by default,
yann@1388
   192
      but it is suggested that you check them at least once on your machine,
yann@1386
   193
      and if they work, disable the check on subsequent builds.
Yann@1407
   194
      
yann@1386
   195
      If you suspect that one (or more) of your companion libraries is the
yann@1386
   196
      cause for incorrectly generated code, you should answer 'Y' here.
yann@1386
   197
      Note however that this will take a really long time. For example,
yann@1386
   198
      building PPL on my machine takes roughly 1'40", while checking it takes
yann@1398
   199
      about 1h40'...
yann@1386
   200
yann@1515
   201
choice
yann@1515
   202
    bool
yann@1515
   203
    prompt "|  Install tools wrapper as:"
yann@1515
   204
    depends on WRAPPER_NEEDED
yann@1515
   205
    default TOOLS_WRAPPER_SHELL
yann@1515
   206
yann@1515
   207
config TOOLS_WRAPPER_SCRIPT
yann@1515
   208
    bool
yann@1515
   209
    prompt "shell script"
yann@1515
   210
    help
yann@1515
   211
      If your host has a shell, then you should say 'Y' here, to use
yann@1515
   212
      a (very very simple) shell script as wrapper.
yann@1515
   213
      
yann@1515
   214
      See docs/overview.txt, section "Tools wrapper".
yann@1515
   215
yann@1515
   216
config TOOLS_WRAPPER_EXEC
yann@1515
   217
    bool
yann@1515
   218
    prompt "executable"
yann@1515
   219
    help
yann@1515
   220
      If your host lacks a shell, then you should say 'Y' here, to use
yann@1515
   221
      an executable.
yann@1515
   222
      
yann@1515
   223
      See docs/overview.txt, section "Tools wrapper".
yann@1515
   224
yann@1515
   225
endchoice
yann@1515
   226
yann@1515
   227
config TOOLS_WRAPPER
yann@1515
   228
    string
yann@1515
   229
    default "script" if TOOLS_WRAPPER_SCRIPT
yann@1515
   230
    default "exec"   if TOOLS_WRAPPER_EXEC
yann@1515
   231
yann@602
   232
endmenu