config/toolchain.in
author Bryan Hundven <bryanhundven@gmail.com>
Thu Dec 09 18:54:37 2010 +0100 (2010-12-09)
changeset 2207 b268256e4a08
parent 1865 6a0b74b87dbd
child 2209 cdafca8bdaa8
permissions -rw-r--r--
config: add option to build statically linked toolchain

Add a config option to statically build the host tools.
Impacted tools can use that option to decide wether to build
statically or shared.

For now, no tool uses it, but they'll be added one at a time
in the next commits.

Signed-off-by: "Bryan Hundven" <bryanhundven@gmail.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@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@1865
    17
    prompt "sysroot prefix dir (READ HELP)" if ! BACKEND
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
bryanhundven@2207
    31
config STATIC_TOOLCHAIN
bryanhundven@2207
    32
    bool
bryanhundven@2207
    33
    prompt "Build Static Toolchain (EXPERIMENTAL)"
bryanhundven@2207
    34
    depends on EXPERIMENTAL
bryanhundven@2207
    35
    default n
bryanhundven@2207
    36
    help
bryanhundven@2207
    37
      Build static host binaries.
bryanhundven@2207
    38
      
bryanhundven@2207
    39
      If you wish to move the toolchain to another host, and you are not
bryanhundven@2207
    40
      confident that this host has the required versions of system libs, then
bryanhundven@2207
    41
      you can say 'Y' here, and all the host tools will be linked staticaly.
bryanhundven@2207
    42
      
bryanhundven@2207
    43
      The default is 'N', to build dynamicaly-linked host binaries.
bryanhundven@2207
    44
      
bryanhundven@2207
    45
      NOTE: this has no connection to whether the target libraries will be
bryanhundven@2207
    46
      dynamic or static. This only applies to the tools themselves.
bryanhundven@2207
    47
yann@1220
    48
comment "Tuple completion and aliasing"
yann@1220
    49
yann@41
    50
config TARGET_VENDOR
yann@41
    51
    string
yann@1220
    52
    prompt "Tuple's vendor string"
yann@41
    53
    default "unknown"
yann@41
    54
    help
yann@335
    55
      Vendor part of the target tuple.
yann@41
    56
      
yann@335
    57
      A tuple is of the form arch-vendor-kernel-system.
yann@41
    58
      You can set the second part, vendor, to whatever you see fit.
yann@41
    59
      Use a single word, or use underscores "_" to separate words.
yann@1094
    60
      Use neither dash nor space, as it breaks things.
yann@41
    61
      
yann@1704
    62
      Keep the default (unknown) if you don't know better.
yann@41
    63
yann@321
    64
config TARGET_ALIAS_SED_EXPR
yann@321
    65
    string
yann@1220
    66
    prompt "Tuple's sed transform"
yann@321
    67
    default ""
yann@321
    68
    help
yann@321
    69
      Normaly, you'd call your toolchain components (especially gcc) by
yann@335
    70
      prefixing the target tuple followed by a dash and the component name
yann@321
    71
      (eg. armeb-unknown-linux-uclibc-gcc).
yann@321
    72
      
yann@321
    73
      You can enter here a sed expression to be applied to ${CT_TARGET} to
yann@321
    74
      create an alias for your toolchain.
yann@321
    75
      
yann@321
    76
      For example, "s/${CT_TARGET_VENDOR}/foobar/" (without the double quotes)
yann@321
    77
      will create the armeb-foobar-linux-uclibc alias to the above-mentioned
yann@321
    78
      toolchain.
yann@321
    79
      
yann@321
    80
      You shouldn't need to enter anything here, unless you plan to manually
yann@321
    81
      call the tools (autotools-based ./configure will use the standard name).
yann@321
    82
yann@41
    83
config TARGET_ALIAS
yann@41
    84
    string
yann@1220
    85
    prompt "Tuple's alias"
yann@41
    86
    default ""
yann@41
    87
    help
yann@321
    88
      Normaly, you'd call your toolchain components (especially gcc) by
yann@335
    89
      prefixing the target tuple followed by a dash and the component name
yann@41
    90
      (eg. armeb-unknown-linux-uclibc-gcc).
yann@41
    91
      
yann@41
    92
      You can enter a shortcut here. This string will be used to create
yann@41
    93
      symbolic links to the toolchain tools (eg. if you enter "foo-bar" here,
yann@41
    94
      then gcc for your toolchain will also be available as "foo-bar-gcc" along
yann@41
    95
      with the original name).
yann@41
    96
      
