menu "Toolchain options"
	visible if FREETZ_SHOW_EXPERT

choice
	prompt "Toolchains"
	default FREETZ_DOWNLOAD_TOOLCHAIN
	help
		Download Toolchain, build toolchain

	config FREETZ_DOWNLOAD_TOOLCHAIN
		bool "Download and use precompiled toolchains"
		depends on FREETZ_AVM_VERSION_06_9X_MAX
		depends on !FREETZ_SYSTEM_TYPE_IPQ40xx
		depends on !FREETZ_SYSTEM_TYPE_PUMA6
		depends on !FREETZ_SYSTEM_TYPE_QCA956x

	config FREETZ_BUILD_TOOLCHAIN
		bool "Build own toolchains (requires 4GB diskspace)"

endchoice # "Toolchains" #

comment "Kernel toolchain options ----------------------------------"

config FREETZ_KERNEL_BINUTILS_2_18_DEFAULT
	bool
	depends on FREETZ_AVM_GCC_3_4_MAX
	default y
config FREETZ_KERNEL_BINUTILS_2_22_DEFAULT
	bool
	depends on FREETZ_AVM_GCC_4_6_MIN && FREETZ_AVM_VERSION_06_9X_MAX && FREETZ_KERNEL_VERSION_2_6_39_MAX
	default y
config FREETZ_KERNEL_BINUTILS_2_24_DEFAULT
	bool
	depends on FREETZ_AVM_GCC_4_6_MIN && FREETZ_AVM_VERSION_06_9X_MAX && FREETZ_KERNEL_VERSION_3_10_MIN
	default y
config FREETZ_KERNEL_BINUTILS_2_25_DEFAULT
	bool
	depends on FREETZ_AVM_GCC_5_MIN   && FREETZ_AVM_VERSION_07_0X_MIN
	default y

choice
	prompt "Kernel binutils"
	default FREETZ_KERNEL_BINUTILS_2_18 if FREETZ_KERNEL_BINUTILS_2_18_DEFAULT
	default FREETZ_KERNEL_BINUTILS_2_22 if FREETZ_KERNEL_BINUTILS_2_22_DEFAULT
	default FREETZ_KERNEL_BINUTILS_2_24 if FREETZ_KERNEL_BINUTILS_2_24_DEFAULT
	default FREETZ_KERNEL_BINUTILS_2_25 if FREETZ_KERNEL_BINUTILS_2_25_DEFAULT

	config FREETZ_KERNEL_BINUTILS_2_18
		bool "binutils-2.18"
		depends on FREETZ_AVM_GCC_3_4_MAX
		depends on FREETZ_KERNEL_VERSION_2_6_19_MAX
		depends on FREETZ_KERNEL_BINUTILS_2_18_DEFAULT || (FREETZ_BUILD_TOOLCHAIN || FREETZ_DL_TOOLCHAIN_OVERRIDE)

	config FREETZ_KERNEL_BINUTILS_2_22
		bool "binutils-2.22"
		depends on FREETZ_AVM_GCC_4_6_MIN && FREETZ_AVM_GCC_4_9_MAX
		depends on FREETZ_KERNEL_VERSION_2_6_39_MAX
		depends on FREETZ_KERNEL_BINUTILS_2_22_DEFAULT || (FREETZ_BUILD_TOOLCHAIN || FREETZ_DL_TOOLCHAIN_OVERRIDE)

	config FREETZ_KERNEL_BINUTILS_2_23
		bool "binutils-2.23.2"
		depends on FREETZ_AVM_GCC_4_6_MIN && FREETZ_AVM_GCC_4_9_MAX
		depends on FREETZ_KERNEL_VERSION_2_6_39_MAX
		depends on FREETZ_KERNEL_BINUTILS_2_23_DEFAULT || (FREETZ_BUILD_TOOLCHAIN || FREETZ_DL_TOOLCHAIN_OVERRIDE)

	config FREETZ_KERNEL_BINUTILS_2_24
		bool "binutils-2.24"
		depends on FREETZ_AVM_GCC_4_6_MIN
		# depends on any kernel version
		depends on FREETZ_KERNEL_BINUTILS_2_24_DEFAULT || (FREETZ_BUILD_TOOLCHAIN || FREETZ_DL_TOOLCHAIN_OVERRIDE)

	config FREETZ_KERNEL_BINUTILS_2_25
		bool "binutils-2.25.1"
		# starting with version 2.25 binutils support o32 FPXX
		# gcc versions up to 4.9.3 however do not pass the required -m(hard|soft)-float flags to the assembler
		# this is the reason for the gcc-4.9 dependency below
		depends on FREETZ_AVM_GCC_4_9_MIN
		# depends on any kernel version
		depends on FREETZ_KERNEL_BINUTILS_2_25_DEFAULT || (FREETZ_BUILD_TOOLCHAIN || FREETZ_DL_TOOLCHAIN_OVERRIDE)

	config FREETZ_KERNEL_BINUTILS_2_26
		bool "binutils-2.26.1"
		depends on FREETZ_AVM_GCC_4_9_MIN
		# depends on any kernel version
		depends on FREETZ_KERNEL_BINUTILS_2_26_DEFAULT || (FREETZ_BUILD_TOOLCHAIN || FREETZ_DL_TOOLCHAIN_OVERRIDE)
