config/toolchain.in
author "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
Tue May 31 20:12:35 2011 +0200 (2011-05-31)
changeset 2487 481cd34691f0
parent 2484 d1a8c2ae7946
child 2488 58a28561f1bc
permissions -rw-r--r--
gcc: promote PKGVERSION and BUGURL options to toolchain level

This patch promotes the PKGVERSION and BUGURL options to toolchain level so that
all toolchain components supporting them can benefit from them.

These options are passed to configure through --with-pkgversion and
--with-bugurl.

They are supported by binutils 2.18+, gcc 4.3+, eglibc 2.9+ and gdb 7.0+.

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