config/toolchain.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Jun 27 21:03:40 2011 +0200 (2011-06-27)
changeset 2526 e5fb003a354c
parent 2503 b5541f296b92
child 2564 5d4e91c0343e
permissions -rw-r--r--
configure: disable static linking on Darwin

Static liunking is not supported on Darwin, so hide the corresponding
options when the build machine is Darwin.

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