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