endchoice

choice
	prompt "Kernel compiler"
	default FREETZ_KERNEL_GCC_3_4 if FREETZ_AVM_GCC_3_4
	default FREETZ_KERNEL_GCC_4_6 if FREETZ_AVM_GCC_4_6
	default FREETZ_KERNEL_GCC_4_7 if FREETZ_AVM_GCC_4_7
	default FREETZ_KERNEL_GCC_4_8 if FREETZ_AVM_GCC_4_8
	default FREETZ_KERNEL_GCC_5   if FREETZ_AVM_GCC_5

	config FREETZ_KERNEL_GCC_3_4
		bool "gcc-3.4.6"
		depends on FREETZ_AVM_GCC_3_4

	config FREETZ_KERNEL_GCC_4_6
		bool "gcc-4.6.4"
		depends on FREETZ_AVM_GCC_4_6

	config FREETZ_KERNEL_GCC_4_7
		bool "gcc-4.7.4"
		depends on FREETZ_AVM_GCC_4_7

	config FREETZ_KERNEL_GCC_4_8
		bool "gcc-4.8.5"
		depends on FREETZ_AVM_GCC_4_8

	config FREETZ_KERNEL_GCC_5
		bool "gcc-5.5"
		depends on FREETZ_AVM_GCC_5
endchoice

config FREETZ_KERNEL_BINUTILS_VERSION
	string
	default "2.18"   if FREETZ_KERNEL_BINUTILS_2_18
	default "2.22"   if FREETZ_KERNEL_BINUTILS_2_22
	default "2.23.2" if FREETZ_KERNEL_BINUTILS_2_23
	default "2.24"   if FREETZ_KERNEL_BINUTILS_2_24
	default "2.25.1" if FREETZ_KERNEL_BINUTILS_2_25
	default "2.26.1" if FREETZ_KERNEL_BINUTILS_2_26

config FREETZ_KERNEL_GCC_VERSION
	string
	default "3.4.6" if FREETZ_KERNEL_GCC_3_4
	default "4.6.4" if FREETZ_KERNEL_GCC_4_6
	default "4.7.4" if FREETZ_KERNEL_GCC_4_7
	default "4.8.5" if FREETZ_KERNEL_GCC_4_8
	default "5.5.0" if FREETZ_KERNEL_GCC_5

