# 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_TARGET_WITH_USB
	bool

config ADK_TARGET_WITH_PCI
	bool

config ADK_TARGET_WITH_MINIPCI
	bool

config ADK_TARGET_WITH_VGA
	bool

config ADK_TARGET_WITH_INPUT
	bool

config ADK_TARGET_WITH_LEDS
	bool

config ADK_TARGET_WITH_PP
	bool

config ADK_TARGET_WITH_CARDBUS
	bool

config ADK_TARGET_WITH_RTC
	bool

config ADK_TARGET_WITH_WATCHDOG
	bool

config ADK_TARGET_WITH_DSL
	bool

config ADK_TOOLCHAIN_ONLY
	bool

config ADK_TARGET_NO_FPU
	bool

config ADK_EABI
	bool

config ADK_LINUX_64
	bool

config ADK_NATIVE
	tristate

config ADK_alix1c
	tristate

config ADK_alix2d
	tristate

config ADK_alix2d13
	tristate

config ADK_wrap
	tristate

config ADK_arm_toolchain
	tristate

config ADK_armel_toolchain
	tristate

config ADK_mips_toolchain
	tristate

config ADK_mipsel_toolchain
	tristate

config ADK_ppc_toolchain
	tristate

config ADK_sparc_toolchain
	tristate

config ADK_x86_toolchain
	tristate

config ADK_x86_64_toolchain
	tristate

config ADK_arm_qemu
	tristate

config ADK_mips_qemu
	tristate

config ADK_mipsel_qemu
	tristate

config ADK_mips64_qemu
	tristate

config ADK_mips64el_qemu
	tristate

config ADK_cris_qemu
	tristate

config ADK_x86_qemu
	tristate

config ADK_x86_64_qemu
	tristate

config ADK_rb532
	tristate

config ADK_rb4xx
	tristate

config ADK_zaurus
	tristate

config ADK_foxg20
	tristate

config ADK_ibmx40
	tristate

config ADK_foxboard
	tristate

config ADK_lemote
	tristate

config ADK_x86_rescue
	tristate

config ADK_x86_64_rescue
	tristate

config ADK_mips_rescue
	tristate

config ADK_mipsel_rescue
	tristate

config ADK_brcm
	tristate

config ADK_ag241
	tristate

config ADK_wag54g
	tristate

config ADK_shuttle
	tristate

config ADK_TARGET
	string
	default "alix1c"  if ADK_alix1c
	default "alix2d"  if ADK_alix2d
	default "alix2d13"  if ADK_alix2d13
	default "wrap"  if ADK_wrap
	default "brcm"  if ADK_brcm
	default "toolchain-arm"  if ADK_arm_toolchain
	default "toolchain-armel"  if ADK_armel_toolchain
	default "toolchain-mips"  if ADK_mips_toolchain
	default "toolchain-mipsel"  if ADK_mipsel_toolchain
	default "toolchain-ppc"  if ADK_ppc_toolchain
	default "toolchain-sparc"  if ADK_sparc_toolchain
	default "toolchain-x86"  if ADK_x86_toolchain
	default "toolchain-x86_64"  if ADK_x86_64_toolchain
	default "qemu-arm"  if ADK_arm_qemu
	default "qemu-cris"  if ADK_cris_qemu
	default "qemu-mips"  if ADK_mips_qemu
	default "qemu-mips64"  if ADK_mips64_qemu
	default "qemu-mipsel"  if ADK_mipsel_qemu
	default "qemu-x86"  if ADK_x86_qemu
	default "qemu-x86_64"  if ADK_x86_64_qemu
	default "foxboard"  if ADK_foxboard
	default "foxg20"  if ADK_foxg20
	default "native"  if ADK_NATIVE
	default "rb532"  if ADK_rb532
	default "rb4xx"  if ADK_rb4xx
	default "zaurus"  if ADK_arm
	default "lemote"  if ADK_lemote
	default "ibmx40"  if ADK_ibmx40
	default "wag54g"  if ADK_wag54g
	default "ag241"  if ADK_ag241
	default "rescue-x86"  if ADK_x86_rescue
	default "rescue-x86_64"  if ADK_x86_64_rescue
	default "rescue-mips"  if ADK_mips_rescue
	default "rescue-mipsel"  if ADK_mipsel_rescue
	default "shuttle"  if ADK_shuttle

# c library
config ADK_uclibc
	tristate

config ADK_eglibc
	tristate

config ADK_glibc
	tristate

config ADK_LIBC
	string
	default "uclibc"  if ADK_uclibc
	default "eglibc"  if ADK_eglibc
	default "glibc"  if ADK_glibc
	default "native"  if ADK_NATIVE

menu "Target system"

