config/toolchain.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Jun 04 17:43:49 2011 +0200 (2011-06-04)
changeset 2505 f87f02b00cc7
parent 2500 ba1e71fa72a9
child 2526 e5fb003a354c
permissions -rw-r--r--
Makefile: make it work for auto-completion

The latest autocompletion calls 'make -qp' to get all the possible
targets. This currently fails, as our makefile is calling itself
again and again ad-libitum.

Fix it by detecting that the recursion level is not 0, and bail out
if so. It works so well that it has the side effect of showing only
the 'public' target, and hide our internal ones! :-)

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