kumquat-buildroot/package/directfb/Config.in
Thomas Petazzoni e64573c47f cairo, harfbuzz: rework atomic dependencies
This commit handles the reverse dependency tree of cairo in terms of
atomic dependencies. There are two main changes:

 - cairo in fact no longer needs atomic operations. It can perfectly
   build without any __sync built-in, as was tested using an ARC
   toolchain without atomics, and a SPARC toolchain. Optionally, Cairo
   can use the __atomic builtins provided by gcc >= 4.7, so support
   for this is added as well. Thanks to this change, the
   BR2_ARCH_HAS_ATOMICS dependency is removed from cairo and all its
   reverse dependencies.

 - harfbuzz does require the __sync built-in for 4 bytes integers, so
   we add a dependency on BR2_TOOLCHAIN_HAS_SYNC_4 to harfbuzz and all
   its reverse dependency, the main one being the pango package. Due
   to this, the vast majority of gtk-related packages are moved to a
   dependency on BR2_ARCH_HAS_ATOMICS (which used to be due to cairo)
   to a dependency on BR2_TOOLCHAIN_HAS_SYNC_4 (due to pango ->
   harfbuzz).

In detail:

 - cairo

   Remove BR2_ARCH_HAS_ATOMICS dependency, link against -latomic when
   gcc >= 4.8 in order to use the __atomic functions.

 - harfbuzz

   Add dependency on BR2_TOOLCHAIN_HAS_SYNC_4

 - cairomm, gst-plugins-good, gst1-plugins-good, libgdiplus,
   libsvg-cairo, weston

   Remove BR2_ARCH_HAS_ATOMICS dependency (since cairo no longer needs
   atomics)

 - enlightenment, cwiid, gst-plugins-bad, gst-plugins-base,
   gst1-plugins-bad, gst1-plugins-base, gtkmm3,
   libevas-generic-loaders, libfm, libgail, libgtk2, libgtk3, librsvg,
   openbox, opencv, opencv3, pango, pangomm, pcmanfm, pinentry,
   rrdtool, webkit, webkitgtk24, xscreensaver

   Switch from a BR2_ARCH_HAS_ATOMICS dependency to a
   BR2_TOOLCHAIN_HAS_SYNC_4 (they depend on pango, harfbuzz, gtk, or
   some other related package)

 - directfb

   Remove BR2_ARCH_ATOMICS dependency of the BR2_PACKAGE_DIRECTFB_SVG
   (since cairo can build without atomics), but add a
   BR2_TOOLCHAIN_HAS_SYNC_4 dependency on BR2_PACKAGE_DIRECTFB itself
   since it does use __sync built-ins. This replaces the !BR2_sparc
   dependency.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-02-06 11:16:00 +01:00

168 lines
4.6 KiB
Plaintext

config BR2_PACKAGE_DIRECTFB
bool "directfb"
depends on BR2_TOOLCHAIN_HAS_THREADS
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"
select BR2_PACKAGE_LINUX_FUSION
depends on BR2_USE_MMU # madvise()
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_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"
depends on !BR2_STATIC_LIBS # tslib
default y
select BR2_PACKAGE_TSLIB
comment "touchscreen support needs a toolchain w/ dynamic library"
depends on BR2_STATIC_LIBS
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"
select BR2_PACKAGE_IMLIB2
depends on !BR2_STATIC_LIBS
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 (e)glibc or uClibc toolchain w/ C++, threads, gcc >= 4.5"
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 || BR2_TOOLCHAIN_USES_MUSL