config/toolchain.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Aug 02 18:28:10 2011 +0200 (2011-08-02)
changeset 2590 b64cfb67944e
parent 2526 e5fb003a354c
child 2717 13df2720b374
permissions -rw-r--r--
scripts/functions: svn retrieval first tries the mirror for tarballs

The svn download helper looks for the local tarballs dir to see if it
can find a pre-downloaded tarball, and if it does not find it, does
the actual fetch to upstream via svn.

In the process, it does not even try to get a tarball from the local
mirror, which can be useful if the mirror has been pre-populated
manually (or with a previously downloaded tree).

Fake a tarball get with the standard tarball-download helper, but
without specifying any upstream URL, which makes the helper directly
try the LAN mirror.

Of course, if no mirror is specified, no URL wil be available, and
the standard svn retrieval will kick in.

Reported-by: ANDY KENNEDY <ANDY.KENNEDY@adtran.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.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@2500
    49
# In case we need to add more conditions to enable static
yann@2500
    50
# toolchain, we'll be adding them here
yann@2500
    51
config STATIC_TOOLCHAIN_POSSIBLE
yann@2500
    52
    bool
yann@2500
    53
    default y
yann@2526
    54
    depends on CONFIGURE_static_link_ok
yann@2500
    55
    depends on CONFIGURE_has_static_libstdcxx
yann@2500
    56
    # Add new deps here! :-)
yann@2500
    57
bryanhundven@2207
    58
config STATIC_TOOLCHAIN
bryanhundven@2207
    59
    bool
bryanhundven@2207
    60
    prompt "Build Static Toolchain (EXPERIMENTAL)"
bryanhundven@2207
    61
    depends on EXPERIMENTAL
yann@2500
    62
    depends on STATIC_TOOLCHAIN_POSSIBLE
bryanhundven@2207
    63
    help
bryanhundven@2207
    64
      Build static host binaries.
bryanhundven@2207
    65
      
bryanhundven@2207
    66
      If you wish to move the toolchain to another host, and you are not
bryanhundven@2207
    67
      confident that this host has the required versions of system libs, then
antony@2564
    68
      you can say 'Y' here, and all the host tools will be linked statically.
bryanhundven@2207
    69
      
yann@2209
    70
      The impacted tools are:
bryanhundven@2210
    71
        - the GNU binutils
yann@2209
    72
        - the cross-gdb
yann@2209
    73
      
bryanhundven@2207
    74
      The default is 'N', to build dynamicaly-linked host binaries.
bryanhundven@2207
    75
      
bryanhundven@2207
    76
      NOTE: this has no connection to whether the target libraries will be
bryanhundven@2207
    77
      dynamic or static. This only applies to the tools themselves.
bryanhundven@2207
    78
benoit@2487
    79
config TOOLCHAIN_PKGVERSION
benoit@2487
    80
    string
benoit@2487
    81
    prompt "Toolchain ID string"
benoit@2503
    82
    default ""
benoit@2487
    83
    help
benoit@2487
    84
      Specify a string that identifies your package. You may wish to include
benoit@2487
    85
      a build number or build date. This version string will be included in
benoit@2490
    86
      the output of gcc --version, and also in binutils, eglibc, gdb and
benoit@2490
    87
      gdbserver.
benoit@2487
    88
benoit@2503
    89
      If this string is left empty, the actual package version will be:
benoit@2503
    90
          "crosstool-NG ${CT_VERSION}"
benoit@2503
    91
      Otherwise, it will be:
benoit@2503
    92
          "crosstool-NG ${CT_VERSION} - ${CT_TOOLCHAIN_PKGVERSION}"
benoit@2503
    93
benoit@2487
    94
      This is passed to the configure flag --with-pkgversion.
benoit@2487
    95
benoit@2487
    96
config TOOLCHAIN_BUGURL
benoit@2487
    97
    string
benoit@2487
    98
    prompt "Toolchain bug URL"
benoit@2487
    99
    default ""
benoit@2487
   100
    help
benoit@2487
   101
      Specify the URL that users should visit if they wish to report a bug.
benoit@2487
   102
yann@1220
   103
comment "Tuple completion and aliasing"
yann@1220
   104
yann@41
   105
config TARGET_VENDOR
yann@41
   106
    string
yann@1220
   107
    prompt "Tuple's vendor string"
