config/toolchain.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Aug 30 00:57:40 2009 +0200 (2009-08-30)
changeset 1495 2542421e3321
parent 1493 0dce3a3986a1
child 1501 3bf289921a80
permissions -rw-r--r--
tools wrapper: introduce the silent WRAPPER_NEEDED config option

Add the WRAPPER_NEEDED silent config option, that can be selected by
components that require it (companion libs so far).
Rely on this config option when deciding to install the wrapper,
instead of checking GMP/MPFR or PPL/CLoog/MPC.
yann@41
     1
menu "Toolchain options"
yann@41
     2
yann@41
     3
comment "General toolchain options"
yann@41
     4
yann@41
     5
config USE_SYSROOT
yann@41
     6
    bool
yann@41
     7
    prompt "Use sysroot'ed toolchain"
yann@41
     8
    default y
yann@41
     9
    help
yann@41
    10
      Use the 'shinny new' sysroot feature of gcc: libraries split between
yann@41
    11
      prefix/target/sys-root/lib and prefix/target/sys-root/usr/lib
yann@41
    12
      
yann@41
    13
      You definitely want to say 'Y' here. Yes you do. I know you do. Say 'Y'.
yann@41
    14
yann@1219
    15
config SYSROOT_DIR_PREFIX
yann@1219
    16
    string
yann@1219
    17
    prompt "sysroot prefix dir (READ HELP)"
yann@1219
    18
    depends on USE_SYSROOT
yann@1219
    19
    default ""
yann@1219
    20
    help
yann@1219
    21
      *
yann@1219
    22
      * Unless you realy know you need that, leave it empty!
yann@1219
    23
      *
yann@1219
    24
      
yann@1219
    25
      This string will be interpreted as a directory component to be added
yann@1219
    26
      to the sysroot path, just before the actual sysroot directory.
yann@1219
    27
      
yann@1219
    28
      In fact, the sysroot path is constructed as:
yann@1219
    29
        ${CT_PREFIX_DIR}/${CT_TARGET}/${CT_SYSROOT_DIR_PREFIX}/sys-root
yann@1219
    30
yann@41
    31
config SHARED_LIBS
yann@41
    32
    bool
yann@41
    33
    prompt "Build shared libraries"
yann@850
    34
    depends on ! BARE_METAL
yann@41
    35
    default y
yann@41
    36
    help
yann@41
    37
      Say 'y' here, unless you don't want shared libraries.
yann@41
    38
      
yann@803
    39
      You might not want shared libraries if you're building for a target that
yann@41
    40
      don't support it (maybe some nommu targets, for example, or bare metal).
yann@41
    41
yann@1220
    42
comment "Tuple completion and aliasing"
yann@1220
    43
yann@41
    44
config TARGET_VENDOR
yann@41
    45
    string
yann@1220
    46
    prompt "Tuple's vendor string"
yann@41
    47
    default "unknown"
yann@41
    48
    help
yann@335
    49
      Vendor part of the target tuple.
yann@41
    50
      
yann@335
    51
      A tuple is of the form arch-vendor-kernel-system.
yann@41
    52
      You can set the second part, vendor, to whatever you see fit.
yann@41
    53
      Use a single word, or use underscores "_" to separate words.
yann@1094
    54
      Use neither dash nor space, as it breaks things.
yann@41
    55
      
yann@41
    56
      Keep the default (unkown) if you don't know better.
yann@41
    57
yann@321
    58
config TARGET_ALIAS_SED_EXPR
yann@321
    59
    string
yann@1220
    60
    prompt "Tuple's sed transform"
yann@321
    61
    default ""
yann@321
    62
    help
yann@321
    63
      Normaly, you'd call your toolchain components (especially gcc) by
yann@335
    64
      prefixing the target tuple followed by a dash and the component name
yann@321
    65
      (eg. armeb-unknown-linux-uclibc-gcc).
yann@321
    66
      
yann@321
    67
      You can enter here a sed expression to be applied to ${CT_TARGET} to
yann@321
    68
      create an alias for your toolchain.
yann@321
    69
      
yann@321
    70
      For example, "s/${CT_TARGET_VENDOR}/foobar/" (without the double quotes)
yann@321
    71
      will create the armeb-foobar-linux-uclibc alias to the above-mentioned
yann@321
    72
      toolchain.
yann@321
    73
      
yann@321
    74
      You shouldn't need to enter anything here, unless you plan to manually
