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


config ADK_TARGET_KERNEL_VMLINUZ
	boolean

config ADK_TARGET_KERNEL_ZIMAGE
	boolean

config ADK_TARGET_KERNEL_LINUXBIN
	boolean

config ADK_TARGET_KERNEL_IMAGE
	boolean

config ADK_TARGET_KERNEL_UIMAGE
	boolean

config ADK_TARGET_KERNEL_BZIMAGE
	boolean

config ADK_TARGET_KERNEL
	string
	default "uImage" if ADK_TARGET_KERNEL_UIMAGE
	default "zImage" if ADK_TARGET_KERNEL_ZIMAGE
	default "Image" if ADK_TARGET_KERNEL_IMAGE
	default "linux.bin" if ADK_TARGET_KERNEL_LINUXBIN
	default "vmlinuz" if ADK_TARGET_KERNEL_VMLINUZ
	default "bzImage" if ADK_TARGET_KERNEL_BZIMAGE
	default "vmlinux"

config ADK_big
	boolean

config ADK_little
	boolean

config ADK_soft_float
	boolean

config ADK_hard_float
	boolean

config ADK_fpu_neon
	boolean

config ADK_fpu_vfp
	boolean

config ADK_TARGET_FLOAT
	string
	default "hard" if ADK_hard_float
	default "soft" if ADK_soft_float

config ADK_TARGET_FPU
	string
	default "vfp" if ADK_fpu_vfp
	default "neon" if ADK_fpu_neon

config ADK_TARGET_ENDIAN
	string
	default "little" if ADK_little
	default "big" if ADK_big

config ADK_JFFS2_OPTS
	string
	default "-l" if ADK_little
	default "-b" if ADK_big

config ADK_TOOLCHAIN
	boolean

source "target/config/Config.in.arch"
source "target/config/Config.in.system"
source "target/config/Config.in.hardware"
source "target/config/Config.in.qemu"

config ADK_LINUX_MIPS64
	boolean
	default y if ADK_LINUX_MIPS && ADK_LINUX_64

choice
prompt "Toolchain options"
depends on ADK_TOOLCHAIN
config ADK_TOOLCHAIN_ONLY
	boolean "Only build toolchain and selected packages"

config ADK_TOOLCHAIN_ARCHIVE
	boolean "Build a complete system usable f.e. via chroot"

endchoice

config ADK_32
	boolean

config ADK_64
	boolean

config ADK_x32
	boolean

config ADK_o32
	boolean

config ADK_n32
	boolean

config ADK_n64
	boolean

config ADK_eabi
	boolean

config ADK_eabihf
	boolean

config ADK_TARGET_ABI
	string
	default "n32" if ADK_n32
	default "n64" if ADK_n64
	default "32" if ADK_32
	default "x32" if ADK_x32
	default "eabi" if ADK_eabi
	default "eabihf" if ADK_eabihf

config ADK_TARGET_MIPS_ABI
	depends on ADK_LINUX_MIPS
	string
	default "32" if ADK_o32
	default "n32" if ADK_n32
	default "64" if ADK_n64

choice
prompt "Target ABI"
depends on ADK_LINUX_64 && ADK_LINUX_MIPS && !ADK_TOOLCHAIN && !ADK_HARDWARE_QEMU

config ADK_TARGET_ABI_N32
	boolean "N32 ABI (new)"
	select ADK_n32

config ADK_TARGET_ABI_O32
	boolean "O32 ABI (old)"
	select ADK_o32

config ADK_TARGET_ABI_N64
	boolean "N64 ABI"
	select ADK_n64

endchoice

choice
prompt "Target ABI"
depends on ADK_LINUX_64 && ADK_LINUX_X86_64 && !ADK_TOOLCHAIN && !ADK_HARDWARE_QEMU

config ADK_TARGET_ABI_64
	boolean "64 Bit ABI"
	select ADK_64

config ADK_TARGET_ABI_X32
	boolean "x32 ABI (new)"
	select ADK_x32

config ADK_TARGET_ABI_32
	boolean "32 Bit ABI"
	select ADK_32

endchoice

