# This file is part of the OpenADK project. OpenADK is copyrighted
# material, please see the LICENCE file in the top-level directory.

# mark broken devices
config ADK_BROKEN
	bool

config ADK_DEVICE_NO_FPU
	bool

config ADK_LINUX_64
	bool

config ADK_NATIVE
	tristate

config ADK_alix1c
	tristate

config ADK_qemu_x86
	tristate

config ADK_qemu_mips
	tristate

config ADK_qemu_mipsel
	tristate

config ADK_qemu_mips64
	tristate

config ADK_qemu_mips64el
	tristate

config ADK_qemu_cris
	tristate

config ADK_rb532
	tristate

config ADK_rb411
	tristate

config ADK_rb433
	tristate

config ADK_zaurus
	tristate

config ADK_foxboard
	tristate

config ADK_lemote
	tristate

config ADK_rescue_x86
	tristate

config ADK_rescue_x86_64
	tristate

config ADK_rescue_mips
	tristate

config ADK_rescue_mipsel
	tristate

config ADK_wag54g
	tristate

config ADK_DEVICE
	string
	default "alix1c"  if ADK_alix1c
	default "qemu-x86"  if ADK_qemu_x86
	default "qemu-mips"  if ADK_qemu_mips
	default "qemu-mipsel"  if ADK_qemu_mipsel
	default "qemu-mips64"  if ADK_qemu_mips64
	default "qemu-mips64el"  if ADK_qemu_mips64el
	default "qemu-cris"  if ADK_qemu_cris
	default "foxboard"  if ADK_foxboard
	default "native"  if ADK_NATIVE
	default "rb532"  if ADK_rb532
	default "rb411"  if ADK_rb411
	default "rb433"  if ADK_rb433
	default "zaurus"  if ADK_arm
	default "lemote"  if ADK_lemote
	default "wag54g"  if ADK_wag54g
	default "rescue-x86"  if ADK_rescue_x86
	default "rescue-x86_64"  if ADK_rescue_x86_64
	default "rescue-mips"  if ADK_rescue_mips
	default "rescue-mipsel"  if ADK_rescue_mipsel

menu "Target system"

choice
prompt "Embedded Device"
default ADK_LINUX_NATIVE

config ADK_LINUX_NATIVE
	bool "Native platform"
	select ADK_NATIVE
	help
	  Make a native build. Use host tools.
	  No toolchain will be created.

config ADK_LINUX_X86_ALIX1C
	bool "PC Engines Alix1C"
	select ADK_alix1c
	select ADK_KERNEL_SCSI
	select ADK_KERNEL_EXT2_FS
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_NET_PCI
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_NET_ETHERNET
	select ADK_KERNEL_MII
	select BUSYBOX_HWCLOCK
	help
	  http://www.pcengines.ch/

config ADK_LINUX_CRIS_FOXBOARD
	bool "Foxboard (ETRAX LX100)"
	select ADK_foxboard
	select ADK_PACKAGE_KMOD_USB_CONTROLLER
	help
	  Foxboard support

config ADK_LINUX_MIPS64_LEMOTE
	bool "Lemote Subnotebook Yeeloong"
	select ADK_lemote
	select ADK_LINUX_64
	select ADK_KERNEL_INPUT_KEYBOARD
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_NET_PCI
	select ADK_KERNEL_NET_ETHERNET
	select ADK_KERNEL_MII
	help
	  Lemote Subnotebook

config ADK_LINUX_MIKROTIK
	bool "Mikrotik Routerboards"
	help
	 Support for Mikrotik Routerboards

config ADK_LINUX_MIPS_WAG54G
	bool "Linksys WAG54G"
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_NET_PCI
	select ADK_KERNEL_NET_ETHERNET
	select ADK_KERNEL_MII
	select ADK_wag54g
	help
	  Linksys WAG54G DSL router with Wireless
	  TI AR7 platform


config ADK_LINUX_XSCALE_ZAURUS
	bool "Zaurus SL-C3200"
	depends on ADK_BROKEN
	select ADK_zaurus
	select ADK_DEVICE_NO_FPU
	help
	 Support for Sharp Zaurus SL-C3200 (aka Terrier)

config ADK_LINUX_RESCUE
	bool "Minimal Linux Rescuesystem"
	help
	 Rescuesystem with can be used to Boot from Disk or USB stick.

config ADK_LINUX_QEMU
	bool "Qemu Emulator"
	help
	 Support for Qemu Emulator