choice
prompt "Embedded Device or Emulator"
default ADK_LINUX_NATIVE

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

config ADK_LINUX_ALIX
	bool "ALIX and WRAP boards"
	help
	  Support for Alix and Wrap boards.
	  http://www.pcengines.ch

config ADK_LINUX_ARM_FOXG20
	bool "Foxboard (FOXG20)"
	select ADK_foxg20
	select ADK_EABI
	select ADK_KERNEL_NLS
	select ADK_KERNEL_EXT2_FS
	select ADK_KERNEL_USB
	select ADK_KPACKAGE_KMOD_VFAT_FS
	select ADK_PACKAGE_KMOD_USB_CONTROLLER
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_NET_PCI
	select ADK_KERNEL_NET_ETHERNET
	select ADK_KERNEL_MII
	select ADK_TARGET_WITH_USB
	help
	  Support for Foxboard target (foxg20).
	  http://foxg20.acmesystems.it/doku.php
	  Status: stable

config ADK_LINUX_CRIS_FOXBOARD
	bool "Foxboard (ETRAX LX100)"
	select ADK_foxboard
	select ADK_PACKAGE_KMOD_USB_CONTROLLER
	select ADK_KERNEL_USB
	select ADK_KERNEL_NLS
	select ADK_KERNEL_NETDEVICES
	select ADK_TARGET_WITH_USB
	help
	  Support for Foxboard targets.
	  http://foxlx.acmesystems.it/
	  Status: stable

config ADK_LINUX_MIPS64_LEMOTE
	bool "Lemote Subnotebook Yeeloong"
	select ADK_lemote
	select ADK_LINUX_64
	select ADK_KERNEL_USB
	select ADK_KERNEL_EXT2_FS
	select ADK_KERNEL_SCSI
	select ADK_KERNEL_ATA
	select ADK_KERNEL_BLK_DEV_SD
	select ADK_KERNEL_INPUT_KEYBOARD
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_NET_PCI
	select ADK_KERNEL_NET_ETHERNET
	select ADK_KERNEL_MII
	select ADK_KERNEL_SWAP
	select ADK_TARGET_WITH_USB
	select ADK_TARGET_WITH_VGA
	select ADK_TARGET_WITH_INPUT
	select ADK_TARGET_WITH_PCI
	select ADK_TARGET_WITH_RTC
	select ADK_PACKAGE_KMOD_USB_CONTROLLER
	help
	  Lemote Subnotebook.
	  http://www.lemote.com/english/index.html
	  http://www.tekmote.nl/
	  Status: testing

config ADK_LINUX_MIKROTIK
	bool "Mikrotik Routerboards"
	help
	  Support for Mikrotik Routerboards
	  http://www.mikrotik.com
	  http://www.routerboards.com

#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.
#	  (Texas Instruments AR7 platform)

config ADK_LINUX_MIPS_AG241
	bool "Linksys AG241v2"
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_NET_PCI
	select ADK_KERNEL_NET_ETHERNET
	select ADK_KERNEL_MII
	select ADK_PACKAGE_KMOD_SANGAM_ATM
	select ADK_KPACKAGE_KMOD_ATM_BR2684
	select ADK_PACKAGE_BR2684CTL
	select ADK_TARGET_WITH_DSL
	select ADK_TARGET_WITH_WATCHDOG
	select ADK_ag241
	help
	  Linksys AG241 DSL router.
	  (Texas Instruments AR7 platform)
	  Status: stable

config ADK_LINUX_MIPS_BRCM
	bool "Linksys/Asus Broadcom 47xx Routers"
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_NET_PCI
	select ADK_KERNEL_NET_ETHERNET
	select ADK_KERNEL_MII
	select ADK_brcm
	help
	  Linksys/Asus Broadcom 47xx based router.
	  Status: development

config ADK_LINUX_XSCALE_ZAURUS
	bool "Zaurus SL-C3200"
	select ADK_zaurus
	select ADK_TARGET_NO_FPU
	select ADK_TARGET_WITH_INPUT
	depends on ADK_BROKEN
	help
	 Support for Sharp Zaurus SL-C3200 (aka Terrier)
	 Status: development

config ADK_LINUX_RESCUE
	bool "Minimal Linux Rescuesystem"
	select ADK_KERNEL_INPUT_KEYBOARD
	select ADK_TARGET_WITH_INPUT
	help
	 Rescuesystem with can be used to Boot from Disk or USB stick.
	 Status: development

config ADK_LINUX_QEMU
	bool "Qemu Emulator"
	select ADK_KERNEL_NET_PCI
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_MII
	select ADK_KERNEL_NET_ETHERNET
	select ADK_TARGET_WITH_INPUT
	help
	 Support for Qemu Emulator

