config/target.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Fri Jun 27 13:58:53 2008 +0000 (2008-06-27)
changeset 628 87802cb25a0f
parent 557 595b2ff3fbf4
child 631 2761b358f9e6
permissions -rw-r--r--
Autogenerate the architecture selection choice menu.
Update architectures definition files accordingly.
Update documentation accordingly.
Use makefile syntax when listing arch/, tools/ and debug/ config files.

/trunk/kconfig/kconfig.mk | 32 29 3 0 +++++++++++++++--
/trunk/docs/overview.txt | 75 67 8 0 +++++++++++++++++++++++++++++++++++----
/trunk/config/target.in | 94 16 78 0 ++++++++-----------------------------------------
/trunk/arch/arm/config.in | 6 5 1 0 +++
/trunk/arch/powerpc/config.in | 2 2 0 0 +
/trunk/arch/ia64/config.in | 4 4 0 0 ++
/trunk/arch/alpha/config.in | 2 1 1 0
/trunk/arch/x86/config.in | 3 3 0 0 ++
/trunk/arch/mips/config.in | 5 5 0 0 +++
/trunk/arch/sh/config.in | 4 3 1 0 ++
/trunk/arch/x86_64/config.in | 3 3 0 0 ++
11 files changed, 138 insertions(+), 92 deletions(-)
     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_ARCH
    10 config ARCH_ABI
    11 config ARCH_CPU
    12 config ARCH_TUNE
    13 config ARCH_FPU
    14 config ARCH_SUPPORTS_BOTH_ENDIAN
    15 config ARCH_DEFAULT_BE
    16 config ARCH_DEFAULT_LE
    17 config ARCH_FLOAT_HW
    18 config ARCH_FLOAT_SW
    19 config TARGET_CFLAGS
    20 
    21 comment "General target options"
    22 
    23 choice
    24     bool
    25     prompt "Target architecture:"
    26 
    27 source config.gen/arch.in
    28 
    29 endchoice
    30 
    31 config ARCH_SUPPORTS_BOTH_ENDIAN
    32     bool
    33     default n
    34 
    35 config ARCH_DEFAULT_BE
    36     bool
    37     default n
    38 
    39 config ARCH_DEFAULT_LE
    40     bool
    41     default n
    42 
    43 choice
    44     bool
    45     prompt "Endianness:"
    46     depends on ARCH_SUPPORTS_BOTH_ENDIAN
    47     default ARCH_BE if ARCH_DEFAULT_BE
    48     default ARCH_LE if ARCH_DEFAULT_LE
    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 "Architecture 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 TARGET_CFLAGS
   187     string
   188     prompt "Target CFLAGS"
   189     default ""
   190     help
   191       Used to add specific options when compiling libraries of the toolchain,
   192       that will run on the target (eg. libc.so).
   193       
   194       Note that the options above for ARCH, ABI, CPU, TUNE and FPU will be
   195       automaticaly used. You don't need to specify them here.
   196       
   197       Leave blank if you don't know better.
   198 
   199 endmenu