endchoice

choice
prompt "Architecture"
depends on ADK_LINUX_RESCUE

config ADK_LINUX_X86_64_RESCUE
	bool "x86_64"
	select ADK_rescue_x86_64
	select ADK_LINUX_64
	help
	 X86 architecture.

config ADK_LINUX_X86_RESCUE
	bool "x86"
	select ADK_rescue_x86
	help
	 X86 architecture.

config ADK_LINUX_MIPSEL_RESCUE
	bool "mips (little endian)"
	select ADK_rescue_mipsel
	help
	 MIPS LE architecture.

config ADK_LINUX_MIPS_RESCUE
	bool "mips (big endian)"
	select ADK_rescue_mips
	help
	 MIPS BE architecture.

endchoice

choice
prompt "Architecture"
depends on ADK_LINUX_QEMU

config ADK_LINUX_X86_QEMU
	bool "x86"
	select ADK_qemu_x86
	select ADK_KPACKAGE_KMOD_NE2K_PCI
	select ADK_KERNEL_INPUT_KEYBOARD
	help
	 Qemu support for x86 architecture.

config ADK_LINUX_MIPS_QEMU
	bool "mips (big endian)"
	select ADK_qemu_mips
	help
	 Qemu support for MIPS BE architecture.

config ADK_LINUX_MIPSEL_QEMU
	bool "mipsel (little endian)"
	select ADK_qemu_mipsel
	help
	 Qemu support for MIPS LE architecture.

config ADK_LINUX_MIPS64_QEMU
	bool "mips64 (big endian)"
	select ADK_qemu_mips64
	select ADK_LINUX_64
	help
	 Qemu support for MIPS64 BE architecture.

config ADK_LINUX_MIPS64EL_QEMU
	bool "mips64 (little endian)"
	select ADK_qemu_mips64el
	select ADK_LINUX_64
	help
	 Qemu support for MIPS64 LE architecture.

config ADK_LINUX_CRIS_QEMU
	bool "cris"
	select ADK_qemu_cris
	select ADK_BROKEN
	help
	 Qemu support for CRISv32 architecture.

endchoice

choice
prompt "Routerboard model"
default ADK_LINUX_MIPS_RB433
depends on ADK_LINUX_MIKROTIK

config ADK_LINUX_MIPS_RB411
	bool "Mikrotik Routerboard 411"
	select ADK_rb411
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_NET_PCI
	select ADK_KERNEL_NETDEV_1000
	select ADK_KERNEL_NET_ETHERNET
	help
	 Support for Mikrotik RB411.

config ADK_LINUX_MIPS_RB433
	bool "Mikrotik Routerboard 433"
	select ADK_rb433
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_NET_PCI
	select ADK_KERNEL_NETDEV_1000
	select ADK_KERNEL_NET_ETHERNET
	help
	 Support for Mikrotik RB433.

config ADK_LINUX_MIPS_RB532
	bool "Mikrotik Routerboard 532"
	select ADK_rb532
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_NET_PCI
	select ADK_KERNEL_NET_ETHERNET
	select ADK_KERNEL_MII
	help
	 Support for Mikrotik RB532.
endchoice

choice
prompt "Device model"
default ADK_LINUX_CRIS_FOXBOARD_CLASSIC
depends on ADK_LINUX_CRIS_FOXBOARD

config ADK_LINUX_CRIS_FOXBOARD_CLASSIC
	bool "Foxboard classic (4x16)"
	help
	  Foxboard classic with red board.
	  (4 MB flash size and 16 MB RAM)

config ADK_LINUX_CRIS_FOXBOARD_LX
	bool "Foxboard LX (8x32)"
	help
	  Latest Foxboard with green board.
	  (8 MB flash size and 32 MB RAM)

endchoice

source "target/linux/config/Config.in.kernel"

choice 
prompt "Target C library"
depends on ! ADK_NATIVE
config ADK_TARGET_LIB_UCLIBC
	bool "uClibc embedded C library"
	help
 	 http://uclibc.org

config ADK_TARGET_LIB_GLIBC
	bool "GNU C library"
	depends on ADK_LINUX_X86_QEMU || \
		ADK_LINUX_MIPS_QEMU || \
		ADK_LINUX_MIPS64_QEMU || \
		ADK_LINUX_MIPSEL_QEMU || \
		ADK_LINUX_MIPS64EL_QEMU || \
		ADK_LINUX_X86_ALIX1C || \
		ADK_LINUX_MIPS_RB411 || \
		ADK_LINUX_MIPS_RB532 || \
		ADK_LINUX_RESCUE || \
		ADK_LINUX_MIPS64_LEMOTE
	help
	 http://www.gnu.org/libc
