# 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_CMDLINE
	string
	default "fbcon=rotate:1" if ADK_TARGET_SYSTEM_SHARP_ZAURUS
	default "geodewdt.nowayout=1" if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
	default ""

choice
prompt "Firmware type"
depends on !ADK_TARGET_TOOLCHAIN
default ADK_TARGET_ROOTFS_ARCHIVE

config ADK_TARGET_ROOTFS_INITRAMFS
	boolean "initramfs filesystem"
	depends on \
		ADK_TARGET_QEMU || \
		ADK_TARGET_ARCH_M68K || \
		ADK_TARGET_ARCH_ARM || \
		ADK_TARGET_ARCH_MICROBLAZE || \
		ADK_TARGET_ARCH_MIPS || \
		ADK_TARGET_ARCH_PPC || \
		ADK_TARGET_ARCH_SPARC || \
		ADK_TARGET_ARCH_X86 || \
		ADK_TARGET_ARCH_X86_64
	depends on !ADK_TARGET_VBOX
	depends on !ADK_TARGET_SYSTEM_MIKROTIK_RB532
	select ADK_KERNEL_BLK_DEV_INITRD
	help
	  create an read-only initramfs system.

config ADK_TARGET_ROOTFS_INITRAMFSPIGGYBACK
	boolean "initramfs filesystem included into kernel image"
	select ADK_TARGET_ARCH_INITRAMFS_BUILTIN
	depends on \
		ADK_TARGET_QEMU || \
		ADK_TARGET_ARCH_AARCH64 || \
		ADK_TARGET_ARCH_ARM || \
		ADK_TARGET_ARCH_M68K || \
		ADK_TARGET_ARCH_MICROBLAZE || \
		ADK_TARGET_ARCH_MIPS || \
		ADK_TARGET_ARCH_PPC || \
		ADK_TARGET_ARCH_SPARC || \
		ADK_TARGET_ARCH_X86 || \
		ADK_TARGET_ARCH_X86_64
	depends on !ADK_TARGET_VBOX
	depends on !ADK_TARGET_SYSTEM_MIKROTIK_RB532
	help
	  create an read-only initramfs system.

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

config ADK_TARGET_ROOTFS_JFFS2
	boolean "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_TARGET_QEMU
	depends on ADK_TARGET_WITH_MTD || ADK_TARGET_SYSTEM_QEMU_MICROBLAZE
	help
	  compressed read-write filesystem for MTD flash systems.

config ADK_TARGET_ROOTFS_YAFFS
	boolean "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
	boolean "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_TARGET_QEMU && \
	           !ADK_TARGET_VBOX && \
		   !ADK_TARGET_SYSTEM_ARANYM_M68K && \
		   !ADK_TARGET_SYSTEM_ARM_FM
	help
	  Root filesystem mounted via NFS. (DHCP)

config ADK_TARGET_ROOTFS_USB
	boolean "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_PACKAGE_ADKINSTALL
	depends on ADK_TARGET_WITH_USB_BOOT
	help
	  Boot system from USB stick. 

config ADK_TARGET_ROOTFS_ISO
	boolean "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_TARGET_QEMU
	depends on ADK_HOST_LINUX
	depends on ADK_TARGET_ARCH_X86
	help
	  Use this option to create a bootable ISO image.

config ADK_TARGET_ROOTFS_INITRAMFSARCHIVE
	boolean "Archive usable for initramfs creation"
	depends on !ADK_TARGET_SYSTEM_MIKROTIK_RB532
	select ADK_KERNEL_BLK_DEV_INITRD
	help
	  Use this option if your planning to create a initramfs,
	  useful for adk-test-framework.

config ADK_TARGET_ROOTFS_ARCHIVE
	boolean "Archive usable for different filesystems"
	select ADK_HOST_NEED_GENEXT2FS if ADK_TARGET_QEMU || ADK_TARGET_VBOX
	select ADK_KERNEL_EXT2_FS if ADK_TARGET_QEMU || ADK_TARGET_VBOX
	select ADK_TARGET_QEMU_WITH_BLOCK if ADK_TARGET_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_ROOTFS_USB && !ADK_TARGET_SYSTEM_RASPBERRY_PI && !ADK_TARGET_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 "ipk" if ADK_TARGET_PACKAGE_OPKG
	default "tar.xz" if ADK_TARGET_PACKAGE_TXZ
	help

choice
prompt "Package format"
default ADK_TARGET_PACKAGE_TXZ

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.

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_OPKG
	boolean
	prompt "opkg"
	select ADK_PACKAGE_OPKG
	help
	  Create opkg packages and use opkg package management on the target.
	  
endchoice

choice
prompt "GPU memory size"
depends on ADK_TARGET_SYSTEM_RASPBERRY_PI || ADK_TARGET_SYSTEM_RASPBERRY_PI2
default ADK_TARGET_GPU_MEM_128 if ADK_PACKAGE_KODI

config ADK_TARGET_GPU_MEM_16
	prompt "16"
	boolean
	help
	  use minimal 16 MB.

config ADK_TARGET_GPU_MEM_64
	prompt "64"
	boolean
	help
	  use 64 MB.

config ADK_TARGET_GPU_MEM_128
	prompt "128"
	boolean
	help
	  use 128 MB.

config ADK_TARGET_GPU_MEM_256
	prompt "256"
	boolean
	help
	  use 256 MB.

endchoice

config ADK_TARGET_GPU_MEM
	int
	default 16 if ADK_TARGET_GPU_MEM_16
	default 64 if ADK_TARGET_GPU_MEM_64
	default 128 if ADK_TARGET_GPU_MEM_128
	default 256 if ADK_TARGET_GPU_MEM_256
	depends on ADK_TARGET_SYSTEM_RASPBERRY_PI || ADK_TARGET_SYSTEM_RASPBERRY_PI2