config ADK_LINUX_TOOLCHAIN
	bool "Toolchain only support"
	help
	 Toolchain only support

config ADK_LINUX_X86_IBMX40
	bool "IBM X40 laptop"
	select ADK_ibmx40
	select ADK_TARGET_WITH_USB
	select ADK_TARGET_WITH_VGA
	select ADK_TARGET_WITH_PCI
	select ADK_TARGET_WITH_INPUT
	select ADK_TARGET_WITH_CARDBUS
	select ADK_KERNEL_INPUT_KEYBOARD
	select ADK_KERNEL_SCSI
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_NET_PCI
	select ADK_KERNEL_NET_ETHERNET
	help
	  Support for a IBM X40 laptop.
	  Status: development

config ADK_LINUX_X86_64_SHUTTLE
	bool "Shuttle PC"
	select ADK_shuttle
	select ADK_TARGET_WITH_USB
	select ADK_TARGET_WITH_VGA
	select ADK_TARGET_WITH_PCI
	select ADK_TARGET_WITH_INPUT
	select ADK_TARGET_WITH_PP
	select ADK_KERNEL_INPUT_KEYBOARD
	select ADK_KERNEL_SCSI
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_NET_PCI
	select ADK_KERNEL_NET_ETHERNET
	select ADK_KERNEL_SATA_AHCI if ADK_TARGET_ROOTFS_ARCHIVE
	select ADK_KERNEL_BLK_DEV_SD if ADK_TARGET_ROOTFS_ARCHIVE
	select ADK_KERNEL_BLK_DEV_MD if ADK_TARGET_ROOTFS_ARCHIVE
	select ADK_KERNEL_MD_RAID0 if ADK_TARGET_ROOTFS_ARCHIVE
	select ADK_KERNEL_MD_RAID1 if ADK_TARGET_ROOTFS_ARCHIVE
	select ADK_KPACKAGE_KMOD_SATA_AHCI if ADK_TARGET_ROOTFS_INITRAMFS_PIGGYBACK
	select ADK_KPACKAGE_KMOD_BLK_DEV_MD if ADK_TARGET_ROOTFS_INITRAMFS_PIGGYBACK
	select ADK_KPACKAGE_KMOD_MD_RAID0 if ADK_TARGET_ROOTFS_INITRAMFS_PIGGYBACK
	select ADK_KPACKAGE_KMOD_MD_RAID1 if ADK_TARGET_ROOTFS_INITRAMFS_PIGGYBACK
	help
	  Support for a nice and fast shuttle xpc with AMD quad-core CPU.
	  Status: development

endchoice

choice
prompt "Architecture"
depends on ADK_LINUX_RESCUE

config ADK_LINUX_X86_64_RESCUE
	bool "x86_64"
	select ADK_x86_64_rescue
	help
	 X86 architecture.

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

config ADK_LINUX_MIPSEL_RESCUE
	bool "mips (little endian)"
	select ADK_mipsel_rescue
	depends on ADK_BROKEN
	help
	 MIPS LE architecture.

config ADK_LINUX_MIPS_RESCUE
	bool "mips (big endian)"
	select ADK_mips_rescue
	depends on ADK_BROKEN
	help
	 MIPS BE architecture.

endchoice

choice
prompt "Architecture"
depends on ADK_LINUX_TOOLCHAIN

config ADK_LINUX_ARM_TOOLCHAIN
	bool "ARM BE Toolchain"
	select ADK_arm_toolchain
	select ADK_TARGET_NO_FPU
	select ADK_EABI
	select ADK_TOOLCHAIN_ONLY
	help
	  Status: toolchain only

config ADK_LINUX_ARMEL_TOOLCHAIN
	bool "ARM LE Toolchain"
	select ADK_armel_toolchain
	select ADK_TARGET_NO_FPU
	select ADK_EABI
	select ADK_TOOLCHAIN_ONLY
	help
	  Status: toolchain only

config ADK_LINUX_MIPS_TOOLCHAIN
	bool "MIPS BE Toolchain (32 Bit)"
	select ADK_mips_toolchain
	select ADK_TOOLCHAIN_ONLY
	help
	  Status: toolchain only

config ADK_LINUX_MIPSEL_TOOLCHAIN
	bool "MIPS EL Toolchain (32 Bit)"
	select ADK_mipsel_toolchain
	select ADK_TOOLCHAIN_ONLY
	help
	  Status: toolchain only

config ADK_LINUX_PPC_TOOLCHAIN
	bool "PPC Toolchain (32 Bit)"
	select ADK_ppc_toolchain
	select ADK_TOOLCHAIN_ONLY
	help
	  Status: toolchain only

