1
AC_PREREQ(2.52)
2
3
dnl please read gstreamer/docs/random/autotools before changing this file
4
5
dnl initialize autoconf
6
dnl releases only do -Wall, git and prerelease does -Werror too
7
dnl use a three digit version number for releases, and four for git/prerelease
8
AC_INIT(GStreamer Base Plug-ins, 0.10.25,
9
    http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
10
    gst-plugins-base)
11
12
AG_GST_INIT
13
14
dnl initialize automake
15
AM_INIT_AUTOMAKE([-Wno-portability])
16
17
dnl define PACKAGE_VERSION_* variables
18
AS_VERSION
19
20
dnl check if this is a release version
21
AS_NANO(GST_GIT="no", GST_GIT="yes")
22
23
dnl can autoconf find the source ?
24
AC_CONFIG_SRCDIR([gst/audiotestsrc/gstaudiotestsrc.c])
25
26
dnl define the output header for config
27
AM_CONFIG_HEADER([config.h])
28
29
dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
30
AM_MAINTAINER_MODE
31
32
dnl sets host_* variables
33
AC_CANONICAL_HOST
34
35
dnl our libraries and install dirs use major.minor as a version
36
GST_MAJORMINOR=$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR
37
dnl we override it here if we need to for the release candidate of new series
38
GST_MAJORMINOR=0.10
39
AC_SUBST(GST_MAJORMINOR)
40
41
dnl CURRENT, REVISION, AGE
42
dnl - library source changed -> increment REVISION
43
dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
44
dnl - interfaces added -> increment AGE
45
dnl - interfaces removed -> AGE = 0
46
dnl sets GST_LT_LDFLAGS
47
AS_LIBTOOL(GST, 18, 0, 18)
48
49
dnl FIXME: this macro doesn't actually work;
50
dnl the generated libtool script has no support for the listed tags.
51
dnl So this needs to be fixed first if we want to use this
52
dnl AS_LIBTOOL_TAGS
53
54
AC_LIBTOOL_WIN32_DLL
55
AM_PROG_LIBTOOL
56
57
dnl *** required versions of GStreamer stuff ***
58
GST_REQ=0.10.25
59
60
dnl *** autotools stuff ****
61
62
dnl allow for different autotools
63
AS_AUTOTOOLS_ALTERNATE
64
65
dnl Add parameters for aclocal
66
AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
67
68
dnl set up gettext
69
dnl the version check needs to stay here because autopoint greps for it
70
AM_GNU_GETTEXT_VERSION([0.14])
71
AM_GNU_GETTEXT([external])
72
AG_GST_GETTEXT([gst-plugins-base-$GST_MAJORMINOR])
73
74
dnl *** check for arguments to configure ***
75
76
AG_GST_ARG_DEBUG
77
AG_GST_ARG_PROFILING
78
AG_GST_ARG_VALGRIND
79
AG_GST_ARG_GCOV
80
81
AG_GST_ARG_EXAMPLES
82
83
AG_GST_ARG_WITH_PKG_CONFIG_PATH
84
AG_GST_ARG_WITH_PACKAGE_NAME
85
AG_GST_ARG_WITH_PACKAGE_ORIGIN
86
87
dnl let distro override plugin install helper path
88
AC_ARG_WITH(install-plugins-helper,
89
  AC_HELP_STRING([--with-install-plugins-helper],
90
    [specify path of helper script to call to install plugins]),
91
  [
92
    case "${withval}" in
93
      yes) AC_MSG_ERROR(bad value ${withval} for --with-install-plugins-helper) ;;
94
      no)  AC_MSG_ERROR(bad value ${withval} for --with-install-plugins-helper) ;;
95
      *)   GST_INSTALL_PLUGINS_HELPER="${withval}" ;;
96
    esac
97
  ],
98
  [
99
    dnl Default value
100
    AS_AC_EXPAND(GST_INSTALL_PLUGINS_HELPER,${libexecdir}/gst-install-plugins-helper)
101
  ]
102
)
103
AC_MSG_NOTICE(Using $GST_INSTALL_PLUGINS_HELPER as plugin install helper)
104
AC_DEFINE_UNQUOTED(GST_INSTALL_PLUGINS_HELPER, "$GST_INSTALL_PLUGINS_HELPER",
105
    [plugin install helper script])
