[rygel] build: Add RYGEL_CHECK_VALA macro



commit 9a73be1c8c443849377da047bf742441a1510ca4
Author: Jens Georg <mail jensge org>
Date:   Sun Feb 20 01:47:37 2011 +0100

    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)
+])



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]