config ADK_LINUX_SPARC_TOOLCHAIN
	bool "SPARC Toolchain (32 Bit)"
	select ADK_sparc_toolchain
	select ADK_TOOLCHAIN_ONLY
	help
	  Status: toolchain only

config ADK_LINUX_X86_TOOLCHAIN
	bool "X86 Toolchain (32 Bit)"
	select ADK_x86_toolchain
	select ADK_TOOLCHAIN_ONLY
	help
	  Status: toolchain only

config ADK_LINUX_X86_64_TOOLCHAIN
	bool "X86 Toolchain (64 Bit)"
	select ADK_x86_64_toolchain
	select ADK_TOOLCHAIN_ONLY
	help
	  Status: toolchain only

endchoice


#choice 
#prompt "Target Optimization"
#depends on ADK_LINUX_ARMEL_TOOLCHAIN || ADK_LINUX_ARM_TOOLCHAIN
#
#config ADK_LINUX_ARM_V5TE
#	bool "armv5te"
#	help
#
#config ADK_LINUX_ARM_V4T
#	bool "armv4t"
#	help
#
#endchoice

#config ADK_TARGET_ARCH_OPTIMIZATION
#	string
#	default "armv5te" if ADK_LINUX_ARM_V5TE
#	default "armv4t" if ADK_LINUX_ARM_V4T

choice
prompt "Architecture"
depends on ADK_LINUX_QEMU

config ADK_LINUX_ARM_QEMU
	bool "arm"
	select ADK_arm_qemu
	select ADK_EABI
	select ADK_KERNEL_INPUT_KEYBOARD
	select ADK_KERNEL_CRC32
	help
	 Qemu support for ARM architecture.
	 Right now this is optimized for Zaurus PDA spitz. 
	 Status: development

config ADK_LINUX_MIPS_QEMU
	bool "mips (big endian)"
	select ADK_mips_qemu
	help
	 Qemu support for MIPS BE architecture.
	 Status: stable

config ADK_LINUX_MIPSEL_QEMU
	bool "mipsel (little endian)"
	select ADK_mipsel_qemu
	help
	 Qemu support for MIPS LE architecture.
	 Status: stable

config ADK_LINUX_MIPS64_QEMU
	bool "mips64 (big endian)"
	select ADK_mips64_qemu
	select ADK_LINUX_64
	depends on ADK_BROKEN
	help
	 Qemu support for MIPS64 BE architecture.
	 Status: development

config ADK_LINUX_MIPS64EL_QEMU
	bool "mips64 (little endian)"
	select ADK_mips64el_qemu
	select ADK_LINUX_64
	depends on ADK_BROKEN
	help
	 Qemu support for MIPS64 LE architecture.
	 Status: development

config ADK_LINUX_CRIS_QEMU
	bool "cris"
	select ADK_cris_qemu
	depends on ADK_BROKEN
	help
	 Qemu support for CRISv32 architecture.

config ADK_LINUX_X86_QEMU
	bool "x86"
	select ADK_x86_qemu
	select ADK_KERNEL_NETDEV_1000
	select ADK_KPACKAGE_KMOD_E1000
	select ADK_KERNEL_INPUT_KEYBOARD
	select ADK_KERNEL_SCSI
	select ADK_KERNEL_ATA
	select ADK_KERNEL_BLK_DEV_SD
	select ADK_KERNEL_CRC32
	select ADK_TARGET_WITH_VGA
	help
	 Qemu support for x86 architecture.
	 Status: stable

config ADK_LINUX_X86_64_QEMU
	bool "x86_64"
	select ADK_x86_64_qemu
	select ADK_LINUX_64
	select ADK_KERNEL_NETDEV_1000
	select ADK_KPACKAGE_KMOD_E1000
	select ADK_KERNEL_INPUT_KEYBOARD
	select ADK_KERNEL_SCSI
	select ADK_KERNEL_ATA
	select ADK_KERNEL_BLK_DEV_SD
	select ADK_TARGET_WITH_VGA
	help
	 Qemu support for x86_64 architecture.
	 Status: stable

endchoice

choice
prompt "Alix/Wrap model"
default ADK_LINUX_X86_ALIX1C
depends on ADK_LINUX_ALIX

config ADK_LINUX_X86_ALIX1C
	bool "PC Engines Alix1C"
	select ADK_alix1c
	select ADK_KERNEL_USB
	select ADK_KERNEL_NLS
	select ADK_KERNEL_SCSI
	select ADK_KERNEL_ATA
	select ADK_KERNEL_BLK_DEV_SD
	select ADK_KERNEL_EXT2_FS
	select ADK_KERNEL_NET_PCI
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_NET_ETHERNET
	select ADK_KERNEL_MII
	select BUSYBOX_HWCLOCK
	select ADK_TARGET_WITH_USB
	select ADK_TARGET_WITH_VGA
	select ADK_TARGET_WITH_MINIPCI
	select ADK_TARGET_WITH_INPUT
	help
	  Support for ALIX1C boards.
	  http://www.pcengines.ch/
	  Status: stable

