config/target.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Apr 17 22:24:42 2007 +0000 (2007-04-17)
changeset 41 fd6ad5721f77
parent 35 2dce00870893
child 45 42faddd0098a
permissions -rw-r--r--
Add the EXPERIMENTAL option to show options marked as such.
Add the four types of toolchains ct-ng is able to build as EXPERIMENTAL, except for CROSS which *is* functional.
Reorder menus accordingly.
     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     select ARCH_SUPPORTS_BE
    16     select ARCH_SUPPORTS_LE
    17 
    18 config ARCH_MIPS
    19     bool
    20     prompt "mips"
    21     select ARCH_SUPPORTS_BE
    22     select ARCH_SUPPORTS_LE
    23 
    24 config ARCH_x86
    25     bool
    26     prompt "x86"
    27     select ARCH_SUPPORTS_LE
    28 
    29 config ARCH_x86_64
    30     bool
    31     prompt "x86_64"
    32     select ARCH_SUPPORTS_LE
    33 
    34 endchoice
    35 
    36 config ARCH_SUPPORTS_BE
    37     bool
    38     default n
    39 
    40 config ARCH_SUPPORTS_LE
    41     bool
    42     default n
    43 
    44 choice
    45     bool
    46     prompt "Endianness:"
    47 
    48 config ARCH_BE
    49     bool
    50     prompt "Big endian"
    51     depends on ARCH_SUPPORTS_BE
    52 
    53 config ARCH_LE
    54     bool
    55     prompt "Little endian"
    56     depends on ARCH_SUPPORTS_LE
    57 
    58 endchoice
    59 
    60 comment "Target optimisations"
    61 
    62 config ARCH_CPU
    63     string
    64     prompt "Emit assembly for CPU"
    65     default ""
    66     help
    67       This specifies the name of the target ARM processor. GCC uses this name
    68       to determine what kind of instructions it can emit when generating
    69       assembly code.
    70       
    71       Pick a value from the gcc manual for your choosen gcc version and your
    72       target CPU.
    73       
    74       Leave blank if you don't know, or if your target architecture does not
    75       offer this option.
    76 
    77 config ARCH_TUNE
    78     string
    79     prompt "Tune for CPU"
    80     default ""
    81     help
    82       This option is very similar to the ARCH_CPU option (above), except
    83       that instead of specifying the actual target processor type, and hence
    84       restricting which instructions can be used, it specifies that GCC should
    85       tune the performance of the code as if the target were of the type
    86       specified in this option, but still choosing the instructions that it
    87       will generate based on the cpu specified by the ARCH_CPU option
    88       (above), or a (command-line) -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_ARCH
    97     string
    98     prompt "Achitecture level"
    99     default ""
   100     help
   101       GCC uses this name to determine what kind of instructions it can emit
   102       when generating assembly code. This option can be used in conjunction
   103       with or instead of the ARCH_CPU option (above), or a (command-line)
   104       -mcpu= option.
   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 config ARCH_FPU
   113     string
   114     prompt "Use FPU"
   115     default ""
   116     help
   117       On some targets (eg. ARM), you can specify the kind of FPU to emit
   118       code for.
   119       
   120       See below wether to actually emit FP opcodes, or to emulate them.
   121       
   122       Pick a value from the gcc manual for your choosen gcc version and your
   123       target CPU.
   124       
   125       Leave blank if you don't know, or if your target architecture does not
   126       offer this option.
   127 
   128 choice
   129     bool
   130     prompt "Floating point:"
   131 
   132 config ARCH_FLOAT_HW
   133     bool
   134     prompt "hardware (FPU)"
   135     help
   136       Emit hardware floating point opcodes.
   137       
   138       If you've got a processor with a FPU, then you want that.
   139       If your hardware has no FPU, you still can use HW floating point, but
   140       need to compile support for FPU emulation in your kernel. Needless to
   141       say that emulating the FPU is /slooowwwww/...
   142       
   143       One situation you'd want HW floating point without a FPU is if you get
   144       binary blobs from different vendors that are compiling this way and
   145       can't (don't wan't to) change.
   146 
   147 config ARCH_FLOAT_SW
   148     bool
   149     prompt "software"
   150     help
   151       Do not emit any hardware floating point opcode.
   152       
   153       If your processor has no FPU, then you most probably want this, as it
   154       is faster than emulating the FPU in the kernel.
   155 
   156 endchoice
   157 
   158 config ARCH_FLOAT_SW_LIBFLOAT
   159     bool
   160     prompt "Use libfloat"
   161     default n
   162     depends on ARCH_FLOAT_SW
   163     help
   164       For those targets upporting it, you can use libfloat for the software
   165       floating point emulation.
   166       
   167       Note that some versions of gcc have support code that supersedes libfloat,
   168       while others don't. Known version of gcc that don't have support code are
   169       versions prior to 3.0, and version above 4.0.
   170       
   171       You should check gcc before deciding to use libfloat.
   172 
   173 config TARGET_CFLAGS
   174     string
   175     prompt "Target CFLAGS"
   176     default ""
   177     help
   178       Used to add specific options when compiling libraries of the toolchain,
   179       that will run on the target (eg. libc.so).
   180       
   181       Note that the options above for CPU, tune, arch and FPU will be
   182       automaticaly used. You don't need to specify them here.
   183       
   184       Leave blank if you don't know better.
   185 
   186 endmenu