yann@321
    75
      call the tools (autotools-based ./configure will use the standard name).
yann@321
    76
yann@41
    77
config TARGET_ALIAS
yann@41
    78
    string
yann@1220
    79
    prompt "Tuple's alias"
yann@41
    80
    default ""
yann@41
    81
    help
yann@321
    82
      Normaly, you'd call your toolchain components (especially gcc) by
yann@335
    83
      prefixing the target tuple followed by a dash and the component name
yann@41
    84
      (eg. armeb-unknown-linux-uclibc-gcc).
yann@41
    85
      
yann@41
    86
      You can enter a shortcut here. This string will be used to create
yann@41
    87
      symbolic links to the toolchain tools (eg. if you enter "foo-bar" here,
yann@41
    88
      then gcc for your toolchain will also be available as "foo-bar-gcc" along
yann@41
    89
      with the original name).
yann@41
    90
      
yann@41
    91
      You shouldn't need to enter anything here, unless you plan to manually
yann@41
    92
      call the tools (autotools-based ./configure will use the standard name).
yann@41
    93
yann@41
    94
comment "Toolchain type"
yann@41
    95
yann@41
    96
choice
yann@41
    97
    bool
yann@41
    98
    prompt "Type"
yann@41
    99
    default CROSS
yann@41
   100
yann@41
   101
config NATIVE
yann@41
   102
    bool
yann@1041
   103
    prompt "Native       (NO CODE!) (EXPERIMENTAL)"
yann@41
   104
    depends on EXPERIMENTAL
yann@41
   105
    help
yann@41
   106
      Build a native toolchain.
yann@41
   107
      See docs/overview.txt
yann@41
   108
yann@41
   109
config CROSS
yann@41
   110
    bool
yann@41
   111
    prompt "Cross"
yann@41
   112
    help
yann@41
   113
      Build a cross-toolchain.
yann@41
   114
      See docs/overview.txt
yann@41
   115
yann@41
   116
config CROSS_NATIVE
yann@41
   117
    bool
yann@1041
   118
    prompt "Cross-native (NO CODE!) (EXPERIMENTAL)"
yann@41
   119
    depends on EXPERIMENTAL
yann@41
   120
    help
yann@41
   121
      Build a cross-native toolchain.
yann@41
   122
      See docs/overview.txt
yann@41
   123
yann@41
   124
config CANADIAN
yann@41
   125
    bool
yann@1425
   126
    prompt "Canadian     (EXPERIMENTAL)"
yann@41
   127
    depends on EXPERIMENTAL
yann@41
   128
    help
yann@41
   129
      Build a canadian-toolchain.
yann@41
   130
      See docs/overview.txt
yann@41
   131
yann@41
   132
endchoice
yann@41
   133
yann@96
   134
config TOOLCHAIN_TYPE
yann@96
   135
    string
yann@96
   136
    default "native"        if NATIVE
yann@96
   137
    default "cross"         if CROSS
yann@96
   138
    default "cross-native"  if CROSS_NATIVE
yann@96
   139
    default "canadian"      if CANADIAN
yann@96
   140
yann@1041
   141
comment "Build system"
yann@1041
   142
yann@41
   143
config BUILD 
yann@41
   144
    string
yann@1041
   145
    prompt "|  Tuple        (READ HELP!)"
yann@41
   146
    default ""
yann@41
   147
    help
yann@41
   148
      Canonical name of the machine building the toolchain.
yann@41
   149
      You should leave empty, unless you really now what you're doing.
yann@41
   150
yann@1041
   151
config BUILD_PREFIX
yann@41
   152
    string
yann@1041
   153
    prompt "|  Tools prefix (READ HELP!)"
yann@1041
   154
    default ""
yann@41
   155
    help
yann@1041
   156
      If you have your *build system* tools in a weird location, and/or
yann@1041
   157
      they have an unusual prefix, enter it here.
yann@41
   158
      
yann@1041
   159
      Usually, you should leave that empty!
yann@41
   160
      
yann@1041
   161
      Eg.:
yann@1041
   162
        If your *build* gcc is /opt/build-tools/bin/weird-gcc then you
yann@1041
   163
        should enter:
yann@1041
   164
            /opt/build-tools/bin/weird-
yann@1041
   165
        
yann@1041
   166
        If your *build* gcc is /opt/build-tools/bin/weird-gcc and
