config/target.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Sep 11 17:24:09 2007 +0000 (2007-09-11)
changeset 373 34612b693dde
parent 368 9355e869a76b
child 380 2f7b676c7b2f
permissions -rw-r--r--
Merge from branches/ia64@476 : add ia64 preliminary support.
     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 "ia64"    if ARCH_IA64
    11     default "mips"    if ARCH_MIPS
    12     default "x86"     if ARCH_x86
    13     default "x86_64"  if ARCH_x86_64
    14 
    15 choice
    16     bool
    17     prompt "Target architecture:"
    18     default ARCH_x86
    19 
    20 config ARCH_ARM
    21     bool
    22     prompt "arm"
    23     select ARCH_SUPPORTS_BOTH_ENDIAN
    24     select ARCH_DEFAULT_LE
    25 
    26 config ARCH_IA64
    27     bool
    28     prompt "ia64 (EXPERIMENTAL)"
    29     depends on EXPERIMENTAL
    30     select ARCH_SUPPORTS_BOTH_ENDIAN
    31 
    32 config ARCH_MIPS
    33     bool
    34     prompt "mips"
    35     select ARCH_SUPPORTS_BOTH_ENDIAN
    36     select ARCH_DEFAULT_BE
    37 
    38 config ARCH_x86
    39     bool
    40     prompt "x86"
    41 
    42 config ARCH_x86_64
    43     bool
    44     prompt "x86_64"
    45 
    46 endchoice
    47 
    48 config ARCH_SUPPORTS_BOTH_ENDIAN
    49     bool
    50     default n
    51 
    52 config ARCH_DEFAULT_BE
    53     bool
    54     default n
    55 
    56 config ARCH_DEFAULT_LE
    57     bool
    58     default n
    59 
    60 choice
    61     bool
    62     prompt "Endianness:"
    63     depends on ARCH_SUPPORTS_BOTH_ENDIAN
    64     default ARCH_BE if ARCH_DEFAULT_BE
    65     default ARCH_LE if ARCH_DEFAULT_LE
    66 
    67 config ARCH_BE
    68     bool
    69     prompt "Big endian"
    70 
    71 config ARCH_LE
    72     bool
    73     prompt "Little endian"
    74 
    75 endchoice
    76 
    77 comment "Target optimisations"
    78 
    79 config ARCH_ARCH
    80     string
    81     prompt "Achitecture level"
    82     default ""
    83     help
    84       GCC uses this name to determine what kind of instructions it can emit
    85       when generating assembly code. This option can be used in conjunction
    86       with or instead of the ARCH_CPU option (above), or a (command-line)
    87       -mcpu= option.
    88       
    89       This is the configuration flag --with-arch=XXXX, and the runtime flag
    90       -march=XXX.
    91       
    92       Pick a value from the gcc manual for your choosen gcc version and your
    93       target CPU.
    94       
    95       Leave blank if you don't know, or if your target architecture does not
    96       offer this option.
    97 
    98 config ARCH_ABI
    99     string
   100     prompt "Generate code for the specific ABI"
   101     default ""
   102     help
   103       Generate code for the given ABI.
   104 
   105       This is the configuration flag --with-abi=XXXX, and the runtime flag
   106       -mabi=XXX.
   107 
   108       Pick a value from the gcc manual for your choosen gcc version and your
   109       target CPU.
   110 
   111       Leave blank if you don't know, or if your target architecutre does not
   112       offer this option.
   113 
   114 config ARCH_CPU
   115     string
   116     prompt "Emit assembly for CPU"
   117     default ""
   118     help
   119       This specifies the name of the target processor. GCC uses this name
   120       to determine what kind of instructions it can emit when generating
   121       assembly code.
   122       
   123       This is the configuration flag --with-cpu=XXXX, and the runtime flag
   124       -mcpu=XXX.
   125 
   126       Pick a value from the gcc manual for your choosen gcc version and your
   127       target CPU.
   128       
   129       Leave blank if you don't know, or if your target architecture does not
   130       offer this option.
   131 
   132 config ARCH_TUNE
   133     string
   134     prompt "Tune for CPU"
   135     default ""
   136     help
   137       This option is very similar to the ARCH_CPU option (above), except
   138       that instead of specifying the actual target processor type, and hence
   139       restricting which instructions can be used, it specifies that GCC should
   140       tune the performance of the code as if the target were of the type
   141       specified in this option, but still choosing the instructions that it
   142       will generate based on the cpu specified by the ARCH_CPU option
   143       (above), or a (command-line) -mcpu= option.
   144       
   145       This is the configuration flag --with-tune=XXXX, and the runtime flag
   146       -mtune=XXX.
   147       
   148       Pick a value from the gcc manual for your choosen gcc version and your
   149       target CPU.
   150       
   151       Leave blank if you don't know, or if your target architecture does not
   152       offer this option.
   153 
   154 config ARCH_FPU
   155     string
   156     prompt "Use specific FPU"
   157     default ""
   158     help
   159       On some targets (eg. ARM), you can specify the kind of FPU to emit
   160       code for.
   161 
   162       This is the configuration flag --with-fpu=XXX, and the runtime flag
   163       -mfpu=XXX.
   164       
   165       See below wether to actually emit FP opcodes, or to emulate them.
   166       
   167       Pick a value from the gcc manual for your choosen gcc version and your
   168       target CPU.
   169       
   170       Leave blank if you don't know, or if your target architecture does not
   171       offer this option.
   172 
   173 choice
   174     bool
   175     prompt "Floating point:"
   176 
   177 config ARCH_FLOAT_HW
   178     bool
   179     prompt "hardware (FPU)"
   180     help
   181       Emit hardware floating point opcodes.
   182       
   183       If you've got a processor with a FPU, then you want that.
   184       If your hardware has no FPU, you still can use HW floating point, but
   185       need to compile support for FPU emulation in your kernel. Needless to
   186       say that emulating the FPU is /slooowwwww/...
   187       
   188       One situation you'd want HW floating point without a FPU is if you get
   189       binary blobs from different vendors that are compiling this way and
   190       can't (don't wan't to) change.
   191 
   192 config ARCH_FLOAT_SW
   193     bool
   194     prompt "software"
   195     help
   196       Do not emit any hardware floating point opcode.
   197       
   198       If your processor has no FPU, then you most probably want this, as it
   199       is faster than emulating the FPU in the kernel.
   200 
   201 endchoice
   202 
   203 config TARGET_CFLAGS
   204     string
   205     prompt "Target CFLAGS"
   206     default ""
   207     help
   208       Used to add specific options when compiling libraries of the toolchain,
   209       that will run on the target (eg. libc.so).
   210       
   211       Note that the options above for CPU, tune, arch and FPU will be
   212       automaticaly used. You don't need to specify them here.
   213       
   214       Leave blank if you don't know better.
   215 
   216 endmenu