config/target.in
changeset 1 eeea35fbf182
child 35 2dce00870893
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/config/target.in	Sat Feb 24 11:00:05 2007 +0000
     1.3 @@ -0,0 +1,300 @@
     1.4 +# Target definition: architecture, optimisations, etc...
     1.5 +
     1.6 +menu "Target options"
     1.7 +
     1.8 +comment "General target options"
     1.9 +
    1.10 +choice
    1.11 +    bool
    1.12 +    prompt "Target architecture:"
    1.13 +    default ARCH_x86
    1.14 +
    1.15 +config ARCH_ARM
    1.16 +    bool
    1.17 +    prompt "arm"
    1.18 +
    1.19 +config ARCH_MIPS
    1.20 +    bool
    1.21 +    prompt "mips"
    1.22 +
    1.23 +config ARCH_x86
    1.24 +    bool
    1.25 +    prompt "x86"
    1.26 +
    1.27 +config ARCH_x86_64
    1.28 +    bool
    1.29 +    prompt "x86_64"
    1.30 +
    1.31 +endchoice
    1.32 +
    1.33 +choice
    1.34 +    bool
    1.35 +    prompt "Endianness:"
    1.36 +
    1.37 +config ARCH_BE
    1.38 +    bool
    1.39 +    prompt "Big endian"
    1.40 +
    1.41 +config ARCH_LE
    1.42 +    bool
    1.43 +    prompt "Little endian"
    1.44 +
    1.45 +endchoice
    1.46 +
    1.47 +comment "Target optimisations"
    1.48 +
    1.49 +config ARCH_CPU
    1.50 +    string
    1.51 +    prompt "Emit assembly for CPU"
    1.52 +    default ""
    1.53 +    help
    1.54 +      This specifies the name of the target ARM processor. GCC uses this name
    1.55 +      to determine what kind of instructions it can emit when generating
    1.56 +      assembly code.
    1.57 +      
    1.58 +      Pick a value from the gcc manual for your choosen gcc version and your
    1.59 +      target CPU.
    1.60 +      
    1.61 +      Leave blank if you don't know, or if your target architecture does not
    1.62 +      offer this option.
    1.63 +
    1.64 +config ARCH_TUNE
    1.65 +    string
    1.66 +    prompt "Tune for CPU"
    1.67 +    default ""
    1.68 +    help
    1.69 +      This option is very similar to the ARCH_CPU option (above), except
    1.70 +      that instead of specifying the actual target processor type, and hence
    1.71 +      restricting which instructions can be used, it specifies that GCC should
    1.72 +      tune the performance of the code as if the target were of the type
    1.73 +      specified in this option, but still choosing the instructions that it
    1.74 +      will generate based on the cpu specified by the ARCH_CPU option
    1.75 +      (above), or a (command-line) -mcpu= option.
    1.76 +      
    1.77 +      Pick a value from the gcc manual for your choosen gcc version and your
    1.78 +      target CPU.
    1.79 +      
    1.80 +      Leave blank if you don't know, or if your target architecture does not
    1.81 +      offer this option.
    1.82 +
    1.83 +config ARCH_ARCH
    1.84 +    string
    1.85 +    prompt "Achitecture level"
    1.86 +    default ""
    1.87 +    help
    1.88 +      GCC uses this name to determine what kind of instructions it can emit
    1.89 +      when generating assembly code. This option can be used in conjunction
    1.90 +      with or instead of the ARCH_CPU option (above), or a (command-line)
    1.91 +      -mcpu= option.
    1.92 +      
    1.93 +      Pick a value from the gcc manual for your choosen gcc version and your
    1.94 +      target CPU.
    1.95 +      
    1.96 +      Leave blank if you don't know, or if your target architecture does not
    1.97 +      offer this option.
    1.98 +
    1.99 +config ARCH_FPU
   1.100 +    string
   1.101 +    prompt "Use FPU"
   1.102 +    default ""
   1.103 +    help
   1.104 +      On some targets (eg. ARM), you can specify the kind of FPU to emit
   1.105 +      code for.
   1.106 +      
   1.107 +      See below wether to actually emit FP opcodes, or to emulate them.
   1.108 +      
   1.109 +      Pick a value from the gcc manual for your choosen gcc version and your
   1.110 +      target CPU.
   1.111 +      
   1.112 +      Leave blank if you don't know, or if your target architecture does not
   1.113 +      offer this option.
   1.114 +
   1.115 +choice
   1.116 +    bool
   1.117 +    prompt "Floating point:"
   1.118 +
   1.119 +config ARCH_FLOAT_HW
   1.120 +    bool
   1.121 +    prompt "hardware (FPU)"
   1.122 +    help
   1.123 +      Emit hardware floating point opcodes.
   1.124 +      
   1.125 +      If you've got a processor with a FPU, then you want that.
   1.126 +      If your hardware has no FPU, you still can use HW floating point, but
   1.127 +      need to compile support for FPU emulation in your kernel. Needless to
   1.128 +      say that emulating the FPU is /slooowwwww/...
   1.129 +      
   1.130 +      One situation you'd want HW floating point without a FPU is if you get
   1.131 +      binary blobs from different vendors that are compiling this way and
   1.132 +      can't (don't wan't to) change.
   1.133 +
   1.134 +config ARCH_FLOAT_SW
   1.135 +    bool
   1.136 +    prompt "software"
   1.137 +    help
   1.138 +      Do not emit any hardware floating point opcode.
   1.139 +      
   1.140 +      If your processor has no FPU, then you most probably want this, as it
   1.141 +      is faster than emulating the FPU in the kernel.
   1.142 +
   1.143 +endchoice
   1.144 +
   1.145 +config ARCH_FLOAT_SW_LIBFLOAT
   1.146 +    bool
   1.147 +    prompt "Use libfloat"
   1.148 +    default n
   1.149 +    depends on ARCH_FLOAT_SW
   1.150 +    help
   1.151 +      For those targets upporting it, you can use libfloat for the software
   1.152 +      floating point emulation.
   1.153 +      
   1.154 +      Note that some versions of gcc have support code that supersedes libfloat,
   1.155 +      while others don't. Known version of gcc that don't have support code are
   1.156 +      versions prior to 3.0, and version above 4.0.
   1.157 +      
   1.158 +      You should check gcc before deciding to use libfloat.
   1.159 +
   1.160 +config TARGET_CFLAGS
   1.161 +    string
   1.162 +    prompt "Default target CFLAGS"
   1.163 +    default ""
   1.164 +    help
   1.165 +      Used to add specific options when compiling libraries of the toolchain,
   1.166 +      that will run on the target (eg. libc.so).
   1.167 +      
   1.168 +      Note that the options above for CPU, tune, arch and FPU will be
   1.169 +      automaticaly used. You don't need to specify them here.
   1.170 +      
   1.171 +      Leave blank if you don't know better.
   1.172 +
   1.173 +comment "Toolchain options"
   1.174 +
   1.175 +config USE_SYSROOT
   1.176 +    bool
   1.177 +    prompt "Use sysroot'ed toolchain"
   1.178 +    default y
   1.179 +    help
   1.180 +      Use the 'shinny new' sysroot feature of gcc: libraries split between
   1.181 +      prefix/target/sys-root/lib and prefix/target/sys-root/usr/lib
   1.182 +      
   1.183 +      You definitely want to say 'Y' here. Yes you do. I know you do. Say 'Y'.
   1.184 +
   1.185 +config SHARED_LIBS
   1.186 +    bool
   1.187 +    prompt "Build shared libraries"
   1.188 +    default y
   1.189 +    help
   1.190 +      Say 'y' here, unless you don't want shared libraries.
   1.191 +      
   1.192 +      You might not want shared librries if you're building for a target that
   1.193 +      don't support it (maybe some nommu targets, for example, or bare metal).
   1.194 +
   1.195 +config TARGET_MULTILIB
   1.196 +    bool
   1.197 +#    prompt "Enable 'multilib' support (EXPERIMENTAL)"
   1.198 +    default n
   1.199 +    help
   1.200 +      Enable the so-called 'multilib' support.
   1.201 +      
   1.202 +      With the same toolchain, and on some architectures, you will be able to
   1.203 +      build big and little endian binaries, soft- and hard-float, etc...
   1.204 +      
   1.205 +      See the gcc configure manual at http://gcc.gnu.org/install/configure.html
   1.206 +      to see what multilib your target supports.
   1.207 +      
   1.208 +      It's preferable for now to build two (or more) toolchains, one for each
   1.209 +      configuration you need to support (eg. one for thumb and one for ARM,
   1.210 +      etc...). You can use the vendor string to diferentiate those toolchains.
   1.211 +
   1.212 +config TARGET_VENDOR
   1.213 +    string
   1.214 +    prompt "Vendor string"
   1.215 +    default "unknown"
   1.216 +    help
   1.217 +      Vendor part of the machine triplet.
   1.218 +      
   1.219 +      A triplet is of the form arch-vendor-kernel-system.
   1.220 +      You can set the second part, vendor, to whatever you see fit.
   1.221 +      Use a single word, or use underscores "_" to separate words.
   1.222 +      
   1.223 +      Keep the default (unkown) if you don't know better.
   1.224 +
   1.225 +config TARGET_ALIAS
   1.226 +    string
   1.227 +    prompt "Target alias"
   1.228 +    default ""
   1.229 +    help
   1.230 +      Normaly, you'd call your toolchain component (especially gcc) by
   1.231 +      prefixing the target triplet followed by a dash and the component name
   1.232 +      (eg. armeb-unknown-linux-uclibc-gcc).
   1.233 +      
   1.234 +      You can enter a shortcut here. This string will be used to create
   1.235 +      symbolic links to the toolchain tools (eg. if you enter "foo-bar" here,
   1.236 +      then gcc for your toolchain will also be available as "foo-bar-gcc" along
   1.237 +      with the original name).
   1.238 +      
   1.239 +      You shouldn't need to enter anything here, unless you plan to manually
   1.240 +      call the tools (autotools-based ./configure will use the standard name).
   1.241 +
   1.242 +config ARCH
   1.243 +    string
   1.244 +    default "arm"     if ARCH_ARM
   1.245 +    default "mips"    if ARCH_MIPS
   1.246 +    default "x86"     if ARCH_x86
   1.247 +    default "x86_64"  if ARCH_x86_64
   1.248 +
   1.249 +config BUILD 
   1.250 +    string
   1.251 +    prompt "Build system triplet"
   1.252 +    default ""
   1.253 +    help
   1.254 +      Canonical name of the machine building the toolchain.
   1.255 +      You should leave empty, unless you really now what you're doing.
   1.256 +
   1.257 +config CC_NATIVE
   1.258 +    string
   1.259 +    prompt "Native gcc"
   1.260 +    default "gcc"
   1.261 +    help
   1.262 +      The native C compiler.
   1.263 +      
   1.264 +      You can set this to an alternative compiler if you have more than one
   1.265 +      installed (eg. gcc is gcc-4.1.1 and you want to use gcc-3.4.6).
   1.266 +      
   1.267 +      You can leave this empty as well, in which case gcc will be used.
   1.268 +
   1.269 +config CANADIAN
   1.270 +    bool
   1.271 +    prompt "Canadian build (EXPERIMENTAL)"
   1.272 +    default n
   1.273 +    help
   1.274 +      A canadian build allows to build a compiler on a first machine
   1.275 +      (build system), that will run on second machine (host system),
   1.276 +      targetting a third machine (target system).
   1.277 +      
   1.278 +      An example where you'd want a candian cross-compiler is to create
   1.279 +      a native compiler for your target. In this case host and target
   1.280 +      are the same.
   1.281 +
   1.282 +config HOST
   1.283 +    string
   1.284 +    prompt "Host system triplet"
   1.285 +    default ""
   1.286 +    depends on CANADIAN
   1.287 +    help
   1.288 +      Canonical name of the machine serving as host.
   1.289 +
   1.290 +config HOST_CC
   1.291 +    string
   1.292 +    prompt "Host system compiler"
   1.293 +    default "${CT_HOST}-"
   1.294 +    depends on CANADIAN
   1.295 +    help
   1.296 +      C compiler targeting the host system.
   1.297 +      If HOST_CC ends with a dash (-), then it is considered to be the
   1.298 +      prefix to gcc (eg. x86-pc-linuc-gnu-).
   1.299 +      If it is empty, it is formed by appending '-gcc' to HOST.
   1.300 +      Else it is considered to be the complete name of the compiler, with
   1.301 +      full path, or without path (provided that it can be found in PATH).
   1.302 +
   1.303 +endmenu