106
AC_SUBST(GST_INSTALL_PLUGINS_HELPER)
107
108
AG_GST_ARG_WITH_PLUGINS
109
110
AG_GST_ARG_ENABLE_EXTERNAL
111
112
AG_GST_ARG_ENABLE_EXPERIMENTAL
113
114
dnl *** checks for platform ***
115
116
dnl * hardware/architecture *
117
118
dnl common/m4/gst-arch.m4
119
dnl check CPU type
120
AG_GST_ARCH
121
122
dnl check for large file support
123
dnl affected plugins must include config.h
124
AC_SYS_LARGEFILE
125
126
dnl *** checks for programs ***
127
128
dnl find a compiler
129
AC_PROG_CC
130
131
dnl check if the compiler supports '-c' and '-o' options
132
AM_PROG_CC_C_O
133
134
AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
135
AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
136
137
dnl check for gobject-introspection
138
GOBJECT_INTROSPECTION_CHECK([0.6.3])
139
140
dnl check for documentation tools
141
GTK_DOC_CHECK([1.3])
142
AS_PATH_PYTHON([2.1])
143
AG_GST_PLUGIN_DOCS([1.3],[2.1])
144
145
dnl *** checks for libraries ***
146
147
dnl libm, for sin() etc.
148
AC_CHECK_LIBM
149
AC_SUBST(LIBM)
150
151
dnl *** checks for header files ***
152
153
dnl check if we have ANSI C header files
154
AC_HEADER_STDC
155
156
dnl used in gst/ffmpegcolorspace/mem.c
157
dnl FIXME: could be fixed by redefining av_malloc and av_free to GLib's
158
AC_CHECK_HEADERS([malloc.h])
159
160
ac_cppflags_save="$CPPFLAGS"
161
CPPFLAGS="`$PKG_CONFIG --cflags libxml-2.0`"
162
AC_COMPILE_IFELSE(
163
  AC_LANG_PROGRAM([
164
#include <libxml/HTMLparser.h>
165
                     ],[
166
#ifndef LIBXML_HTML_ENABLED
167
#error libxml2 has no HTML support
168
#endif /* LIBXML_HTML_ENABLED */
169
                   ]), HAVE_LIBXML_HTML="yes", HAVE_LIBXML_HTML="no")
170
CPPFLAGS="$ac_cppflags_save"
171
AM_CONDITIONAL(HAVE_LIBXML_HTML, test "x$HAVE_LIBXML_HTML" = "xyes")
172
173
dnl used in gst/tcp
174
AC_CHECK_HEADERS([sys/socket.h], 
175
  HAVE_SYS_SOCKET_H="yes", HAVE_SYS_SOCKET_H="no")
176
AM_CONDITIONAL(HAVE_SYS_SOCKET_H, test "x$HAVE_SYS_SOCKET_H" = "xyes")
177
178
dnl used in gst-libs/gst/rtsp
179
AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
180
if test "x$HAVE_WINSOCK2_H" = "xyes"; then
181
  WIN32_LIBS="-lws2_32"
182
  AC_SUBST(WIN32_LIBS)
183
fi
184
185
dnl check for hstrerror, for gst-libs/gst/rtsp
186
save_libs="$LIBS"
187
AC_CHECK_FUNC(hstrerror, ,
188
    AC_CHECK_LIB(resolv, hstrerror, ,
189
        [AC_DEFINE(NO_HSTRERROR, 1,
190
             [Define if you have no native hstrerror() function.])]))
191
HSTRERROR_LIBS=$LIBS
192
AC_SUBST(HSTRERROR_LIBS)
193
LIBS="$save_libs"
194
195
dnl used in gst-libs/gst/pbutils and associated unit test
196
AC_CHECK_HEADERS([process.h sys/types.h sys/wait.h sys/stat.h])
197
198
dnl ffmpegcolorspace includes _stdint.h
199
dnl also, Windows does not have long long
200
AX_CREATE_STDINT_H
201
202
dnl *** checks for functions ***
203
AC_CHECK_FUNCS([localtime_r gmtime_r])
204
205
dnl *** checks for types/defines ***
206
207
dnl Check for FIONREAD ioctl declaration
208
dnl used in gst/tcp
209
GST_CHECK_FIONREAD
210
211
dnl *** checks for structures ***
212
213
dnl *** checks for compiler characteristics ***
214
215
dnl *** checks for library functions ***
216
217
dnl check for fseeko()
218
AC_FUNC_FSEEKO
219
220
dnl Check for fast float to int casting as defined in C99
221
dnl used in gst-libs/gst/floatcast/floatcast.h
222
save_libs=$LIBS
223
LIBS="$LIBS $LIBM"
224
AC_C99_FUNC_LRINT
225
AC_C99_FUNC_LRINTF
226
LIBS=$save_libs
227
228
dnl Check for a way to display the function name in debug output
229
AG_GST_CHECK_FUNCTION
230
231
dnl *** checks for socket and nsl libraries ***
232
AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
233
AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
234
235
dnl *** checks for dependency libraries ***
236
237
dnl GLib is required
238
AG_GST_GLIB_CHECK([2.16])
239
240
dnl liboil is required
241
PKG_CHECK_MODULES(LIBOIL, liboil-0.3 >= 0.3.14, HAVE_LIBOIL=yes, HAVE_LIBOIL=no)
242
if test "x$HAVE_LIBOIL" != "xyes"; then
243
  AC_ERROR([liboil-0.3.14 or later is required])
