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