config BR2_PACKAGE_DIRECTFB
	bool "directfb"
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_INSTALL_LIBSTDCPP
	select BR2_PACKAGE_FREETYPE
	select BR2_PACKAGE_ZLIB
	help
	  http://www.directfb.org/

if BR2_PACKAGE_DIRECTFB

config BR2_PACKAGE_DIRECTFB_MULTI
	bool "directfb multi application"
	select BR2_PACKAGE_LINUX_FUSION
	depends on BR2_LINUX_KERNEL
	help
	  Enable use of multiple concurrent DirectFB applications

comment "directfb multi application needs a Linux kernel to be built"
	depends on !BR2_LINUX_KERNEL

config BR2_PACKAGE_DIRECTFB_DEBUG
	bool "directfb debugging"
	help
	  Compile DirectFB with lots of debug output

config BR2_PACKAGE_DIRECTFB_TRACE
	bool "directfb call trace support"
	help
	  Enable call tracing for DirectFB applications

config BR2_PACKAGE_DIRECTFB_XSERVER
	bool "build with X server backend"
	depends on BR2_PACKAGE_XORG7

config BR2_PACKAGE_DIRECTFB_UNIQUE
	bool "enable unique window manager"
	depends on BR2_UNIMPLEMENTED

config BR2_PACKAGE_DIRECTFB_ATI128
	bool "compile ati128 graphics driver"
	depends on BR2_i386 || BR2_x86_64

config BR2_PACKAGE_DIRECTFB_CLE266
	bool "compile cle266 graphics driver"
	default y
	depends on BR2_i386 || BR2_x86_64

config BR2_PACKAGE_DIRECTFB_MATROX
	bool "compile matrox graphics driver"
	depends on BR2_i386 || BR2_x86_64

config BR2_PACKAGE_DIRECTFB_PXA3XX
	bool "compile pxa3xx graphics driver"
	depends on BR2_arm
	help
	  The Marvell PXA3xx Processor Family is a system-on-chip based
	  on XScale® microarchitecture. This option enables the graphic
	  driver support for the PXA3xx processor family.

	  http://www.marvell.com/application-processors/pxa-family/

config BR2_PACKAGE_DIRECTFB_EP9X
	bool "compile ep9x graphics driver"
	depends on BR2_arm
	help
	  Enable the graphic driver support for the EP93xx ARMv9 based
	  processors from Cirrus Logic.

	  http://cirrus.com/en/products/arm9.html

config BR2_PACKAGE_DIRECTFB_UNICHROME
	bool "compile unichrome graphics driver"
	default y
	depends on BR2_i386 || BR2_x86_64

config BR2_PACKAGE_DIRECTFB_I830
	bool "compile i830 graphics driver"
	depends on BR2_i386 || BR2_x86_64

config BR2_PACKAGE_DIRECTFB_LINUXINPUT
	bool "compile /dev/input/eventX input driver"
	default y

config BR2_PACKAGE_DIRECTFB_KEYBOARD
	bool "compile keyboard input driver"
	default y

config BR2_PACKAGE_DIRECTFB_PS2MOUSE
	bool "compile PS2 mouse input driver"
	default y

config BR2_PACKAGE_DIRECTFB_SERIALMOUSE
	bool "compile serial mouse input driver"
	default y

config BR2_PACKAGE_DIRECTFB_TSLIB
	bool "enable touchscreen support"
	depends on !BR2_PREFER_STATIC_LIB # tslib
	default y
	select BR2_PACKAGE_TSLIB

comment "touchscreen support needs a toolchain w/ dynamic library"
	depends on BR2_PREFER_STATIC_LIB

config BR2_PACKAGE_DIRECTFB_GIF
	bool "enable GIF support"
	default y

config BR2_PACKAGE_DIRECTFB_IMLIB2
	bool "enable IMLIB2 support"
	select BR2_PACKAGE_IMLIB2

config BR2_PACKAGE_DIRECTFB_JPEG
	bool "enable JPEG support"
	default y
	select BR2_PACKAGE_JPEG

config BR2_PACKAGE_DIRECTFB_PNG
	bool "enable PNG support"
	default y
	select BR2_PACKAGE_LIBPNG

config BR2_PACKAGE_DIRECTFB_DITHER_RGB16
	bool "enable advanced dithering of RGB16 surfaces"
	help
	  Enable dithering when loading images to RGB16 surfaces.
	  This increases the data section by 64 KBytes.

config BR2_PACKAGE_DIRECTFB_TESTS
	bool "build directfb tests"

endif # BR2_PACKAGE_DIRECTFB

comment "directfb needs a toolchain w/ C++, threads"
	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
