# Copyright (C) 2006-2013 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # menuconfig TARGET_OPTIONS bool "Target Options" if DEVEL config TARGET_OPTIMIZATION string "Target Optimizations" if TARGET_OPTIONS default DEFAULT_TARGET_OPTIMIZATION help Optimizations to use when building for the target host. config SOFT_FLOAT bool "Use software floating point by default" if TARGET_OPTIONS default y if !HAS_FPU depends on arm || armeb || powerpc || mipsel || mips || mips64el || mips64 help If your target CPU does not have a Floating Point Unit (FPU) or a kernel FPU emulator, but you still wish to support floating point functions, then everything will need to be compiled with soft floating point support (-msoft-float). Most people will answer N. config USE_MIPS16 bool "Build packages with MIPS16 instructions" if TARGET_OPTIONS depends on HAS_MIPS16 default y help If your target CPU does support the MIPS16 instruction set and you want to use it for packages, enable this option. MIPS16 produces smaller binaries thus reducing pressure on caches and TLB. Most people will answer N. config UPDATE_TOOLCHAIN bool "Update Toolchain" if DEVEL default n help Compile toolchain and update into prebuilt dir. config MUSL_OPTIMIZATION bool "MUSL_OPTIMIZATION" if UPDATE_TOOLCHAIN && USE_MUSL depends on UPDATE_TOOLCHAIN depends on arm default y help MUSL C library optimization. config NEED_TOOLCHAIN bool depends on DEVEL default y if !EXTERNAL_TOOLCHAIN choice prompt "Select external toolchain C library" if DEVEL depends on EXTERNAL_TOOLCHAIN default EXT_TOOLCHAIN_LIBC_USE_MUSL help Select the C library implementation. config EXT_TOOLCHAIN_LIBC_USE_GLIBC bool "Use glibc" select USE_GLIBC depends on !arc config EXT_TOOLCHAIN_LIBC_USE_MUSL bool "Use musl" select USE_MUSL depends on !(arc || mips64 || mips64el) endchoice menuconfig TOOLCHAINOPTS bool "Toolchain Options" if DEVEL depends on NEED_TOOLCHAIN menuconfig EXTRA_TARGET_ARCH bool prompt "Enable an extra toolchain target architecture" if TOOLCHAINOPTS depends on !sparc default y if powerpc64 default n help Some builds may require a 'biarch' toolchain. This option allows you to specify an additional target arch. Most people will answer N here. config EXTRA_TARGET_ARCH_NAME string default "powerpc64" if powerpc64 prompt "Extra architecture name" if EXTRA_TARGET_ARCH help Specify the cpu name (eg powerpc64 or x86_64) of the additional target architecture. config EXTRA_TARGET_ARCH_OPTS string default "-m64" if powerpc64 prompt "Extra architecture compiler options" if EXTRA_TARGET_ARCH help If you're specifying an addition target architecture, you'll probably need to also provide options to make the compiler use this alternate arch. For example, if you're building a compiler that can build both powerpc and powerpc64 binaries, you'll need to specify -m64 here. choice prompt "MIPS64 user-land ABI" if TOOLCHAINOPTS && (mips64 || mips64el) default MIPS64_ABI_N64 help MIPS64 supports 3 different user-land ABIs: o32 (legacy), n32 and n64. config MIPS64_ABI_N64 bool "n64" config MIPS64_ABI_N32 bool "n32" config MIPS64_ABI_O32 bool "o32" endchoice comment "Binary tools" depends on TOOLCHAINOPTS source "toolchain/binutils/Config.in" comment "Compiler" depends on TOOLCHAINOPTS source "toolchain/gcc/Config.in" comment "C Library" depends on TOOLCHAINOPTS choice prompt "C Library implementation" if TOOLCHAINOPTS depends on UPDATE_TOOLCHAIN default LIBC_USE_GLIBC if mips64 || mips64el default LIBC_USE_UCLIBC if arc default LIBC_USE_MUSL help Select the C library implementation. config LIBC_USE_GLIBC bool "Use glibc" select USE_GLIBC depends on !arc config LIBC_USE_MUSL select USE_MUSL bool "Use musl" depends on !(arc || mips64 || mips64el) endchoice source "toolchain/glibc/Config.in" comment "Debuggers" depends on TOOLCHAINOPTS config GDB bool prompt "Build gdb" if TOOLCHAINOPTS default y if !EXTERNAL_TOOLCHAIN help Enable if you want to build the gdb. config INSIGHT bool prompt "Build insight-gdb" if TOOLCHAINOPTS select GDB default n help Enable if you want to build insight-gdb. config TOOLCHAIN_LIBC string depends on !UPDATE_TOOLCHAIN default "glibc" if EXT_TOOLCHAIN_LIBC_USE_GLIBC default "musl" if !EXT_TOOLCHAIN_LIBC_USE_GLIBC config USE_GLIBC default y if USE_EXTERNAL_LIBC && EXT_TOOLCHAIN_LIBC_USE_GLIBC default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && (mips64 || mips64el) bool config USE_UCLIBC default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && (arc) bool config USE_MUSL default y if USE_EXTERNAL_LIBC && !EXT_TOOLCHAIN_LIBC_USE_GLIBC default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && !(arc || mips64 || mips64el) bool config USE_EXTERNAL_LIBC bool default y if EXTERNAL_TOOLCHAIN source "toolchain/binutils/Config.version" source "toolchain/gcc/Config.version" source "toolchain/glibc/Config.version" source "toolchain/musl/Config.version" config LIBC string default "glibc" if USE_GLIBC default "musl" if USE_MUSL config LIBC_VERSION string default GLIBC_VERSION if USE_GLIBC default MUSL_VERSION if USE_MUSL config TARGET_SUFFIX string default "gnueabi" if USE_GLIBC && (arm || armeb) default "gnu" if USE_GLIBC && !(arm || armeb) default "muslgnueabi" if USE_MUSL && (arm || armeb) default "musl" if USE_MUSL && !(arm || armeb) config EXTERNAL_TOOLCHAIN bool default y if !UPDATE_TOOLCHAIN