config ADK_LINUX_X86_ALIX2D
	bool "PC Engines Alix2D"
	select ADK_alix2d
	select ADK_KERNEL_USB
	select ADK_KERNEL_NLS
	select ADK_KERNEL_SCSI
	select ADK_KERNEL_ATA
	select ADK_KERNEL_BLK_DEV_SD
	select ADK_KERNEL_EXT2_FS
	select ADK_KERNEL_NET_PCI
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_NET_ETHERNET
	select ADK_KERNEL_MII
	select BUSYBOX_HWCLOCK
	select ADK_TARGET_WITH_USB
	select ADK_TARGET_WITH_MINIPCI
	select ADK_TARGET_WITH_LEDS
	select ADK_TARGET_WITH_WATCHDOG
	help
	  Support for ALIX2D boards.
	  http://www.pcengines.ch/
	  Status: stable

config ADK_LINUX_X86_ALIX2D13
	bool "PC Engines Alix2D13"
	select ADK_alix2d13
	select ADK_KERNEL_USB
	select ADK_KERNEL_NLS
	select ADK_KERNEL_SCSI
	select ADK_KERNEL_ATA
	select ADK_KERNEL_BLK_DEV_SD
	select ADK_KERNEL_EXT2_FS
	select ADK_KERNEL_NET_PCI
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_NEW_LEDS
	select ADK_KERNEL_NET_ETHERNET
	select ADK_KERNEL_MII
	select BUSYBOX_HWCLOCK
	select ADK_TARGET_WITH_USB
	select ADK_TARGET_WITH_MINIPCI
	select ADK_TARGET_WITH_LEDS
	help
	  Support for ALIX2D13 boards.
	  http://www.pcengines.ch/
	  Status: stable

config ADK_LINUX_X86_WRAP
	bool "PC Engines WRAP"
	select ADK_wrap
	select ADK_KERNEL_SCSI
	select ADK_KERNEL_ATA
	select ADK_KERNEL_BLK_DEV_SD
	select ADK_KERNEL_EXT2_FS
	select ADK_KERNEL_NET_PCI
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_NET_ETHERNET
	select ADK_KERNEL_MII
	select ADK_KERNEL_CRC32
	select ADK_TARGET_WITH_WATCHDOG
	select BUSYBOX_HWCLOCK
	help
	  End of life, but I still have one board.
	  http://www.pcengines.ch/
	  Status: stable

endchoice

choice
prompt "Routerboard model"
default ADK_LINUX_MIPS_RB532
depends on ADK_LINUX_MIKROTIK

config ADK_LINUX_MIPS_RB4XX
	bool "Mikrotik Routerboard 411/433"
	select ADK_rb4xx
	select ADK_KERNEL_MISC_FILESYSTEMS
	select ADK_KERNEL_YAFFS_FS
	select ADK_KERNEL_YAFFS_YAFFS2
	select ADK_KERNEL_YAFFS_AUTO_YAFFS2
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_NET_PCI
	select ADK_KERNEL_NETDEV_1000
	select ADK_KERNEL_NET_ETHERNET
	select ADK_TARGET_WITH_MINIPCI
	select ADK_TARGET_WITH_WATCHDOG
	help
	 Support for Mikrotik RB411/RB433.
	 Status: stable

config ADK_LINUX_MIPS_RB532
	bool "Mikrotik Routerboard 532"
	select ADK_rb532
	select ADK_KERNEL_MISC_FILESYSTEMS
	select ADK_KERNEL_YAFFS_FS
	select ADK_KERNEL_YAFFS_YAFFS2
	select ADK_KERNEL_YAFFS_AUTO_YAFFS2
	select ADK_KERNEL_NETDEVICES
	select ADK_KERNEL_NET_PCI
	select ADK_KERNEL_NET_ETHERNET
	select ADK_KERNEL_MII
	select ADK_KERNEL_ATA
	select ADK_KERNEL_BLK_DEV_SD
	select ADK_KERNEL_SCSI
	select ADK_KERNEL_EXT2_FS
	select ADK_TARGET_WITH_MINIPCI
	select ADK_TARGET_WITH_WATCHDOG
	help
	 Support for Mikrotik RB532.
	 Status: stable

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"
	# broken, because of 16kB pagesize
	depends on !ADK_LINUX_MIPS64_LEMOTE
	select ADK_uclibc
	help
 	 http://uclibc.org