config ADK_TARGET_LIBC_PATH
	string
	default "lib" if ADK_32
	default "lib32" if ADK_n32
	default "libx32" if ADK_x32
	default "lib64" if ADK_n64 \
				|| ADK_64 \
				|| ADK_LINUX_SPARC64 \
				|| ADK_LINUX_PPC64 \
				|| ADK_LINUX_X86_64
	default "lib"

config ADK_TARGET_KERNEL_MINICONFIG
	string
	default "arm-fm" if ADK_TARGET_SYSTEM_ARM_FM
	default "qemu-microblaze-s3adsp1800" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800
	default "qemu-microblaze-ml605" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605
	default "qemu-arm-versatilepb" if ADK_TARGET_QEMU_ARM_MODEL_VERSATILEPB
	default "qemu-arm-vexpress-a9" if ADK_TARGET_QEMU_ARM_MODEL_VEXPRESS_A9
	default "qemu-arm-spitz" if ADK_TARGET_QEMU_ARM_MODEL_SPITZ
	default "qemu-mips" if ADK_TARGET_SYSTEM_QEMU_MIPS
	default "qemu-mipsel" if ADK_TARGET_SYSTEM_QEMU_MIPSEL
	default "qemu-mips64" if ADK_TARGET_SYSTEM_QEMU_MIPS64 || ADK_TARGET_SYSTEM_QEMU_MIPS64N32 || ADK_TARGET_SYSTEM_QEMU_MIPS64N64
	default "qemu-mips64el" if ADK_TARGET_SYSTEM_QEMU_MIPS64EL || ADK_TARGET_SYSTEM_QEMU_MIPS64ELN32 || ADK_TARGET_SYSTEM_QEMU_MIPS64ELN64
	default "qemu-ppc" if ADK_TARGET_SYSTEM_QEMU_PPC
	default "qemu-ppc64" if ADK_TARGET_SYSTEM_QEMU_PPC64
	default "qemu-sh" if ADK_TARGET_SYSTEM_QEMU_SH4
	default "qemu-sh" if ADK_TARGET_SYSTEM_QEMU_SH4EB
	default "qemu-sparc" if ADK_TARGET_SYSTEM_QEMU_SPARC
	default "qemu-sparc64" if ADK_TARGET_SYSTEM_QEMU_SPARC64
	default "qemu-x86" if ADK_TARGET_SYSTEM_QEMU_I686 || ADK_TARGET_SYSTEM_QEMU_I486
	default "qemu-x86_64" if ADK_TARGET_SYSTEM_QEMU_X86_64 || ADK_TARGET_SYSTEM_QEMU_X86_64_32 || ADK_TARGET_SYSTEM_QEMU_X86_64_X32
	default "aranym-m68k" if ADK_TARGET_SYSTEM_ARANYM_M68K
	default "ibm-x40" if ADK_TARGET_SYSTEM_IBM_X40
	default "cubox-i" if ADK_TARGET_SYSTEM_CUBOX_I
	default "raspberry-pi" if ADK_TARGET_SYSTEM_RASPBERRY_PI
	default "sharp-zaurus" if ADK_TARGET_SYSTEM_SHARP_ZAURUS
	default "lemote-yeelong" if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
	default "generic-pc" if ADK_TARGET_SYSTEM_GENERIC_PC

choice
prompt "Cubox-i model"
depends on ADK_TARGET_SYSTEM_CUBOX_I

config ADK_TARGET_CUBOX_I4PRO
	boolean "Solidrun Cubox-i4Pro"

config ADK_TARGET_CUBOX_I2ULTRA
	boolean "Solidrun Cubox-i2Ultra"

config ADK_TARGET_CUBOX_I2
	boolean "Solidrun Cubox-i2"

config ADK_TARGET_CUBOX_I1
	boolean "Solidrun Cubox-i1"

endchoice

# global symbols
config ADK_TARGET_KERNEL_64
	boolean

config ADK_TOOLCHAIN_ONLY
	boolean

config ADK_LINUX_64
	boolean

config ADK_HARDWARE_QEMU
	boolean

config ADK_HARDWARE_VBOX
	boolean

