42725affb7dd92c76550a5bca535e98f8a8fc6e1
[profile/ivi/GUPnP-DLNA.git] / configure.ac
1 AC_PREREQ([2.63])
2 AC_INIT([gupnp-dlna],
3         [0.10.0],
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 AC_SUBST(GLIB_CFLAGS)
171 AC_SUBST(GLIB_LIBS)
172 AC_SUBST(GOBJECT_CFLAGS)
173 AC_SUBST(GOBJECT_LIBS)
174 AC_SUBST(GMODULE_CFLAGS)
175 AC_SUBST(GMODULE_LIBS)
176
177 # Check for g_clear_pointer
178 have_g_clear_pointer='no'
179 PKG_CHECK_EXISTS([glib-2.0 >= 2.34],
180                  [have_g_clear_pointer='yes'])
181 AS_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
201 AS_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
214 AC_ARG_ENABLE([debug],
215               AS_HELP_STRING([--enable-debug], [enable debugging @<:@default=no@:>@]),
216               ,
217               [enable_debug=no])
218 if test "x$enable_debug" = "xyes"; then
219         CFLAGS="$CFLAGS -g -Wall"
220 fi
221
222 GOBJECT_INTROSPECTION_CHECK([0.6.4])
223
224 # vapigen
225 AS_IF([test "x$found_introspection" = "xyes"],
226       [
227        VALA_PROG_VAPIGEN([0.18])
228       ]
229 )
230 AM_CONDITIONAL([HAVE_VAPIGEN], [test "x$VAPIGEN" != "x"])
231
232 GTK_DOC_CHECK([1.11],[--flavour no-tmpl])
233 # for fixxref
234 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
235 AC_SUBST(GLIB_PREFIX)
236
237 AC_CONFIG_FILES([
238 Makefile
239 libgupnp-dlna/Makefile
240 tools/Makefile
241 tests/Makefile
242 data/Makefile
243 gupnp-dlna-2.0.pc
244 gupnp-dlna-metadata-2.0.pc
245 gupnp-dlna-gst-2.0.pc
246 gupnp-dlna-gst-legacy-2.0.pc
247 doc/Makefile
248 doc/version.xml
249 doc/gupnp-dlna/Makefile
250 doc/gupnp-dlna-metadata/Makefile
251 doc/gupnp-dlna-gst/Makefile
252 vala/Makefile
253 ])
254 AC_CONFIG_FILES([tests/test-discoverer.sh],
255                 [chmod a+x tests/test-discoverer.sh])
256 AC_OUTPUT
257
258 echo
259 echo 'Configuration status:'
260 echo
261 echo "Default metadata backend:                $with_default_metadata_backend"
262 echo "Default metadata backend directory:      $with_default_metadata_backend_dir"
263 echo "Build GStreamer metadata backend:        $enable_gstreamer_metadata_backend"
264 echo "Build legacy GStreamer metadata backend: $enable_legacy_gstreamer_metadata_backend"
265 echo