config ADK_TARGET_LIB_EGLIBC
	bool "Embedded GNU C library"
	select ADK_eglibc
	depends on ADK_LINUX_QEMU || \
		ADK_LINUX_X86_IBMX40 || \
		ADK_LINUX_X86_ALIX1C || \
		ADK_LINUX_X86_ALIX2D || \
		ADK_LINUX_X86_ALIX2D13 || \
		ADK_LINUX_X86_WRAP || \
		ADK_LINUX_MIPS_RB4XX || \
		ADK_LINUX_MIPS_RB532 || \
		ADK_LINUX_X86_64_SHUTTLE || \
		ADK_LINUX_MIPS64_LEMOTE || \
		ADK_LINUX_RESCUE || \
		ADK_LINUX_TOOLCHAIN 
	help
	 http://www.eglibc.org

config ADK_TARGET_LIB_GLIBC
	bool "GNU C library"
	select ADK_glibc
	depends on ADK_LINUX_QEMU || \
		ADK_LINUX_X86_IBMX40 || \
		ADK_LINUX_X86_ALIX1C || \
		ADK_LINUX_X86_ALIX2D || \
		ADK_LINUX_X86_ALIX2D13 || \
		ADK_LINUX_X86_WRAP || \
		ADK_LINUX_MIPS_RB532 || \
		ADK_LINUX_MIPS_RB4XX || \
		ADK_LINUX_X86_64_SHUTTLE || \
		ADK_LINUX_RESCUE || \
		ADK_LINUX_MIPS64_LEMOTE || \
		ADK_LINUX_TOOLCHAIN 
	help
	 http://www.gnu.org/libc

endchoice

config ADK_TARGET_SUFFIX
	string
	default "gnueabi" if (ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_EGLIBC) && ADK_EABI
	default "gnu" if (ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_EGLIBC) && !ADK_EABI
	default "uclibcgnueabi" if ADK_TARGET_LIB_UCLIBC && ADK_EABI
	default "uclibc" if ADK_TARGET_LIB_UCLIBC && !ADK_EABI

choice
prompt "Target Firmware type"
	depends on !ADK_TOOLCHAIN_ONLY
	default ADK_TARGET_ROOTFS_ARCHIVE

config ADK_TARGET_ROOTFS_INITRAMFS
	bool "initramfs filesystem"
	depends on \
		ADK_LINUX_QEMU || \
		ADK_LINUX_X86_64_SHUTTLE || \
		ADK_LINUX_NATIVE || \
		ADK_LINUX_MIPS64_LEMOTE || \
		ADK_LINUX_RESCUE
	select ADK_KERNEL_BLK_DEV_INITRD
	help
	  create an read-only initramfs system.

config ADK_TARGET_ROOTFS_INITRAMFS_PIGGYBACK
	bool "initramfs filesystem included into kernel image"
	select ADK_LINUX_INITRAMFS_BUILTIN
	depends on \
		ADK_LINUX_QEMU || \
		ADK_LINUX_X86_IBMX40 || \
		ADK_LINUX_X86_64_SHUTTLE || \
		ADK_LINUX_NATIVE || \
		ADK_LINUX_MIPS64_LEMOTE || \
		ADK_LINUX_RESCUE
	help
	  create an read-only initramfs system.

config ADK_TARGET_ROOTFS_SQUASHFS
	bool "Compressed read-only root filesystem (squashfs)"
	select ADK_KERNEL_SQUASHFS
	depends on \
		ADK_LINUX_CRIS_FOXBOARD || \
		ADK_LINUX_MIPS_AG241 || \
		ADK_LINUX_MIPS_WAG54G
	help
	  highly compressed read-only filesystem for flash.

config ADK_TARGET_ROOTFS_YAFFS
	bool "YAFFS2 rootfilesystem (NAND)"
	select ADK_KERNEL_MISC_FILESYSTEMS
	select ADK_KERNEL_YAFFS_FS
	select ADK_KERNEL_YAFFS_YAFFS2
	depends on \
		ADK_LINUX_MIPS_RB532 || \
		ADK_LINUX_MIPS_RB4XX
	help
	  Root filesystem on NAND.