244
fi
245
246
dnl checks for gstreamer
247
dnl uninstalled is selected preferentially -- see pkg-config(1)
248
AG_GST_CHECK_GST($GST_MAJORMINOR, [$GST_REQ], yes)
249
AG_GST_CHECK_GST_BASE($GST_MAJORMINOR, [$GST_REQ], yes)
250
AG_GST_CHECK_GST_GDP($GST_MAJORMINOR, [$GST_REQ], yes)
251
AG_GST_CHECK_GST_CONTROLLER($GST_MAJORMINOR, [$GST_REQ], yes)
252
AG_GST_CHECK_GST_CHECK($GST_MAJORMINOR, [$GST_REQ], no)
253
AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
254
255
dnl Check for documentation xrefs
256
GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
257
GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_MAJORMINOR`"
258
AC_SUBST(GLIB_PREFIX)
259
AC_SUBST(GST_PREFIX)
260
261
dnl GTK is optional and only used in examples
262
PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.14.0, HAVE_GTK=yes, HAVE_GTK=no)
263
AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
264
265
dnl some examples need gtk+-x11
266
PKG_CHECK_MODULES(GTK_X11, gtk+-x11-2.0 >= 2.14.0,
267
    HAVE_GTK_X11=yes, HAVE_GTK_X11=no)
268
AM_CONDITIONAL(HAVE_GTK_X11, test "x$HAVE_GTK_X11" = "xyes")
269
270
dnl *** set variables based on configure arguments ***
271
272
dnl set license and copyright notice
273
GST_LICENSE="LGPL"
274
AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
275
AC_SUBST(GST_LICENSE)
276
277
dnl set location of plugin directory
278
AG_GST_SET_PLUGINDIR
279
280
dnl define an ERROR_CFLAGS Makefile variable
281
AG_GST_SET_ERROR_CFLAGS($GST_GIT)
282
283
dnl define correct level for debugging messages
284
AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
285
286
dnl used in examples
287
AG_GST_DEFAULT_ELEMENTS
288
289
dnl behaviour of speex based audio resampler
290
AC_MSG_CHECKING(which audio resample format to use for integer)
291
AC_ARG_WITH([audioresample_format],
292
        AS_HELP_STRING([--with-audioresample-format],[Which implementation should be used for integer audio resampling, int/float/auto, (default is auto)]),
293
        [ac_cv_audioresample_format=$withval], [ac_cv_audioresample_format=auto])dnl
294
AC_MSG_RESULT($ac_cv_audioresample_format)
295
case $ac_cv_audioresample_format in
296
  int)
297
    AC_DEFINE(AUDIORESAMPLE_FORMAT_INT,1,[The int implementation should be used for integer audio resampling])
298
    AC_SUBST(AUDIORESAMPLE_FORMAT_INT)
299
  ;;
300
  float)
301
    AC_DEFINE(AUDIORESAMPLE_FORMAT_FLOAT,1,[The float implementation should be used for integer audio resampling])
302
    AC_SUBST(AUDIORESAMPLE_FORMAT_FLOAT)
303
  ;;
304
  auto)
305
    AC_DEFINE(AUDIORESAMPLE_FORMAT_AUTO,1,[The implementation that should be used for integer audio resampling witll be benchmarked at runtime])
306
    AC_SUBST(AUDIORESAMPLE_FORMAT_AUTO)
307
esac
308
AM_CONDITIONAL(AUDIORESAMPLE_NEEDS_LIBOIL, test "$ac_cv_audioresample_format" = "auto")
309
310
dnl *** plug-ins to include ***
311
312
dnl these are all the gst plug-ins, compilable without additional libs
313
AG_GST_CHECK_PLUGIN(adder)
314
AG_GST_CHECK_PLUGIN(app)
315
AG_GST_CHECK_PLUGIN(audioconvert)
316
AG_GST_CHECK_PLUGIN(audiorate)
317
AG_GST_CHECK_PLUGIN(audiotestsrc)
318
AG_GST_CHECK_PLUGIN(ffmpegcolorspace)
319
AG_GST_CHECK_PLUGIN(gdp)
320
AG_GST_CHECK_PLUGIN(playback)
321
AG_GST_CHECK_PLUGIN(audioresample)
322
AG_GST_CHECK_PLUGIN(subparse)
323
AG_GST_CHECK_PLUGIN(tcp)
324
AG_GST_CHECK_PLUGIN(typefind)
325
AG_GST_CHECK_PLUGIN(videotestsrc)
326
AG_GST_CHECK_PLUGIN(videorate)
327
AG_GST_CHECK_PLUGIN(videoscale)
328
AG_GST_CHECK_PLUGIN(volume)
329
330
dnl check for gstreamer core features (subsystems)
331
GST_CONFIGPATH=`$PKG_CONFIG --variable=includedir gstreamer-0.10`"/gst/gstconfig.h"
332
AG_GST_PARSE_SUBSYSTEM_DISABLES($GST_CONFIGPATH)
333
AM_CONDITIONAL(USE_XML, test $GST_DISABLE_XML != "1")
334
335
dnl disable plug-ins that require libxml2's HTML support if it is not available
336
if test "x$HAVE_LIBXML_HTML" != "xyes"; then
337
  AG_GST_DISABLE_PLUGIN(subparse)
338
fi
339
340
dnl disable plug-ins that require sys/socket.h if it is not available
341
if test "x$HAVE_SYS_SOCKET_H" != "xyes"; then
342
  AG_GST_DISABLE_PLUGIN(tcp)
343
fi
344
345
dnl *** sys plug-ins ***
346
347
echo
348
AC_MSG_NOTICE([Checking libraries for plugins in sys/])
349
echo
350
351
dnl *** X11 ***
352
translit(dnm, m, l) AM_CONDITIONAL(USE_X, true)
353
AG_GST_CHECK_FEATURE(X, [X libraries and plugins],
354
                  [ximagesink], [
355
  AC_PATH_XTRA
356
  ac_cflags_save="$CFLAGS"
357
  ac_cppflags_save="$CPPFLAGS"
358
  CFLAGS="$CFLAGS $X_CFLAGS"
359
  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
360
361
  dnl now try to find the HEADER
362
  AC_CHECK_HEADER(X11/Xlib.h, HAVE_X="yes", HAVE_X="no")
363
364
  if test "x$HAVE_X" = "xno"
365
  then
366
    AC_MSG_NOTICE([cannot find X11 development files])
367
  else
368
    dnl this is much more than we want
369
    X_LIBS="$X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS"
370
    dnl AC_PATH_XTRA only defines the path needed to find the X libs,
371
    dnl it does not add the libs; therefore we add them here
372
    X_LIBS="$X_LIBS -lX11"
373
    AC_SUBST(X_CFLAGS)
374
    AC_SUBST(X_LIBS)
375
  fi
376
  AC_SUBST(HAVE_X)
377
  CFLAGS="$ac_cflags_save"
378
  CPPFLAGS="$ac_cppflags_save"
379
])
380
  
381
dnl Check for Xv extension
382
translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
383
AG_GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions],
384
                  [xvimagesink], [
385
  AG_GST_CHECK_XV
386
])
387
388
dnl check for X Shm
389
translit(dnm, m, l) AM_CONDITIONAL(USE_XSHM, true)
390
AG_GST_CHECK_FEATURE(XSHM, [X Shared Memory extension], , [
391
  if test x$HAVE_X = xyes; then
392
    AC_CHECK_LIB(Xext, XShmAttach, 
393
		 HAVE_XSHM="yes", HAVE_XSHM="no",
394
		 $X_LIBS) 
395
    if test "x$HAVE_XSHM" = "xyes"; then
396
      XSHM_LIBS="-lXext"
397
    else
398
      dnl On AIX, it is in XextSam instead, but we still need -lXext
399
      AC_CHECK_LIB(XextSam, XShmAttach, 
400
		   HAVE_XSHM="yes", HAVE_XSHM="no",
401
		   $X_LIBS) 
402
      if test "x$HAVE_XSHM" = "xyes"; then
403
	XSHM_LIBS="-lXext -lXextSam"
404
      fi
405
    fi
406
  fi
407
], , [ 
408
  AC_SUBST(HAVE_XSHM) 
409
  AC_SUBST(XSHM_LIBS) 
410
])
411
412
dnl v4l/v4l2 checks have been moved down because they require X
413
414
dnl *** Video 4 Linux ***
415
dnl for information about the header/define, see sys/v4l/gstv4lelement.h
416
dnl renamed to GST_V4L in accordance with V4L2 below
417
translit(dnm, m, l) AM_CONDITIONAL(USE_GST_V4L, true)
418
AG_GST_CHECK_FEATURE(GST_V4L, [Video 4 Linux], video4linux, [
419
  AC_CHECK_DECL(VID_TYPE_MPEG_ENCODER, HAVE_GST_V4L="yes", HAVE_GST_V4L="no", [
420
#include <sys/types.h>
421
#define _LINUX_TIME_H
422
#define __user
423
#include <linux/videodev.h>
424
  ])
425
426
  dnl we can build v4l without Xv, but then we won't have XOverlay support
427
  if test "x$HAVE_GST_V4L" = "xyes" -a "x$HAVE_XVIDEO" != "xyes"
428
  then
429
    AC_MSG_NOTICE([NO XVIDEO FOUND, VIDEO4LINUX WILL BE BUILT])
430
    AC_MSG_NOTICE([WITHOUT XOVERLAY SUPPORT])
431
  fi
432
])
433
434
# Optional gudev for device probing
435
AC_ARG_WITH([gudev],
436
  AC_HELP_STRING([--with-gudev],
437
    [device detection with gudev]),
438
  [],
439
  [with_gudev=check])
440
if test x$HAVE_GST_V4L = xyes; then
441
  if test x$with_gudev != xno; then
442
      PKG_CHECK_MODULES(GUDEV, [ gudev-1.0 >= 143 ],
443
          [ have_gudev=yes
444
            AC_DEFINE(HAVE_GUDEV, 1,
445
               [Whether gudev is available for device detection])
446
            AC_DEFINE([G_UDEV_API_IS_SUBJECT_TO_CHANGE], 1, [I know the API is subject to change.])
447
          ], [
448
          have_gudev=no
449
          ])
450
  else
451
    have_gudev=no
452
  fi
453
fi
454
AC_SUBST(GUDEV_CFLAGS)
455
AC_SUBST(GUDEV_LIBS)
456
457
dnl *** ext plug-ins ***
458
dnl keep this list sorted alphabetically !
459
460
if test "x$BUILD_EXTERNAL" = "xyes"; then
461
462
echo
463
AC_MSG_NOTICE([Checking libraries for plugins in ext/])
464
echo
465
466
dnl *** alsa ***
467
translit(dnm, m, l) AM_CONDITIONAL(USE_ALSA, true)
468
AG_GST_CHECK_FEATURE(ALSA, [ALSA], alsa, [
469
  PKG_CHECK_MODULES(ALSA, alsa >= 0.9.1, [
470
    HAVE_ALSA="yes"
471
    AC_SUBST(ALSA_CFLAGS)
472
    AC_SUBST(ALSA_LIBS)
473
  ], [
474
    AM_PATH_ALSA(0.9.1, HAVE_ALSA="yes", HAVE_ALSA="no")
475
  ])
476
])
477
478
dnl *** CDParanoia ***
479
translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
480
AG_GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
481
  AG_GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
482
                      cdda_open, -lm, 
483
                      cdda_interface.h, 
484
                      CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
485
                      HEADER_DIR="no"
486
                      FOUND_CDPARANOIA="yes")
487
  if test "x$FOUND_CDPARANOIA" != "xyes";
488
  then
489
    AG_GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
490
                        cdda_open, -lm, 
491
                        cdda/cdda_interface.h, 
492
                        CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
493
                        HEADER_DIR="yes"
494
                        FOUND_CDPARANOIA="yes")
495
  fi
496
  if test "x$HEADER_DIR" = "xyes";
497
  then
498
    AC_DEFINE_UNQUOTED(CDPARANOIA_HEADERS_IN_DIR, ,
499
                       defined if cdda headers are in a cdda/ directory)
500
  fi
501
  if test "x$FOUND_CDPARANOIA" = "xyes";
502
  then
503
    AC_CHECK_LIB(cdda_paranoia,
504
                 paranoia_cachemodel_size,
505
                 : ,
506
                 HAVE_CDPARANOIA=no)
507
  fi
508
509
  AC_SUBST(CDPARANOIA_LIBS)
510
])
511
dnl FIXME : add second check somehow if that is necessary
512
dnl AC_CHECK_LIB(cdda_paranoia, paranoia_init, : , HAVE_CDPARANOIA=no, -lcdda_interface )
513
dnl AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no)
514
515
dnl *** GNOME VFS ***
516
translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
517
AG_GST_CHECK_FEATURE(GNOME_VFS, [GNOME VFS], gnomevfs, [
518
  PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0, [
519
      HAVE_GNOME_VFS="yes"
520
      AC_SUBST(GNOME_VFS_CFLAGS)
521
      AC_SUBST(GNOME_VFS_LIBS)
522
      GNOME_VFS_MODULES_DIR="`$PKG_CONFIG --variable=modulesdir gnome-vfs-2.0`"
523
      AC_DEFINE_UNQUOTED(GNOME_VFS_MODULES_DIR, "$GNOME_VFS_MODULES_DIR",
524
             [The GnomeVFS modules directory.])
525
    ],[
526
      HAVE_GNOME_VFS="no"
527
    ]
528
    )
529
])
530
531
dnl *** libgio ***
532
translit(dnm, m, l) AM_CONDITIONAL(USE_GIO, true)
533
AG_GST_CHECK_FEATURE(GIO, [GIO library], gio, [
534
  PKG_CHECK_MODULES(GIO, gio-2.0 >= 2.16, [
535
    HAVE_GIO="yes"
536
    GIO_MODULE_DIR="`$PKG_CONFIG --variable=giomoduledir gio-2.0`"
537
    AC_DEFINE_UNQUOTED(GIO_MODULE_DIR, "$GIO_MODULE_DIR",
538
           [The GIO modules directory.])
539
    GIO_LIBDIR="`$PKG_CONFIG --variable=libdir gio-2.0`"
540
    AC_DEFINE_UNQUOTED(GIO_LIBDIR, "$GIO_LIBDIR",
541
           [The GIO library directory.])
542
  ], [
543
    HAVE_GIO="no"
544
    AC_MSG_RESULT(no)
545
  ])
546
  AC_SUBST(GIO_CFLAGS)
547
  AC_SUBST(GIO_LIBS)
548
  AC_SUBST(GIO_LDFLAGS)
549
])
550
551
dnl *** libvisual ***
552
translit(dnm, m, l) AM_CONDITIONAL(USE_LIBVISUAL, true)
553
AG_GST_CHECK_FEATURE(LIBVISUAL, [libvisual visualization library], libvisual, [
554
  AG_GST_PKG_CHECK_MODULES(LIBVISUAL, libvisual-0.4 >= 0.4.0)
555
  if test $HAVE_LIBVISUAL = no
556
  then
557
    AG_GST_PKG_CHECK_MODULES(LIBVISUAL, libvisual = 0.2.0)
558
    if test x$HAVE_LIBVISUAL == xyes; then
559
      LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.2`"