# the inverse of ADK_TARGET_KERNEL_CUSTOMISING,
# allows for selecting it off (i.e., to disable it)
config ADK_TARGET_FIXED_KERNEL
	bool
	default n

config ADK_TARGET_KERNEL_CUSTOMISING
	bool
	default y
	depends on !ADK_TARGET_FIXED_KERNEL

# cpu features
config ADK_TARGET_CPU_WITH_VT
	boolean

config ADK_TARGET_CPU_WITH_MTRR
	boolean

config ADK_TARGET_CPU_WITH_MMX
	boolean

config ADK_TARGET_CPU_WITH_MMXEXT
	boolean

config ADK_TARGET_CPU_WITH_SSE
	boolean

config ADK_TARGET_CPU_WITH_SSE2
	boolean

config ADK_TARGET_CPU_WITH_SSE3
	boolean

config ADK_TARGET_CPU_WITH_SSSE3
	boolean

config ADK_TARGET_CPU_WITH_IWMMXT
	boolean

# hyper threading
config ADK_TARGET_CPU_WITH_HT
	boolean

config ADK_TARGET_CPU_WITH_3DNOW
	boolean

config ADK_TARGET_CPU_WITH_3DNOWEXT
	boolean

# cpu configuration
config ADK_CPU_SH4
	boolean

config ADK_CPU_SPARC_V8
	boolean

config ADK_CPU_SPARC_V9
	boolean

config ADK_CPU_I486
	boolean

config ADK_CPU_I586
	boolean

config ADK_CPU_I686
	boolean

config ADK_CPU_X86_64
	boolean

config ADK_CPU_GEODE
	boolean

config ADK_CPU_PPC
	boolean

config ADK_CPU_PPC64
	boolean

config ADK_CPU_PENTIUM_M
	boolean

config ADK_CPU_ATOM
	boolean

config ADK_CPU_AMDFAM10
	select ADK_TARGET_CPU_WITH_VT
	boolean

config ADK_CPU_LOONGSON2F
	boolean

config ADK_CPU_XSCALE
	boolean

config ADK_CPU_M68K
	boolean

config ADK_CPU_MIPS32
	boolean

config ADK_CPU_MIPS64
	boolean

config ADK_CPU_MICROBLAZE
	boolean

config ADK_CPU_ARM926EJ_S
	boolean

config ADK_CPU_ARM1176JZF_S
	boolean

config ADK_CPU_CORTEX_A9
	boolean

config ADK_CPU_ARMV8
	boolean

config ADK_TARGET_CPU_ARCH
	string
	default "x86_64" if ADK_CPU_X86_64
	default "x86_64" if ADK_CPU_AMDFAM10
	default "i486" if ADK_CPU_I486
	default "i586" if ADK_CPU_I586
	default "i686" if ADK_CPU_I686
	default "i586" if ADK_CPU_GEODE
	default "i686" if ADK_CPU_PENTIUM_M
	default "i686" if ADK_CPU_ATOM
	default "m68k" if ADK_LINUX_M68K
	default "microblaze" if ADK_LINUX_MICROBLAZE && ADK_big
	default "microblazeel" if ADK_LINUX_MICROBLAZE && ADK_little
	default "mips64" if ADK_LINUX_MIPS && ADK_big && ADK_LINUX_64
	default "mips64el" if ADK_LINUX_MIPS && ADK_little && ADK_LINUX_64
	default "mips" if ADK_LINUX_MIPS && ADK_big
	default "mipsel" if ADK_LINUX_MIPS && ADK_little
	default "aarch64" if ADK_LINUX_AARCH64 && ADK_little
	default "arm" if ADK_LINUX_ARM && ADK_little
	default "sparc" if ADK_LINUX_SPARC
	default "sparc64" if ADK_LINUX_SPARC64
	default "sh4" if ADK_LINUX_SH && ADK_little
	default "sh4eb" if ADK_LINUX_SH && ADK_big
	default "ppc" if ADK_CPU_PPC
	default "ppc64" if ADK_CPU_PPC64
	default "mips64el" if ADK_native && ADK_lemote_yeelong

