diff --git a/configure.ac b/configure.ac index 161a9eab8..8d0260045 100644 --- a/configure.ac +++ b/configure.ac @@ -444,6 +444,16 @@ test -n "$dbus_mount" && AC_DEFINE_UNQUOTED([HAVE_UDISKS_MOUNT], [1], [enable Ud AM_CONDITIONAL([HAVE_UDISKS_MOUNT], [test -n "$dbus_mount"]) AM_CONDITIONAL([HAVE_EEZE_MOUNT], [test -n "$eeze_mount"]) +# verify "wayland-only" early to adapt dependencies + +have_wayland_only=no +AC_ARG_ENABLE([wayland-only], + AS_HELP_STRING([--enable-wayland-only],[enable wayland-only version of enlightenment @<:@default=disabled@:>@]), + [e_cv_want_wayland_only=$enableval], + [e_cv_want_wayland_only=no]) +AC_MSG_CHECKING([whether wayland-only version is enabled]) +AC_MSG_RESULT([${e_cv_want_wayland_only}]) + # doxygen program for documentation building EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"]) @@ -523,40 +533,45 @@ PKG_CHECK_MODULES(E_SYS, [ ecore >= ${efl_version} ]) -PKG_CHECK_MODULES(E_ALERT, [ - xcb - xcb-shape - xcb-keysyms - eina >= ${efl_version} - ecore >= ${efl_version} - ecore-ipc >= ${efl_version} -]) +if test "x${e_cv_want_wayland_only}" != "xyes"; then + PKG_CHECK_MODULES(E_ALERT, [ + xcb + xcb-shape + xcb-keysyms + eina >= ${efl_version} + ecore >= ${efl_version} + ecore-ipc >= ${efl_version} + ]) +fi -PKG_CHECK_MODULES(E, [ - evas >= ${efl_version} - ecore >= ${efl_version} - ecore-x >= ${efl_version} - ecore-evas >= ${efl_version} - ecore-input >= ${efl_version} - ecore-input-evas >= ${efl_version} - ecore-con >= ${efl_version} - ecore-ipc >= ${efl_version} - ecore-file >= ${efl_version} - eet >= ${efl_version} - edje >= ${efl_version} - efreet >= ${efl_version} - efreet-mime >= ${efl_version} - efreet-trash >= ${efl_version} - eina >= ${efl_version} - eldbus >= ${efl_version} - eio >= ${efl_version} - eo >= ${efl_version} - elementary >= ${efl_version} - emotion >= ${efl_version} - $eeze_mount - $udisks_mount - $device_libs -]) +e_requires="\ + evas >= $efl_version \ + ecore >= $efl_version \ + ecore-evas >= $efl_version \ + ecore-input >= $efl_version \ + ecore-input-evas >= $efl_version \ + ecore-con >= $efl_version \ + ecore-ipc >= $efl_version \ + ecore-file >= $efl_version \ + eet >= $efl_version \ + edje >= $efl_version \ + efreet >= $efl_version \ + efreet-mime >= $efl_version \ + efreet-trash >= $efl_version \ + eina >= $efl_version \ + eldbus >= $efl_version \ + eio >= $efl_version \ + eo >= $efl_version \ + elementary >= $efl_version \ + emotion >= $efl_version \ + $eeze_mount \ + $udisks_mount \ + $device_libs" +if test "x${e_cv_want_wayland_only}" != "xyes"; then + e_requires="$e_requires ecore-x >= $efl_version" +fi + +PKG_CHECK_MODULES(E, [$e_requires]) requirements_e="\ evas >= ${efl_version} \ ecore >= ${efl_version} \ @@ -797,14 +812,6 @@ define([CHECK_MODULE_BLUEZ4], AC_SUBST([EBLUEZ4_CFLAGS]) AC_SUBST([EBLUEZ4_LIBS]) -have_wayland_only=no -AC_ARG_ENABLE([wayland-only], - AS_HELP_STRING([--enable-wayland-only],[enable wayland-only version of enlightenment @<:@default=disabled@:>@]), - [e_cv_want_wayland_only=$enableval], - [e_cv_want_wayland_only=no]) -AC_MSG_CHECKING([whether wayland-only version is enabled]) -AC_MSG_RESULT([${e_cv_want_wayland_only}]) - have_wayland_clients=no AC_ARG_ENABLE([wayland-clients], AS_HELP_STRING([--enable-wayland-clients],[enable wayland clients in composite module @<:@default=disabled@:>@]), @@ -857,11 +864,15 @@ AM_CONDITIONAL([HAVE_WAYLAND_ONLY], [test "x${have_wayland_only}" = "xyes"]) AM_CONDITIONAL([HAVE_WAYLAND_CLIENTS], [test "x${have_wayland_clients}" = "xyes"]) AM_CONDITIONAL([HAVE_WAYLAND_EGL], [test "x${have_wayland_egl}" = "xyes"]) -PKG_CHECK_MODULES([ECORE_X], [ecore-x >= ${efl_version}]) -if test -n "$ECORE_X_CFLAGS" ; then - ecore_x=true +if test "x${have_wayland_only}" != "xyes"; then + PKG_CHECK_MODULES([ECORE_X], [ecore-x >= ${efl_version}]) + if test -n "$ECORE_X_CFLAGS" ; then + ecore_x=true + else + ecore_x=false + fi else - ecore_x=false + ecore_x=false fi if test "x${ecore_x}" = "xtrue" && test -n "$WAYLAND_CFLAGS" ; then diff --git a/src/bin/Makefile.mk b/src/bin/Makefile.mk index e227076c7..8d85ba16c 100644 --- a/src/bin/Makefile.mk +++ b/src/bin/Makefile.mk @@ -30,9 +30,12 @@ internal_bin_PROGRAMS = \ src/bin/enlightenment_fm_op \ src/bin/enlightenment_sys \ src/bin/enlightenment_thumb \ -src/bin/enlightenment_alert \ src/bin/enlightenment_static_grabber +if ! HAVE_WAYLAND_ONLY +internal_bin_PROGRAMS += src/bin/enlightenment_alert +endif + if HAVE_EEZE internal_bin_PROGRAMS += src/bin/enlightenment_backlight endif @@ -210,7 +213,6 @@ enlightenment_src = \ src/bin/e_about.c \ src/bin/e_acpi.c \ src/bin/e_actions.c \ -src/bin/e_alert.c \ src/bin/e_atoms.c \ src/bin/e_auth.c \ src/bin/e_backlight.c \ @@ -364,6 +366,7 @@ $(ENLIGHTENMENTHEADERS) if ! HAVE_WAYLAND_ONLY enlightenment_src += \ src/bin/e_comp_x.c \ +src/bin/e_alert.c \ src/bin/e_randr2.c \ src/bin/e_xsettings.c endif @@ -376,13 +379,19 @@ src/bin/e_comp_wl_input.c \ src/bin/e_comp_wl.c endif -src_bin_enlightenment_CPPFLAGS = $(E_CPPFLAGS) -DEFL_BETA_API_SUPPORT -DEFL_EO_API_SUPPORT -DE_LOGGING=1 @WAYLAND_CFLAGS@ @WAYLAND_EGL_CFLAGS@ @ECORE_X_CFLAGS@ -DNEED_X=1 -DNEED_WL +src_bin_enlightenment_CPPFLAGS = $(E_CPPFLAGS) -DEFL_BETA_API_SUPPORT -DEFL_EO_API_SUPPORT -DE_LOGGING=1 @WAYLAND_CFLAGS@ @WAYLAND_EGL_CFLAGS@ -DNEED_WL +if ! HAVE_WAYLAND_ONLY +src_bin_enlightenment_CPPFLAGS += @ECORE_X_CFLAGS@ -DNEED_X=1 +endif src_bin_enlightenment_SOURCES = \ src/bin/e_main.c \ $(enlightenment_src) src_bin_enlightenment_LDFLAGS = -export-dynamic -src_bin_enlightenment_LDADD = @e_libs@ @dlopen_libs@ @cf_libs@ @VALGRIND_LIBS@ @WAYLAND_LIBS@ @WL_DRM_LIBS@ @WAYLAND_EGL_LIBS@ -lm @ECORE_X_LIBS@ @SHM_OPEN_LIBS@ +src_bin_enlightenment_LDADD = @e_libs@ @dlopen_libs@ @cf_libs@ @VALGRIND_LIBS@ @WAYLAND_LIBS@ @WL_DRM_LIBS@ @WAYLAND_EGL_LIBS@ -lm @SHM_OPEN_LIBS@ +if ! HAVE_WAYLAND_ONLY +src_bin_enlightenment_LDADD += @ECORE_X_LIBS@ +endif src_bin_enlightenment_imc_SOURCES = \ src/bin/e.h \ diff --git a/src/bin/e_main.c b/src/bin/e_main.c index 375238ffb..a185887cd 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -454,6 +454,15 @@ main(int argc, char **argv) ecore_evas_app_comp_sync_set(0); TS("Ecore_Evas Engine Check"); +#ifdef HAVE_WAYLAND_ONLY + if (!ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_WAYLAND_SHM)) + { + e_error_message_show(_("Enlightenment found ecore_evas doesn't support the Wayland SHM\n" + "rendering in Evas. Please check your installation of Evas and\n" + "Ecore and check they support the Wayland SHM rendering engine.")); + _e_main_shutdown(-1); + } +#else if (!ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_SOFTWARE_XCB)) { if (!ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_SOFTWARE_XLIB)) @@ -464,6 +473,7 @@ main(int argc, char **argv) _e_main_shutdown(-1); } } +#endif if (!ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_SOFTWARE_BUFFER)) { e_error_message_show(_("Enlightenment found ecore_evas doesn't support the Software Buffer\n" @@ -494,6 +504,7 @@ main(int argc, char **argv) TS("E Intl Init Done"); _e_main_shutdown_push(e_intl_shutdown); +#ifndef HAVE_WAYLAND_ONLY /* init white box of death alert */ TS("E_Alert Init"); if (!e_alert_init()) @@ -504,6 +515,7 @@ main(int argc, char **argv) } TS("E_Alert Init Done"); _e_main_shutdown_push(e_alert_shutdown); +#endif TS("E_Configure Init"); e_configure_init(); diff --git a/src/bin/e_signals.c b/src/bin/e_signals.c index db4568371..5abc5d737 100644 --- a/src/bin/e_signals.c +++ b/src/bin/e_signals.c @@ -71,8 +71,8 @@ e_sigseg_act(int x __UNUSED__, siginfo_t *info __UNUSED__, void *data __UNUSED__ ecore_x_keyboard_ungrab(); ecore_x_ungrab(); ecore_x_sync(); -#endif e_alert_show(); +#endif } EAPI void @@ -102,8 +102,8 @@ e_sigfpe_act(int x __UNUSED__, siginfo_t *info __UNUSED__, void *data __UNUSED__ ecore_x_keyboard_ungrab(); ecore_x_ungrab(); ecore_x_sync(); -#endif e_alert_show(); +#endif } EAPI void @@ -115,8 +115,8 @@ e_sigbus_act(int x __UNUSED__, siginfo_t *info __UNUSED__, void *data __UNUSED__ ecore_x_keyboard_ungrab(); ecore_x_ungrab(); ecore_x_sync(); -#endif e_alert_show(); +#endif } EAPI void @@ -128,6 +128,6 @@ e_sigabrt_act(int x __UNUSED__, siginfo_t *info __UNUSED__, void *data __UNUSED_ ecore_x_keyboard_ungrab(); ecore_x_ungrab(); ecore_x_sync(); -#endif e_alert_show(); +#endif }