kumquat-buildroot/package/directfb/Config.in
Yann E. MORIN dbd30cd5d8 package/directfb: disable for static builds
DirectFB is written in C++, but can be linked to by a C library or
program.

When doing shared link, this is fine because the linker gets help from
the DT_NEEDED flags and knows what libraries to pull in during the link.

However, during a static link, the linker does not get such help.

Properly fixing this would require that there is support in pkg-config
and autotools to specify that the C++ runtime must be linked. Alas there
is no sush support. The only option is to add -lstdc++ to the
Libs.Private field in directfb.pc. But this is not upstreamable, because
there are other C++ runtimes in the wild (e.g. -lc++ from llvm/clang).

However, DirectFB in a static scenario is probably not a very common
scenario.

Disable DirectFB for static builds.

Fixes:
    http://autobuild.buildroot.org/results/3d3/3d3036d40ddad71d872d910aae7a24975706d2e9/
    http://autobuild.buildroot.org/results/d1c/d1c35a6003396942b584f2f2a5e8bf4ac2fbe370/
    http://autobuild.buildroot.org/results/d45/d4504871bd47930e8363032d380cdfcc5bb8aee7/
    [...]

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-02-26 21:45:22 +01:00

170 lines
4.7 KiB
Plaintext

config BR2_PACKAGE_DIRECTFB
bool "directfb"
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"
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 glibc or uClibc toolchain w/ C++, NPTL, gcc >= 4.5, dynamic library"
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