yann@41
   108
    default "unknown"
yann@41
   109
    help
yann@335
   110
      Vendor part of the target tuple.
yann@41
   111
      
yann@335
   112
      A tuple is of the form arch-vendor-kernel-system.
yann@41
   113
      You can set the second part, vendor, to whatever you see fit.
yann@41
   114
      Use a single word, or use underscores "_" to separate words.
yann@1094
   115
      Use neither dash nor space, as it breaks things.
yann@41
   116
      
yann@1704
   117
      Keep the default (unknown) if you don't know better.
yann@41
   118
yann@321
   119
config TARGET_ALIAS_SED_EXPR
yann@321
   120
    string
yann@1220
   121
    prompt "Tuple's sed transform"
yann@321
   122
    default ""
yann@321
   123
    help
antony@2564
   124
      Normally, you'd call your toolchain components (especially gcc) by
yann@335
   125
      prefixing the target tuple followed by a dash and the component name
yann@321
   126
      (eg. armeb-unknown-linux-uclibc-gcc).
yann@321
   127
      
yann@321
   128
      You can enter here a sed expression to be applied to ${CT_TARGET} to
yann@321
   129
      create an alias for your toolchain.
yann@321
   130
      
yann@321
   131
      For example, "s/${CT_TARGET_VENDOR}/foobar/" (without the double quotes)
yann@321
   132
      will create the armeb-foobar-linux-uclibc alias to the above-mentioned
yann@321
   133
      toolchain.
yann@321
   134
      
yann@321
   135
      You shouldn't need to enter anything here, unless you plan to manually
yann@321
   136
      call the tools (autotools-based ./configure will use the standard name).
yann@321
   137
yann@41
   138
config TARGET_ALIAS
yann@41
   139
    string
yann@1220
   140
    prompt "Tuple's alias"
yann@41
   141
    default ""
yann@41
   142
    help
antony@2564
   143
      Normally, you'd call your toolchain components (especially gcc) by
yann@335
   144
      prefixing the target tuple followed by a dash and the component name
yann@41
   145
      (eg. armeb-unknown-linux-uclibc-gcc).
yann@41
   146
      
yann@41
   147
      You can enter a shortcut here. This string will be used to create
yann@41
   148
      symbolic links to the toolchain tools (eg. if you enter "foo-bar" here,
yann@41
   149
      then gcc for your toolchain will also be available as "foo-bar-gcc" along
yann@41
   150
      with the original name).
yann@41
   151
      
yann@41
   152
      You shouldn't need to enter anything here, unless you plan to manually
yann@41
   153
      call the tools (autotools-based ./configure will use the standard name).
yann@41
   154
yann@41
   155
comment "Toolchain type"
yann@41
   156
yann@41
   157
choice
yann@41
   158
    bool
yann@41
   159
    prompt "Type"
yann@41
   160
    default CROSS
yann@41
   161
yann@41
   162
config NATIVE
yann@41
   163
    bool
yann@1041
   164
    prompt "Native       (NO CODE!) (EXPERIMENTAL)"
yann@41
   165
    depends on EXPERIMENTAL
yann@41
   166
    help
yann@41
   167
      Build a native toolchain.
yann@2227
   168
      See: "docs/6 - Toolchain types.txt"
yann@41
   169
yann@41
   170
config CROSS
yann@41
   171
    bool
yann@41
   172
    prompt "Cross"
yann@41
   173
    help
yann@41
   174
      Build a cross-toolchain.
yann@2227
   175
      See: "docs/6 - Toolchain types.txt"
yann@41
   176
yann@41
   177
config CROSS_NATIVE
yann@41
   178
    bool
yann@1041
   179
    prompt "Cross-native (NO CODE!) (EXPERIMENTAL)"
yann@41
   180
    depends on EXPERIMENTAL
yann@41
   181
    help
yann@41
   182
      Build a cross-native toolchain.
yann@2227
   183
      See: "docs/6 - Toolchain types.txt"
yann@41
   184
yann@41
   185
config CANADIAN
yann@41
   186
    bool
yann@1425
   187
    prompt "Canadian     (EXPERIMENTAL)"
yann@41
   188
    depends on EXPERIMENTAL
yann@41
   189
    help
yann@41
   190
      Build a canadian-toolchain.