config ADK_TARGET_ROOTFS_NFSROOT
	bool "NFS root"
	depends on \
		ADK_LINUX_CRIS_FOXBOARD || \
		ADK_LINUX_ARM_FOXG20 || \
		ADK_LINUX_X86_ALIX1C || \
		ADK_LINUX_X86_ALIX2D || \
		ADK_LINUX_X86_ALIX2D13 || \
		ADK_LINUX_X86_WRAP || \
		ADK_LINUX_MIPS_BRCM || \
		ADK_LINUX_MIPS_RB532 || \
		ADK_LINUX_MIPS_RB4XX || \
		ADK_LINUX_MIPS_WAG54G || \
		ADK_LINUX_MIPS_AG241 || \
		ADK_LINUX_MIPS64_LEMOTE
	select ADK_KERNEL_SUNRPC
	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_USB
	bool "root on USB stick"
	select ADK_KERNEL_SCSI
	select ADK_KERNEL_ATA
	select ADK_KERNEL_BLK_DEV_SD
	select ADK_KERNEL_USB
	select ADK_KERNEL_USB_EHCI_HCD
	select ADK_KERNEL_USB_UHCI_HCD
	select ADK_KERNEL_USB_STORAGE
	select ADK_KERNEL_EXT2_FS
	depends on ADK_LINUX_X86_IBMX40
	help
	  Boot target from USB stick.

config ADK_TARGET_ROOTFS_EXT2_BLOCK
	bool "read-write filesystem for block devices with ext2"
	depends on \
		ADK_LINUX_X86_ALIX1C || \
		ADK_LINUX_X86_ALIX2D || \
		ADK_LINUX_X86_ALIX2D13 || \
		ADK_LINUX_X86_WRAP || \
		ADK_LINUX_ARM_FOXG20 || \
		ADK_LINUX_MIPS_RB532
	select ADK_KERNEL_EXT2_FS
	select ADK_KERNEL_SCSI
	help
	  Use this option if you have a compact flash or mmc/sd card 
	  reader inside your hardware and want to boot from it.

config ADK_TARGET_ROOTFS_ARCHIVE
	bool "Archive usable for different filesystems"
	depends on \
		ADK_LINUX_QEMU || \
		ADK_LINUX_XSCALE_ZAURUS || \
		ADK_LINUX_X86_IBMX40 || \
		ADK_LINUX_MIPS64_LEMOTE || \
		ADK_LINUX_X86_64_SHUTTLE
	help
	  Use this option if your root filesystem is ext2/ext3/ext4/xfs.

config ADK_TARGET_ROOTFS_ENCRYPTED
	bool "Encrypted read-write root filesystem"
	depends on ADK_LINUX_MIPS64_LEMOTE || \
		ADK_LINUX_X86_IBMX40
	select ADK_LINUX_INITRAMFS_BUILTIN
	select ADK_PACKAGE_CRYPTINIT
	select ADK_KERNEL_BLK_DEV_DM
	select ADK_KERNEL_DM_CRYPT
	select ADK_KERNEL_CRYPTO_AES
	select ADK_KERNEL_CRYPTO_CBC
	select ADK_KERNEL_CRYPTO_SHA256
	select ADK_KERNEL_XFS_FS
	help
	  Use this option if you want an encrypted rootfs.
	  Default is XFS filesystem. Use following commands to setup 
	  your hard disk, after booting via NFS or USB.
	  Create at least three partitions with fdisk
	  /dev/sda1 (ext2)
          /dev/sda2 (encrypted root)
          /dev/sda3 (swap)

	  mkdir /mnt/{boot,root}
	  cryptsetup luksFormat /dev/sda2 
	  cryptsetup luksOpen /dev/sda2 root
	  cryptsetup luksFormat /dev/sda3
	  cryptsetup luksOpen /dev/sda3 swap
	  mkswap /dev/mapper/swap
          mkfs.xfs /dev/mapper/root
          mount /dev/mapper/root /mnt/root
          tar xzvf lemote-mips-encryptedroot.tar.gz -C /mnt/root
          mount /dev/sda1 /mnt/boot
	  mkdir /mnt/boot/boot
	  cp lemote-mips-kernel /mnt/boot/boot
	  mv /mnt/root/boot/boot.cfg /mnt/boot/boot
	  cd /mnt/root ; mknod -m 644 console c 5 1

endchoice

choice
prompt "Compression method for initramfs and kernel"
	depends on ADK_TARGET_ROOTFS_INITRAMFS || ADK_TARGET_ROOTFS_INITRAMFS_PIGGYBACK
	
config ADK_TARGET_INITRAMFS_COMPRESSION_LZMA
	boolean
	prompt "lzma"
	select ADK_KERNEL_RD_LZMA
	select ADK_KERNEL_KERNEL_LZMA
	help
	  Select LZMA compression.

config ADK_TARGET_INITRAMFS_COMPRESSION_GZIP
	boolean
	prompt "gzip"
	select ADK_KERNEL_RD_GZIP
	select ADK_KERNEL_KERNEL_GZIP
	help
	  Select gzip compression.

