config/target.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Mar 12 18:59:31 2007 +0000 (2007-03-12)
changeset 19 d80e6dedcc13
child 35 2dce00870893
permissions -rw-r--r--
Auto-detect Darwin (MacOS-X) and disable libintl for during build for this platform.
A bit of help tweaking.
     1 # Target definition: architecture, optimisations, etc...
     2 
     3 menu "Target options"
     4 
     5 comment "General target options"
     6 
     7 choice
     8     bool
     9     prompt "Target architecture:"
    10     default ARCH_x86
    11 
    12 config ARCH_ARM
    13     bool
    14     prompt "arm"
    15 
    16 config ARCH_MIPS
    17     bool
    18     prompt "mips"
    19 
    20 config ARCH_x86
    21     bool
    22     prompt "x86"
    23 
    24 config ARCH_x86_64
    25     bool
    26     prompt "x86_64"
    27 
    28 endchoice
    29 
    30 choice
    31     bool
    32     prompt "Endianness:"
    33 
    34 config ARCH_BE
    35     bool
    36     prompt "Big endian"
    37 
    38 config ARCH_LE
    39     bool
    40     prompt "Little endian"
    41 
    42 endchoice
    43 
    44 comment "Target optimisations"
    45 
    46 config ARCH_CPU
    47     string
    48     prompt "Emit assembly for CPU"
    49     default ""
    50     help
    51       This specifies the name of the target ARM processor. GCC uses this name
    52       to determine what kind of instructions it can emit when generating
    53       assembly code.
    54       
    55       Pick a value from the gcc manual for your choosen gcc version and your
    56       target CPU.
    57       
    58       Leave blank if you don't know, or if your target architecture does not
    59       offer this option.
    60 
    61 config ARCH_TUNE
    62     string
    63     prompt "Tune for CPU"
    64     default ""
    65     help
    66       This option is very similar to the ARCH_CPU option (above), except
    67       that instead of specifying the actual target processor type, and hence
    68       restricting which instructions can be used, it specifies that GCC should
    69       tune the performance of the code as if the target were of the type
    70       specified in this option, but still choosing the instructions that it
    71       will generate based on the cpu specified by the ARCH_CPU option
    72       (above), or a (command-line) -mcpu= option.
    73       
    74       Pick a value from the gcc manual for your choosen gcc version and your
    75       target CPU.
    76       
    77       Leave blank if you don't know, or if your target architecture does not
    78       offer this option.
    79 
    80 config ARCH_ARCH
    81     string
    82     prompt "Achitecture level"
    83     default ""
    84     help
    85       GCC uses this name to determine what kind of instructions it can emit
    86       when generating assembly code. This option can be used in conjunction
    87       with or instead of the ARCH_CPU option (above), or a (command-line)
    88       -mcpu= option.
    89       
    90       Pick a value from the gcc manual for your choosen gcc version and your
    91       target CPU.
    92       
    93       Leave blank if you don't know, or if your target architecture does not
    94       offer this option.
    95 
    96 config ARCH_FPU
    97     string
    98     prompt "Use FPU"
    99     default ""
   100     help
   101       On some targets (eg. ARM), you can specify the kind of FPU to emit
   102       code for.
   103       
   104       See below wether to actually emit FP opcodes, or to emulate them.
   105       
   106       Pick a value from the gcc manual for your choosen gcc version and your
   107       target CPU.
   108       
   109       Leave blank if you don't know, or if your target architecture does not
   110       offer this option.
   111 
   112 choice
   113     bool
   114     prompt "Floating point:"
   115 
   116 config ARCH_FLOAT_HW
   117     bool
   118     prompt "hardware (FPU)"
   119     help
   120       Emit hardware floating point opcodes.
   121       
   122       If you've got a processor with a FPU, then you want that.
   123       If your hardware has no FPU, you still can use HW floating point, but
   124       need to compile support for FPU emulation in your kernel. Needless to
   125       say that emulating the FPU is /slooowwwww/...
   126       
   127       One situation you'd want HW floating point without a FPU is if you get
   128       binary blobs from different vendors that are compiling this way and
   129       can't (don't wan't to) change.
   130 
   131 config ARCH_FLOAT_SW
   132     bool
   133     prompt "software"
   134     help
   135       Do not emit any hardware floating point opcode.
   136       
   137       If your processor has no FPU, then you most probably want this, as it
   138       is faster than emulating the FPU in the kernel.
   139 
   140 endchoice
   141 
   142 config ARCH_FLOAT_SW_LIBFLOAT
   143     bool
   144     prompt "Use libfloat"
   145     default n
   146     depends on ARCH_FLOAT_SW
   147     help
   148       For those targets upporting it, you can use libfloat for the software
   149       floating point emulation.
   150       
   151       Note that some versions of gcc have support code that supersedes libfloat,
   152       while others don't. Known version of gcc that don't have support code are
   153       versions prior to 3.0, and version above 4.0.
   154       
   155       You should check gcc before deciding to use libfloat.
   156 
   157 config TARGET_CFLAGS
   158     string
   159     prompt "Default target CFLAGS"
   160     default ""
   161     help
   162       Used to add specific options when compiling libraries of the toolchain,
   163       that will run on the target (eg. libc.so).
   164       
   165       Note that the options above for CPU, tune, arch and FPU will be
   166       automaticaly used. You don't need to specify them here.
   167       
   168       Leave blank if you don't know better.
   169 
   170 comment "Toolchain options"
   171 
   172 config USE_SYSROOT
   173     bool
   174     prompt "Use sysroot'ed toolchain"
   175     default y
   176     help
   177       Use the 'shinny new' sysroot feature of gcc: libraries split between
   178       prefix/target/sys-root/lib and prefix/target/sys-root/usr/lib
   179       
   180       You definitely want to say 'Y' here. Yes you do. I know you do. Say 'Y'.
   181 
   182 config SHARED_LIBS
   183     bool
   184     prompt "Build shared libraries"
   185     default y
   186     help
   187       Say 'y' here, unless you don't want shared libraries.
   188       
   189       You might not want shared librries if you're building for a target that
   190       don't support it (maybe some nommu targets, for example, or bare metal).
   191 
   192 config TARGET_MULTILIB
   193     bool
   194 #    prompt "Enable 'multilib' support (EXPERIMENTAL)"
   195     default n
   196     help
   197       Enable the so-called 'multilib' support.
   198       
   199       With the same toolchain, and on some architectures, you will be able to
   200       build big and little endian binaries, soft- and hard-float, etc...
   201       
   202       See the gcc configure manual at http://gcc.gnu.org/install/configure.html
   203       to see what multilib your target supports.
   204       
   205       It's preferable for now to build two (or more) toolchains, one for each
   206       configuration you need to support (eg. one for thumb and one for ARM,
   207       etc...). You can use the vendor string to diferentiate those toolchains.
   208 
   209 config TARGET_VENDOR
   210     string
   211     prompt "Vendor string"
   212     default "unknown"
   213     help
   214       Vendor part of the machine triplet.
   215       
   216       A triplet is of the form arch-vendor-kernel-system.
   217       You can set the second part, vendor, to whatever you see fit.
   218       Use a single word, or use underscores "_" to separate words.
   219       
   220       Keep the default (unkown) if you don't know better.
   221 
   222 config TARGET_ALIAS
   223     string
   224     prompt "Target alias"
   225     default ""
   226     help
   227       Normaly, you'd call your toolchain component (especially gcc) by
   228       prefixing the target triplet followed by a dash and the component name
   229       (eg. armeb-unknown-linux-uclibc-gcc).
   230       
   231       You can enter a shortcut here. This string will be used to create
   232       symbolic links to the toolchain tools (eg. if you enter "foo-bar" here,
   233       then gcc for your toolchain will also be available as "foo-bar-gcc" along
   234       with the original name).
   235       
   236       You shouldn't need to enter anything here, unless you plan to manually
   237       call the tools (autotools-based ./configure will use the standard name).
   238 
   239 config ARCH
   240     string
   241     default "arm"     if ARCH_ARM
   242     default "mips"    if ARCH_MIPS
   243     default "x86"     if ARCH_x86
   244     default "x86_64"  if ARCH_x86_64
   245 
   246 config BUILD 
   247     string
   248     prompt "Build system triplet"
   249     default ""
   250     help
   251       Canonical name of the machine building the toolchain.
   252       You should leave empty, unless you really now what you're doing.
   253 
   254 config CC_NATIVE
   255     string
   256     prompt "Native gcc"
   257     default "gcc"
   258     help
   259       The native C compiler.
   260       
   261       You can set this to an alternative compiler if you have more than one
   262       installed (eg. gcc is gcc-4.1.1 and you want to use gcc-3.4.6).
   263       
   264       You can leave this empty as well, in which case gcc will be used.
   265 
   266 config CANADIAN
   267     bool
   268     prompt "Canadian build (EXPERIMENTAL)"
   269     default n
   270     help
   271       A canadian build allows to build a compiler on a first machine
   272       (build system), that will run on second machine (host system),
   273       targetting a third machine (target system).
   274       
   275       An example where you'd want a candian cross-compiler is to create
   276       a native compiler for your target. In this case host and target
   277       are the same.
   278 
   279 config HOST
   280     string
   281     prompt "Host system triplet"
   282     default ""
   283     depends on CANADIAN
   284     help
   285       Canonical name of the machine serving as host.
   286 
   287 config HOST_CC
   288     string
   289     prompt "Host system compiler"
   290     default "${CT_HOST}-"
   291     depends on CANADIAN
   292     help
   293       C compiler targeting the host system.
   294       If HOST_CC ends with a dash (-), then it is considered to be the
   295       prefix to gcc (eg. x86-pc-linuc-gnu-).
   296       If it is empty, it is formed by appending '-gcc' to HOST.
   297       Else it is considered to be the complete name of the compiler, with
   298       full path, or without path (provided that it can be found in PATH).
   299 
   300 endmenu