config/target.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Apr 17 22:24:42 2007 +0000 (2007-04-17)
changeset 41 fd6ad5721f77
parent 35 2dce00870893
child 45 42faddd0098a
permissions -rw-r--r--
Add the EXPERIMENTAL option to show options marked as such.
Add the four types of toolchains ct-ng is able to build as EXPERIMENTAL, except for CROSS which *is* functional.
Reorder menus accordingly.
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@1
     7
choice
yann@1
     8
    bool
yann@1
     9
    prompt "Target architecture:"
yann@1
    10
    default ARCH_x86
yann@1
    11
yann@1
    12
config ARCH_ARM
yann@1
    13
    bool
yann@1
    14
    prompt "arm"
yann@35
    15
    select ARCH_SUPPORTS_BE
yann@35
    16
    select ARCH_SUPPORTS_LE
yann@1
    17
yann@1
    18
config ARCH_MIPS
yann@1
    19
    bool
yann@1
    20
    prompt "mips"
yann@35
    21
    select ARCH_SUPPORTS_BE
yann@35
    22
    select ARCH_SUPPORTS_LE
yann@1
    23
yann@1
    24
config ARCH_x86
yann@1
    25
    bool
yann@1
    26
    prompt "x86"
yann@35
    27
    select ARCH_SUPPORTS_LE
yann@1
    28
yann@1
    29
config ARCH_x86_64
yann@1
    30
    bool
yann@1
    31
    prompt "x86_64"
yann@35
    32
    select ARCH_SUPPORTS_LE
yann@1
    33
yann@1
    34
endchoice
yann@1
    35
yann@35
    36
config ARCH_SUPPORTS_BE
yann@35
    37
    bool
yann@35
    38
    default n
yann@35
    39
yann@35
    40
config ARCH_SUPPORTS_LE
yann@35
    41
    bool
yann@35
    42
    default n
yann@35
    43
yann@1
    44
choice
yann@1
    45
    bool
yann@1
    46
    prompt "Endianness:"
yann@1
    47
yann@1
    48
config ARCH_BE
yann@1
    49
    bool
yann@1
    50
    prompt "Big endian"
yann@35
    51
    depends on ARCH_SUPPORTS_BE
yann@1
    52
yann@1
    53
config ARCH_LE
yann@1
    54
    bool
yann@1
    55
    prompt "Little endian"
yann@35
    56
    depends on ARCH_SUPPORTS_LE
yann@1
    57
yann@1
    58
endchoice
yann@1
    59
yann@1
    60
comment "Target optimisations"
yann@1
    61
yann@1
    62
config ARCH_CPU
yann@1
    63
    string
yann@1
    64
    prompt "Emit assembly for CPU"
yann@1
    65
    default ""
yann@1
    66
    help
yann@1
    67
      This specifies the name of the target ARM processor. GCC uses this name
yann@1
    68
      to determine what kind of instructions it can emit when generating
yann@1
    69
      assembly code.
yann@1
    70
      
yann@1
    71
      Pick a value from the gcc manual for your choosen gcc version and your
yann@1
    72
      target CPU.
yann@1
    73
      
yann@1
    74
      Leave blank if you don't know, or if your target architecture does not
yann@1
    75
      offer this option.
yann@1
    76
yann@1
    77
config ARCH_TUNE
yann@1
    78
    string
yann@1
    79
    prompt "Tune for CPU"
yann@1
    80
    default ""
yann@1
    81
    help
yann@1
    82
      This option is very similar to the ARCH_CPU option (above), except
yann@1
    83
      that instead of specifying the actual target processor type, and hence
yann@1
    84
      restricting which instructions can be used, it specifies that GCC should
yann@1
    85
      tune the performance of the code as if the target were of the type
yann@1
    86
      specified in this option, but still choosing the instructions that it
yann@1
    87
      will generate based on the cpu specified by the ARCH_CPU option
yann@1
    88
      (above), or a (command-line) -mcpu= option.
yann@1
    89
      
yann@1
    90
      Pick a value from the gcc manual for your choosen gcc version and your
yann@1
    91
      target CPU.
yann@1
    92
      
yann@1
    93
      Leave blank if you don't know, or if your target architecture does not
yann@1
    94
      offer this option.
yann@1
    95
yann@1
    96
