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(-)
yann@1
     1
# Target definition: architecture, optimisations, etc...
yann@1
     2
yann@1
     3
menu "Target options"
yann@1
     4
yann@47
     5
config ARCH
yann@47
     6
    string
yann@628
     7
yann@628
     8
# Pre-declare target optimisation variables
yann@628
     9
config ARCH_ARCH
yann@628
    10
config ARCH_ABI
yann@628
    11
config ARCH_CPU
yann@628
    12
config ARCH_TUNE
yann@628
    13
config ARCH_FPU
yann@628
    14
config ARCH_SUPPORTS_BOTH_ENDIAN
yann@628
    15
config ARCH_DEFAULT_BE
yann@628
    16
config ARCH_DEFAULT_LE
yann@628
    17
config ARCH_FLOAT_HW
yann@628
    18
config ARCH_FLOAT_SW
yann@628
    19
config TARGET_CFLAGS
yann@628
    20
yann@628
    21
comment "General target options"
yann@47
    22
yann@1
    23
choice
yann@1
    24
    bool
yann@1
    25
    prompt "Target architecture:"
yann@1
    26
yann@628
    27
source config.gen/arch.in
yann@1
    28
yann@1
    29
endchoice
yann@1
    30
yann@136
    31
config ARCH_SUPPORTS_BOTH_ENDIAN
yann@35
    32
    bool
yann@35
    33
    default n
yann@35
    34
yann@347
    35
config ARCH_DEFAULT_BE
yann@347
    36
    bool
yann@347
    37
    default n
yann@347
    38
yann@347
    39
config ARCH_DEFAULT_LE
yann@347
    40
    bool
yann@347
    41
    default n
yann@347
    42
yann@1
    43
choice
yann@1
    44
    bool
yann@1
    45
    prompt "Endianness:"
yann@136
    46
    depends on ARCH_SUPPORTS_BOTH_ENDIAN
yann@347
    47
    default ARCH_BE if ARCH_DEFAULT_BE
yann@347
    48
    default ARCH_LE if ARCH_DEFAULT_LE
yann@1
    49
yann@1
    50
config ARCH_BE
yann@1
    51
    bool
yann@1
    52
    prompt "Big endian"
yann@1
    53
yann@1
    54
config ARCH_LE
yann@1
    55
    bool
yann@1
    56
    prompt "Little endian"
yann@1
    57
yann@1
    58
endchoice
yann@1
    59
yann@1
    60
comment "Target optimisations"
yann@1
    61
yann@47
    62
config ARCH_ARCH
yann@47
    63
    string
yann@425
    64
    prompt "Architecture level"
yann@47
    65
    default ""
yann@47
    66
    help
yann@47
    67
      GCC uses this name to determine what kind of instructions it can emit
yann@47
    68
      when generating assembly code. This option can be used in conjunction
yann@47
    69
      with or instead of the ARCH_CPU option (above), or a (command-line)
yann@47
    70
      -mcpu= option.
yann@47
    71
      
yann@47
    72
      This is the configuration flag --with-arch=XXXX, and the runtime flag
yann@47
    73
      -march=XXX.
yann@47
    74
      
yann@47
    75
      Pick a value from the gcc manual for your choosen gcc version and your
yann@47
    76
      target CPU.
yann@47
    77
      
yann@47
    78
      Leave blank if you don't know, or if your target architecture does not
yann@47
    79
      offer this option.
yann@47
    80
yann@45
    81
config ARCH_ABI
yann@45
    82
    string
yann@45
    83
    prompt "Generate code for the specific ABI"
yann@45
    84
    default ""
yann@45
    85
    help
yann@45
    86
      Generate code for the given ABI.
yann@45
    87
yann@47
    88
      This is the configuration flag --with-abi=XXXX, and the runtime flag
yann@47
    89
      -mabi=XXX.
yann@47
    90
yann@45
    91
      Pick a value from the gcc manual for your choosen gcc version and your
yann@45
    92
      target CPU.
yann@45
    93
yann@45
    94
      Leave blank if you don't know, or if your target architecutre does not
yann@45
    95
      offer this option.
yann@45
    96
yann@1
    97
config ARCH_CPU
yann@1
    98
    string
yann@1
    99
    prompt "Emit assembly for CPU"
yann@1
   100
    default ""
yann@1
   101
    help
yann@283
   102
      This specifies the name of the target processor. GCC uses this name
yann@1
   103
      to determine what kind of instructions it can emit when generating
yann@1
   104
      assembly code.
yann@1
   105
      