endchoice

choice
prompt "Target Firmware type"
	default ADK_TARGET_ROOTFS_EXT2_CF

config ADK_TARGET_ROOTFS_INITRAMFS
	bool "initramfs filesystem"
	depends on ADK_LINUX_X86_QEMU || \
		ADK_LINUX_CRIS_QEMU || \
		ADK_LINUX_MIPS_QEMU || \
		ADK_LINUX_MIPSEL_QEMU || \
		ADK_LINUX_MIPS64_QEMU || \
		ADK_LINUX_MIPS64EL_QEMU || \
		ADK_LINUX_RESCUE || \
		ADK_LINUX_MIPS64_LEMOTE
	help
	  create an read-only initramfs system.

config ADK_TARGET_ROOTFS_SQUASHFS
	bool "squashfs read-only root filesystem"
	depends on ADK_LINUX_CRIS_FOXBOARD || \
		ADK_LINUX_MIPS_WAG54G
	help
	  highly compressed read-only filesystem for flash.

config ADK_TARGET_ROOTFS_YAFFS
	bool "YAFFS2 rootfilesystem (NAND)"
	depends on ADK_LINUX_MIPS_RB532 || \
		ADK_LINUX_MIPS_RB433 || \
		ADK_LINUX_MIPS_RB411
	help
	  Root filesystem on NAND.

config ADK_TARGET_ROOTFS_NFSROOT
	bool "NFS root"
	depends on ADK_LINUX_CRIS_FOXBOARD || \
		ADK_LINUX_X86_ALIX1C || \
		ADK_LINUX_MIPS_RB532 || \
		ADK_LINUX_MIPS_RB433 || \
		ADK_LINUX_MIPS_RB411 || \
		ADK_LINUX_MIPS_WAG54G || \
		ADK_LINUX_MIPS64_LEMOTE
	select ADK_KERNEL_NFS_FS
	select ADK_KERNEL_NFS_V3
	select ADK_KERNEL_ROOT_NFS
	select ADK_KERNEL_NFS_COMMON
	select ADK_KERNEL_IP_PNP
	select ADK_KERNEL_IP_PNP_DHCP
	help
	  Root filesystem mounted via NFS. (DHCP)

config ADK_TARGET_ROOTFS_EXT2_CF
	bool "read-write filesystem for compact flash (ext2)"
	depends on ADK_LINUX_X86_ALIX1C || ADK_LINUX_MIPS_RB532
	select ADK_KERNEL_EXT2_FS
	select ADK_KERNEL_SCSI
	select ADK_KERNEL_BLK_DEV_SD
	help
	  Use this option if you have a compact flash
	  inside your hardware and want to boot from it.

config ADK_TARGET_ROOTFS_EXT2
	bool "read-write filesystem for qemu emulator"
	depends on ADK_LINUX_QEMU || \
		ADK_LINUX_XSCALE_ZAURUS
	select ADK_KERNEL_EXT2_FS
	help
	  Use this option if you compile for qemu.
endchoice

config ADK_SSP
	bool "Enable Stack Smashing Protection"
	default n
	depends on ADK_LINUX_X86_ALIX1C || \
		ADK_LINUX_CRIS_FOXBOARD
	help
	  Enable Stack Smashing Protection

config ADK_CXX
	bool "Enable C++ support"
	default n
	help
	  Enable C++ Compiler and Libraries

config ADK_DEBUG
	bool "Enable debug support"
	default n
	help
	  All packages and libc will be compiled and packaged with debug information.
	  Mostly useful for NFS root or big USB/CF disk setups.

config ADK_IPV6
	bool "Enable IPv6 support"
	default n
	select ADK_KPACKAGE_KMOD_IPV6
	select BUSYBOX_FEATURE_IPV6
	select BUSYBOX_FEATURE_IFUPDOWN_IPV6
	select BUSYBOX_PING6
	help
	  Enable basic IPv6 support (kmod-ipv6) and
	  make the IPv6 support options in packages visible.

config ADK_X11
	bool "Enable X.org/X11 support"
	default n
	help
	  Enable Xorg/X11 server and applications in menu.
	  Try to compile other packages with X11 support. 
	  (f.e. mplayer)

endmenu