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