config ADK_TARGET_ABI_CFLAGS
	string
	default "-mabi=32" if ADK_o32
	default "-mabi=n32" if ADK_n32
	default "-mabi=64" if ADK_n64
	default "-m32" if ADK_32
	default "-mx32" if ADK_x32
	default "-m64" if ADK_64

config ADK_TARGET_CFLAGS
	string
	default "-m4 -ml" if ADK_CPU_SH4 && ADK_little
	default "-m4 -mb" if ADK_CPU_SH4 && ADK_big
	default "-march=geode" if ADK_CPU_GEODE
	default "-march=i486" if ADK_CPU_I486
	default "-march=i586" if ADK_CPU_I586
	default "-march=i686" if ADK_CPU_I686
	default "-march=pentium-m" if ADK_CPU_PENTIUM_M
	default "-march=atom" if ADK_CPU_ATOM
	default "-march=amdfam10" if ADK_CPU_AMDFAM10
	default "-mcpu=v8" if ADK_CPU_SPARC_V8
	default "-m64 -mcpu=ultrasparc" if ADK_CPU_SPARC_V9
	default "-march=loongson2f -Wa,-mfix-loongson2f-nop" if ADK_CPU_LOONGSON2F
	default "-march=mips32" if ADK_CPU_MIPS32
	default "-march=mips64" if ADK_CPU_MIPS64
	default "-march=armv8-a" if ADK_CPU_ARMV8
	default "-march=armv5te -mtune=iwmmxt" if ADK_CPU_XSCALE
	default "-march=armv5te -mtune=arm926ej-s -mfloat-abi=soft" if ADK_CPU_ARM926EJ_S && ADK_soft_float
	default "-march=armv5te -mtune=arm926ej-s -mfloat-abi=hard" if ADK_CPU_ARM926EJ_S && ADK_hard_float
	default "-march=armv6 -mtune=arm1176jzf-s -mfloat-abi=soft" if ADK_CPU_ARM1176JZF_S && ADK_soft_float
	default "-march=armv6 -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard" if ADK_CPU_ARM1176JZF_S && ADK_hard_float
	default "-march=armv7-a -mtune=cortex-a9 -mfloat-abi=soft" if ADK_CPU_CORTEX_A9 && ADK_soft_float
	default "-march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=hard" if ADK_CPU_CORTEX_A9 && ADK_hard_float

config ADK_TARGET_CMDLINE
	string
	default "dwc_otg.fiq_split_enable=1" if ADK_TARGET_SYSTEM_RASPBERRY_PI
	default "console=ttymxc0,115200 console=tty0" if ADK_TARGET_SYSTEM_CUBOX_I && ADK_RUNTIME_VERBOSE_INIT_VGA
	default "console=tty0 console=ttymxc0,115200" if ADK_TARGET_SYSTEM_CUBOX_I && ADK_RUNTIME_VERBOSE_INIT_SERIAL
	default "console=tty0" if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
	default "console=ttyS0,115200 console=tty0" if ADK_TARGET_SYSTEM_IBM_X40
	default "console=ttyS0,115200 console=tty0 fbcon=rotate:1" if ADK_TARGET_SYSTEM_SHARP_ZAURUS
	default "console=ttyS0,9600" if ADK_TARGET_SYSTEM_FON_FON2100
	default "console=ttyS0,38400" if ADK_TARGET_SYSTEM_PCENGINES_WRAP
	default "console=ttyS0,115200 console=tty0 geodewdt.nowayout=1" if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
	default "console=ttyS0,115200 console=tty0" if ADK_TARGET_SYSTEM_VBOX_I686
	default "console=tty0" if ADK_TARGET_SYSTEM_ARANYM_M68K
	default "console=ttyS0,115200" if ADK_TARGET_SYSTEM_QEMU_I686
	default "console=ttyS0,115200" if ADK_TARGET_SYSTEM_QEMU_X86_64
	default "console=ttyS0,115200" if ADK_TARGET_SYSTEM_QEMU_SPARC64
	default "console=ttyS0,9600" if ADK_TARGET_SYSTEM_QEMU_PPC
	default "console=hvc0" if ADK_TARGET_SYSTEM_QEMU_PPC64
	default "console=ttyUL0" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800
	default "console=ttyS0,115200" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605
	default "console=ttyS0,115200" if ADK_TARGET_QEMU_ARM_MODEL_SPITZ
	default "console=ttyAMA0" if ADK_TARGET_QEMU_ARM_MODEL_VERSATILEPB
	default "console=ttyAMA0" if ADK_TARGET_QEMU_ARM_MODEL_VEXPRESS_A9
	default "console=ttyAMA0" if ADK_TARGET_SYSTEM_ARM_FM
	default "console=ttySC1" if ADK_TARGET_SYSTEM_QEMU_SH4
	default "console=ttySC1" if ADK_TARGET_SYSTEM_QEMU_SH4EB
	default "console=ttyS0,115200" if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D13
	default "console=ttyS0,115200" if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D2
	default ""