yann@47
   106
      This is the configuration flag --with-cpu=XXXX, and the runtime flag
yann@47
   107
      -mcpu=XXX.
yann@47
   108
yann@1
   109
      Pick a value from the gcc manual for your choosen gcc version and your
yann@1
   110
      target CPU.
yann@1
   111
      
yann@1
   112
      Leave blank if you don't know, or if your target architecture does not
yann@1
   113
      offer this option.
yann@1
   114
yann@1
   115
config ARCH_TUNE
yann@1
   116
    string
yann@1
   117
    prompt "Tune for CPU"
yann@1
   118
    default ""
yann@1
   119
    help
yann@1
   120
      This option is very similar to the ARCH_CPU option (above), except
yann@1
   121
      that instead of specifying the actual target processor type, and hence
yann@1
   122
      restricting which instructions can be used, it specifies that GCC should
yann@1
   123
      tune the performance of the code as if the target were of the type
yann@1
   124
      specified in this option, but still choosing the instructions that it
yann@1
   125
      will generate based on the cpu specified by the ARCH_CPU option
yann@1
   126
      (above), or a (command-line) -mcpu= option.
yann@1
   127
      
yann@47
   128
      This is the configuration flag --with-tune=XXXX, and the runtime flag
yann@47
   129
      -mtune=XXX.
yann@1
   130
      
yann@1
   131
      Pick a value from the gcc manual for your choosen gcc version and your
yann@1
   132
      target CPU.
yann@1
   133
      
yann@1
   134
      Leave blank if you don't know, or if your target architecture does not
yann@1
   135
      offer this option.
yann@1
   136
yann@1
   137
config ARCH_FPU
yann@1
   138
    string
yann@47
   139
    prompt "Use specific FPU"
yann@1
   140
    default ""
yann@1
   141
    help
yann@1
   142
      On some targets (eg. ARM), you can specify the kind of FPU to emit
yann@1
   143
      code for.
yann@47
   144
yann@47
   145
      This is the configuration flag --with-fpu=XXX, and the runtime flag
yann@47
   146
      -mfpu=XXX.
yann@1
   147
      
yann@1
   148
      See below wether to actually emit FP opcodes, or to emulate them.
yann@1
   149
      
yann@1
   150
      Pick a value from the gcc manual for your choosen gcc version and your
yann@1
   151
      target CPU.
yann@1
   152
      
yann@1
   153
      Leave blank if you don't know, or if your target architecture does not
yann@1
   154
      offer this option.
yann@1
   155
yann@1
   156
choice
yann@1
   157
    bool
yann@1
   158
    prompt "Floating point:"
yann@1
   159
yann@1
   160
config ARCH_FLOAT_HW
yann@1
   161
    bool
yann@1
   162
    prompt "hardware (FPU)"
yann@1
   163
    help
yann@1
   164
      Emit hardware floating point opcodes.
yann@1
   165
      
yann@1
   166
      If you've got a processor with a FPU, then you want that.
yann@1
   167
      If your hardware has no FPU, you still can use HW floating point, but
yann@1
   168
      need to compile support for FPU emulation in your kernel. Needless to
yann@1
   169
      say that emulating the FPU is /slooowwwww/...
yann@1
   170
      
yann@1
   171
      One situation you'd want HW floating point without a FPU is if you get
yann@1
   172
      binary blobs from different vendors that are compiling this way and
yann@1
   173
      can't (don't wan't to) change.
yann@1
   174
yann@1
   175
config ARCH_FLOAT_SW
yann@1
   176
    bool
yann@1
   177
    prompt "software"
yann@1
   178
    help
yann@1
   179
      Do not emit any hardware floating point opcode.
yann@1
   180
      
yann@1
   181
      If your processor has no FPU, then you most probably want this, as it
yann@1
   182
      is faster than emulating the FPU in the kernel.
yann@1
   183
yann@1
   184
endchoice
yann@1
   185
yann@1
   186
config TARGET_CFLAGS
yann@1
   187
    string
yann@41
   188
    prompt "Target CFLAGS"
yann@1
   189
    default ""
yann@1
   190
    help
yann@1
   191
      Used to add specific options when compiling libraries of the toolchain,
yann@1
   192
      that will run on the target (eg. libc.so).
yann@1
   193
      
yann@531
   194
      Note that the options above for ARCH, ABI, CPU, TUNE and FPU will be
yann@1
   195
      automaticaly used. You don't need to specify them here.
yann@1
   196
      
yann@1
   197
      Leave blank if you don't know better.
yann@1
   198
yann@1
   199
endmenu