config/target.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun May 27 20:23:41 2007 +0000 (2007-05-27)
changeset 137 927533f2b278
parent 117 80c4338ec0a0
child 138 dc4ce917245f
permissions -rw-r--r--
Forgot to remove all build system tools from the generated toolchain.
     1 # Target definition: architecture, optimisations, etc...
     2 
     3 menu "Target options"
     4 
     5 comment "General target options"
     6 
     7 config ARCH
     8     string
     9     default "arm"     if ARCH_ARM
    10     default "mips"    if ARCH_MIPS
    11     default "x86"     if ARCH_x86
    12     default "x86_64"  if ARCH_x86_64
    13 
    14 choice
    15     bool
    16     prompt "Target architecture:"
    17     default ARCH_x86
    18 
    19 config ARCH_ARM
    20     bool
    21     prompt "arm"
    22     select ARCH_SUPPORTS_BOTH_ENDIAN
    23     select ARCH_SUPPORTS_LIBFLOAT
    24 
    25 config ARCH_MIPS
    26     bool
    27     prompt "mips"
    28     select ARCH_SUPPORTS_BOTH_ENDIAN
    29 
    30 config ARCH_x86
    31     bool
    32     prompt "x86"
    33     select ARCH_SUPPORTS_LIBFLOAT
    34 
    35 config ARCH_x86_64
    36     bool
    37     prompt "x86_64"
    38 
    39 endchoice
    40 
    41 config ARCH_SUPPORTS_BOTH_ENDIAN
    42     bool
    43     default n
    44 
    45 choice
    46     bool
    47     prompt "Endianness:"
    48     depends on ARCH_SUPPORTS_BOTH_ENDIAN
    49 
    50 config ARCH_BE
    51     bool
    52     prompt "Big endian"
    53 
    54 config ARCH_LE
    55     bool
    56     prompt "Little endian"
    57 
    58 endchoice
    59 
    60 choice
    61     bool
    62     prompt "Threading implentation to use:"
    63     default THREADS_NPTL           if LIBC_SUPPORT_NPTL
    64     default THREADS_LINUXTHREADS   if LIBC_SUPPORT_LINUXTHREADS && ! LIBC_SUPPORT_NPTL
    65     default THREADS_NONE           if ! LIBC_SUPPORT_LINUXTHREADS && ! LIBC_SUPPORT_NPTL
    66 
    67 config THREADS_NPTL
    68     bool
    69     prompt "nptl (EXPERIMENTAL)"
    70     depends on LIBC_SUPPORT_NPTL
    71     depends on EXPERIMENTAL
    72 
    73 config THREADS_LINUXTHREADS
    74     bool
    75     prompt "linuxthreads"
    76     depends on LIBC_SUPPORT_LINUXTHREADS
    77 
    78 config THREADS_NONE
    79     bool
    80     prompt "none"
    81 
    82 endchoice
    83 
    84 config THREADS
    85     string
    86     default "nptl"          if THREADS_NPTL
    87     default "linuxthreads"  if THREADS_LINUXTHREADS
    88     default "none"          if THREADS_NONE
    89 
    90 comment "Target optimisations"
    91 
    92 config ARCH_ARCH
    93     string
    94     prompt "Achitecture level"
    95     default ""
    96     help
    97       GCC uses this name to determine what kind of instructions it can emit
    98       when generating assembly code. This option can be used in conjunction
    99       with or instead of the ARCH_CPU option (above), or a (command-line)
   100       -mcpu= option.
   101       
   102       This is the configuration flag --with-arch=XXXX, and the runtime flag
   103       -march=XXX.
   104       
   105       Pick a value from the gcc manual for your choosen gcc version and your
   106       target CPU.
   107       
   108       Leave blank if you don't know, or if your target architecture does not
   109       offer this option.
   110 
   111 config ARCH_ABI
   112     string
   113     prompt "Generate code for the specific ABI"
   114     default ""
   115     help
   116       Generate code for the given ABI.
   117 
   118       This is the configuration flag --with-abi=XXXX, and the runtime flag
   119       -mabi=XXX.
   120 
   121       Pick a value from the gcc manual for your choosen gcc version and your
   122       target CPU.
   123 
   124       Leave blank if you don't know, or if your target architecutre does not
   125       offer this option.
   126 
   127 config ARCH_CPU
   128     string
   129     prompt "Emit assembly for CPU"
   130     default ""
   131     help
   132       This specifies the name of the target ARM processor. GCC uses this name
   133       to determine what kind of instructions it can emit when generating
   134       assembly code.
   135       
   136       This is the configuration flag --with-cpu=XXXX, and the runtime flag
   137       -mcpu=XXX.
   138 
   139       Pick a value from the gcc manual for your choosen gcc version and your
   140       target CPU.
   141       
   142       Leave blank if you don't know, or if your target architecture does not
   143       offer this option.
   144 
   145 config ARCH_TUNE
   146     string
   147     prompt "Tune for CPU"
   148     default ""
   149     help
   150       This option is very similar to the ARCH_CPU option (above), except
   151       that instead of specifying the actual target processor type, and hence
   152       restricting which instructions can be used, it specifies that GCC should
   153       tune the performance of the code as if the target were of the type
   154       specified in this option, but still choosing the instructions that it
   155       will generate based on the cpu specified by the ARCH_CPU option
   156       (above), or a (command-line) -mcpu= option.
   157       
   158       This is the configuration flag --with-tune=XXXX, and the runtime flag
   159       -mtune=XXX.
   160       
   161       Pick a value from the gcc manual for your choosen gcc version and your
   162       target CPU.
   163       
   164       Leave blank if you don't know, or if your target architecture does not
   165       offer this option.
   166 
   167 config ARCH_FPU
   168     string
   169     prompt "Use specific FPU"
   170     default ""
   171     help
   172       On some targets (eg. ARM), you can specify the kind of FPU to emit
   173       code for.
   174 
   175       This is the configuration flag --with-fpu=XXX, and the runtime flag
   176       -mfpu=XXX.
   177       
   178       See below wether to actually emit FP opcodes, or to emulate them.
   179       
   180       Pick a value from the gcc manual for your choosen gcc version and your
   181       target CPU.
   182       
   183       Leave blank if you don't know, or if your target architecture does not
   184       offer this option.
   185 
   186 choice
   187     bool
   188     prompt "Floating point:"
   189 
   190 config ARCH_FLOAT_HW
   191     bool
   192     prompt "hardware (FPU)"
   193     help
   194       Emit hardware floating point opcodes.
   195       
   196       If you've got a processor with a FPU, then you want that.
   197       If your hardware has no FPU, you still can use HW floating point, but
   198       need to compile support for FPU emulation in your kernel. Needless to
   199       say that emulating the FPU is /slooowwwww/...
   200       
   201       One situation you'd want HW floating point without a FPU is if you get
   202       binary blobs from different vendors that are compiling this way and
   203       can't (don't wan't to) change.
   204 
   205 config ARCH_FLOAT_SW
   206     bool
   207     prompt "software"
   208     help
   209       Do not emit any hardware floating point opcode.
   210       
   211       If your processor has no FPU, then you most probably want this, as it
   212       is faster than emulating the FPU in the kernel.
   213 
   214 endchoice
   215 
   216 config ARCH_SUPPORTS_LIBFLOAT
   217     bool
   218     default n
   219 
   220 config ARCH_FLOAT_SW_LIBFLOAT
   221     bool
   222     prompt "Use libfloat"
   223     default n
   224     depends on ARCH_FLOAT_SW && ARCH_SUPPORTS_LIBFLOAT
   225     help
   226       For those targets upporting it, you can use libfloat for the software
   227       floating point emulation.
   228       
   229       Note that some versions of gcc have support code that supersedes libfloat,
   230       while others don't. Known version of gcc that don't have support code are
   231       versions prior to 3.0, and version above 4.0.
   232       
   233       You should check gcc before deciding to use libfloat.
   234 
   235 config LIBFLOAT_VERSION
   236     string
   237     default "990616.orig"
   238     depends on ARCH_FLOAT_SW_LIBFLOAT
   239 
   240 config TARGET_CFLAGS
   241     string
   242     prompt "Target CFLAGS"
   243     default ""
   244     help
   245       Used to add specific options when compiling libraries of the toolchain,
   246       that will run on the target (eg. libc.so).
   247       
   248       Note that the options above for CPU, tune, arch and FPU will be
   249       automaticaly used. You don't need to specify them here.
   250       
   251       Leave blank if you don't know better.
   252 
   253 endmenu