yann@2227
   191
      See: "docs/6 - Toolchain types.txt"
yann@41
   192
yann@41
   193
endchoice
yann@41
   194
yann@96
   195
config TOOLCHAIN_TYPE
yann@96
   196
    string
yann@96
   197
    default "native"        if NATIVE
yann@96
   198
    default "cross"         if CROSS
yann@96
   199
    default "cross-native"  if CROSS_NATIVE
yann@96
   200
    default "canadian"      if CANADIAN
yann@96
   201
yann@1041
   202
comment "Build system"
yann@1041
   203
benoit@2484
   204
config BUILD
yann@41
   205
    string
yann@1041
   206
    prompt "|  Tuple        (READ HELP!)"
yann@41
   207
    default ""
yann@41
   208
    help
yann@41
   209
      Canonical name of the machine building the toolchain.
yann@41
   210
      You should leave empty, unless you really now what you're doing.
yann@41
   211
yann@1041
   212
config BUILD_PREFIX
yann@41
   213
    string
yann@1041
   214
    prompt "|  Tools prefix (READ HELP!)"
yann@1041
   215
    default ""
yann@41
   216
    help
yann@1041
   217
      If you have your *build system* tools in a weird location, and/or
yann@1041
   218
      they have an unusual prefix, enter it here.
yann@41
   219
      
yann@1041
   220
      Usually, you should leave that empty!
yann@41
   221
      
yann@1041
   222
      Eg.:
yann@1041
   223
        If your *build* gcc is /opt/build-tools/bin/weird-gcc then you
yann@1041
   224
        should enter:
yann@1041
   225
            /opt/build-tools/bin/weird-
yann@1041
   226
        
yann@1041
   227
        If your *build* gcc is /opt/build-tools/bin/weird-gcc and
yann@1041
   228
        /opt/build-tools/bin is in your PATH, you should enter:
yann@1041
   229
            weird-
yann@1041
   230
        
yann@1041
   231
        If your *build* gcc is /opt/build-tools/bin/gcc then you
yann@1041
   232
        should enter (do not forget to add the trailing '/'):
yann@1041
   233
            /opt/build-tools/bin/
yann@1041
   234
yann@1041
   235
config BUILD_SUFFIX
yann@1041
   236
    string
yann@1041
   237
    prompt "|  Tools suffix (READ HELP!)"
yann@1041
   238
    default ""
yann@1041
   239
    help
yann@1041
   240
      If your *build system* tools have an unusual suffix, enter it
yann@1041
   241
      here.
yann@1041
   242
      
yann@1041
   243
      Usually, you should leave that empty!
yann@1041
   244
      
yann@1041
   245
      Eg.:
yann@1041
   246
        If your 'default' gcc is gcc 4.3.1, but you also have gcc-3.4.2
yann@1041
   247
        installed as gcc-3.4, then you should enter:
yann@1041
   248
            -3.4
yann@1041
   249
      
yann@1041
   250
      It can happen that some of the tools have a suffix, when others
yann@1041
   251
      don't, eg. you can have 'gcc-3.4' and 'ar'. crosstool-NG accounts
yann@1041
   252
      for that by checking the tools without the suffix in case it can
yann@1041
   253
      not find some of the tool.
yann@1041
   254
yann@1041
   255
if CANADIAN
yann@1041
   256
yann@1041
   257
comment "Host system"
yann@41
   258
yann@41
   259
config HOST
yann@41
   260
    string
yann@1041
   261
    prompt "|  Tuple        (READ HELP!)"
yann@41
   262
    default ""
yann@41
   263
    help
yann@41
   264
      Canonical name of the machine running the toolchain.
yann@41
   265
yann@1041
   266
config HOST_PREFIX
yann@41
   267
    string
yann@1041
   268
    prompt "|  Tools prefix (READ HELP!)"
yann@1041
   269
    default ""
yann@41
   270
    help
yann@1041
   271
      If you have your *host system* tools in a weird location, and/or
yann@1041
   272
      they have an unusual prefix, enter it here.
yann@1041
   273
      
yann@1041
   274
      Usually, you should leave that empty!
yann@1041
   275
      
yann@1041
   276
      Eg.:
yann@1041
   277
        If your *host* gcc is /opt/host-tools/bin/weird-gcc then you
yann@1041
   278
        should enter:
yann@1041
   279
            /opt/host-tools/bin/weird-
yann@1041
   280
        
yann@1041
   281
        If your *host* gcc is /opt/host-tools/bin/weird-gcc and
yann@1041
   282
        /opt/host-tools/bin is in your PATH, you should enter:
yann@1041
   283
            weird-
yann@1041
   284
        
yann@1041
   285
        If your *host* gcc is /opt/host-tools/bin/gcc then you
yann@1041
   286
        should enter (do not forget to add the trailing '/'):
yann@1041
   287
            /opt/host-tools/bin/
yann@41
   288
yann@1041
   289
config HOST_SUFFIX
yann@41
   290
    string
yann@1041
   291
    prompt "|  Tools suffix (READ HELP!)"
yann@1041
   292
    default ""
yann@41
   293
    help
yann@1041
   294
      If your *host system* tools have an unusual suffix, enter it
yann@1041
   295
      here.
yann@1041
   296
      
yann@1041
   297
      Usually, you should leave that empty!
yann@1041
   298
      
yann@1041
   299
      Eg.:
yann@1041
   300
        If your 'default' gcc is gcc 4.3.1, but you also have gcc-3.4.2
yann@1041
   301
        installed as gcc-3.4, then you should enter:
yann@1041
   302
            -3.4
yann@1041
   303
      
yann@1041
   304
      It can happen that some of the tools have a suffix, when others
yann@1041
   305
      don't, eg. you can have 'gcc-3.4' and 'ar'. crosstool-NG accounts
yann@1041
   306
      for that by checking the tools without the suffix in case it can
yann@1041
   307
      not find some of the tool.
yann@1041
   308
yann@1041
   309
endif # CANADIAN
yann@1041
   310
yann@1041
   311
if CROSS_NATIVE || CANADIAN
yann@1041
   312
yann@1041
   313
comment "Target system"
yann@1041
   314
yann@1041
   315
config TARGET_PREFIX
yann@1041
   316
    string
yann@1041
   317
    prompt "|  Tools prefix (READ HELP!)"
yann@1041
   318
    default ""
yann@1041
   319
    help
yann@1041
   320
      If you have your *target system* tools in a weird location, and/or
yann@1041
   321
      they have an unusual prefix, enter it here.
yann@1041
   322
      
yann@1041
   323
      Usually, you should leave that empty!
yann@1041
   324
      
yann@1041
   325
      Eg.:
yann@1041
   326
        If your *target* gcc is /opt/target-tools/bin/weird-gcc then you
yann@1041
   327
        should enter:
yann@1041
   328
            /opt/target-tools/bin/weird-
yann@1041
   329
        
yann@1041
   330
        If your *target* gcc is /opt/target-tools/bin/weird-gcc and
yann@1041
   331
        /opt/target-tools/bin is in your PATH, you should enter:
yann@1041
   332
            weird-
yann@1041
   333
        
yann@1041
   334
        If your *target* gcc is /opt/target-tools/bin/gcc then you
yann@1041
   335
        should enter (do not forget to add the trailing '/'):
yann@1041
   336
            /opt/target-tools/bin/
yann@1041
   337
yann@1041
   338
config TARGET_SUFFIX
yann@1041
   339
    string
yann@1041
   340
    prompt "|  Tools suffix (READ HELP!)"
yann@1041
   341
    default ""
yann@1041
   342
    help
yann@1041
   343
      If your *target system* tools have an unusual suffix, enter it
yann@1041
   344
      here.
yann@1041
   345
      
yann@1041
   346
      Usually, you should leave that empty!
yann@1041
   347
      
yann@1041
   348
      Eg.:
yann@1041
   349
        If your 'default' gcc is gcc 4.3.1, but you also have gcc-3.4.2
yann@1041
   350
        installed as gcc-3.4, then you should enter:
yann@1041
   351
            -3.4
yann@1041
   352
      
yann@1041
   353
      It can happen that some of the tools have a suffix, when others
yann@1041
   354
      don't, eg. you can have 'gcc-3.4' and 'ar'. crosstool-NG accounts
yann@1041
   355
      for that by checking the tools without the suffix in case it can
yann@1041
   356
      not find some of the tool.
yann@1041
   357
yann@1041
   358
endif # CROSS_NATIVE || CANADIAN
yann@41
   359
yann@41
   360
endmenu