# c library
config ADK_uclibc
	boolean

config ADK_glibc
	boolean

config ADK_musl
	boolean

config ADK_TARGET_LIBC
	string
	default "uclibc"  if ADK_uclibc
	default "glibc"  if ADK_glibc
	default "musl"  if ADK_musl

choice 
prompt "Target C library"
depends on !ADK_CHOOSE_TARGET_SYSTEM && !ADK_CHOOSE_TARGET_ARCH
config ADK_TARGET_LIB_UCLIBC
	prompt "uClibc embedded C library"
	boolean
	select ADK_uclibc
	depends on \
		   !ADK_LINUX_AARCH64 && \
		   !ADK_LINUX_M68K && \
		   !ADK_LINUX_MICROBLAZE && \
		   !ADK_LINUX_SPARC64 && \
		   !ADK_LINUX_PPC64 && \
		   !ADK_x32 && \
		   !ADK_32
	help
 	 http://uclibc.org

config ADK_TARGET_LIB_GLIBC
	prompt "GNU C library"
	boolean
	select ADK_glibc
	depends on \
		ADK_LINUX_AARCH64 || \
		ADK_LINUX_ARM || \
		ADK_LINUX_M68K || \
		ADK_LINUX_MICROBLAZE || \
		ADK_LINUX_MIPS || \
		ADK_LINUX_PPC || \
		ADK_LINUX_PPC64 || \
		ADK_LINUX_SH || \
		ADK_LINUX_SPARC || \
		ADK_LINUX_SPARC64 || \
		ADK_LINUX_X86 || \
		ADK_LINUX_X86_64
	help
	 http://www.gnu.org/libc

config ADK_TARGET_LIB_MUSL
	prompt "musl C library"
	boolean
	select ADK_musl
	depends on !ADK_LINUX_MIPS64
	depends on \
		ADK_LINUX_ARM || \
		ADK_LINUX_MICROBLAZE || \
		ADK_LINUX_MIPS || \
		ADK_LINUX_PPC || \
		ADK_LINUX_SH || \
		ADK_LINUX_X86 || \
		ADK_LINUX_X86_64
		
	help
 	 http://musl-libc.org

endchoice

