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