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