config ADK_TARGET_SUFFIX
	string
	default "gnueabihf" if ADK_TARGET_LIB_GLIBC && ADK_eabihf
	default "gnueabi" if ADK_TARGET_LIB_GLIBC && ADK_eabi
	default "gnuabi64" if ADK_TARGET_LIB_GLIBC && ADK_n64
	default "gnuabin32" if ADK_TARGET_LIB_GLIBC && ADK_n32
	default "gnuabi32" if ADK_TARGET_LIB_GLIBC && ADK_o32
	default "gnu32" if ADK_TARGET_LIB_GLIBC && ADK_32 && ADK_LINUX_64
	default "gnux32" if ADK_TARGET_LIB_GLIBC && ADK_x32 && ADK_LINUX_64
	default "gnu" if ADK_TARGET_LIB_GLIBC
	default "uclibcgnueabihf" if ADK_TARGET_LIB_UCLIBC && ADK_eabihf
	default "uclibcgnueabi" if ADK_TARGET_LIB_UCLIBC && ADK_eabi
	default "uclibcabi64" if ADK_TARGET_LIB_UCLIBC && ADK_n64
	default "uclibcabin32" if ADK_TARGET_LIB_UCLIBC && ADK_n32
	default "uclibcabi32" if ADK_TARGET_LIB_UCLIBC && ADK_o32
	default "uclibc32" if ADK_TARGET_LIB_UCLIBC && ADK_32 && ADK_LINUX_64
	default "uclibcx32" if ADK_TARGET_LIB_UCLIBC && ADK_x32 && ADK_LINUX_64
	default "uclibc" if ADK_TARGET_LIB_UCLIBC
	default "muslgnueabihf" if ADK_TARGET_LIB_MUSL && ADK_eabihf
	default "muslgnueabi" if ADK_TARGET_LIB_MUSL && ADK_eabi
	default "muslabi64" if ADK_TARGET_LIB_MUSL && ADK_n64
	default "muslabin32" if ADK_TARGET_LIB_MUSL && ADK_n32
	default "muslabi32" if ADK_TARGET_LIB_MUSL && ADK_o32
	default "musl32" if ADK_TARGET_LIB_MUSL && ADK_32 && ADK_LINUX_64
	default "muslx32" if ADK_TARGET_LIB_MUSL && ADK_x32 && ADK_LINUX_64
	default "musl" if ADK_TARGET_LIB_MUSL

choice
prompt "Target firmware type"
depends on !ADK_CHOOSE_TARGET_SYSTEM && !ADK_CHOOSE_TARGET_ARCH && !ADK_TOOLCHAIN
default ADK_TARGET_ROOTFS_ARCHIVE

config ADK_TARGET_ROOTFS_INITRAMFS
	bool "initramfs filesystem"
	depends on \
		ADK_HARDWARE_QEMU || \
		ADK_LINUX_M68K || \
		ADK_LINUX_ARM || \
		ADK_LINUX_MICROBLAZE || \
		ADK_LINUX_MIPS || \
		ADK_LINUX_PPC || \
		ADK_LINUX_SPARC || \
		ADK_LINUX_X86 || \
		ADK_LINUX_X86_64 || \
		ADK_LINUX_NATIVE
	depends on !ADK_HARDWARE_VBOX
	depends on !ADK_TARGET_SYSTEM_RASPBERRY_PI
	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_HARDWARE_QEMU || \
		ADK_LINUX_AARCH64 || \
		ADK_LINUX_ARM || \
		ADK_LINUX_M68K || \
		ADK_LINUX_MICROBLAZE || \
		ADK_LINUX_MIPS || \
		ADK_LINUX_PPC || \
		ADK_LINUX_SPARC || \
		ADK_LINUX_X86 || \
		ADK_LINUX_X86_64
	depends on !ADK_HARDWARE_VBOX
	select ADK_KERNEL_EXT2_FS
	help
	  create an read-only initramfs system.

config ADK_TARGET_ROOTFS_SQUASHFS
	bool "Compressed read-only root filesystem (squashfs)"
	select ADK_KERNEL_SQUASHFS
	select ADK_HOST_NEED_SQUASHFS
	select ADK_HOST_NEED_QEMU if ADK_HARDWARE_QEMU
	select ADK_TARGET_QEMU_WITH_BLOCK if ADK_HARDWARE_QEMU
	depends on ADK_TARGET_WITH_MTD
	help
	  highly compressed read-only filesystem for MTD flash systems.

config ADK_TARGET_ROOTFS_JFFS2
	bool "Compressed read-write root filesystem (jffs2)"
	select ADK_KERNEL_JFFS2_FS
	select ADK_HOST_NEED_MTD_UTILS
	select ADK_TARGET_QEMU_WITH_BLOCK if ADK_HARDWARE_QEMU
	depends on ADK_TARGET_WITH_MTD
	help
	  compressed read-write filesystem for MTD flash systems.

