config/companion_libs.in
author Anthony Foiani <anthony.foiani@gmail.com>
Thu May 19 23:06:16 2011 +0200 (2011-05-19)
branch1.11
changeset 2464 4b844234d214
parent 2227 5158aa602e58
child 2484 d1a8c2ae7946
permissions -rw-r--r--
complibs/ppl: build only C and C++ interfaces for PPL

By default, PPL wants to build interfaces for any of a variety of
langauges it finds on the local host (python, java, possibly perl, also
more esoteric languages such as ocaml and prolog).

These extra interfaces can double the compile time for the library. For
single-process builds, I found a savings of more than 40%:

default / j1: 716s total, 143.2s avg, 0.52s stdev
just_c / j1: 406s total, 81.2s avg, 0.33s stdev
just_c_cpp / j1: 413s total, 82.6s avg, 0.22s stdev

And for multi-process builds, it approached 50%:

default / j4: 625s total, 125.0s avg, 0.57s stdev
just_c / j4: 338s total, 67.6s avg, 1.25s stdev
just_c_cpp / j4: 327s total, 65.4s avg, 0.36s stdev

Since the PPL we build within ct-ng is only used by GCC, we only need to
build the C and C++ interfaces.

Signed-Off-By: Anthony Foiani <anthony.foiani@gmail.com>
(transplanted from ec30b191f0e3fe9bc73199f0bcb8d789db17aa92)
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@2131
     7
config COMPLIBS_NEEDED
yann@2131
     8
    bool
yann@2131
     9
    default n
yann@2131
    10
yann@2131
    11
config GMP_NEEDED
yann@2131
    12
    bool
yann@2131
    13
    default n
yann@2131
    14
    select GMP
yann@2131
    15
    select COMPLIBS_NEEDED
yann@2131
    16
yann@2131
    17
config MPFR_NEEDED
yann@2131
    18
    bool
yann@2131
    19
    default n
yann@2131
    20
    select MPFR
yann@2131
    21
    select COMPLIBS_NEEDED
yann@2131
    22
yann@2131
    23
config PPL_NEEDED
yann@2131
    24
    bool
yann@2131
    25
    default n
yann@2131
    26
    select PPL
yann@2131
    27
    select COMPLIBS_NEEDED
yann@2131
    28
yann@2131
    29
config CLOOG_NEEDED
yann@2131
    30
    bool
yann@2131
    31
    default n
yann@2131
    32
    select CLOOG
yann@2131
    33
    select COMPLIBS_NEEDED
yann@2131
    34
yann@2131
    35
config MPC_NEEDED
yann@2131
    36
    bool
yann@2131
    37
    default n
yann@2131
    38
    select MPC
yann@2131
    39
    select COMPLIBS_NEEDED
yann@2131
    40
yann@2131
    41
config LIBELF_NEEDED
yann@2131
    42
    bool
yann@2131
    43
    default n
yann@2131
    44
    select LIBELF
yann@2131
    45
    select COMPLIBS_NEEDED
yann@2131
    46
yann@1809
    47
config COMPLIBS
yann@1809
    48
    bool
yann@1809
    49
    default n
yann@1809
    50
yann@1808
    51
config GMP
yann@602
    52
    bool
yann@1809
    53
    select COMPLIBS
yann@602
    54
yann@1808
    55
config MPFR
yann@1808
    56
    bool
yann@1808
    57
    select GMP
yann@1809
    58
    select COMPLIBS
yann@1808
    59
yann@1808
    60
config PPL
yann@1808
    61
    bool
yann@1808
    62
    select GMP
yann@1809
    63
    select COMPLIBS
yann@1808
    64
yann@1808
    65
config CLOOG
yann@1808
    66
    bool
yann@1808
    67
    select GMP
yann@1808
    68
    select PPL
yann@1809
    69
    select COMPLIBS
yann@1808
    70
yann@1808
    71
config MPC
yann@1808
    72
    bool
yann@1808
    73
    select GMP
yann@1808
    74
    select MPFR
yann@1809
    75
    select COMPLIBS
yann@1808
    76
yann@1811
    77
config LIBELF
yann@1811
    78
    bool
yann@1811
    79
    select COMPLIBS
yann@1811
    80
yann@1811
    81
config LIBELF_TARGET
yann@1811
    82
    bool
yann@1811
    83
yann@2099
    84
if GMP
yann@1870
    85
source "config/companion_libs/gmp.in"
yann@1808
    86
endif
yann@2099
    87
if MPFR
yann@1870
    88
source "config/companion_libs/mpfr.in"
yann@602
    89
endif
yann@2099
    90
if PPL
yann@1870
    91
source "config/companion_libs/ppl.in"
yann@1808
    92
endif
yann@2099
    93
if CLOOG
yann@1870
    94
source "config/companion_libs/cloog.in"
yann@1808
    95
endif
yann@2099
    96
if MPC
yann@1870
    97
source "config/companion_libs/mpc.in"
yann@1324
    98
endif
yann@1811
    99
if LIBELF || LIBELF_TARGET
yann@1811
   100
comment "libelf version needed to build for target"
yann@1811
   101
    depends on !LIBELF
yann@1870
   102
source "config/companion_libs/libelf.in"
yann@1811
   103
endif
yann@1324
   104
yann@1398
   105
config FOO
yann@1398
   106
    bool
yann@1398
   107
yann@1892
   108
if COMPLIBS
yann@1892
   109
yann@1398
   110
comment "Companion libraries common options"
yann@1809
   111
yann@1890
   112
config COMPLIBS_CHECK
yann@1386
   113
    bool
yann@1892
   114
    prompt "Check the companion libraries builds (!!! READ HELP!!!)"
yann@1386
   115
    default n
yann@1386
   116
    help
yann@1386
   117
      It is highly recommended to check the newly built companion libraries.
yann@1386
   118
      Unfortunately, this is a very intensive task, and takes a loooong time.
Yann@1407
   119
      
yann@1386
   120
      Checking the newly built companion libraries is thus disabled by default,
yann@1388
   121
      but it is suggested that you check them at least once on your machine,
yann@1386
   122
      and if they work, disable the check on subsequent builds.
Yann@1407
   123
      
yann@1386
   124
      If you suspect that one (or more) of your companion libraries is the
yann@1386
   125
      cause for incorrectly generated code, you should answer 'Y' here.
yann@1386
   126
      Note however that this will take a really long time. For example,
yann@1386
   127
      building PPL on my machine takes roughly 1'40", while checking it takes
yann@1398
   128
      about 1h40'...
yann@1386
   129
yann@1892
   130
endif # COMPLIBS
yann@1892
   131
yann@602
   132
endmenu