comment "Target toolchain options ----------------------------------"
choice
	prompt "Target uClibc version"
	default FREETZ_TARGET_UCLIBC_0_9_28 if FREETZ_AVM_UCLIBC_0_9_28
	default FREETZ_TARGET_UCLIBC_0_9_29 if FREETZ_AVM_UCLIBC_0_9_29
	default FREETZ_TARGET_UCLIBC_0_9_32 if FREETZ_AVM_UCLIBC_0_9_32
	default FREETZ_TARGET_UCLIBC_0_9_33 if FREETZ_AVM_UCLIBC_0_9_33
	default FREETZ_TARGET_UCLIBC_1_0_14 if FREETZ_AVM_UCLIBC_1_0_14

	config FREETZ_TARGET_UCLIBC_0_9_28
	bool "0.9.28"
	depends on FREETZ_AVM_UCLIBC_0_9_28

	config FREETZ_TARGET_UCLIBC_0_9_29
	bool "0.9.29"
	depends on FREETZ_AVM_UCLIBC_0_9_29

	config FREETZ_TARGET_UCLIBC_0_9_32
	bool "0.9.32.1"
	depends on FREETZ_AVM_UCLIBC_0_9_32 \
		|| ((FREETZ_BUILD_TOOLCHAIN || FREETZ_DL_TOOLCHAIN_OVERRIDE) && FREETZ_AVM_UCLIBC_0_9_29)

	config FREETZ_TARGET_UCLIBC_0_9_33
	bool "0.9.33.2"
	depends on FREETZ_AVM_UCLIBC_0_9_33 \
		|| (FREETZ_AVM_UCLIBC_0_9_32 && FREETZ_KERNEL_VERSION_2_6_32) \
		|| ((FREETZ_BUILD_TOOLCHAIN || FREETZ_DL_TOOLCHAIN_OVERRIDE) && (FREETZ_AVM_UCLIBC_0_9_29 || FREETZ_AVM_UCLIBC_0_9_32))

	config FREETZ_TARGET_UCLIBC_1_0_14
	bool "1.0.14"
	depends on FREETZ_AVM_UCLIBC_1_0_14
endchoice

comment "CAUTION: Usage of an uClibc version higher than that used by AVM may lead to an unstable box"
	depends on (FREETZ_AVM_UCLIBC_0_9_29 && !FREETZ_TARGET_UCLIBC_0_9_29) \
		|| (FREETZ_AVM_UCLIBC_0_9_32 && !FREETZ_TARGET_UCLIBC_0_9_32)

config FREETZ_TARGET_UCLIBC_SUPPORTS_libubacktrace
	bool
	#default y  if FREETZ_TARGET_UCLIBC_0_9_32
	default y   if FREETZ_TARGET_UCLIBC_0_9_33
	default y   if FREETZ_TARGET_UCLIBC_1
	default n

config FREETZ_TARGET_UCLIBC_REQUIRES_libubacktrace
	bool
	depends on FREETZ_TARGET_UCLIBC_SUPPORTS_libubacktrace
	default y if \
		(FREETZ_TARGET_ARCH_MIPS && (FREETZ_AVM_UCLIBC_0_9_33 || FREETZ_TARGET_UCLIBC_1) && !FREETZ_REMOVE_AVM_E2FSPROGS) || \
		 FREETZ_TARGET_ARCH_X86
	default n

config FREETZ_TARGET_BINUTILS_2_22_DEFAULT
	bool
	depends on FREETZ_KERNEL_BINUTILS_2_18_DEFAULT || FREETZ_KERNEL_BINUTILS_2_22_DEFAULT
	default y
config FREETZ_TARGET_BINUTILS_2_24_DEFAULT
	bool
	depends on FREETZ_KERNEL_BINUTILS_2_24_DEFAULT
	default y
config FREETZ_TARGET_BINUTILS_2_25_DEFAULT
	bool
	depends on FREETZ_KERNEL_BINUTILS_2_25_DEFAULT
	default y

