config/toolchain.in
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Thu Dec 27 12:45:22 2012 +0100 (2012-12-27)
changeset 3152 b286c7993be5
parent 3042 08aecbc69f12
permissions -rw-r--r--
scripts/addToolsVersion: properly handle .in vs. .in.2

While most components have their version in the .in file, some
have it in the .in.2 (eg. elf2flt).

Currently, to handle this case, we indiscriminately munge both files,
but this is wrong: in the elf2flt case, if we add a binutils version,
we do not want it to be added to elf2flt, and conversely.

So, for each tool, we need to explicitly know what file to munge.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
yann@41
     1
menu "Toolchain options"
yann@41
     2
yann@41
     3
comment "General toolchain options"
yann@41
     4
yann@2281
     5
config FORCE_SYSROOT
yann@2281
     6
    bool
yann@2281
     7
    default y if !OBSOLETE
yann@2281
     8
    select USE_SYSROOT
yann@2281
     9
yann@41
    10
config USE_SYSROOT
yann@41
    11
    bool
yann@41
    12
    prompt "Use sysroot'ed toolchain"
yann@41
    13
    default y
yann@41
    14
    help
yann@41
    15
      Use the 'shinny new' sysroot feature of gcc: libraries split between
yann@2279
    16
      prefix/target/sysroot/lib and prefix/target/sysroot/usr/lib
yann@41
    17
      
yann@41
    18
      You definitely want to say 'Y' here. Yes you do. I know you do. Say 'Y'.
yann@41
    19
yann@2279
    20
config SYSROOT_NAME
yann@2279
    21
    string
yann@2407
    22
    prompt "sysroot directory name" if ! BACKEND
yann@2279
    23
    depends on USE_SYSROOT
yann@2279
    24
    default "sysroot"
yann@2279
    25
    help
yann@2279
    26
      Enter the base name of the sysroot directory. Usually, this simply
yann@2279
    27
      is 'sysroot' (the default) or 'sys-root'.
yann@2279
    28
      
yann@2279
    29
      You are free to enter anything here, except for spaces, and '/'
antony@2564
    30
      (see SYSROOT_DIR_PREFIX, below). If you leave this empty, then the
yann@2279
    31
      default 'sysroot' is used.
yann@2279
    32
yann@1219
    33
config SYSROOT_DIR_PREFIX
yann@1219
    34
    string
yann@1865
    35
    prompt "sysroot prefix dir (READ HELP)" if ! BACKEND
yann@1219
    36
    depends on USE_SYSROOT
yann@1219
    37
    default ""
yann@1219
    38
    help
yann@1219
    39
      *
antony@2564
    40
      * Unless you really know you need that, leave it empty!
yann@1219
    41
      *
yann@1219
    42
      
yann@1219
    43
      This string will be interpreted as a directory component to be added
yann@1219
    44
      to the sysroot path, just before the actual sysroot directory.
yann@1219
    45
      
yann@1219
    46
      In fact, the sysroot path is constructed as:
yann@2279
    47
        ${CT_PREFIX_DIR}/${CT_TARGET}/${CT_SYSROOT_DIR_PREFIX}/${CT_SYSROOT_NAME}
yann@1219
    48
yann@2717
    49
config WANTS_STATIC_LINK
yann@2500
    50
    bool
yann@2500
    51
bryanhundven@2207
    52
config STATIC_TOOLCHAIN
bryanhundven@2207
    53
    bool
yann@3150
    54
    prompt "Build Static Toolchain"
yann@2717
    55
    select WANTS_STATIC_LINK
bryanhundven@2207
    56
    help
bryanhundven@2207
    57
      Build static host binaries.
bryanhundven@2207
    58
      
bryanhundven@2207
    59
      If you wish to move the toolchain to another host, and you are not
bryanhundven@2207
    60
      confident that this host has the required versions of system libs, then
antony@2564
    61
      you can say 'Y' here, and all the host tools will be linked statically.
bryanhundven@2207
    62
      
