1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/config/target.in Sat Mar 31 19:45:25 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