choice
	prompt "Target binutils"
	default FREETZ_TARGET_BINUTILS_2_22 if FREETZ_TARGET_BINUTILS_2_22_DEFAULT
	default FREETZ_TARGET_BINUTILS_2_24 if FREETZ_TARGET_BINUTILS_2_24_DEFAULT
	default FREETZ_TARGET_BINUTILS_2_25 if FREETZ_TARGET_BINUTILS_2_25_DEFAULT

	config FREETZ_TARGET_BINUTILS_2_22
		bool "binutils-2.22"
		depends on (FREETZ_TARGET_GCC_4_6 || FREETZ_TARGET_GCC_4_7 || FREETZ_TARGET_GCC_4_8 || FREETZ_TARGET_GCC_4_9)
		depends on FREETZ_KERNEL_VERSION_2_6_39_MAX
		depends on FREETZ_TARGET_BINUTILS_2_22_DEFAULT || (FREETZ_BUILD_TOOLCHAIN || FREETZ_DL_TOOLCHAIN_OVERRIDE)

	config FREETZ_TARGET_BINUTILS_2_23
		bool "binutils-2.23.2"
		depends on (FREETZ_TARGET_GCC_4_6 || FREETZ_TARGET_GCC_4_7 || FREETZ_TARGET_GCC_4_8 || FREETZ_TARGET_GCC_4_9)
		depends on FREETZ_KERNEL_VERSION_2_6_39_MAX
		depends on FREETZ_TARGET_BINUTILS_2_23_DEFAULT || (FREETZ_BUILD_TOOLCHAIN || FREETZ_DL_TOOLCHAIN_OVERRIDE)

	config FREETZ_TARGET_BINUTILS_2_24
		bool "binutils-2.24"
		# depends on any target GCC version
		# depends on any kernel version
		depends on FREETZ_TARGET_BINUTILS_2_24_DEFAULT || (FREETZ_BUILD_TOOLCHAIN || FREETZ_DL_TOOLCHAIN_OVERRIDE)

	config FREETZ_TARGET_BINUTILS_2_25
		bool "binutils-2.25.1"
		depends on (FREETZ_TARGET_GCC_4_9 || FREETZ_TARGET_GCC_5)
		# depends on any kernel version
		depends on FREETZ_TARGET_BINUTILS_2_25_DEFAULT || (FREETZ_BUILD_TOOLCHAIN || FREETZ_DL_TOOLCHAIN_OVERRIDE)

	config FREETZ_TARGET_BINUTILS_2_26
		bool "binutils-2.26.1"
		depends on (FREETZ_TARGET_GCC_4_9 || FREETZ_TARGET_GCC_5)
		# depends on any kernel version
		depends on FREETZ_TARGET_BINUTILS_2_26_DEFAULT || (FREETZ_BUILD_TOOLCHAIN || FREETZ_DL_TOOLCHAIN_OVERRIDE)
endchoice

choice
	prompt "Target compiler"
	default FREETZ_TARGET_GCC_4_6 if FREETZ_AVM_GCC_4_6_MAX
	default FREETZ_TARGET_GCC_4_7 if FREETZ_AVM_GCC_4_7
	default FREETZ_TARGET_GCC_4_8 if FREETZ_AVM_GCC_4_8
	default FREETZ_TARGET_GCC_4_9 if FREETZ_AVM_GCC_4_9
	default FREETZ_TARGET_GCC_5   if FREETZ_AVM_GCC_5

	config FREETZ_TARGET_GCC_4_6
		bool "gcc-4.6.4"
		depends on FREETZ_AVM_GCC_4_6_MAX

	config FREETZ_TARGET_GCC_4_7
		bool "gcc-4.7.4"
		depends on FREETZ_AVM_GCC_4_7 \
			|| (FREETZ_AVM_GCC_4_7_MAX && (FREETZ_BUILD_TOOLCHAIN || FREETZ_DL_TOOLCHAIN_OVERRIDE))

	config FREETZ_TARGET_GCC_4_8
		bool "gcc-4.8.5"
		depends on FREETZ_AVM_GCC_4_8 \
			|| (FREETZ_AVM_GCC_4_8_MAX && (FREETZ_BUILD_TOOLCHAIN || FREETZ_DL_TOOLCHAIN_OVERRIDE))

	config FREETZ_TARGET_GCC_4_9
		bool "gcc-4.9.4"
		depends on FREETZ_AVM_GCC_4_9 \
			|| (FREETZ_AVM_GCC_4_9_MAX && (FREETZ_BUILD_TOOLCHAIN || FREETZ_DL_TOOLCHAIN_OVERRIDE))

	config FREETZ_TARGET_GCC_5
		bool "gcc-5.5"
		depends on FREETZ_AVM_GCC_5 \
			|| (FREETZ_AVM_GCC_5_MAX   && (FREETZ_BUILD_TOOLCHAIN || FREETZ_DL_TOOLCHAIN_OVERRIDE))
