config/target.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Jul 28 21:34:41 2007 +0000 (2007-07-28)
changeset 301 2be7232a73ac
parent 144 27a0abfd46d1
child 305 00a7e6c275da
permissions -rw-r--r--
Bump version to 0.2.2.
     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 comment "Target optimisations"
    61 
    62 config ARCH_ARCH
    63     string
    64     prompt "Achitecture level"
    65     default ""
    66     help
    67       GCC uses this name to determine what kind of instructions it can emit
    68       when generating assembly code. This option can be used in conjunction
    69       with or instead of the ARCH_CPU option (above), or a (command-line)
    70       -mcpu= option.
    71       
    72       This is the configuration flag --with-arch=XXXX, and the runtime flag
    73       -march=XXX.
    74       
    75       Pick a value from the gcc manual for your choosen gcc version and your
    76       target CPU.
    77       
    78       Leave blank if you don't know, or if your target architecture does not
    79       offer this option.
    80 
    81 config ARCH_ABI
    82     string
    83     prompt "Generate code for the specific ABI"
    84     default ""
    85     help
    86       Generate code for the given ABI.
    87 
    88       This is the configuration flag --with-abi=XXXX, and the runtime flag
    89       -mabi=XXX.
    90 
    91       Pick a value from the gcc manual for your choosen gcc version and your
    92       target CPU.
    93 
    94       Leave blank if you don't know, or if your target architecutre does not
    95       offer this option.
    96 
    97 config ARCH_CPU
    98     string
    99     prompt "Emit assembly for CPU"
   100     default ""
   101     help
   102       This specifies the name of the target processor. GCC uses this name
   103       to determine what kind of instructions it can emit when generating
   104       assembly code.
   105       
   106       This is the configuration flag --with-cpu=XXXX, and the runtime flag
   107       -mcpu=XXX.
   108 
   109       Pick a value from the gcc manual for your choosen gcc version and your
   110       target CPU.
   111       
   112       Leave blank if you don't know, or if your target architecture does not
   113       offer this option.
   114 
   115 config ARCH_TUNE
   116     string
   117     prompt "Tune for CPU"
   118     default ""
   119     help
   120       This option is very similar to the ARCH_CPU option (above), except
   121       that instead of specifying the actual target processor type, and hence
   122       restricting which instructions can be used, it specifies that GCC should
   123       tune the performance of the code as if the target were of the type
   124       specified in this option, but still choosing the instructions that it
   125       will generate based on the cpu specified by the ARCH_CPU option
   126       (above), or a (command-line) -mcpu= option.
   127       
   128       This is the configuration flag --with-tune=XXXX, and the runtime flag
   129       -mtune=XXX.
   130       
   131       Pick a value from the gcc manual for your choosen gcc version and your
   132       target CPU.
   133       
   134       Leave blank if you don't know, or if your target architecture does not
   135       offer this option.
   136 
   137 config ARCH_FPU
   138     string
   139     prompt "Use specific FPU"
   140     default ""
   141     help
   142       On some targets (eg. ARM), you can specify the kind of FPU to emit
   143       code for.
   144 
   145       This is the configuration flag --with-fpu=XXX, and the runtime flag
   146       -mfpu=XXX.
   147       
   148       See below wether to actually emit FP opcodes, or to emulate them.
   149       
   150       Pick a value from the gcc manual for your choosen gcc version and your
   151       target CPU.
   152       
   153       Leave blank if you don't know, or if your target architecture does not
   154       offer this option.
   155 
   156 choice
   157     bool
   158     prompt "Floating point:"
   159 
   160 config ARCH_FLOAT_HW
   161     bool
   162     prompt "hardware (FPU)"
   163     help
   164       Emit hardware floating point opcodes.
   165       
   166       If you've got a processor with a FPU, then you want that.
   167       If your hardware has no FPU, you still can use HW floating point, but
   168       need to compile support for FPU emulation in your kernel. Needless to
   169       say that emulating the FPU is /slooowwwww/...
   170       
   171       One situation you'd want HW floating point without a FPU is if you get
   172       binary blobs from different vendors that are compiling this way and
   173       can't (don't wan't to) change.
   174 
   175 config ARCH_FLOAT_SW
   176     bool
   177     prompt "software"
   178     help
   179       Do not emit any hardware floating point opcode.
   180       
   181       If your processor has no FPU, then you most probably want this, as it
   182       is faster than emulating the FPU in the kernel.
   183 
   184 endchoice
   185 
   186 config ARCH_SUPPORTS_LIBFLOAT
   187     bool
   188     default n
   189 
   190 config ARCH_FLOAT_SW_LIBFLOAT
   191     bool
   192     prompt "Use libfloat"
   193     default n
   194     depends on ARCH_FLOAT_SW && ARCH_SUPPORTS_LIBFLOAT
   195     help
   196       For those targets upporting it, you can use libfloat for the software
   197       floating point emulation.
   198       
   199       Note that some versions of gcc have support code that supersedes libfloat,
   200       while others don't. Known version of gcc that don't have support code are
   201       versions prior to 3.0, and version above 4.0.
   202       
   203       You should check gcc before deciding to use libfloat.
   204 
   205 config LIBFLOAT_VERSION
   206     string
   207     default "990616.orig"
   208     depends on ARCH_FLOAT_SW_LIBFLOAT
   209 
   210 config TARGET_CFLAGS
   211     string
   212     prompt "Target CFLAGS"
   213     default ""
   214     help
   215       Used to add specific options when compiling libraries of the toolchain,
   216       that will run on the target (eg. libc.so).
   217       
   218       Note that the options above for CPU, tune, arch and FPU will be
   219       automaticaly used. You don't need to specify them here.
   220       
   221       Leave blank if you don't know better.
   222 
   223 endmenu