config ADK_TARGET_ROOTFS_YAFFS
	bool "YAFFS2 root filesystem (NAND)"
	select ADK_KERNEL_MISC_FILESYSTEMS
	select ADK_KERNEL_YAFFS_FS
	select ADK_KERNEL_YAFFS_YAFFS2
	select ADK_KERNEL_YAFFS_AUTO_YAFFS2
	depends on ADK_TARGET_WITH_NAND
	help
	  Root filesystem on NAND flash with YAFFS2.

config ADK_TARGET_ROOTFS_NFSROOT
	bool "NFS root"
	select ADK_KERNEL_NETWORK_FILESYSTEMS
	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
	depends on !ADK_HARDWARE_QEMU && !ADK_HARDWARE_VBOX && !ADK_TARGET_SYSTEM_ARANYM_M68K
	depends on !ADK_TARGET_SYSTEM_RASPBERRY_PI
	depends on !ADK_TARGET_SYSTEM_ARM_FM
	help
	  Root filesystem mounted via NFS. (DHCP)

config ADK_TARGET_ROOTFS_USB
	bool "Boot from USB stick"
	select ADK_KERNEL_NLS
	select ADK_KERNEL_SCSI
	select ADK_KERNEL_BLK_DEV_SD
	select ADK_KERNEL_USB
	select ADK_KERNEL_USB_EHCI_HCD
	select ADK_KERNEL_USB_OHCI_HCD
	select ADK_KERNEL_USB_UHCI_HCD
	select ADK_KERNEL_USB_STORAGE
	select ADK_KERNEL_EXT2_FS
	depends on ADK_TARGET_WITH_USB_BOOT
	help
	  Boot system from USB stick.

config ADK_TARGET_ROOTFS_ISO
	bool "ISO image"
	select ADK_KERNEL_ISO9660_FS
	select ADK_KERNEL_JOLIET
	select ADK_KERNEL_SCSI
	select ADK_KERNEL_BLK_DEV_SR
	select ADK_HOST_NEED_CDRTOOLS
	select ADK_HOST_NEED_SYSLINUX
	select ADK_TARGET_QEMU_WITH_BLOCK if ADK_HARDWARE_QEMU
	depends on ADK_HOST_LINUX
	depends on ADK_LINUX_X86
	help
	  Use this option to create a bootable ISO image.

config ADK_TARGET_ROOTFS_INITRAMFSARCHIVE
	bool "Archive usable for initramfs creation"
	help
	  Use this option if your planning to create a initramfs,
	  useful for adk-test-framework.

config ADK_TARGET_ROOTFS_ARCHIVE
	bool "Archive usable for different filesystems"
	select ADK_HOST_NEED_GENEXT2FS if ADK_HARDWARE_QEMU
	select ADK_KERNEL_EXT2_FS if ADK_HARDWARE_QEMU
	select ADK_TARGET_QEMU_WITH_BLOCK if ADK_HARDWARE_QEMU
	help
	  Use this option if your root filesystem is ext2/ext3/ext4/xfs.

endchoice

config ADK_TARGET_ROOT_EXT4_RASPBERRY_PI
        boolean
	depends on ADK_TARGET_SYSTEM_RASPBERRY_PI && ADK_TARGET_ROOTFS_ARCHIVE
        select ADK_KERNEL_EXT4_FS
	default y
        help
          Compile EXT4 filesystem into kernel and use it as root filesystem.

choice
prompt "Root filesystem type"
depends on ADK_TARGET_ROOTFS_ARCHIVE && !ADK_TARGET_SYSTEM_RASPBERRY_PI && !ADK_HARDWARE_QEMU
default ADK_TARGET_ROOT_EXT4

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.

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.

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.xz" if ADK_TARGET_PACKAGE_TXZ
	help

choice
prompt "Target package format"
default ADK_TARGET_PACKAGE_TXZ if ADK_PKG_TEST
default ADK_TARGET_PACKAGE_IPKG
depends on !ADK_CHOOSE_TARGET_SYSTEM && !ADK_CHOOSE_TARGET_ARCH

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

config ADK_TARGET_PACKAGE_TXZ
	boolean
	prompt "xz compressed tar archive"
	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.
	  
endchoice
source "target/config/Config.in.tools"
