diff --git a/package/efl/Config.in b/package/efl/Config.in index 7ce5a36cbe..3a5e708932 100644 --- a/package/efl/Config.in +++ b/package/efl/Config.in @@ -1,8 +1,13 @@ menuconfig BR2_PACKAGE_EFL bool "Enlightenment Foundation Libraries" - depends on BR2_USE_WCHAR - # libeina uses madvise(). To revisit when bumping EFL to 1.8 + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_PACKAGE_HAS_UDEV # libudev + depends on BR2_PACKAGE_LUA # lua 5.1 or better + depends on BR2_TOOLCHAIN_HAS_THREADS # untested without threads depends on BR2_USE_MMU + depends on BR2_USE_WCHAR # use wchar_t + depends on !BR2_STATIC_LIBS # dlfcn.h + select BR2_PACKAGE_LIBEFL help Enlightenment Foundation Libraries @@ -13,6 +18,7 @@ if BR2_PACKAGE_EFL source "package/efl/libeina/Config.in" source "package/efl/libecore/Config.in" source "package/efl/libeet/Config.in" +source "package/efl/libefl/Config.in" source "package/efl/libefreet/Config.in" source "package/efl/libeio/Config.in" source "package/efl/libevas/Config.in" @@ -24,5 +30,11 @@ source "package/efl/libedbus/Config.in" endif # BR2_PACKAGE_EFL -comment "EFL needs a toolchain w/ wchar" - depends on !BR2_USE_WCHAR +comment "EFL needs udev /dev management and a toolchain w/ C++, dynamic library, threads, wchar" + depends on !BR2_PACKAGE_HAS_UDEV || !BR2_INSTALL_LIBSTDCPP \ + || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR + depends on BR2_USE_MMU + +comment "EFL needs lua" + depends on !BR2_PACKAGE_LUA + depends on BR2_USE_MMU diff --git a/package/efl/libefl/Config.in b/package/efl/libefl/Config.in new file mode 100644 index 0000000000..6788bb3690 --- /dev/null +++ b/package/efl/libefl/Config.in @@ -0,0 +1,139 @@ +config BR2_PACKAGE_LIBEFL + bool "libefl" + select BR2_PACKAGE_DBUS + select BR2_PACKAGE_FREETYPE + select BR2_PACKAGE_JPEG # Emile needs libjpeg + select BR2_PACKAGE_LIBCURL # Ecore_con_url, runtime dependency + select BR2_PACKAGE_UTIL_LINUX + # libblkid is part of required tools, see EFL's README. + select BR2_PACKAGE_UTIL_LINUX_LIBBLKID + help + Enlightenment Foundation Libraries + + https://enlightenment.org + +if BR2_PACKAGE_LIBEFL + +config BR2_PACKAGE_LIBEFL_BULLET + bool "Enable bullet support (recommended)" + select BR2_PACKAGE_BULLET + default y + help + If you have chosen to disable physics support, this disables + lots of core functionality and is effectively never + tested. You are going to find features that suddenly don't + work and as a result cause a series of breakages. This is + simply not tested so you are on your own in terms of + ensuring everything works if you do this. + +config BR2_PACKAGE_LIBEFL_FONTCONFIG + bool "Enable fontconfig support (recommended)" + select BR2_PACKAGE_FONTCONFIG + default y + help + If fontconfig is disabled, this is going to make general + font searching not work, and only some very direct 'load + /path/file.ttf' will work alongside some old-school ttf file + path searching. This is very likely not what you want, so + highly reconsider turning fontconfig off. Having it off will + lead to visual problems like missing text in many UI areas + etc... + +config BR2_PACKAGE_LIBEFL_GSTREAMER1 + bool "Enable gstreamer1 support (recommended)" + select BR2_PACKAGE_GSTREAMER1 + select BR2_PACKAGE_GST1_PLUGINS_BASE + default y + help + If Gstreamer 1.x support is disabled, it will heavily limit + your media support options and render some functionality as + useless, leading to visible application bugs. + +config BR2_PACKAGE_LIBEFL_LIBFRIBIDI + bool "Enable libfribidi support (recommended)" + select BR2_PACKAGE_LIBFRIBIDI + default y + help + Fribidi is used for handling right-to-left text (like + Arabic, Hebrew, Farsi, Persian etc.) and is very likely not + a feature you want to disable unless you know for absolute + certain you will never encounter and have to display such + scripts. Also note that we don't test with fribidi disabled + so you may also trigger code paths with bugs that are never + normally used. + +config BR2_PACKAGE_LIBEFL_LIBSNDFILE + bool "Enable libsndfile support (recommended)" + select BR2_PACKAGE_LIBSNDFILE + default y + help + If you disabled audio support in Ecore, this is not tested + and may create bugs for you due to it creating untested code + paths. Reconsider disabling audio. + +config BR2_PACKAGE_LIBEFL_PULSEAUDIO + bool "Enable pulseaudio support (recommended)" + depends on BR2_ARCH_HAS_ATOMICS # pulseaudio + select BR2_PACKAGE_PULSEAUDIO + default y + help + The only audio output method supported by Ecore right now is + via Pulseaudio. You have disabled that and likely have + broken a whole bunch of things in the process. Reconsider + your configure options. + + NOTE: multisense support is automatically enabled with + pulseaudio. + +config BR2_PACKAGE_LIBEFL_UTIL_LINUX_LIBMOUNT + bool "Enable libmount support (recommended)" + select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT + default y + help + Libmount is used heavily inside Eeze for support of removable + devices etc... and disabling this will hurt support for + Enlightenment and its filemanager. + +config BR2_PACKAGE_LIBEFL_HAS_RECOMMENDED_CONFIG + bool + default y if BR2_PACKAGE_LIBEFL_BULLET && \ + BR2_PACKAGE_LIBEFL_FONTCONFIG && \ + BR2_PACKAGE_LIBEFL_GSTREAMER1 && \ + BR2_PACKAGE_LIBEFL_LIBFRIBIDI && \ + BR2_PACKAGE_LIBEFL_LIBSNDFILE && \ + BR2_PACKAGE_LIBEFL_PULSEAUDIO && \ + BR2_PACKAGE_LIBEFL_UTIL_LINUX_LIBMOUNT + + +comment "Warning: one of the recommended option for EFL is not enabled" + depends on !BR2_PACKAGE_LIBEFL_HAS_RECOMMENDED_CONFIG + +comment "libevas loaders" + +config BR2_PACKAGE_LIBEFL_PNG + bool "libevas png loader" + select BR2_PACKAGE_LIBPNG + help + This enables the loader code that loads png files using + libpng. + +config BR2_PACKAGE_LIBEFL_JPEG + bool "libevas jpeg loader" + help + This enables the loader code that loads jpeg files using + libjpeg. + +config BR2_PACKAGE_LIBEFL_GIF + bool "libevas gif loader" + select BR2_PACKAGE_GIFLIB + help + This enables the loader code that loads gif files using + libungif. + +config BR2_PACKAGE_LIBEFL_TIFF + bool "libevas tiff loader" + select BR2_PACKAGE_TIFF + help + This enables the loader code that loads tiff files. + +endif # BR2_PACKAGE_LIBEFL diff --git a/package/efl/libefl/libefl.mk b/package/efl/libefl/libefl.mk index d0701319f3..615968ea4c 100644 --- a/package/efl/libefl/libefl.mk +++ b/package/efl/libefl/libefl.mk @@ -18,6 +18,156 @@ LIBEFL_LICENSE_FILES = \ licenses/COPYING.LGPL \ licenses/COPYING.SMALL +LIBEFL_INSTALL_STAGING = YES + +LIBEFL_DEPENDENCIES = host-pkgconf host-libefl dbus freetype jpeg lua udev \ + util-linux zlib + +# regenerate the configure script: +# https://phab.enlightenment.org/T2718 +LIBEFL_AUTORECONF = YES +LIBEFL_GETTEXTIZE = YES + +# Configure options: +# --disable-cxx-bindings: disable C++11 bindings. +# --disable-fb: disable frame buffer support. +# --disable-harfbuzz: disable harfbuzz support. +# --disable-image-loader-jp2k: disable JPEG 2000 support. +# --disable-image-loader-webp: disable webp support. +# --disable-sdl: disable sdl2 support. +# --disable-systemd: disable systemd support. +# --disable-wayland: disable wayland support. +# --enable-lua-old: disable Elua and remove luajit dependency. +# --with-opengl=none: disable opengl support. +# --with-x11=none: remove dependency on X.org. +LIBEFL_CONF_OPTS = \ + --with-edje-cc=$(HOST_DIR)/usr/bin/edje_cc \ + --with-eolian-gen=$(HOST_DIR)/usr/bin/eolian_gen \ + --disable-cxx-bindings \ + --disable-fb \ + --disable-harfbuzz \ + --disable-image-loader-jp2k \ + --disable-image-loader-webp \ + --disable-sdl \ + --disable-systemd \ + --disable-wayland \ + --enable-lua-old \ + --with-opengl=none \ + --with-x11=none + +# Disable untested configuration warning. +ifeq ($(BR2_PACKAGE_LIBEFL_HAS_RECOMMENDED_CONFIG),) +LIBEFL_CONF_OPTS += --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-aba +endif + +ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT),y) +LIBEFL_DEPENDENCIES += util-linux +LIBEFL_CONF_OPTS += --enable-libmount +else +LIBEFL_CONF_OPTS += --disable-libmount +endif + +ifeq ($(BR2_PACKAGE_FONTCONFIG),y) +LIBEFL_CONF_OPTS += --enable-fontconfig +LIBEFL_DEPENDENCIES += fontconfig +else +LIBEFL_CONF_OPTS += --disable-fontconfig +endif + +ifeq ($(BR2_PACKAGE_LIBFRIBIDI),y) +LIBEFL_CONF_OPTS += --enable-fribidi +LIBEFL_DEPENDENCIES += libfribidi +else +LIBEFL_CONF_OPTS += --disable-fribidi +endif + +ifeq ($(BR2_PACKAGE_GSTREAMER1)$(BR2_PACKAGE_GST1_PLUGINS_BASE),yy) +LIBEFL_CONF_OPTS += --enable-gstreamer1 +LIBEFL_DEPENDENCIES += gstreamer1 gst1-plugins-base +else +LIBEFL_CONF_OPTS += --disable-gstreamer1 +endif + +ifeq ($(BR2_PACKAGE_BULLET),y) +LIBEFL_CONF_OPTS += --enable-physics +LIBEFL_DEPENDENCIES += bullet +else +LIBEFL_CONF_OPTS += --disable-physics +endif + +ifeq ($(BR2_PACKAGE_LIBSNDFILE),y) +LIBEFL_CONF_OPTS += --enable-audio +LIBEFL_DEPENDENCIES += libsndfile +else +LIBEFL_CONF_OPTS += --disable-audio +endif + +ifeq ($(BR2_PACKAGE_PULSEAUDIO),y) +LIBEFL_CONF_OPTS += --enable-pulseaudio +LIBEFL_DEPENDENCIES += pulseaudio +else +LIBEFL_CONF_OPTS += --disable-pulseaudio +endif + +ifeq ($(BR2_PACKAGE_TSLIB),y) +LIBEFL_DEPENDENCIES += tslib +LIBEFL_CONF_OPTS += --enable-tslib +else +LIBEFL_CONF_OPTS += --disable-tslib +endif + +ifeq ($(BR2_PACKAGE_LIBGLIB2),y) +LIBEFL_DEPENDENCIES += libglib2 +LIBEFL_CONF_OPTS += --with-glib=yes +else +LIBEFL_CONF_OPTS += --with-glib=no +endif + +# Prefer openssl (the default) over gnutls. +ifeq ($(BR2_PACKAGE_OPENSSL),y) +LIBEFL_DEPENDENCIES += openssl +LIBEFL_CONF_OPTS += --with-crypto=openssl +else ifeq ($(BR2_PACKAGE_GNUTLS)$(BR2_PACKAGE_LIBGCRYPT),yy) +LIBEFL_DEPENDENCIES += gnutls libgcrypt +LIBEFL_CONF_OPTS += --with-crypto=gnutls \ + --with-libgcrypt-prefix=$(STAGING_DIR)/usr +else +LIBEFL_CONF_OPTS += --with-crypto=none +endif # BR2_PACKAGE_OPENSSL + +# Loaders that need external dependencies needs to be --enable-XXX=yes +# otherwise the default is '=static'. +# All other loaders are statically built-in +ifeq ($(BR2_PACKAGE_LIBEFL_PNG),y) +LIBEFL_CONF_OPTS += --enable-image-loader-png=yes +LIBEFL_DEPENDENCIES += libpng +else +LIBEFL_CONF_OPTS += --disable-image-loader-png +endif + +ifeq ($(BR2_PACKAGE_LIBEFL_JPEG),y) +LIBEFL_CONF_OPTS += --enable-image-loader-jpeg=yes +# libefl already depends on jpeg. +else +LIBEFL_CONF_OPTS += --disable-image-loader-jpeg +endif + +ifeq ($(BR2_PACKAGE_LIBEFL_GIF),y) +LIBEFL_CONF_OPTS += --enable-image-loader-gif=yes +LIBEFL_DEPENDENCIES += giflib +else +LIBEFL_CONF_OPTS += --disable-image-loader-gif +endif + +ifeq ($(BR2_PACKAGE_LIBEFL_TIFF),y) +LIBEFL_CONF_OPTS += --enable-image-loader-tiff=yes +LIBEFL_DEPENDENCIES += tiff +else +LIBEFL_CONF_OPTS += --disable-image-loader-tiff +endif + +$(eval $(autotools-package)) + ################################################################################ # # host-libefl