560
    fi
561
  else
562
    if test x$HAVE_LIBVISUAL == xyes; then
563
      LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.4`"
564
    fi
565
  fi
566
  AC_MSG_NOTICE([libvisual pluginsdir: $LIBVIS_PLUGINSDIR])
567
  if test x$LIBVIS_PLUGINSDIR != x; then
568
    AC_DEFINE_UNQUOTED(LIBVISUAL_PLUGINSBASEDIR,
569
        "$LIBVIS_PLUGINSDIR",
570
        [directory in which the detected libvisual's plugins are located])
571
  fi
572
])
573
574
dnl *** ogg ***
575
translit(dnm, m, l) AM_CONDITIONAL(USE_OGG, true)
576
AG_GST_CHECK_FEATURE(OGG, [Xiph Ogg library], ogg, [
577
  AG_GST_PKG_CHECK_MODULES(OGG, ogg >= 1.0)
578
  if test $HAVE_OGG = no
579
  then
580
    XIPH_PATH_OGG(HAVE_OGG="yes", HAVE_OGG="no")
581
    AS_SCRUB_INCLUDE(OGG_CFLAGS)
582
  fi
583
])
584
585
dnl *** pango ***
586
translit(dnm, m, l) AM_CONDITIONAL(USE_PANGO, true)
587
AG_GST_CHECK_FEATURE(PANGO, [Pango font rendering], pango, [
588
  AG_GST_PKG_CHECK_MODULES(PANGO, pango pangocairo)
589
  PKG_CHECK_MODULES(PANGOCAIRO_1_15_4, pangocairo >= 1.15.4, [ AC_DEFINE(HAVE_PANGO_VERTICAL_WRITING, 1, [Defined if pango can write vertically])])
590
])
591
592
dnl *** theora ***
593
translit(dnm, m, l) AM_CONDITIONAL(USE_THEORA, true)
594
AG_GST_CHECK_FEATURE(THEORA, [Xiph Theora video codec], theora, [
595
  dnl theora uses pkg-config version incorrectly, for pkg-config:
596
  dnl 1.0 < 1.0RCX < 1.0alphaX < 1.0betaX < 1.0.0
597
  dnl theoraenc and theoradec appeared in 1.0beta3
598
599
  AG_GST_PKG_CHECK_MODULES(THEORA, theoradec theoraenc)
600
  if test x$HAVE_THEORA = xno; then
601
    AG_GST_PKG_CHECK_MODULES(THEORA, theora >= 1.0alpha5)
602
  fi
603
])
604
605
dnl *** vorbis ***
606
dnl AM_PATH_VORBIS only takes two options
607
translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
608
AG_GST_CHECK_FEATURE(VORBIS, [Xiph Vorbis audio codec], vorbis, [
609
  AG_GST_PKG_CHECK_MODULES(VORBIS, vorbis >= 1.0 vorbisenc >= 1.0)
610
  if test $HAVE_VORBIS = no
611
  then
612
    XIPH_PATH_VORBIS(HAVE_VORBIS="yes", HAVE_VORBIS="no")
613
    AS_SCRUB_INCLUDE(VORBIS_CFLAGS)
614
  fi
615
])
616
617
if test "x$HAVE_VORBIS" = "xyes"; then
618
  ac_cflags_save="$CFLAGS"
619
  AC_COMPILE_IFELSE(
620
    AC_LANG_PROGRAM([
621
#include <vorbis/codec.h>
622
                     ],[
623
vorbis_dsp_state *v;
624
625
vorbis_synthesis_restart (v);
626
                     ]), HAVE_VSR=yes, HAVE_VSR=no)
627
  if test "x$HAVE_VSR" = "xyes"; then
628
    AC_DEFINE_UNQUOTED(HAVE_VORBIS_SYNTHESIS_RESTART, 1,
629
                       [defined if vorbis_synthesis_restart is present])
630
  fi
631
  CFLAGS="$ac_cflags_save"
632
fi
633
634
else
635
636
dnl not building plugins with external dependencies,
637
dnl but we still need to set the conditionals
638
AM_CONDITIONAL(USE_ALSA, false)
639
AM_CONDITIONAL(USE_CDPARANOIA, false)
640
AM_CONDITIONAL(USE_GNOME_VFS, false)
641
AM_CONDITIONAL(USE_GIO, false)
642
AM_CONDITIONAL(USE_LIBVISUAL, false)
643
AM_CONDITIONAL(USE_OGG, false)
644
AM_CONDITIONAL(USE_PANGO, false)
645
AM_CONDITIONAL(USE_THEORA, false)
646
AM_CONDITIONAL(USE_VORBIS, false)
647
648
fi dnl of EXT plugins
649
650
dnl seeking needs freetype, so check for it here
651
PKG_CHECK_MODULES(FT2, freetype2 >= 2.0.9, HAVE_FT2="yes", [
652
  AC_CHECK_FT2(2.0.9, HAVE_FT2="yes", HAVE_FT2="no")
653
])
654
dnl make the HAVE_FT2 variable available to automake and Makefile.am
655
AM_CONDITIONAL(HAVE_FT2, test "x$HAVE_FT2" = "xyes")
656
AC_SUBST(FT2_CFLAGS)
657
AC_SUBST(FT2_LIBS)
658
659
dnl *** finalize CFLAGS, LDFLAGS, LIBS
660
661
dnl Overview:
662
dnl GST_OPTION_CFLAGS:  common flags for profiling, debugging, errors, ...
663
dnl GST_*:              flags shared by built objects to link against GStreamer
664
dnl GST_PLUGINS_BASE_CFLAGS: to link internally against the plugins base libs
665
dnl                          (compare to other modules) or for i18n
666
dnl GST_ALL_LDFLAGS:    linker flags shared by all
667
dnl GST_LIB_LDFLAGS:    additional linker flags for all libaries
668
dnl GST_LT_LDFLAGS:     library versioning of our libraries
669
dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
670
671
dnl GST_OPTION_CFLAGS
672
if test "x$USE_DEBUG" = xyes; then
673
   PROFILE_CFLAGS="-g"
674
fi
675
AC_SUBST(PROFILE_CFLAGS)
676
677
if test "x$PACKAGE_VERSION_NANO" = "x1"; then
678
  dnl Define _only_ when compiling a git version (not pre-releases or releases)
679
  DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
680
else
681
  DEPRECATED_CFLAGS=""
682
fi
683
AC_SUBST(DEPRECATED_CFLAGS)
684
685
dnl every flag in GST_OPTION_CFLAGS can be overridden at make time
686
GST_OPTION_CFLAGS="\$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
687
AC_SUBST(GST_OPTION_CFLAGS)
688
689
dnl our libraries need to be versioned correctly
690
AC_SUBST(GST_LT_LDFLAGS)
691
692
dnl GST_PLUGINS_BASE_CFLAGS
693
dnl prefer internal headers to already installed ones
694
dnl also add builddir include for enumtypes and marshal
695
GST_PLUGINS_BASE_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
696
AC_SUBST(GST_PLUGINS_BASE_CFLAGS)
697
698
dnl FIXME: do we want to rename to GST_ALL_* ?
699
dnl add GST_OPTION_CFLAGS, but overridable
700
GST_CFLAGS="$GST_CFLAGS \$(GST_OPTION_CFLAGS)"
701
AC_SUBST(GST_CFLAGS)
702
dnl add GCOV libs because libtool strips -fprofile-arcs -ftest-coverage
703
GST_LIBS="$GST_LIBS \$(GCOV_LIBS)"
704
AC_SUBST(GST_LIBS)
705
706
dnl LDFLAGS really should only contain flags, not libs - they get added before
707
dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
708
GST_ALL_LDFLAGS="-no-undefined"
709
AC_SUBST(GST_ALL_LDFLAGS)
710
711
dnl GST_LIB_LDFLAGS
712
dnl linker flags shared by all libraries
713
dnl LDFLAGS modifier defining exported symbols from built libraries
714
dnl (export _gst_foo but not __gst_foo)
715
GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
716
AC_SUBST(GST_LIB_LDFLAGS)
717
718
dnl this really should only contain flags, not libs - they get added before
719
dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
720
GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_desc\$\$' $GST_ALL_LDFLAGS"
721
AC_SUBST(GST_PLUGIN_LDFLAGS)
722
723
SHAVE_INIT([common],[enable])
724
725
dnl *** output files ***
726
727
AC_CONFIG_FILES(
728
Makefile
729
common/shave
730
common/shave-libtool
731
gst-plugins-base.spec
732
gst/Makefile
733
gst/adder/Makefile
734
gst/app/Makefile
735
gst/audioconvert/Makefile
736
gst/audiorate/Makefile
737
gst/audiotestsrc/Makefile
738
gst/ffmpegcolorspace/Makefile
739
gst/gdp/Makefile
740
gst/playback/Makefile
741
gst/audioresample/Makefile
742
gst/subparse/Makefile
743
gst/tcp/Makefile
744
gst/typefind/Makefile
745
gst/videotestsrc/Makefile
746
gst/videorate/Makefile
747
gst/videoscale/Makefile
748
gst/volume/Makefile
749
sys/Makefile
750
sys/ximage/Makefile
751
sys/xvimage/Makefile
752
sys/v4l/Makefile
753
ext/Makefile
754
ext/alsa/Makefile
755
ext/cdparanoia/Makefile
756
ext/gnomevfs/Makefile
757
ext/gio/Makefile
758
ext/libvisual/Makefile
759
ext/ogg/Makefile
760
ext/pango/Makefile
761
ext/theora/Makefile
762
ext/vorbis/Makefile
763
gst-libs/Makefile
764
gst-libs/gst/Makefile
765
gst-libs/gst/audio/Makefile
766
gst-libs/gst/app/Makefile
767
gst-libs/gst/cdda/Makefile
768
gst-libs/gst/fft/Makefile
769
gst-libs/gst/floatcast/Makefile
770
gst-libs/gst/interfaces/Makefile
771
gst-libs/gst/netbuffer/Makefile
772
gst-libs/gst/riff/Makefile
773
gst-libs/gst/rtp/Makefile
774
gst-libs/gst/rtsp/Makefile
775
gst-libs/gst/sdp/Makefile
776
gst-libs/gst/tag/Makefile
777
gst-libs/gst/pbutils/Makefile
778
gst-libs/gst/video/Makefile
779
tools/Makefile
780
pkgconfig/Makefile
781
pkgconfig/gstreamer-audio.pc
782
pkgconfig/gstreamer-audio-uninstalled.pc
783
pkgconfig/gstreamer-app.pc
784
pkgconfig/gstreamer-app-uninstalled.pc
785
pkgconfig/gstreamer-cdda.pc
786
pkgconfig/gstreamer-cdda-uninstalled.pc
787
pkgconfig/gstreamer-fft.pc
788
pkgconfig/gstreamer-fft-uninstalled.pc
789
pkgconfig/gstreamer-floatcast.pc
790
pkgconfig/gstreamer-floatcast-uninstalled.pc
791
pkgconfig/gstreamer-interfaces.pc
792
pkgconfig/gstreamer-interfaces-uninstalled.pc
793
pkgconfig/gstreamer-netbuffer.pc
794
pkgconfig/gstreamer-netbuffer-uninstalled.pc
795
pkgconfig/gstreamer-pbutils.pc
796
pkgconfig/gstreamer-pbutils-uninstalled.pc
797
pkgconfig/gstreamer-riff.pc
798
pkgconfig/gstreamer-riff-uninstalled.pc
799
pkgconfig/gstreamer-rtp.pc
800
pkgconfig/gstreamer-rtp-uninstalled.pc
801
pkgconfig/gstreamer-rtsp.pc
802
pkgconfig/gstreamer-rtsp-uninstalled.pc
803
pkgconfig/gstreamer-sdp.pc
804
pkgconfig/gstreamer-sdp-uninstalled.pc
805
pkgconfig/gstreamer-tag.pc
806
pkgconfig/gstreamer-tag-uninstalled.pc
807
pkgconfig/gstreamer-video.pc
808
pkgconfig/gstreamer-video-uninstalled.pc
809
pkgconfig/gstreamer-plugins-base.pc
810
pkgconfig/gstreamer-plugins-base-uninstalled.pc
811
tests/Makefile
812
tests/check/Makefile
813
tests/examples/Makefile
814
tests/examples/app/Makefile
815
tests/examples/dynamic/Makefile
816
tests/examples/seek/Makefile
817
tests/examples/volume/Makefile
818
tests/examples/snapshot/Makefile
819
tests/examples/gio/Makefile
820
tests/examples/v4l/Makefile
821
tests/icles/Makefile
822
docs/Makefile
823
docs/design/Makefile
824
docs/libs/Makefile
825
docs/plugins/Makefile
826
docs/version.entities
827
po/Makefile.in
828
common/Makefile
829
common/m4/Makefile
830
m4/Makefile
831
)
832
833
dnl Create the config.h file for Visual Studio builds
834
dnl Beware of spaces and /'s in some of the shell variable contents.
835
sed \
836
    -e 's/.*config.h.in.*autoheader.*/\/* Autogenerated config.h created for win32 Visual Studio builds *\/\n\n\/* PREFIX -- specifically added for Windows for easier moving *\/\n#define PREFIX "C:\\\\gstreamer"/' \
837
    -e 's/.* GST_INSTALL_PLUGINS_HELPER/#define GST_INSTALL_PLUGINS_HELPER PREFIX "\\\\libexec\\\\gst-install-plugins-helper.exe"/' \
838
    -e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \
839
    -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
840
    -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
841
    -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
842
    -e 's/.* GST_MAJORMINOR$/#define GST_MAJORMINOR "'$GST_MAJORMINOR'"/' \
843
    -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
844
    -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
845
    -e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \
846
    -e 's/.* HAVE_FGETPOS$/#define HAVE_FGETPOS 1/' \
847
    -e 's/.* HAVE_FSETPOS$/#define HAVE_FSETPOS 1/' \
848
    -e 's/.* HAVE_LIBXML2$/#define HAVE_LIBXML2 1/' \
849
    -e 's/.* HAVE_PROCESS_H$/#define HAVE_PROCESS_H 1/' \
850
    -e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
851
    -e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
852
    -e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \
853
    -e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \
854
    -e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \
855
    -e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \
856
    -e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \
857
    -e 's/.* LIBDIR$/#ifdef _DEBUG\n#  define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n#  define LIBDIR PREFIX "\\\\lib"\n#endif/' \
858
    -e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \
859
    -e "s/.* PACKAGE$/#define PACKAGE \"$PACKAGE\"/" \
860
    -e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \
861
    -e "s/.* PACKAGE_NAME$/#define PACKAGE_NAME \"$PACKAGE_NAME\"/" \
862
    -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
863
    -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
864
    -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
865
    -e 's/.* PLUGINDIR$/#ifdef _DEBUG\n#  define PLUGINDIR PREFIX "\\\\debug\\\\lib\\\\gstreamer-0.10"\n#else\n#  define PLUGINDIR PREFIX "\\\\lib\\\\gstreamer-0.10"\n#endif/' \
866
    -e 's/.* USE_BINARY_REGISTRY$/#define USE_BINARY_REGISTRY/' \
867
    -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
868
    -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directaudiosink\"/" \
869
    -e "s/.* DEFAULT_VIDEOSINK$/#define DEFAULT_VIDEOSINK \"directdrawsink\"/" \
870
    -e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \
871
    config.h.in >win32/common/config.h-new
872
873
874
875
AC_OUTPUT
876
877
AG_GST_OUTPUT_PLUGINS