1AC_PREREQ([2.63]) 2AC_INIT([gupnp-dlna], 3 [0.10.3], 4 [https://bugzilla.gnome.org/enter_bug.cgi?product=gupnp&component=gupnp-dlna], 5 [gupnp-dlna], 6 [http://www.gupnp.org/]) 7 8AC_CONFIG_HEADERS([config.h]) 9AC_CONFIG_SRCDIR(libgupnp-dlna/gupnp-dlna-profile.h) 10AC_CONFIG_MACRO_DIR([m4]) 11AC_CONFIG_AUX_DIR([build-aux]) 12 13AM_INIT_AUTOMAKE([1.11 tar-ustar no-dist-gzip dist-xz]) 14AM_MAINTAINER_MODE([enable]) 15 16AM_SILENT_RULES([yes]) 17 18AX_REQUIRE_DEFINED([GTK_DOC_CHECK]) 19AX_REQUIRE_DEFINED([GOBJECT_INTROSPECTION_CHECK]) 20AX_CHECK_ENABLE_DEBUG([yes]) 21 22dnl library versioning 23dnl Increase when changing the API 24GUPNP_DLNA_CURRENT=3 25 26dnl Update when changing implementation of current API, 27dnl reset to 0 when changing CURRENT. This is the revision of 28dnl current API version 29GUPNP_DLNA_REVISION=0 30 31dnl Increase if API change is ABI compatible, otherwise reset to 0 32GUPNP_DLNA_AGE=0 33 34GUPNP_DLNA_VERSION_INFO="$GUPNP_DLNA_CURRENT:$GUPNP_DLNA_REVISION:$GUPNP_DLNA_AGE" 35AC_SUBST(GUPNP_DLNA_VERSION_INFO) 36 37# Check for programs 38AC_PROG_CC 39AC_HEADER_STDC 40 41AX_IS_RELEASE([git-directory]) 42AX_COMPILER_FLAGS([WARN_CFLAGS]) 43 44# Initialize libtool 45LT_PREREQ([2.2]) 46LT_INIT([win32-dll]) 47 48PKG_CHECK_MODULES([LIBXML], [libxml-2.0 >= 2.5.0]) 49 50AM_PROG_CC_C_O 51 52AC_ARG_WITH([default-metadata-backend], 53 [AS_HELP_STRING([--with-default-metadata-backend=your_backend], 54 [set a default metadata backend @<:@default=gstreamer@:>@])]) 55 56if test "x$with_default_metadata_backend" = 'x' 57then 58 with_default_metadata_backend='gstreamer' 59fi 60 61if test "x$with_default_metadata_backend" = 'xyes' || test "x$with_default_metadata_backend" = 'xno' 62then 63 AC_MSG_WARN([Dubious default metadata backend name: $with_default_metadata_backend]) 64fi 65 66GUPNP_DLNA_METADATA_BACKEND_CFLAGS="$GUPNP_DLNA_METADATA_BACKEND_CFLAGS -DGUPNP_DLNA_DEFAULT_METADATA_BACKEND=\\\"$with_default_metadata_backend\\\"" 67 68AC_ARG_ENABLE([gstreamer-metadata-backend], 69 [AS_HELP_STRING([--enable-gstreamer-metadata-backend], 70 [build a GStreamer metadata backend @<:@default=auto@:>@])], 71 , 72 [enable_gstreamer_metadata_backend=auto]) 73 74if test "x$enable_gstreamer_metadata_backend" != 'xno' 75then 76 gstreamer_found='yes' 77 GST_MAJORMINOR=1.0 78 GST_REQ=1.0 79 GSTPBU_REQ=1.0 80 81 PKG_CHECK_MODULES([GST], 82 [gstreamer-$GST_MAJORMINOR >= $GST_REQ], 83 , 84 [gstreamer_found='no']) 85 PKG_CHECK_MODULES([GST_PBU], 86 [gstreamer-pbutils-$GST_MAJORMINOR >= $GSTPBU_REQ], 87 , 88 [gstreamer_found='no']) 89 90 if test "x$gstreamer_found" = 'xyes' 91 then 92 AC_SUBST(GST_MAJORMINOR) 93 94 GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API" 95 AC_SUBST(GST_CFLAGS) 96 enable_gstreamer_metadata_backend='yes' 97 elif test "x$enable_gstreamer_metadata_backend" = 'xyes' 98 then 99 AC_MSG_ERROR([GStreamer $GST_MAJORMINOR not found.]) 100 else 101 enable_gstreamer_metadata_backend='no' 102 fi 103fi 104 105if test "x$enable_gstreamer_metadata_backend" = 'xyes' 106then 107 AM_CONDITIONAL(GSTREAMER_METADATA_BACKEND_ENABLED, true) 108else 109 AM_CONDITIONAL(GSTREAMER_METADATA_BACKEND_ENABLED, false) 110fi 111 112AC_ARG_ENABLE([legacy-gstreamer-metadata-backend], 113 [AS_HELP_STRING([--enable-legacy-gstreamer-metadata-backend], 114 [build a GStreamer 0.10 metadata backend @<:@default=no@:>@])], 115 , 116 [enable_legacy_gstreamer_metadata_backend=no]) 117 118if test "x$enable_legacy_gstreamer_metadata_backend" != 'xno' 119then 120 gstreamer_found='yes' 121 GST_LEGACY_MAJORMINOR=0.10 122 GST_LEGACY_REQ=0.10.36 123 GSTPBU_LEGACY_REQ=0.10.36 124 125 PKG_CHECK_MODULES([GST_LEGACY], 126 [gstreamer-$GST_LEGACY_MAJORMINOR >= $GST_LEGACY_REQ], 127 , 128 [gstreamer_found='no']) 129 PKG_CHECK_MODULES([GST_PBU_LEGACY], 130 [gstreamer-pbutils-$GST_LEGACY_MAJORMINOR >= $GSTPBU_LEGACY_REQ], 131 , 132 [gstreamer_found='no']) 133 134 if test "x$gstreamer_found" = 'xyes' 135 then 136 AC_SUBST(GST_LEGACY_MAJORMINOR) 137 enable_legacy_gstreamer_metadata_backend='yes' 138 elif test "x$enable_legacy_gstreamer_metadata_backend" = 'xyes' 139 then 140 AC_MSG_ERROR([GStreamer $GST_LEGACY_MAJORMINOR not found.]) 141 else 142 enable_legacy_gstreamer_metadata_backend='no' 143 fi 144fi 145 146if test "x$enable_legacy_gstreamer_metadata_backend" = 'xyes' 147then 148 AM_CONDITIONAL(GSTREAMER_LEGACY_METADATA_BACKEND_ENABLED, true) 149else 150 AM_CONDITIONAL(GSTREAMER_LEGACY_METADATA_BACKEND_ENABLED, false) 151fi 152 153AC_ARG_WITH([default-metadata-backend-dir], 154 [AS_HELP_STRING([--with-default-metadata-backend-dir=your_directory], 155 [set a default metadata backend directory @<:@default=$libdir/$PACKAGE_NAME@:>@])]) 156 157if test "x$with_default_metadata_backend_dir" = 'x' 158then 159 with_default_metadata_backend_dir="$libdir/$PACKAGE_NAME" 160fi 161 162if test "x$with_default_metadata_backend_dir" = 'xyes' || test "x$with_default_metadata_backend_dir" = 'xno' 163then 164 AC_MSG_WARN([Dubious default metadata backend directory: $with_default_metadata_backend_dir]) 165fi 166 167AC_SUBST(METADATA_DIRECTORY, $with_default_metadata_backend_dir) 168 169GUPNP_DLNA_METADATA_BACKEND_CFLAGS="$GUPNP_DLNA_METADATA_BACKEND_CFLAGS -DGUPNP_DLNA_DEFAULT_METADATA_BACKEND_DIR=\\\"$with_default_metadata_backend_dir\\\"" 170 171AC_SUBST(GUPNP_DLNA_METADATA_BACKEND_CFLAGS) 172 173PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.32]) 174PKG_CHECK_MODULES([GOBJECT], [gobject-2.0]) 175PKG_CHECK_MODULES([GMODULE], [gmodule-2.0]) 176 177# Check for g_clear_pointer 178have_g_clear_pointer='no' 179PKG_CHECK_EXISTS([glib-2.0 >= 2.34], 180 [have_g_clear_pointer='yes']) 181AS_VAR_IF([have_g_clear_pointer], [no], 182 [AC_MSG_CHECKING([for g_clear_pointer]) 183 GUPNP_DLNA_TEMP_CFLAGS="$CFLAGS" 184 CFLAGS="$CFLAGS $GLIB_CFLAGS" 185 GUPNP_DLNA_TEMP_LIBS="$LIBS" 186 LIBS="$LIBS $GLIB_LIBS" 187 AC_LANG([C]) 188 AC_LINK_IFELSE([AC_LANG_PROGRAM([[ 189 #include <glib.h> 190 ]], 191 [[ 192 gchar *test = g_malloc (2); 193 g_clear_pointer (&test, g_free); 194 return (test == NULL) 195 ]])], 196 [have_g_clear_pointer='yes']) 197 LIBS="$GUPNP_DLNA_TEMP_LIBS" 198 CFLAGS="$GUPNP_DLNA_TEMP_CFLAGS" 199 AC_MSG_RESULT([$have_g_clear_pointer])]) 200 201AS_VAR_IF([have_g_clear_pointer], [no], 202 [AC_DEFINE([g_clear_pointer(ptr, func)], 203 [\ 204 G_STMT_START { \ 205 if (ptr != NULL && func != NULL) { \ 206 gpointer g_clear_pointer_tmp_var = *ptr; \ 207 *ptr = NULL; \ 208 func (g_clear_pointer_tmp_var); \ 209 } \ 210 } G_STMT_END], 211 [Naive g_clear_pointer implementation.])]) 212 213# Debugging 214AC_ARG_ENABLE([debug], 215 AS_HELP_STRING([--enable-debug], [enable debugging @<:@default=no@:>@]), 216 , 217 [enable_debug=no]) 218if test "x$enable_debug" = "xyes"; then 219 CFLAGS="$CFLAGS -g -Wall" 220fi 221 222GOBJECT_INTROSPECTION_CHECK([0.6.4]) 223 224# vapigen 225have_vapigen=no 226AS_IF([test "x$found_introspection" = "xyes"], 227 [ 228 dnl output of g-i >= 1.36.0 needs vapigen >= 0.20 to process 229 AC_MSG_CHECKING([whether G-I is 1.36 or newer]) 230 VAPIGEN_MIN_VERSION=0.18 231 AS_IF([pkg-config --atleast-version=1.36.0 gobject-introspection-1.0], 232 [ 233 AC_MSG_RESULT([yes]) 234 VAPIGEN_MIN_VERSION=0.20 235 ],[AC_MSG_RESULT([no])] 236 ) 237 GUPNP_PROG_VAPIGEN([$VAPIGEN_MIN_VERSION]) 238 ] 239) 240AS_IF([test "x$VAPIGEN" != "x"], [have_vapigen=yes]) 241AM_CONDITIONAL([HAVE_VAPIGEN], [test "x$VAPIGEN" != "x"]) 242 243GTK_DOC_CHECK([1.11],[--flavour no-tmpl]) 244# for fixxref 245GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`" 246AC_SUBST(GLIB_PREFIX) 247 248dnl xmllint for schema validation 249AC_PATH_PROG([XMLLINT],[xmllint]) 250AM_CONDITIONAL([HAVE_XMLLINT], [test "x$XMLLINT" != "x"]) 251 252AC_CONFIG_FILES([ 253Makefile 254libgupnp-dlna/Makefile 255tools/Makefile 256tests/Makefile 257data/Makefile 258gupnp-dlna-2.0.pc 259gupnp-dlna-metadata-2.0.pc 260gupnp-dlna-gst-2.0.pc 261gupnp-dlna-gst-legacy-2.0.pc 262doc/Makefile 263doc/version.xml 264doc/gupnp-dlna/Makefile 265doc/gupnp-dlna-metadata/Makefile 266doc/gupnp-dlna-gst/Makefile 267vala/Makefile 268]) 269AC_CONFIG_FILES([tests/test-discoverer.sh], 270 [chmod a+x tests/test-discoverer.sh]) 271AC_OUTPUT 272 273echo 274echo 'Configuration status:' 275echo 276echo "GObject-Introspection: $found_introspection" 277echo "VALA bindings: $have_vapigen" 278echo "Default metadata backend: $with_default_metadata_backend" 279echo "Default metadata backend directory: $with_default_metadata_backend_dir" 280echo "Build GStreamer metadata backend: $enable_gstreamer_metadata_backend" 281echo "Build legacy GStreamer metadata backend: $enable_legacy_gstreamer_metadata_backend" 282echo 283