endchoice

config FREETZ_TARGET_GCC_SNAPSHOT
	bool "Use a snapshot of gcc-major-version selected above"
	depends on FREETZ_REAL_DEVELOPER_ONLY \
		&& (FREETZ_TARGET_GCC_4_8 || FREETZ_TARGET_GCC_4_9) && (FREETZ_BUILD_TOOLCHAIN || FREETZ_DL_TOOLCHAIN_OVERRIDE)

config FREETZ_TARGET_GCC_SNAPSHOT_DATE
	string "Snapshot date (in YYYYMMDD format)"
	depends on FREETZ_TARGET_GCC_SNAPSHOT
	default "20150611" if FREETZ_TARGET_GCC_4_8
	default "20160727" if FREETZ_TARGET_GCC_4_9
	default "20171003" if FREETZ_TARGET_GCC_5

config FREETZ_TARGET_GCC_DEFAULT_AS_NEEDED
	bool
	default n if FREETZ_TARGET_UCLIBC_0_9_28 || FREETZ_TARGET_UCLIBC_0_9_29
	default y
	help
		Enabling this option changes linker default from '--no-as-needed' to '--as-needed'.

choice

	prompt "Standard C++ Library"
	default FREETZ_STDCXXLIB_USE_UCLIBCXX
	help
		Library to be used as the implementation of the Standard C++ Library.

	config FREETZ_STDCXXLIB_USE_UCLIBCXX
		bool "uClibc++"
		help
			uClibc++ is an implementation of the Standard C++ Library optimized
			for embedded systems (primarily for size). Its size is ~160KB.
			It however lacks a complete support for wchar type. It also has some
			performance deficiencies, e.g. std::map::find requires O(n), bubble
			sort O(n^2) is used as sort algorithm, and etc.

	config FREETZ_STDCXXLIB_USE_GNULIBSTDCXX
		bool "GNU libstdc++"
		help
			GNU libstdc++ is an implementation of the Standard C++ Library from
			the developers of the GNU Compiler Collection (GCC). It provides
			a full support for all features defined in the 2nd edition of the
			C++ Standard (ISO/IEC 14882:2003) and for many features of the
			upcoming version of the Standard. The only disadvantage it has
			compared to uClibc++ is its size - upto 900KB depending on the
			compiler version.

endchoice

config FREETZ_TARGET_UCLIBC_0
	bool
	default y           if FREETZ_TARGET_UCLIBC_0_9_28
	default y           if FREETZ_TARGET_UCLIBC_0_9_29
	default y           if FREETZ_TARGET_UCLIBC_0_9_32
	default y           if FREETZ_TARGET_UCLIBC_0_9_33
	default n

config FREETZ_TARGET_UCLIBC_1
	bool
	default y           if FREETZ_TARGET_UCLIBC_1_0_14
	default n

config FREETZ_TARGET_UCLIBC_VERSION
	string
	default "0.9.28"    if FREETZ_TARGET_UCLIBC_0_9_28
	default "0.9.29"    if FREETZ_TARGET_UCLIBC_0_9_29
	default "0.9.32.1"  if FREETZ_TARGET_UCLIBC_0_9_32
	default "0.9.33.2"  if FREETZ_TARGET_UCLIBC_0_9_33
	default "1.0.14"    if FREETZ_TARGET_UCLIBC_1_0_14

config FREETZ_TARGET_UCLIBC_MAJOR_VERSION
	string
	default "1"         if FREETZ_TARGET_UCLIBC_1
	default "0"         if FREETZ_TARGET_UCLIBC_0

config FREETZ_TARGET_BINUTILS_VERSION
	string
	default "2.22"      if FREETZ_TARGET_BINUTILS_2_22
	default "2.23.2"    if FREETZ_TARGET_BINUTILS_2_23
	default "2.24"      if FREETZ_TARGET_BINUTILS_2_24
	default "2.25.1"    if FREETZ_TARGET_BINUTILS_2_25
	default "2.26.1"    if FREETZ_TARGET_BINUTILS_2_26