yann@1041
   167
        /opt/build-tools/bin is in your PATH, you should enter:
yann@1041
   168
            weird-
yann@1041
   169
        
yann@1041
   170
        If your *build* gcc is /opt/build-tools/bin/gcc then you
yann@1041
   171
        should enter (do not forget to add the trailing '/'):
yann@1041
   172
            /opt/build-tools/bin/
yann@1041
   173
yann@1041
   174
config BUILD_SUFFIX
yann@1041
   175
    string
yann@1041
   176
    prompt "|  Tools suffix (READ HELP!)"
yann@1041
   177
    default ""
yann@1041
   178
    help
yann@1041
   179
      If your *build system* tools have an unusual suffix, enter it
yann@1041
   180
      here.
yann@1041
   181
      
yann@1041
   182
      Usually, you should leave that empty!
yann@1041
   183
      
yann@1041
   184
      Eg.:
yann@1041
   185
        If your 'default' gcc is gcc 4.3.1, but you also have gcc-3.4.2
yann@1041
   186
        installed as gcc-3.4, then you should enter:
yann@1041
   187
            -3.4
yann@1041
   188
      
yann@1041
   189
      It can happen that some of the tools have a suffix, when others
yann@1041
   190
      don't, eg. you can have 'gcc-3.4' and 'ar'. crosstool-NG accounts
yann@1041
   191
      for that by checking the tools without the suffix in case it can
yann@1041
   192
      not find some of the tool.
yann@1041
   193
yann@1041
   194
if CANADIAN
yann@1041
   195
yann@1041
   196
comment "Host system"
yann@41
   197
yann@41
   198
config HOST
yann@41
   199
    string
yann@1041
   200
    prompt "|  Tuple        (READ HELP!)"
yann@41
   201
    default ""
yann@41
   202
    help
yann@41
   203
      Canonical name of the machine running the toolchain.
yann@41
   204
yann@1041
   205
config HOST_PREFIX
yann@41
   206
    string
yann@1041
   207
    prompt "|  Tools prefix (READ HELP!)"
yann@1041
   208
    default ""
yann@41
   209
    help
yann@1041
   210
      If you have your *host system* tools in a weird location, and/or
yann@1041
   211
      they have an unusual prefix, enter it here.
yann@1041
   212
      
yann@1041
   213
      Usually, you should leave that empty!
yann@1041
   214
      
yann@1041
   215
      Eg.:
yann@1041
   216
        If your *host* gcc is /opt/host-tools/bin/weird-gcc then you
yann@1041
   217
        should enter:
yann@1041
   218
            /opt/host-tools/bin/weird-
yann@1041
   219
        
yann@1041
   220
        If your *host* gcc is /opt/host-tools/bin/weird-gcc and
yann@1041
   221
        /opt/host-tools/bin is in your PATH, you should enter:
yann@1041
   222
            weird-
yann@1041
   223
        
yann@1041
   224
        If your *host* gcc is /opt/host-tools/bin/gcc then you
yann@1041
   225
        should enter (do not forget to add the trailing '/'):
yann@1041
   226
            /opt/host-tools/bin/
yann@41
   227
yann@1041
   228
config HOST_SUFFIX
yann@41
   229
    string
yann@1041
   230
    prompt "|  Tools suffix (READ HELP!)"
yann@1041
   231
    default ""
yann@41
   232
    help
yann@1041
   233
      If your *host system* tools have an unusual suffix, enter it
yann@1041
   234
      here.
yann@1041
   235
      
yann@1041
   236
      Usually, you should leave that empty!
yann@1041
   237
      
yann@1041
   238
      Eg.:
yann@1041
   239
        If your 'default' gcc is gcc 4.3.1, but you also have gcc-3.4.2
yann@1041
   240
        installed as gcc-3.4, then you should enter:
yann@1041
   241
            -3.4
yann@1041
   242
      
yann@1041
   243
      It can happen that some of the tools have a suffix, when others
yann@1041
   244
      don't, eg. you can have 'gcc-3.4' and 'ar'. crosstool-NG accounts
yann@1041
   245
      for that by checking the tools without the suffix in case it can
yann@1041
   246
      not find some of the tool.
yann@1041
   247
yann@1041
   248
endif # CANADIAN
yann@1041
   249
yann@1041
   250
if CROSS_NATIVE || CANADIAN
yann@1041
   251
yann@1041
   252
comment "Target system"
yann@1041
   253