config ARCH_ARCH
yann@1
    97
    string
yann@1
    98
    prompt "Achitecture level"
yann@1
    99
    default ""
yann@1
   100
    help
yann@1
   101
      GCC uses this name to determine what kind of instructions it can emit
yann@1
   102
      when generating assembly code. This option can be used in conjunction
yann@1
   103
      with or instead of the ARCH_CPU option (above), or a (command-line)
yann@1
   104
      -mcpu= option.
yann@1
   105
      
yann@1
   106
      Pick a value from the gcc manual for your choosen gcc version and your
yann@1
   107
      target CPU.
yann@1
   108
      
yann@1
   109
      Leave blank if you don't know, or if your target architecture does not
yann@1
   110
      offer this option.
yann@1
   111
yann@1
   112
config ARCH_FPU
yann@1
   113
    string
yann@1
   114
    prompt "Use FPU"
yann@1
   115
    default ""
yann@1
   116
    help
yann@1
   117
      On some targets (eg. ARM), you can specify the kind of FPU to emit
yann@1
   118
      code for.
yann@1
   119
      
yann@1
   120
      See below wether to actually emit FP opcodes, or to emulate them.
yann@1
   121
      
yann@1
   122
      Pick a value from the gcc manual for your choosen gcc version and your
yann@1
   123
      target CPU.
yann@1
   124
      
yann@1
   125
      Leave blank if you don't know, or if your target architecture does not
yann@1
   126
      offer this option.
yann@1
   127
yann@1
   128
choice
yann@1
   129
    bool
yann@1
   130
    prompt "Floating point:"
yann@1
   131
yann@1
   132
config ARCH_FLOAT_HW
yann@1
   133
    bool
yann@1
   134
    prompt "hardware (FPU)"
yann@1
   135
    help
yann@1
   136
      Emit hardware floating point opcodes.
yann@1
   137
      
yann@1
   138
      If you've got a processor with a FPU, then you want that.
yann@1
   139
      If your hardware has no FPU, you still can use HW floating point, but
yann@1
   140
      need to compile support for FPU emulation in your kernel. Needless to
yann@1
   141
      say that emulating the FPU is /slooowwwww/...
yann@1
   142
      
yann@1
   143
      One situation you'd want HW floating point without a FPU is if you get
yann@1
   144
      binary blobs from different vendors that are compiling this way and
yann@1
   145
      can't (don't wan't to) change.
yann@1
   146
yann@1
   147
config ARCH_FLOAT_SW
yann@1
   148
    bool
yann@1
   149
    prompt "software"
yann@1
   150
    help
yann@1
   151
      Do not emit any hardware floating point opcode.
yann@1
   152
      
yann@1
   153
      If your processor has no FPU, then you most probably want this, as it
yann@1
   154
      is faster than emulating the FPU in the kernel.
yann@1
   155
yann@1
   156
endchoice
yann@1
   157
yann@1
   158
config ARCH_FLOAT_SW_LIBFLOAT
yann@1
   159
    bool
yann@1
   160
    prompt "Use libfloat"
yann@1
   161
    default n
yann@1
   162
    depends on ARCH_FLOAT_SW
yann@1
   163
    help
yann@1
   164
      For those targets upporting it, you can use libfloat for the software
yann@1
   165
      floating point emulation.
yann@1
   166
      
yann@1
   167
      Note that some versions of gcc have support code that supersedes libfloat,
yann@1
   168
      while others don't. Known version of gcc that don't have support code are
yann@1
   169
      versions prior to 3.0, and version above 4.0.
yann@1
   170
      
yann@1
   171
      You should check gcc before deciding to use libfloat.
yann@1
   172
yann@1
   173
config TARGET_CFLAGS
yann@1
   174
    string
yann@41
   175
    prompt "Target CFLAGS"
yann@1
   176
    default ""
yann@1
   177
    help
yann@1
   178
      Used to add specific options when compiling libraries of the toolchain,
yann@1
   179
      that will run on the target (eg. libc.so).
yann@1
   180
      
yann@1
   181
      Note that the options above for CPU, tune, arch and FPU will be
yann@1
   182
      automaticaly used. You don't need to specify them here.
yann@1
   183
      
yann@1
   184
      Leave blank if you don't know better.
yann@1
   185
yann@1
   186
endmenu