config FREETZ_TARGET_GCC_MAJOR_VERSION
	string
	default "4.6"       if FREETZ_TARGET_GCC_4_6
	default "4.7"       if FREETZ_TARGET_GCC_4_7
	default "4.8"       if FREETZ_TARGET_GCC_4_8
	default "4.9"       if FREETZ_TARGET_GCC_4_9
	default "5"         if FREETZ_TARGET_GCC_5

config FREETZ_TARGET_GCC_MINOR_VERSION
	depends on !FREETZ_TARGET_GCC_SNAPSHOT
	string
	default "4"         if FREETZ_TARGET_GCC_4_6
	default "4"         if FREETZ_TARGET_GCC_4_7
	default "5"         if FREETZ_TARGET_GCC_4_8
	default "4"         if FREETZ_TARGET_GCC_4_9
	default "5.0"       if FREETZ_TARGET_GCC_5

config FREETZ_TARGET_GCC_VERSION
	string
	default "${FREETZ_TARGET_GCC_MAJOR_VERSION}.${FREETZ_TARGET_GCC_MINOR_VERSION}"  if !FREETZ_TARGET_GCC_SNAPSHOT
	default "${FREETZ_TARGET_GCC_MAJOR_VERSION}-${FREETZ_TARGET_GCC_SNAPSHOT_DATE}"  if  FREETZ_TARGET_GCC_SNAPSHOT

config FREETZ_GNULIBSTDCXX_VERSION
	string
	default "6.0.16"    if FREETZ_TARGET_GCC_4_6
	default "6.0.17"    if FREETZ_TARGET_GCC_4_7
	default "6.0.19"    if FREETZ_TARGET_GCC_4_8
	default "6.0.20"    if FREETZ_TARGET_GCC_4_9
	default "6.0.21"    if FREETZ_TARGET_GCC_5

config FREETZ_STDCXXLIB
	string
	default "uclibcxx"  if FREETZ_STDCXXLIB_USE_UCLIBCXX
	default "libstdcxx" if FREETZ_STDCXXLIB_USE_GNULIBSTDCXX

config FREETZ_TARGET_CFLAGS
	string "Target compiler flags"
	default "-Os -pipe"

config FREETZ_RPATH
	string "FREETZ_RPATH"
	default "/usr/lib/freetz"
	help
		A run-time search path (a colon-separated list of directories) to be hard-coded
		in all binaries/libraries compiled using Freetz toolchain.

		What is this needed for?
		Freetz provides some libraries (e.g. OpenSSL, Zlib, SQLite) which are also used
		by AVM in the original firmware. Freetz versions of these libraries are not (always)
		compatible with the AVM ones (Freetz might use a higher version number, a deviating
		configuration, different compiler settings, etc.). In order to avoid collisions
		with the AVM versions of the libraries Freetz libraries are put in a non-standard
		directory (non-standard from the dynamic loader point of view). This option allows
		the user to set this directory - it will be the 1st element of FREETZ_RPATH.

		Note: If you do NOT plan to flash the Freetz image and use the Freetz toolchain
		      just for compiling the binaries/libraries then you can also set this option
		      to one of the standard dynamic loader search paths (/usr or /usr/lib).
		      In this case the resulting binaries/libraries won't contain an RPATH entry.

config FREETZ_TARGET_TOOLCHAIN_AVM_COMPATIBLE
	bool "Create toolchain compatible with original firmware"
	depends on FREETZ_BUILD_TOOLCHAIN && (FREETZ_AVM_UCLIBC_0_9_28 || FREETZ_AVM_UCLIBC_0_9_29)
	default n
	help
		In order to produce smaller binaries freetz toolchain is compiled
		with mips-plt optimizations enabled. Because of the missing support
		for the required relocation types in uClibc versions prior to 0.9.30
		the binaries produced with a toolchain optimized this way could not
		be run on boxes with original firmware.

		This option causes mips-plt optimizations to be disabled.
		The binaries compiled with such toolchain could be run on boxes
		with unmodified firmware.

		Note: mips-plt optimizations affect only dynamically linked binaries.
		In case all binaries you want to run on an unmodified box will be
		linked statically it is safe to say 'no' here.