yann@41
    97
      You shouldn't need to enter anything here, unless you plan to manually
yann@41
    98
      call the tools (autotools-based ./configure will use the standard name).
yann@41
    99
yann@41
   100
comment "Toolchain type"
yann@41
   101
yann@41
   102
choice
yann@41
   103
    bool
yann@41
   104
    prompt "Type"
yann@41
   105
    default CROSS
yann@41
   106
yann@41
   107
config NATIVE
yann@41
   108
    bool
yann@1041
   109
    prompt "Native       (NO CODE!) (EXPERIMENTAL)"
yann@41
   110
    depends on EXPERIMENTAL
yann@41
   111
    help
yann@41
   112
      Build a native toolchain.
yann@41
   113
      See docs/overview.txt
yann@41
   114
yann@41
   115
config CROSS
yann@41
   116
    bool
yann@41
   117
    prompt "Cross"
yann@41
   118
    help
yann@41
   119
      Build a cross-toolchain.
yann@41
   120
      See docs/overview.txt
yann@41
   121
yann@41
   122
config CROSS_NATIVE
yann@41
   123
    bool
yann@1041
   124
    prompt "Cross-native (NO CODE!) (EXPERIMENTAL)"
yann@41
   125
    depends on EXPERIMENTAL
yann@41
   126
    help
yann@41
   127
      Build a cross-native toolchain.
yann@41
   128
      See docs/overview.txt
yann@41
   129
yann@41
   130
config CANADIAN
yann@41
   131
    bool
yann@1425
   132
    prompt "Canadian     (EXPERIMENTAL)"
yann@41
   133
    depends on EXPERIMENTAL
yann@41
   134
    help
yann@41
   135
      Build a canadian-toolchain.
yann@41
   136
      See docs/overview.txt
yann@41
   137
yann@41
   138
endchoice
yann@41
   139
yann@96
   140
config TOOLCHAIN_TYPE
yann@96
   141
    string
yann@96
   142
    default "native"        if NATIVE
yann@96
   143
    default "cross"         if CROSS
yann@96
   144
    default "cross-native"  if CROSS_NATIVE
yann@96
   145
    default "canadian"      if CANADIAN
yann@96
   146
yann@1041
   147
comment "Build system"
yann@1041
   148
yann@41
   149
config BUILD 
yann@41
   150
    string
yann@1041
   151
    prompt "|  Tuple        (READ HELP!)"
yann@41
   152
    default ""
yann@41
   153
    help
yann@41
   154
      Canonical name of the machine building the toolchain.
yann@41
   155
      You should leave empty, unless you really now what you're doing.
yann@41
   156
yann@1041
   157
config BUILD_PREFIX
yann@41
   158
    string
yann@1041
   159
    prompt "|  Tools prefix (READ HELP!)"
yann@1041
   160
    default ""
yann@41
   161
    help
yann@1041
   162
      If you have your *build system* tools in a weird location, and/or
yann@1041
   163
      they have an unusual prefix, enter it here.
yann@41
   164
      
yann@1041
   165
      Usually, you should leave that empty!
yann@41
   166
      
yann@1041
   167
      Eg.:
yann@1041
   168
        If your *build* gcc is /opt/build-tools/bin/weird-gcc then you
yann@1041
   169
        should enter:
yann@1041
   170
            /opt/build-tools/bin/weird-
yann@1041
   171
        
yann@1041
   172
        If your *build* gcc is /opt/build-tools/bin/weird-gcc and
yann@1041
   173
        /opt/build-tools/bin is in your PATH, you should enter:
yann@1041
   174
            weird-
yann@1041
   175
        
yann@1041
   176
        If your *build* gcc is /opt/build-tools/bin/gcc then you
yann@1041
   177
        should enter (do not forget to add the trailing '/'):
yann@1041
   178
            /opt/build-tools/bin/
yann@1041
   179
yann@1041
   180
config BUILD_SUFFIX
yann@1041
   181
    string
yann@1041
   182
    prompt "|  Tools suffix (READ HELP!)"
yann@1041
   183
    default ""
yann@1041
   184
    help
yann@1041
   185
      If your *build system* tools have an unusual suffix, enter it
yann@1041
   186
      here.
yann@1041
   187
      
yann@1041
   188
      Usually, you should leave that empty!
yann@1041
   189
      
yann@1041
   190
      Eg.:
yann@1041
   191
        If your 'default' gcc is gcc 4.3.1, but you also have gcc-3.4.2
yann@1041
   192
        installed as gcc-3.4, then you should enter:
yann@1041
   193
            -3.4