yann@2209
    63
      The impacted tools are:
yann@2717
    64
        - the cross-binutils (GNU binutils, elf2flt)
yann@2717
    65
        - the cross-compiler (gcc)
yann@2717
    66
        - the cross-debugger (gdb)
yann@2209
    67
      
bryanhundven@2207
    68
      The default is 'N', to build dynamicaly-linked host binaries.
bryanhundven@2207
    69
      
bryanhundven@2207
    70
      NOTE: this has no connection to whether the target libraries will be
bryanhundven@2207
    71
      dynamic or static. This only applies to the tools themselves.
bryanhundven@2207
    72
benoit@2487
    73
config TOOLCHAIN_PKGVERSION
benoit@2487
    74
    string
benoit@2487
    75
    prompt "Toolchain ID string"
benoit@2503
    76
    default ""
benoit@2487
    77
    help
benoit@2487
    78
      Specify a string that identifies your package. You may wish to include
benoit@2487
    79
      a build number or build date. This version string will be included in
benoit@2490
    80
      the output of gcc --version, and also in binutils, eglibc, gdb and
benoit@2490
    81
      gdbserver.
benoit@2487
    82
benoit@2503
    83
      If this string is left empty, the actual package version will be:
benoit@2503
    84
          "crosstool-NG ${CT_VERSION}"
benoit@2503
    85
      Otherwise, it will be:
benoit@2503
    86
          "crosstool-NG ${CT_VERSION} - ${CT_TOOLCHAIN_PKGVERSION}"
benoit@2503
    87
benoit@2487
    88
      This is passed to the configure flag --with-pkgversion.
benoit@2487
    89
benoit@2487
    90
config TOOLCHAIN_BUGURL
benoit@2487
    91
    string
benoit@2487
    92
    prompt "Toolchain bug URL"
benoit@2487
    93
    default ""
benoit@2487
    94
    help
benoit@2487
    95
      Specify the URL that users should visit if they wish to report a bug.
benoit@2487
    96
yann@1220
    97
comment "Tuple completion and aliasing"
yann@1220
    98
yann@41
    99
config TARGET_VENDOR
yann@41
   100
    string
yann@1220
   101
    prompt "Tuple's vendor string"
yann@41
   102
    default "unknown"
yann@41
   103
    help
yann@335
   104
      Vendor part of the target tuple.
yann@41
   105
      
yann@335
   106
      A tuple is of the form arch-vendor-kernel-system.
yann@41
   107
      You can set the second part, vendor, to whatever you see fit.
yann@41
   108
      Use a single word, or use underscores "_" to separate words.
yann@1094
   109
      Use neither dash nor space, as it breaks things.
yann@41
   110
      
yann@1704
   111
      Keep the default (unknown) if you don't know better.
yann@41
   112
yann@321
   113
config TARGET_ALIAS_SED_EXPR
yann@321
   114
    string
yann@1220
   115
    prompt "Tuple's sed transform"
yann@321
   116
    default ""
yann@321
   117
    help
antony@2564
   118
      Normally, you'd call your toolchain components (especially gcc) by
yann@335
   119
      prefixing the target tuple followed by a dash and the component name
yann@321
   120
      (eg. armeb-unknown-linux-uclibc-gcc).
yann@321
   121
      
yann@321
   122
      You can enter here a sed expression to be applied to ${CT_TARGET} to
yann@321
   123
      create an alias for your toolchain.
yann@321
   124
      
yann@321
   125
      For example, "s/${CT_TARGET_VENDOR}/foobar/" (without the double quotes)
yann@321
   126
      will create the armeb-foobar-linux-uclibc alias to the above-mentioned
yann@321
   127
      toolchain.
yann@321
   128
      
yann@321
   129
      You shouldn't need to enter anything here, unless you plan to manually
yann@321
   130
      call the tools (autotools-based ./configure will use the standard name).
yann@321
   131
yann@41
   132
config TARGET_ALIAS
yann@41
   133
    string
