config BR2_PACKAGE_DIRECTFB
	bool "directfb"
	depends on !BR2_RISCV_32
	depends on !BR2_STATIC_LIBS # static link issues
	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
	depends on BR2_INSTALL_LIBSTDCPP
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
	depends on !BR2_TOOLCHAIN_USES_MUSL # sigval_t issue
	depends on BR2_TOOLCHAIN_HAS_SYNC_4
	select BR2_PACKAGE_FREETYPE
	select BR2_PACKAGE_ZLIB
	help
	  DirectFB (Direct Frame Buffer) is a set of graphics APIs
	  implemented on top of the Linux Frame Buffer (fbdev)
	  abstraction layer. It is an alternative to X11 with a smaller
	  memory footprint that still has an integrated windowing
	  system. As of 4 October 2015, DirectFB's website
	  http://www.directfb.org/ is down. See alternative site listed
	  below.

	  http://elinux.org/DirectFB

if BR2_PACKAGE_DIRECTFB

config BR2_PACKAGE_DIRECTFB_MULTI
	bool "directfb multi application"
	depends on BR2_USE_MMU # madvise()
	depends on BR2_LINUX_KERNEL
	select BR2_PACKAGE_LINUX_FUSION
	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_SUPPORT
	bool "directfb debugging support"
	default y
	help
	  Compile DirectFB with debugging support. It provides
	  functions to print debug information, for DirectFB as well as
	  external DirectFB drivers.

	  When disabled, DirectFB does not print any debug information.
	  The drivers will be installed to and loaded from
	  /usr/lib/directfb-<version>-pure instead of
	  /usr/lib/directfb-<version>.

config BR2_PACKAGE_DIRECTFB_DEBUG
	bool "directfb debugging"
	depends on BR2_PACKAGE_DIRECTFB_DEBUG_SUPPORT
	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_DIVINE
	bool "divine"
	help
	  Enable the DiVine feature (virtual input)

config BR2_PACKAGE_DIRECTFB_SAWMAN
	bool "sawman"
	help
	  Enable the SawMan feature (window manager)

config BR2_PACKAGE_DIRECTFB_ATI128
	bool "compile ati128 graphics driver"
	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_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"
	default y
	select BR2_PACKAGE_TSLIB

config BR2_PACKAGE_DIRECTFB_GIF
	bool "enable GIF support"
	default y

config BR2_PACKAGE_DIRECTFB_TIFF
	bool "enable TIFF support"
	select BR2_PACKAGE_TIFF

config BR2_PACKAGE_DIRECTFB_IMLIB2
	bool "enable IMLIB2 support"
	depends on !BR2_STATIC_LIBS
	select BR2_PACKAGE_IMLIB2

comment "imlib2 support needs a toolchain w/ dynamic library"
	depends on BR2_STATIC_LIBS

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_SVG
	bool "enable SVG support"
	default y
	select BR2_PACKAGE_LIBSVG_CAIRO

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 glibc or uClibc toolchain w/ C++, NPTL, gcc >= 4.5, dynamic library"
	depends on !BR2_RISCV_32
	depends on BR2_TOOLCHAIN_HAS_SYNC_4
	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_INSTALL_LIBSTDCPP || \
		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 || BR2_TOOLCHAIN_USES_MUSL || \
		BR2_STATIC_LIBS