yann@1041
   254
config TARGET_PREFIX
yann@1041
   255
    string
yann@1041
   256
    prompt "|  Tools prefix (READ HELP!)"
yann@1041
   257
    default ""
yann@1041
   258
    help
yann@1041
   259
      If you have your *target system* tools in a weird location, and/or
yann@1041
   260
      they have an unusual prefix, enter it here.
yann@1041
   261
      
yann@1041
   262
      Usually, you should leave that empty!
yann@1041
   263
      
yann@1041
   264
      Eg.:
yann@1041
   265
        If your *target* gcc is /opt/target-tools/bin/weird-gcc then you
yann@1041
   266
        should enter:
yann@1041
   267
            /opt/target-tools/bin/weird-
yann@1041
   268
        
yann@1041
   269
        If your *target* gcc is /opt/target-tools/bin/weird-gcc and
yann@1041
   270
        /opt/target-tools/bin is in your PATH, you should enter:
yann@1041
   271
            weird-
yann@1041
   272
        
yann@1041
   273
        If your *target* gcc is /opt/target-tools/bin/gcc then you
yann@1041
   274
        should enter (do not forget to add the trailing '/'):
yann@1041
   275
            /opt/target-tools/bin/
yann@1041
   276
yann@1041
   277
config TARGET_SUFFIX
yann@1041
   278
    string
yann@1041
   279
    prompt "|  Tools suffix (READ HELP!)"
yann@1041
   280
    default ""
yann@1041
   281
    help
yann@1041
   282
      If your *target system* tools have an unusual suffix, enter it
yann@1041
   283
      here.
yann@1041
   284
      
yann@1041
   285
      Usually, you should leave that empty!
yann@1041
   286
      
yann@1041
   287
      Eg.:
yann@1041
   288
        If your 'default' gcc is gcc 4.3.1, but you also have gcc-3.4.2
yann@1041
   289
        installed as gcc-3.4, then you should enter:
yann@1041
   290
            -3.4
yann@1041
   291
      
yann@1041
   292
      It can happen that some of the tools have a suffix, when others
yann@1041
   293
      don't, eg. you can have 'gcc-3.4' and 'ar'. crosstool-NG accounts
yann@1041
   294
      for that by checking the tools without the suffix in case it can
yann@1041
   295
      not find some of the tool.
yann@1041
   296
yann@1041
   297
endif # CROSS_NATIVE || CANADIAN
yann@41
   298
yann@1493
   299
# Kept as a separate if block, even if it could go into the above block,
yann@1493
   300
# because it seems better. No real reason, only that it seems right...
yann@1493
   301
if CANADIAN
yann@1493
   302
yann@1493
   303
comment "Host specifics"
yann@1493
   304
yann@1493
   305
choice
yann@1493
   306
    bool
yann@1493
   307
    prompt "|  Install tools wrapper as:"
yann@1495
   308
    depends on WRAPPER_NEEDED
yann@1493
   309
    default TOOLS_WRAPPER_SHELL
yann@1493
   310
yann@1493
   311
config TOOLS_WRAPPER_SCRIPT
yann@1493
   312
    bool
yann@1493
   313
    prompt "shell script"
yann@1493
   314
    help
yann@1493
   315
      If your host has a shell, then you should say 'Y' here, to use
yann@1493
   316
      a (very very simple) shell script as wrapper.
yann@1493
   317
      
yann@1493
   318
      See docs/overview.txt, section "Tools wrapper".
yann@1493
   319
yann@1493
   320
config TOOLS_WRAPPER_EXEC
yann@1493
   321
    bool
yann@1493
   322
    prompt "executable"
yann@1493
   323
    help
yann@1493
   324
      If your host lacks a shell, then you should say 'Y' here, to use
yann@1493
   325
      an executable.
yann@1493
   326
      
yann@1493
   327
      See docs/overview.txt, section "Tools wrapper".
yann@1493
   328
yann@1493
   329
endchoice
yann@1493
   330
yann@1493
   331
config TOOLS_WRAPPER
yann@1493
   332
    string
yann@1493
   333
    default "script" if TOOLS_WRAPPER_SCRIPT
yann@1493
   334
    default "exec"   if TOOLS_WRAPPER_EXEC
yann@1493
   335
yann@1493
   336
endif # CROSS_NATIVE || CANADIAN
yann@1493
   337
yann@41
   338
endmenu