From 9a73be1c8c443849377da047bf742441a1510ca4 Mon Sep 17 00:00:00 2001 From: Jens Georg Date: Sun, 20 Feb 2011 01:47:37 +0100 Subject: [PATCH] build: Add RYGEL_CHECK_VALA macro This macro deals with all of the additional checks we have --- configure.ac | 84 +++++++++++++++++------------------------------------------- m4/rygel.m4 | 48 +++++++++++++++++++++++++++++++++- 2 files changed, 70 insertions(+), 62 deletions(-) diff --git a/configure.ac b/configure.ac index f2706f0..2474392 100644 --- a/configure.ac +++ b/configure.ac @@ -51,54 +51,35 @@ PKG_CHECK_MODULES(LIBSOUP, libsoup-2.4 >= $LIBSOUP_REQUIRED) GLIB_GENMARSHAL=`pkg-config --variable=glib_genmarshal glib-2.0` AC_SUBST(GLIB_GENMARSHAL) -AC_ARG_ENABLE(vala, - AS_HELP_STRING([--enable-vala],[enable checks for vala]),, - enable_vala=no) AC_ARG_ENABLE(sql-debugging, AS_HELP_STRING([--enable-sql-debugging],[enable SQL statement debugging]),, enable_sql_debugging=no) +AS_IF([test x$enable_sql_debugging = xyes], + [RYGEL_ADD_VALAFLAGS([-D RYGEL_DEBUG_SQL])]) -if test x$enable_sql_debugging = xyes ; then - VALAFLAGS="$VALAFLAGS -D RYGEL_DEBUG_SQL" -fi - -# Enable check for Vala even if not asked to do so if stamp files are absent. -if test ! -e src/rygel/rygel_vala.stamp -o \ - ! -e src/ui/rygel_preferences_vala.stamp -o \ - ! -e src/plugins/playbin/librygel_playbin_la_vala.stamp -o \ - ! -e src/plugins/tracker/librygel_media_tracker_la_vala.stamp -o \ - ! -e src/plugins/test/librygel_test_la_vala.stamp -o \ - ! -e src/plugins/media-export/librygel_media_export_la_vala.stamp -o \ - ! -e src/plugins/mediathek/librygel_mediathek_la_vala.stamp -o \ - ! -e src/plugins/gst-launch/librygel_gst_launch_la_vala.stamp -o \ - ! -e src/plugins/mpris/librygel_mpris_la_vala.stamp -o \ - ! -e src/plugins/external/librygel_external_la_vala.stamp ; then - enable_vala=yes -fi - -# Vala -if test x$enable_vala = xyes ; then - # check for vala - AM_PROG_VALAC([$VALA_REQUIRED]) - - if test "x$VALAC" = "x"; then - AC_MSG_ERROR([Cannot find the "valac" compiler in your PATH]) - fi - - PKG_CHECK_MODULES(GUPNP_VALA, gupnp-vala-1.0 >= $GUPNP_VALA_REQUIRED) +dnl Add plugins +RYGEL_ADD_PLUGIN([test],[Test],[no]) +RYGEL_ADD_PLUGIN([tracker],[Tracker],[yes]) +RYGEL_ADD_PLUGIN([external],[MediaServer2 DBus consumer],[yes]) +RYGEL_ADD_PLUGIN([mpris],[MPRIS2 DBus consumer],[yes]) +RYGEL_ADD_PLUGIN([playbin],[GStreamer playbin],[yes]) +RYGEL_ADD_PLUGIN([mediathek],[ZDF Mediathek],[no]) +RYGEL_ADD_PLUGIN([media-export],[MediaExport],[yes]) +RYGEL_ADD_PLUGIN([gst-launch],[GStreamer launchline],[no]) - VALA_CHECK_PACKAGES([gupnp-1.0 - gupnp-av-1.0 - gupnp-dlna-1.0 - gstreamer-0.10 - gstreamer-pbutils-0.10 - gio-2.0 - gee-1.0 - posix]) -fi +dnl Explicitly add stamp files for targets that are not plugins +RYGEL_ADD_STAMP([src/rygel/rygel_vala.stamp]) +RYGEL_ADD_STAMP([src/ui/rygel_preferences_vala.stamp]) -VAPIDIR="${datadir}/vala/vapi" -AC_SUBST(VAPIDIR) +RYGEL_CHECK_VALA([$VALA_REQUIRED], + [gupnp-1.0 + gupnp-av-1.0 + gupnp-dlna-1.0 + gstreamer-0.10 + gstreamer-pbutils-0.10 + gio-2.0 + gee-1.0 + posix]) # Debugging AC_ARG_ENABLE(debug, @@ -108,13 +89,6 @@ if test "x$enable_debug" = "xyes"; then CFLAGS="$CFLAGS -O0 -g" fi -AC_ARG_ENABLE([strict-valac], - AS_HELP_STRING([--enable-strict-valac],[enable strict Vala compiler]),, - [enable_strict_valac=no]) -if test "x$enable_strict_valac" = "xyes"; then - VALAFLAGS="$VALAFLAGS --fatal-warnings" -fi - # Strict compiler AC_ARG_ENABLE(strict-cc, AS_HELP_STRING([--enable-strict-cc],[enable strict C compiler]),, @@ -170,16 +144,6 @@ fi AC_SUBST(HAVE_GTK) AM_CONDITIONAL(BUILD_UI, test x$BUILD_UI = xyes) -# Build test plugin -RYGEL_ADD_PLUGIN([test],[Test],[no]) -RYGEL_ADD_PLUGIN([tracker],[Tracker],[yes]) -RYGEL_ADD_PLUGIN([external],[MediaServer2 DBus consumer],[yes]) -RYGEL_ADD_PLUGIN([mpris],[MPRIS2 DBus consumer],[yes]) -RYGEL_ADD_PLUGIN([playbin],[GStreamer playbin],[yes]) -RYGEL_ADD_PLUGIN([mediathek],[ZDF Mediathek],[no]) -RYGEL_ADD_PLUGIN([media-export],[MediaExport],[yes]) -RYGEL_ADD_PLUGIN([gst-launch],[GStreamer launchline],[no]) - AC_SUBST(abs_top_builddir) AM_CONDITIONAL([UNINSTALLED], [test "x$enable_uninstalled" = "xyes"]) @@ -205,8 +169,6 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], AM_GLIB_GNU_GETTEXT IT_PROG_INTLTOOL([0.40.0]) -AC_SUBST(VALAFLAGS) - dnl Shave the output AM_SILENT_RULES([yes]) diff --git a/m4/rygel.m4 b/m4/rygel.m4 index 6d40c57..346ff12 100644 --- a/m4/rygel.m4 +++ b/m4/rygel.m4 @@ -18,7 +18,12 @@ dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 US AC_DEFUN([RYGEL_ADD_STAMP], [ - rygel_stamp_files="$rygel_stamp_files $1" + rygel_stamp_files="$rygel_stamp_files $srcdir/$1" +]) + +AC_DEFUN([RYGEL_ADD_VALAFLAGS], +[ + VALAFLAGS="${VALAFLAGS:+$VALAFLAGS }$1" ]) # _RYGEL_ADD_PLUGIN_INTERNAL(NAME-OF-PLUGIN, @@ -51,3 +56,44 @@ AC_DEFUN([RYGEL_ADD_PLUGIN], [$2], [$3]) ]) + +AC_DEFUN([RYGEL_CHECK_VALA], +[AC_REQUIRE([AM_PROG_VALAC])[]dnl + AC_ARG_ENABLE([vala], + [AS_HELP_STRING([--enable-vala],[enable checks for vala])],, + [enable_vala=no]) + AC_ARG_ENABLE([strict-valac], + [AS_HELP_STRING([--enable-strict-valac],[enable strict Vala compiler])],, + [enable_strict_valac=no]) + AS_IF([test "x$enable_strict_valac" = "xyes"], + [RYGEL_ADD_VALAFLAGS([--fatal-warnings])]) + AC_SUBST([VALAFLAGS]) + + dnl Enable check for Vala even if not asked to do so if stamp files are absent. + for stamp in $rygel_stamp_files + do + AS_IF([test ! -e "$stamp"], + [AC_MSG_WARN([Missing stamp file $[]stamp. Forcing vala mode]) + enable_vala=yes + ]) + done + + dnl Vala + AS_IF([test x$enable_vala = xyes], + [dnl check for vala + AM_PROG_VALAC([$1]) + + AS_IF([test x$VALAC = "x"], + [AC_MSG_ERROR([Cannot find the "valac" compiler in your PATH])], + [ + PKG_CHECK_MODULES(GUPNP_VALA, gupnp-vala-1.0 >= $GUPNP_VALA_REQUIRED) + + VALA_CHECK_PACKAGES([$2]) + ]) + ], + [] + ) + + VAPIDIR="${datadir}/vala/vapi" + AC_SUBST(VAPIDIR) +]) -- 2.7.4