config FREETZ_TARGET_UCLIBC_DODEBUG
	bool "Include debug symbols in uClibc"
	depends on (FREETZ_BUILD_TOOLCHAIN || FREETZ_DL_TOOLCHAIN_OVERRIDE) && (FREETZ_TARGET_UCLIBC_0_9_32 || FREETZ_TARGET_UCLIBC_0_9_33 || FREETZ_TARGET_UCLIBC_1)
	default n
	help
		This is a developers only option! Do not activate it
		if you don't know what it is useful for!

		Causes uClibc to be compiled with debug support enabled,
		i.e. activates DODEBUG symbol in uClibc .config

choice

	prompt "Debug level"
	depends on FREETZ_TARGET_UCLIBC_DODEBUG
	default FREETZ_TARGET_UCLIBC_DODEBUG_DEFAULT

	config FREETZ_TARGET_UCLIBC_DODEBUG_DEFAULT
		bool "default"

	config FREETZ_TARGET_UCLIBC_DODEBUG_MAXIMUM
		bool "maximum"
		help
			Significantly increases size of all uClibc libraries.
			Your box should have at least 64MB RAM.

endchoice

config FREETZ_TARGET_UCLIBC_REDUCED_LOCALE_SET
	bool "Use reduced set of locales" if FREETZ_BUILD_TOOLCHAIN && \
						( \
						FREETZ_TARGET_UCLIBC_0_9_29 || \
						FREETZ_TARGET_UCLIBC_0_9_32 || \
						FREETZ_TARGET_UCLIBC_0_9_33 || \
						FREETZ_TARGET_UCLIBC_1         \
						)
	default y
	help
		This option causes only the following locales to be included into uClibc:
		 - en_US
		 - en_US.UTF-8
		 - de_DE
		 - de_DE.UTF-8

		This saves about 235KB in the image and at run-time.

config FREETZ_TARGET_UCLIBC_PROVIDES_SSP
	bool
	default y
	depends on FREETZ_TARGET_UCLIBC_1

config FREETZ_TARGET_NLS
#	bool "Native language support (NLS) for target toolchain" if FREETZ_BUILD_TOOLCHAIN
	bool
	default n
	help
		Support NLS-enabled programs and Linux tools on target system.

		Example:
			$ ls /foo/bar
			ls: /foo/bar: No such file or directory
			$ export LANG=de_DE.8859-1
			$ ls /foo/bar
			ls: /foo/bar: Datei oder Verzeichnis nicht gefunden

config FREETZ_TARGET_TOOLCHAIN
	select FREETZ_LIB_libgmp
	select FREETZ_LIB_libmpfr
	select FREETZ_LIB_libmpc
	bool "Build binutils and gcc for target" if FREETZ_BUILD_TOOLCHAIN
	default n
	help
		Build the binutils and gcc to run on the target.
		Files are installed into toolchain/target/target-utils.

comment "Both kernel and target toolchain related options ----------"
config FREETZ_TOOLCHAIN_MINIMIZE_REQUIRED_GLIBC_VERSION
#	bool "Minimize required GLIBC version" if FREETZ_BUILD_TOOLCHAIN
	bool
	default y

config FREETZ_TOOLCHAIN_32BIT
	bool "Build 32-bit toolchains" if FREETZ_BUILD_TOOLCHAIN
	default n
	help
		This option causes a 32-bit toolchain to be built even on 64-bit systems.

config FREETZ_TOOLCHAIN_CCACHE
	bool "Build ccache"
	default n
	help
		ccache is a compiler cache. It acts as a caching pre-processor to C/C++
		compilers, using the -E compiler switch and a hash to detect when a
		compilation can be satisfied from cache. This often results in a 5 to 10
		times speedup in common compilations.

		The idea came from Erik Thiele wrote the original compilercache program
		as a bourne shell script. ccache is a re-implementation of Erik's idea
		in C with more features and better performance.

endmenu # "Toolchain options" #