config ADK_TARGET_INITRAMFS_COMPRESSION_BZIP2
	boolean
	prompt "bzip2"
	select ADK_KERNEL_RD_BZIP2
	select ADK_KERNEL_KERNEL_BZIP2
	help
	  Select BZIP2 compression.

config ADK_TARGET_INITRAMFS_COMPRESSION_LZO
	boolean
	prompt "lzo"
	select ADK_KERNEL_RD_LZO
	select ADK_KERNEL_KERNEL_LZO
	help
	  Select LZO compression.

endchoice

choice
prompt "Compression method for Kernel"
	depends on !(ADK_TARGET_ROOTFS_INITRAMFS || ADK_TARGET_ROOTFS_INITRAMFS_PIGGYBACK || ADK_TOOLCHAIN_ONLY || ADK_LINUX_ARM_FOXG20 || ADK_LINUX_ARM_QEMU )
	
config ADK_TARGET_KERNEL_COMPRESSION_LZMA
	boolean
	prompt "lzma"
	select ADK_KERNEL_KERNEL_LZMA
	help
	  Select LZMA compression for Kernel.

config ADK_TARGET_KERNEL_COMPRESSION_GZIP
	boolean
	prompt "gzip"
	select ADK_KERNEL_KERNEL_GZIP
	help
	  Select gzip compression for Kernel.

config ADK_TARGET_KERNEL_COMPRESSION_BZIP2
	boolean
	prompt "bzip2"
	select ADK_KERNEL_KERNEL_BZIP2
	help
	  Select BZIP2 compression for Kernel.

config ADK_TARGET_KERNEL_COMPRESSION_LZO
	boolean
	prompt "lzo"
	select ADK_KERNEL_KERNEL_LZO
	help
	  Select LZO compression for Kernel.

endchoice

config ADK_COMPRESSION_TOOL
	string
	default "gzip -n9" if ADK_TARGET_INITRAMFS_COMPRESSION_GZIP
	default "bzip2" if ADK_TARGET_INITRAMFS_COMPRESSION_BZIP2
	default "lzma -9" if ADK_TARGET_INITRAMFS_COMPRESSION_LZMA
	default "lzop" if ADK_TARGET_INITRAMFS_COMPRESSION_LZO
	help

choice
prompt "Root filesystem type"
	depends on ADK_TARGET_ROOTFS_ARCHIVE
	default ADK_TARGET_ROOT_XFS

config ADK_TARGET_ROOT_XFS
	boolean
	prompt "XFS filesystem"
	select ADK_KERNEL_XFS_FS
	help
	  Compile XFS filesystem into kernel and use it as root filesystem.

config ADK_TARGET_ROOT_EXT2
	boolean
	prompt "EXT2 filesystem"
	select ADK_KERNEL_EXT2_FS
	help
	  Compile EXT2 filesystem into kernel and use it as root filesystem.

config ADK_TARGET_ROOT_EXT3
	boolean
	prompt "EXT3 filesystem"
	select ADK_KERNEL_EXT3_FS
	help
	  Compile EXT3 filesystem into kernel and use it as root filesystem.

config ADK_TARGET_ROOT_EXT4
	boolean
	prompt "EXT4 filesystem"
	select ADK_KERNEL_EXT4_FS
	help
	  Compile EXT4 filesystem into kernel and use it as root filesystem.

endchoice

config ADK_TARGET_ROOTFS
	string
	default "xfs" if ADK_TARGET_ROOT_XFS
	default "ext2" if ADK_TARGET_ROOT_EXT2
	default "ext3" if ADK_TARGET_ROOT_EXT3
	default "ext4" if ADK_TARGET_ROOT_EXT4
	help

config ADK_PACKAGE_SUFFIX
	string
	default "ipk" if ADK_TARGET_PACKAGE_IPKG
	default "tar.gz" if ADK_TARGET_PACKAGE_TGZ
#	default "rpm" if ADK_TARGET_PACKAGE_RPM
	help

choice
prompt "Package backend format"
	default ADK_TARGET_PACKAGE_TGZ

config ADK_TARGET_PACKAGE_IPKG
	boolean
	prompt "ipkg package format"
	select BUSYBOX_IPKG
	help
	  Create ipkg packages and use ipkg package management on
          the target.

config ADK_TARGET_PACKAGE_TGZ
	boolean
	prompt "tar archive (no package manager)"
	help
	  Create compressed tar archives of packages.
	  Pre- and post install scripts will be executed in the target
	  directory. There will be no package manager installed onto the target.
	  

#config ADK_TARGET_PACKAGE_RPM
#	boolean
#	prompt "rpm package format"
#	help
#	  Create rpm packages and use rpm package management on the
#         target. WARNING: NOT YET IMPLEMENTED

endchoice
endmenu