yann@1041
   194
      
yann@1041
   195
      It can happen that some of the tools have a suffix, when others
yann@1041
   196
      don't, eg. you can have 'gcc-3.4' and 'ar'. crosstool-NG accounts
yann@1041
   197
      for that by checking the tools without the suffix in case it can
yann@1041
   198
      not find some of the tool.
yann@1041
   199
yann@1041
   200
if CANADIAN
yann@1041
   201
yann@1041
   202
comment "Host system"
yann@41
   203
yann@41
   204
config HOST
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 running the toolchain.
yann@41
   210
yann@1041
   211
config HOST_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 *host system* tools in a weird location, and/or
yann@1041
   217
      they have an unusual prefix, enter it here.
yann@1041
   218
      
yann@1041
   219
      Usually, you should leave that empty!
yann@1041
   220
      
yann@1041
   221
      Eg.:
yann@1041
   222
        If your *host* gcc is /opt/host-tools/bin/weird-gcc then you
yann@1041
   223
        should enter:
yann@1041
   224
            /opt/host-tools/bin/weird-
yann@1041
   225
        
yann@1041
   226
        If your *host* gcc is /opt/host-tools/bin/weird-gcc and
yann@1041
   227
        /opt/host-tools/bin is in your PATH, you should enter:
yann@1041
   228
            weird-
yann@1041
   229
        
yann@1041
   230
        If your *host* gcc is /opt/host-tools/bin/gcc then you
yann@1041
   231
        should enter (do not forget to add the trailing '/'):
yann@1041
   232
            /opt/host-tools/bin/
yann@41
   233
yann@1041
   234
config HOST_SUFFIX
yann@41
   235
    string
yann@1041
   236
    prompt "|  Tools suffix (READ HELP!)"
yann@1041
   237
    default ""
yann@41
   238
    help
yann@1041
   239
      If your *host 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
endif # CANADIAN
yann@1041
   255
yann@1041
   256
if CROSS_NATIVE || CANADIAN
yann@1041
   257
yann@1041
   258
comment "Target system"
yann@1041
   259
yann@1041
   260
config TARGET_PREFIX
yann@1041
   261
    string
yann@1041
   262
    prompt "|  Tools prefix (READ HELP!)"
yann@1041
   263
    default ""
yann@1041
   264
    help
yann@1041
   265
      If you have your *target system* tools in a weird location, and/or
yann@1041
   266
      they have an unusual prefix, enter it here.
yann@1041
   267
      
yann@1041
   268
      Usually, you should leave that empty!
yann@1041
   269
      
yann@1041
   270
      Eg.:
yann@1041
   271
        If your *target* gcc is /opt/target-tools/bin/weird-gcc then you
yann@1041
   272
        should enter:
yann@1041
   273
            /opt/target-tools/bin/weird-
yann@1041
   274
        
yann@1041
   275
        If your *target* gcc is /opt/target-tools/bin/weird-gcc and
yann@1041
   276
        /opt/target-tools/bin is in your PATH, you should enter:
yann@1041
   277
            weird-
yann@1041
   278
        
yann@1041
   279
        If your *target* gcc is /opt/target-tools/bin/gcc then you
yann@1041
   280
        should enter (do not forget to add the trailing '/'):
yann@1041
   281
            /opt/target-tools/bin/
yann@1041
   282
yann@1041
   283
config TARGET_SUFFIX
yann@1041
   284
    string
yann@1041
   285
    prompt "|  Tools suffix (READ HELP!)"
yann@1041
   286
    default ""
yann@1041
   287
    help
yann@1041
   288
      If your *target system* tools have an unusual suffix, enter it
yann@1041
   289
      here.
yann@1041
   290
      
yann@1041
   291
      Usually, you should leave that empty!
yann@1041
   292
      
yann@1041
   293
      Eg.:
yann@1041
   294
        If your 'default' gcc is gcc 4.3.1, but you also have gcc-3.4.2
yann@1041
   295
        installed as gcc-3.4, then you should enter:
yann@1041
   296
            -3.4
yann@1041
   297
      
yann@1041
   298
      It can happen that some of the tools have a suffix, when others
yann@1041
   299
      don't, eg. you can have 'gcc-3.4' and 'ar'. crosstool-NG accounts
yann@1041
   300
      for that by checking the tools without the suffix in case it can
yann@1041
   301
      not find some of the tool.
yann@1041
   302
yann@1041
   303
endif # CROSS_NATIVE || CANADIAN
yann@41
   304
yann@41
   305
endmenu