yann@1220
   134
    prompt "Tuple's alias"
yann@41
   135
    default ""
yann@41
   136
    help
antony@2564
   137
      Normally, you'd call your toolchain components (especially gcc) by
yann@335
   138
      prefixing the target tuple followed by a dash and the component name
yann@41
   139
      (eg. armeb-unknown-linux-uclibc-gcc).
yann@41
   140
      
yann@41
   141
      You can enter a shortcut here. This string will be used to create
yann@41
   142
      symbolic links to the toolchain tools (eg. if you enter "foo-bar" here,
yann@41
   143
      then gcc for your toolchain will also be available as "foo-bar-gcc" along
yann@41
   144
      with the original name).
yann@41
   145
      
yann@41
   146
      You shouldn't need to enter anything here, unless you plan to manually
yann@41
   147
      call the tools (autotools-based ./configure will use the standard name).
yann@41
   148
yann@41
   149
comment "Toolchain type"
yann@41
   150
yann@41
   151
choice
yann@41
   152
    bool
yann@41
   153
    prompt "Type"
yann@41
   154
    default CROSS
yann@41
   155
yann@41
   156
config NATIVE
yann@41
   157
    bool
yann@1041
   158
    prompt "Native       (NO CODE!) (EXPERIMENTAL)"
yann@41
   159
    depends on EXPERIMENTAL
yann@41
   160
    help
yann@41
   161
      Build a native toolchain.
yann@2227
   162
      See: "docs/6 - Toolchain types.txt"
yann@41
   163
yann@41
   164
config CROSS
yann@41
   165
    bool
yann@41
   166
    prompt "Cross"
yann@41
   167
    help
yann@41
   168
      Build a cross-toolchain.
yann@2227
   169
      See: "docs/6 - Toolchain types.txt"
yann@41
   170
yann@41
   171
config CROSS_NATIVE
yann@41
   172
    bool
yann@1041
   173
    prompt "Cross-native (NO CODE!) (EXPERIMENTAL)"
yann@41
   174
    depends on EXPERIMENTAL
yann@41
   175
    help
yann@41
   176
      Build a cross-native toolchain.
yann@2227
   177
      See: "docs/6 - Toolchain types.txt"
yann@41
   178
yann@41
   179
config CANADIAN
yann@41
   180
    bool
yann@3150
   181
    prompt "Canadian"
yann@41
   182
    help
yann@41
   183
      Build a canadian-toolchain.
yann@2227
   184
      See: "docs/6 - Toolchain types.txt"
yann@41
   185
yann@41
   186
endchoice
yann@41
   187
yann@96
   188
config TOOLCHAIN_TYPE
yann@96
   189
    string
yann@96
   190
    default "native"        if NATIVE
yann@96
   191
    default "cross"         if CROSS
yann@96
   192
    default "cross-native"  if CROSS_NATIVE
yann@96
   193
    default "canadian"      if CANADIAN
yann@96
   194
yann@1041
   195
comment "Build system"
yann@1041
   196
benoit@2484
   197
config BUILD
yann@41
   198
    string
yann@1041
   199
    prompt "|  Tuple        (READ HELP!)"
yann@41
   200
    default ""
yann@41
   201
    help
yann@41
   202
      Canonical name of the machine building the toolchain.
andyhelp@3042
   203
      You should leave empty, unless you really know what you're doing.
yann@41
   204
yann@1041
   205
config BUILD_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 *build system* tools in a weird location, and/or
yann@1041
   211
      they have an unusual prefix, enter it here.
yann@41
   212
      
yann@1041
   213
      Usually, you should leave that empty!
yann@41
   214
      
yann@1041
   215
      Eg.:
yann@1041
   216
        If your *build* gcc is /opt/build-tools/bin/weird-gcc then you
yann@1041
   217
        should enter:
yann@1041
   218
            /opt/build-tools/bin/weird-
yann@1041
   219
        
