config/target.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Fri Jun 27 15:08:43 2008 +0000 (2008-06-27)
changeset 631 2761b358f9e6
parent 628 87802cb25a0f
child 633 9193aa9460db
permissions -rw-r--r--
Only present each of arch, abi, cpu tune and fpu optimisations for those targets supporting them.

/trunk/config/target.in | 30 30 0 0 ++++++++++++++++++++++++++++++
/trunk/arch/arm/config.in | 5 5 0 0 +++++
/trunk/arch/powerpc/config.in | 3 3 0 0 +++
/trunk/arch/alpha/config.in | 2 2 0 0 ++
/trunk/arch/x86/config.in | 3 3 0 0 +++
/trunk/arch/mips/config.in | 3 3 0 0 +++
/trunk/arch/x86_64/config.in | 3 3 0 0 +++
7 files changed, 49 insertions(+)
     1 # Target definition: architecture, optimisations, etc...
     2 
     3 menu "Target options"
     4 
     5 config ARCH
     6     string
     7 
     8 # Pre-declare target optimisation variables
     9 config ARCH_SUPPORT_ARCH
    10 config ARCH_ARCH
    11 config ARCH_SUPPORT_ABI
    12 config ARCH_ABI
    13 config ARCH_SUPPORT_CPU
    14 config ARCH_CPU
    15 config ARCH_SUPPORT_TUNE
    16 config ARCH_TUNE
    17 config ARCH_SUPPORT_FPU
    18 config ARCH_FPU
    19 config ARCH_SUPPORTS_BOTH_ENDIAN
    20 config ARCH_DEFAULT_BE
    21 config ARCH_DEFAULT_LE
    22 config ARCH_FLOAT_HW
    23 config ARCH_FLOAT_SW
    24 config TARGET_CFLAGS
    25 
    26 comment "General target options"
    27 
    28 choice
    29     bool
    30     prompt "Target architecture:"
    31 
    32 source config.gen/arch.in
    33 
    34 endchoice
    35 
    36 config ARCH_SUPPORTS_BOTH_ENDIAN
    37     bool
    38     default n
    39 
    40 config ARCH_DEFAULT_BE
    41     bool
    42     default n
    43 
    44 config ARCH_DEFAULT_LE
    45     bool
    46     default n
    47 
    48 choice
    49     bool
    50     prompt "Endianness:"
    51     depends on ARCH_SUPPORTS_BOTH_ENDIAN
    52     default ARCH_BE if ARCH_DEFAULT_BE
    53     default ARCH_LE if ARCH_DEFAULT_LE
    54 
    55 config ARCH_BE
    56     bool
    57     prompt "Big endian"
    58 
    59 config ARCH_LE
    60     bool
    61     prompt "Little endian"
    62 
    63 endchoice
    64 
    65 comment "Target optimisations"
    66 
    67 config ARCH_SUPPORT_ARCH
    68     bool
    69     default n
    70 
    71 config ARCH_SUPPORT_ABI
    72     bool
    73     default n
    74 
    75 config ARCH_SUPPORT_CPU
    76     bool
    77     default n
    78 
    79 config ARCH_SUPPORT_TUNE
    80     bool
    81     default n
    82 
    83 config ARCH_SUPPORT_FPU
    84     bool
    85     default n
    86 
    87 config ARCH_ARCH
    88     string
    89     prompt "Architecture level"
    90     depends on ARCH_SUPPORT_ARCH
    91     default ""
    92     help
    93       GCC uses this name to determine what kind of instructions it can emit
    94       when generating assembly code. This option can be used in conjunction
    95       with or instead of the ARCH_CPU option (above), or a (command-line)
    96       -mcpu= option.
    97       
    98       This is the configuration flag --with-arch=XXXX, and the runtime flag
    99       -march=XXX.
   100       
   101       Pick a value from the gcc manual for your choosen gcc version and your
   102       target CPU.
   103       
   104       Leave blank if you don't know, or if your target architecture does not
   105       offer this option.
   106 
   107 config ARCH_ABI
   108     string
   109     prompt "Generate code for the specific ABI"
   110     depends on ARCH_SUPPORT_ABI
   111     default ""
   112     help
   113       Generate code for the given ABI.
   114 
   115       This is the configuration flag --with-abi=XXXX, and the runtime flag
   116       -mabi=XXX.
   117 
   118       Pick a value from the gcc manual for your choosen gcc version and your
   119       target CPU.
   120 
   121       Leave blank if you don't know, or if your target architecutre does not
   122       offer this option.
   123 
   124 config ARCH_CPU
   125     string
   126     prompt "Emit assembly for CPU"
   127     depends on ARCH_SUPPORT_CPU
   128     default ""
   129     help
   130       This specifies the name of the target processor. GCC uses this name
   131       to determine what kind of instructions it can emit when generating
   132       assembly code.
   133       
   134       This is the configuration flag --with-cpu=XXXX, and the runtime flag
   135       -mcpu=XXX.
   136 
   137       Pick a value from the gcc manual for your choosen gcc version and your
   138       target CPU.
   139       
   140       Leave blank if you don't know, or if your target architecture does not
   141       offer this option.
   142 
   143 config ARCH_TUNE
   144     string
   145     prompt "Tune for CPU"
   146     depends on ARCH_SUPPORT_TUNE
   147     default ""
   148     help
   149       This option is very similar to the ARCH_CPU option (above), except
   150       that instead of specifying the actual target processor type, and hence
   151       restricting which instructions can be used, it specifies that GCC should
   152       tune the performance of the code as if the target were of the type
   153       specified in this option, but still choosing the instructions that it
   154       will generate based on the cpu specified by the ARCH_CPU option
   155       (above), or a (command-line) -mcpu= option.
   156       
   157       This is the configuration flag --with-tune=XXXX, and the runtime flag
   158       -mtune=XXX.
   159       
   160       Pick a value from the gcc manual for your choosen gcc version and your
   161       target CPU.
   162       
   163       Leave blank if you don't know, or if your target architecture does not
   164       offer this option.
   165 
   166 config ARCH_FPU
   167     string
   168     prompt "Use specific FPU"
   169     depends on ARCH_SUPPORT_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 TARGET_CFLAGS
   217     string
   218     prompt "Target CFLAGS"
   219     default ""
   220     help
   221       Used to add specific options when compiling libraries of the toolchain,
   222       that will run on the target (eg. libc.so).
   223       
   224       Note that the options above for ARCH, ABI, CPU, TUNE and FPU will be
   225       automaticaly used. You don't need to specify them here.
   226       
   227       Leave blank if you don't know better.
   228 
   229 endmenu