yann@1041
   220
        If your *build* gcc is /opt/build-tools/bin/weird-gcc and
yann@1041
   221
        /opt/build-tools/bin is in your PATH, you should enter:
yann@1041
   222
            weird-
yann@1041
   223
        
yann@1041
   224
        If your *build* gcc is /opt/build-tools/bin/gcc then you
yann@1041
   225
        should enter (do not forget to add the trailing '/'):
yann@1041
   226
            /opt/build-tools/bin/
yann@1041
   227
yann@1041
   228
config BUILD_SUFFIX
yann@1041
   229
    string
yann@1041
   230
    prompt "|  Tools suffix (READ HELP!)"
yann@1041
   231
    default ""
yann@1041
   232
    help
yann@1041
   233
      If your *build 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
if CANADIAN
yann@1041
   249
yann@1041
   250
comment "Host system"
yann@41
   251
yann@41
   252
config HOST
yann@41
   253
    string
yann@1041
   254
    prompt "|  Tuple        (READ HELP!)"
yann@41
   255
    default ""
yann@41
   256
    help
yann@41
   257
      Canonical name of the machine running the toolchain.
yann@41
   258
yann@1041
   259
config HOST_PREFIX
yann@41
   260
    string
yann@1041
   261
    prompt "|  Tools prefix (READ HELP!)"
yann@1041
   262
    default ""
yann@41
   263
    help
yann@1041
   264
      If you have your *host system* tools in a weird location, and/or
yann@1041
   265
      they have an unusual prefix, enter it here.
yann@1041
   266
      
yann@1041
   267
      Usually, you should leave that empty!
yann@1041
   268
      
yann@1041
   269
      Eg.:
yann@1041
   270
        If your *host* gcc is /opt/host-tools/bin/weird-gcc then you
yann@1041
   271
        should enter:
yann@1041
   272
            /opt/host-tools/bin/weird-
yann@1041
   273
        
yann@1041
   274
        If your *host* gcc is /opt/host-tools/bin/weird-gcc and
yann@1041
   275
        /opt/host-tools/bin is in your PATH, you should enter:
yann@1041
   276
            weird-
yann@1041
   277
        
yann@1041
   278
        If your *host* gcc is /opt/host-tools/bin/gcc then you
yann@1041
   279
        should enter (do not forget to add the trailing '/'):
yann@1041
   280
            /opt/host-tools/bin/
yann@41
   281
yann@1041
   282
config HOST_SUFFIX
yann@41
   283
    string
yann@1041
   284
    prompt "|  Tools suffix (READ HELP!)"
yann@1041
   285
    default ""
yann@41
   286
    help
yann@1041
   287
      If your *host system* tools have an unusual suffix, enter it
yann@1041
   288
      here.
yann@1041
   289
      
yann@1041
   290
      Usually, you should leave that empty!
yann@1041
   291
      
yann@1041
   292
      Eg.:
yann@1041
   293
        If your 'default' gcc is gcc 4.3.1, but you also have gcc-3.4.2
yann@1041
   294
        installed as gcc-3.4, then you should enter:
yann@1041
   295
            -3.4
yann@1041
   296
      
yann@1041
   297
      It can happen that some of the tools have a suffix, when others
yann@1041
   298
      don't, eg. you can have 'gcc-3.4' and 'ar'. crosstool-NG accounts
yann@1041
   299
      for that by checking the tools without the suffix in case it can
yann@1041
   300
      not find some of the tool.
yann@1041
   301
yann@1041
   302
endif # CANADIAN
yann@1041
   303
zhenqiang@2778
   304
comment "Misc options"
zhenqiang@2778
   305
zhenqiang@2778
   306
config TOOLCHAIN_ENABLE_NLS
zhenqiang@2778
   307
    bool
zhenqiang@2778
   308
    prompt "Enable nls"
zhenqiang@2778
   309
    help
yann@2786
   310
      Say 'Y' here to enable native language support (nls).
zhenqiang@2778
   311
yann@41
   312
endmenu