configure.ac 42.2 KB
Newer Older
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
1
dnl autoconf configuration file for gst-plugins 
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
2
3
4
AC_INIT
AC_CANONICAL_TARGET([])

Andy Wingo's avatar
Andy Wingo committed
5
6
7
8
9
dnl We disable static building for development, for time savings
dnl this goes before AS_LIBTOOL to appease autoconf
dnl *NOTE*: dnl this line before release, so release does static too
AM_DISABLE_STATIC

10
11
12
dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
AM_MAINTAINER_MODE

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
13
dnl when going to/from release please set the nano (fourth number) right !
14
dnl releases only do Wall, cvs and prerelease does Werror too
15
AS_VERSION(gst-plugins, GST_PLUGINS_VERSION, 0, 7, 0, 1, GST_CVS="no", GST_CVS="yes")
16
AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
17
18
19
20
21
22
23
24
25
26
27

dnl our libraries and install dirs use major.minor as a version
GST_MAJORMINOR=$GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR
AC_SUBST(GST_MAJORMINOR)

dnl CURRENT, REVISION, AGE
dnl - library source changed -> increment REVISION
dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
dnl - interfaces added -> increment AGE
dnl - interfaces removed -> AGE = 0
AS_LIBTOOL(GST_PLUGINS, 1, 0, 0)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
28

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
29
30
31
dnl FIXME take something else ?
AC_CONFIG_SRCDIR([gst/law/alaw.c])
AM_CONFIG_HEADER(config.h)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
32

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
33
34
dnl Add parameters for aclocal
dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
35
36
ACLOCAL_FLAGS="-I m4 -I common/m4"
AC_SUBST(ACLOCAL_AMFLAGS, $ACLOCAL_FLAGS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
37

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
38
39
40
41
AC_PROG_CC
AM_PROG_CC_STDC
AM_PROG_AS
AS="${CC}"
42
43

dnl decide on error flags
44
AS_COMPILER_FLAG(-Wall, GST_WALL="yes", GST_WALL="no")
45

46
47
48
49
50
51
52
53
54
55
56
57
58
if test "x$GST_WALL" = "xyes"; then
   GST_ERROR="$GST_ERROR -Wall"

   if test "x$GST_CVS" = "xyes"; then
     AS_COMPILER_FLAG(-Werror,GST_ERROR="$GST_ERROR -Werror",GST_ERROR="$GST_ERROR")
   fi

   dnl set gcc-style optimization flags if using the gnu compiler.
   GST_FUNROLL_CFLAGS="$GST_FUNROLL_CFLAGS -funroll-all-loops"
   GST_FINLINE_CFLAGS="$GST_FINLINE_CFLAGS -finline-functions"
   GST_FFASTMATH_CFLAGS="$GST_FFASTMATH_CFLAGS -ffast-math"
   GST_FSCHEDULE_CFLAGS="$GST_FSCHEDULE_CFLAGS -fschedule-insns2"
   GST_FNOEXCEPTIONS_CFLAGS="$GST_FNOEXCEPTIONS_CFLAGS -fno-exceptions"
59
60
fi

61
dnl determine c++ compiler
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
62
AC_PROG_CXX
63
64
65
dnl determine if c++ is available on this system
AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
dnl determine c++ preprocessor
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
66
67
68
69
70
AC_PROG_CXXCPP
AC_ISC_POSIX

AC_HEADER_STDC([])

71
72
73
74
75
76
77
78
dnl ############################################
dnl # Super Duper options for plug-in building #
dnl ############################################

dnl ext plug-ins; plug-ins that have external dependencies
GST_CHECK_FEATURE(EXTERNAL, [enable building of plug-ins with external deps],,
[HAVE_EXTERNAL=yes],enabled,
[
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
79
  AC_MSG_WARN(building external plug-ins)
80
81
82
83
84
  BUILD_EXTERNAL="yes"
],[
  AC_MSG_WARN(all plug-ins with external dependencies will not be built)
  BUILD_EXTERNAL="no"
])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
85
86
# make BUILD_EXTERNAL available to Makefile.am
AM_CONDITIONAL(BUILD_EXTERNAL, test "x$BUILD_EXTERNAL" = "xyes")
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
87

88
dnl experimental plug-ins; stuff that hasn't had the dust settle yet
89
dnl read 'builds, but might not work'UTO
90
GST_CHECK_FEATURE(EXPERIMENTAL, [enable building of experimental plug-ins],,
91
92
[HAVE_EXPERIMENTAL=yes],disabled,
[
93
  AC_MSG_WARN(building experimental plug-ins)
94
  USE_TARKIN="yes"
95
  USE_SHOUT2="yes"
96
],[
97
  AC_MSG_NOTICE(not building experimental plug-ins)
98
  USE_TARKIN="no"
99
  USE_SHOUT2="no"
100
])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
101

102
103
dnl broken plug-ins; stuff that doesn't seem to build at the moment
GST_CHECK_FEATURE(BROKEN, [enable building of broken plug-ins],,
104
105
HAVE_BROKEN=yes,disabled,
[  
106
  AC_MSG_WARN([building broken plug-ins -- no bug reports on these, only patches :)])
107
],[
Andy Wingo's avatar
Andy Wingo committed
108
  AC_MSG_NOTICE([not building broken plug-ins])
109
])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
110
111
112
113
114
115
116
117

dnl ##############################
dnl # Do automated configuration #
dnl ##############################

dnl Check for tools:
dnl ================

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
118
119
120
dnl allow for different autotools
AS_AUTOTOOLS_ALTERNATE()

121
122
123
124
125
dnl modify pkg-config path
AC_ARG_WITH(pkg-config-path, 
   AC_HELP_STRING([--with-pkg-config-path],[colon-separated list of pkg-config(1) dirs]),
   [export PKG_CONFIG_PATH=${withval}])

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
126
127
128
129
130
131
132
133
134
135
136
dnl Check for nasm
AC_PATH_PROG(NASM_PATH, nasm, no)
AC_SUBST(NASM_PATH)
if test x$NASM_PATH = xno; then
  AC_MSG_WARN(Couldn't find nasm)
  HAVE_NASM="no"
else
  AC_DEFINE(HAVE_NASM, 1, [Define if NASM, the netwide assembler, is available])
  HAVE_NASM="yes"
fi

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
137
138
139
dnl check for gconftool-2
translit(dnm, m, l) AM_CONDITIONAL(USE_GCONFTOOL, true)
GST_CHECK_FEATURE(GCONFTOOL, [GConf schemas], , [
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
140
141
142
  AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
  if test x$GCONFTOOL = xno; then
    AC_MSG_WARN(Not installing GConf schemas)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
143
    HAVE_GCONFTOOL="no"
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
144
145
  else
    AM_GCONF_SOURCE_2
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
146
    HAVE_GCONFTOOL="yes"
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
147
  fi
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
148
149
150
151
152
153
154
155
156
  AC_SUBST(HAVE_GCONFTOOL)
])

dnl check for GConf libraries
translit(dnm, m, l) AM_CONDITIONAL(USE_GCONF, true)
GST_CHECK_FEATURE(GCONF, [GConf libraries], , [
  PKG_CHECK_MODULES(GCONF, gconf-2.0, HAVE_GCONF="yes", HAVE_GCONF="no")
  AC_SUBST(GCONF_CFLAGS)
  AC_SUBST(GCONF_LIBS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
157
])
158

159
dnl check for gstreamer; uninstalled is selected preferentially -- see pkg-config(1)
160
PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR >= $GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR.$GST_PLUGINS_VERSION_MICRO,
161
  HAVE_GST="yes", HAVE_GST="no")
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
162

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
163
164
165
if test "x$HAVE_GST" = "xno"; then
  AC_MSG_ERROR(no GStreamer found)
fi
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
166

167
GST_TOOLS_DIR=`pkg-config --variable=toolsdir gstreamer-$GST_MAJORMINOR`
168
169
170
171
172
if test -z $GST_TOOLS_DIR; then
  AC_MSG_ERROR([no tools dir defined in GStreamer pkg-config file; core upgrade needed.])
fi
AC_SUBST(GST_TOOLS_DIR)

173
174
175
176
177
178
179
180
dnl check for gstreamer-control; uninstalled is selected preferentially
PKG_CHECK_MODULES(GST_CONTROL, gstreamer-control-$GST_MAJORMINOR >= $GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR.$GST_PLUGINS_VERSION_MICRO,
  HAVE_GST_CONTROL="yes", HAVE_GST_CONTROL="no")

if test "x$HAVE_GST_CONTROL" = "xno"; then
  AC_MSG_ERROR(no GStreamer Control Libs found)
fi

181
182
AC_SUBST(GST_CONTROL_LIBS)

183

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
184
185
186
187
188
189
190
191
192
193
194
dnl Set up conditionals for (target) architecture:
dnl ==============================================

dnl Determine CPU
case "x${target_cpu}" in
  xi?86 | k?) HAVE_CPU_I386=yes
              AC_DEFINE(HAVE_CPU_I386, 1, [Define if the target CPU is an x86])
              dnl FIXME could use some better detection
              dnl       (ie CPUID)
              case "x${target_cpu}" in
                xi386 | xi486) ;;
David I. Lehn's avatar
David I. Lehn committed
195
                *)             AC_DEFINE(HAVE_RDTSC, 1, [Define if RDTSC is available]) ;;
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
              esac ;;
  xpowerpc)   HAVE_CPU_PPC=yes
              AC_DEFINE(HAVE_CPU_PPC, 1, [Define if the target CPU is a PPC]) ;;
  xalpha)     HAVE_CPU_ALPHA=yes
              AC_DEFINE(HAVE_CPU_ALPHA, 1, [Define if the target CPU is an Alpha]) ;;
  xarm*)      HAVE_CPU_ARM=yes
              AC_DEFINE(HAVE_CPU_ARM, 1, [Define if the target CPU is an ARM]) ;;
  xsparc*)    HAVE_CPU_SPARC=yes
              AC_DEFINE(HAVE_CPU_SPARC, 1, [Define if the target CPU is a PPC]) ;;
  xmips*)     HAVE_CPU_MIPS=yes
              AC_DEFINE(HAVE_CPU_MIPS, 1, [Define if the target CPU is a MIPS]) ;;
  xhppa*)     HAVE_CPU_HPPA=yes
              AC_DEFINE(HAVE_CPU_HPPA, 1, [Define if the target CPU is a HPPA]) ;;
esac

dnl Determine endianness
AC_C_BIGENDIAN

214
215
216
217
dnl Check for fast float to int casting as defined in C99
AC_C99_FUNC_LRINT()
AC_C99_FUNC_LRINTF()

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
218
219
220
dnl Check for essential libraries first:
dnl ====================================

221
GST_GLIB2_CHECK()
222
223
224
225
226
227
228
229
230
231
232
233

dnl GTK
HAVE_GTK=NO
PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.2.0, HAVE_GTK_22=yes, HAVE_GTK_22=no)
if test "x$HAVE_GTK_22" = "xyes"; then
  HAVE_GTK=yes
else
  PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK_20=yes, HAVE_GTK_20=no)
fi
if test "x$HAVE_GTK_20" = "xyes"; then
  HAVE_GTK=yes
fi
Andy Wingo's avatar
Andy Wingo committed
234
235
GTK_CFLAGS=$GTK2_CFLAGS
GTK_LIBS=$GTK2_LIBS
236
237
AC_SUBST(GTK_LIBS)
AC_SUBST(GTK_CFLAGS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
238

239

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
240
241
242
dnl Check for X11 extensions
AC_PATH_XTRA
if test "-DX_DISPLAY_MISSING" = "$X_CFLAGS"; then
Andy Wingo's avatar
Andy Wingo committed
243
  AC_MSG_NOTICE([cannot find X11, the build system needs fixage])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
244
245
246
247
248
249
fi
AC_SUBST(X_CFLAGS)
AC_SUBST(X_PRE_LIBS)
AC_SUBST(X_EXTRA_LIBS)
AC_SUBST(X_LIBS)

250
251
252
dnl ===========================================================================
dnl ============================= gst plug-ins ================================
dnl ===========================================================================
253

254
255
GST_PLUGIN_LDFLAGS='-module -avoid-version'
AC_SUBST(GST_PLUGIN_LDFLAGS)
256

257
dnl these are all the gst plug-ins, compilable without additional libs
258
GST_PLUGINS_ALL="\
Ronald S. Bultje's avatar
Ronald S. Bultje committed
259
260
261
	ac3parse adder audioscale auparse avi \
	asfdemux audioconvert cdxaparse chart \
	cutter debug deinterlace effectv festival \
262
	filter flx goom intfloat law level median mixmatrix \
263
	mpeg1sys mpeg1videoparse mpeg2enc mpeg2sub \
Ronald S. Bultje's avatar
Ronald S. Bultje committed
264
	mpegaudio mpegaudioparse mpegstream mpegtypes \
David Schleef's avatar
David Schleef committed
265
        monoscope oneton overlay passthrough playondemand qtdemux \
Ronald S. Bultje's avatar
Ronald S. Bultje committed
266
	realmedia rtp rtjpeg silence sine smooth smpte \
Angel Carpintero's avatar
Angel Carpintero committed
267
	spectrum speed stereo synaesthesia tcp udp vbidec \
268
	videocrop videofilter videoflip videoscale videotestsrc \
Ronald S. Bultje's avatar
Ronald S. Bultje committed
269
	volenv volume wavenc wavparse y4m"
270
271
272
273

dnl see if we can build C++ plug-ins
if test "x$HAVE_CXX" = "xyes"; then
  GST_PLUGINS_ALL="$GST_PLUGINS_ALL \
274
                  modplug"
275
else
276
  AC_MSG_WARN([Not compiling plug-ins requiring C++ compiler])
277
fi
278
279
280
281
282
283

AC_SUBST(GST_PLUGINS_ALL)

GST_PLUGINS_SELECTED=""

AC_ARG_WITH(plugins,
284
    AC_HELP_STRING([--with-plugins],[comma-separated list of plug-ins to compile]),
285
286
287
288
    [for i in `echo $withval | tr , ' '`; do
        if test -n `echo $i | grep $GST_PLUGINS_ALL`; then
            GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED $i"
        else
289
            echo "plug-in $i not recognized, ignoring..."
290
291
292
293
294
        fi
    done],
    [GST_PLUGINS_SELECTED=$GST_PLUGINS_ALL])

AC_SUBST(GST_PLUGINS_SELECTED)
295

296
dnl ==========================================================================
297
dnl ============================= sys plug-ins ================================
298
299
dnl ==========================================================================

300
301
dnl *** DXR3 card ***
translit(dnm, m, l) AM_CONDITIONAL(USE_DXR3, true)
302
303
304
305
306
307
308
309
310
GST_CHECK_FEATURE(DXR3, [DXR3 hardware MPEG DVD decoder],
  dxr3videosink dxr3audiosink dxr3spusink, [
  HAVE_DXR3=yes
  AC_CHECK_HEADER(linux/em8300.h, ,
                  [ AC_MSG_WARN([DXR3/em8300 header file not found]) &&
                    HAVE_DXR3=no ] )
  AC_CHECK_HEADER(linux/soundcard.h, ,
                  [ AC_MSG_WARN([Generic sound header file not found]) &&
                    HAVE_DXR3=no ] )
311
312
])

313
314
315
316
317
318
dnl *** OSS audio ***
translit(dnm, m, l) AM_CONDITIONAL(USE_OSS, true)
GST_CHECK_FEATURE(OSS, [OSS audio], osssrc osssink, [
  AC_CHECK_HEADER(sys/soundcard.h, HAVE_OSS="yes", HAVE_OSS="no")
])

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
319
320
dnl *** QuickCam ***
translit(dnm, m, l) AM_CONDITIONAL(USE_QCAM, true)
321
GST_CHECK_FEATURE(QCAM, [QuickCam], qcamsrc, [
322
  if test "x$HAVE_CPU_I386" != "xyes";
323
324
325
  then
    HAVE_QCAM="no"
  else
326
327
328
329
330
    AC_CHECK_HEADER(sys/io.h, HAVE_QCAM="yes", HAVE_QCAM="no")
  fi
  if test "x$HAVE_QCAM" != "xyes";
  then
    AC_MSG_WARN([QuickCam only works on i386-linux])
331
332
  fi
])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
333

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
334
dnl *** Video 4 Linux ***
335
dnl for information about the header/define, see sys/v4l/gstv4lelement.h
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
336
translit(dnm, m, l) AM_CONDITIONAL(USE_V4L, true)
337
GST_CHECK_FEATURE(V4L, [Video 4 Linux], v4lsrc v4lmjpegsrc v4lmjpegsink, [
338
339
340
341
342
  AC_CHECK_DECL(VID_TYPE_MPEG_ENCODER, HAVE_V4L="yes", HAVE_V4L="no", [
#include <sys/types.h>
#define _LINUX_TIME_H
#include <linux/videodev.h>
  ])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
343
344
])

345
dnl *** Video 4 Linux 2***
346
dnl for information about the header/define, see sys/v4l2/gstv4l2element.h
347
348
translit(dnm, m, l) AM_CONDITIONAL(USE_V4L2, true)
GST_CHECK_FEATURE(V4L2, [Video 4 Linux 2], v4l2src, [
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
  AC_MSG_CHECKING([Checking for uptodate v4l2 installation])
  AC_TRY_COMPILE([
#include <sys/types.h>
#include <linux/types.h>
#define _LINUX_TIME_H
#include <linux/videodev2.h>
#if defined(V4L2_MAJOR_VERSION) || defined(V4L2_MINOR_VERSION)
#error too early v4l2 version or no v4l2 at all
#endif
  ], [
return 0;
  ], [ HAVE_V4L2="yes" && AC_MSG_RESULT(yes)],
     [ HAVE_V4L2="no"  && AC_MSG_RESULT(no) &&
       AC_CHECK_HEADER(linux/videodev2.h,
                       [ AC_MSG_WARN([video4linux2 headers were found, but they're old. Please update v4l2 to compile the v4l2 plugins])],
                       [ AC_MSG_WARN([video4linux2 was not found])])])
365
366
])

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
367
368
369
370
371
372
dnl *** Video CD ***
translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
  AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
])

373
374
375
dnl *** CDROM Audio ***
translit(dnm, m, l) AM_CONDITIONAL(USE_CDROM, true)
GST_CHECK_FEATURE(CDROM, [CDROM Audio], cdrom, [
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
  AC_CHECK_HEADERS(linux/cdrom.h) dnl linux
  AC_CHECK_HEADERS(sys/cdio.h) dnl almost everything else
dnl  AC_CHECK_HEADERS(dmedia/cdaudio.h) dnl irix

  if test "${ac_cv_header_linux_cdrom_h}" = "yes" || test "${ac_cv_header_sys_cdio_h}" = "yes" || test "${ac_cv_header_dmedia_cdaudio_h}" = "yes"; then
	case "$host" in 
		*-sun-* | *-*-linux*)
			AC_DEFINE(HAVE_CDROM_SOLARIS,, [Define if cdrom access is in Solaris style])
		;;
		*-*-freebsd*)
			AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style])
		;;
		*-*-netbsd* | *-*-openbsd*)
			AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style])
			AC_DEFINE(HAVE_CDROM_BSD_NETBSD,, [Define if cdrom access uses NetBSD variant])
		;;
		*-*darwin*)
			AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style])
			AC_DEFINE(HAVE_CDROM_BSD_DARWIN,, [Define if cdrom access uses Darwin variant])
		;;
dnl		*-irix-*)
dnl			AC_DEFINE(HAVE_CDROM_IRIX,, [Define if cdrom access is in Irix DMedia style])
dnl		;;
    esac

	HAVE_CDROM="yes"
  else
	HAVE_CDROM="no"
  fi
405
406
])

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
407
dnl *** XVideo ***
408
409
410
411
412
413
dnl Look for the PIC library first, Debian requires it.
dnl Check debian-devel archives for gory details.
dnl 20020110:
dnl At the moment XFree86 doesn't distribute shared libXv due
dnl to unstable API.  On many platforms you CAN NOT link a shared
dnl lib to a static non-PIC lib.  This is what the xvideo GStreamer
414
415
dnl plug-in wants to do.  So Debian distributes a PIC compiled
dnl version of the static lib for plug-ins to link to when it is
416
417
418
419
420
dnl inappropriate to link the main application to libXv directly.
dnl FIXME: add check if this platform can support linking to a
dnl        non-PIC libXv, if not then don not use Xv.
dnl FIXME: perhaps warn user if they have a shared libXv since
dnl        this is an error until XFree86 starts shipping one
421
422
423
424
translit(dnm, m, l) AM_CONDITIONAL(USE_XFREE, true)
GST_CHECK_FEATURE(XFREE, [X11 XFree86], xvideosink-X, [
   if test "-DX_DISPLAY_MISSING" = "$X_CFLAGS"; then
     HAVE_XFREE=no
425
   else
426
     HAVE_XFREE=yes
427
   fi
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
428
])
429
430
   
dnl Check for Xv extension
431
432
433
434
435
436
437
translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions], xvideosink-Xv, [
  if test x$HAVE_XFREE = xyes; then
    AC_CHECK_LIB(Xv_pic, XvQueryExtension,
		 HAVE_XVIDEO="yes", HAVE_XVIDEO="no",
		 $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS)

438
439
440
441
442
443
444
    if test x$HAVE_XVIDEO = xyes; then
      XVIDEO_LIBS="-lXv_pic -lXext"
      AC_SUBST(XVIDEO_LIBS)
    else
      dnl try again using something else if we didn't find it first
      if test x$HAVE_XVIDEO = xno; then
        AC_CHECK_LIB(Xv, XvQueryExtension,
445
446
447
		   HAVE_XVIDEO="yes", HAVE_XVIDEO="no",
		   $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS)

448
449
450
451
452
453
        if test x$HAVE_XVIDEO = xyes; then
          XVIDEO_LIBS="-lXv -lXext"
          AC_SUBST(XVIDEO_LIBS)
        fi
      fi
    fi
454
  fi
455
])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
456
457

dnl Next, check for the optional libraries:
458
dnl These are all libraries used in building plug-ins
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
459
460
461
dnl ================================================
dnl let's try and sort them alphabetically, shall we ?

462
463
464
if test "x$BUILD_EXTERNAL" = "xyes"; then

AC_MSG_NOTICE(Checking for plug-in dependency libraries)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
465

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
466
467
468
dnl *** a52dec ***
translit(dnm, m, l) AM_CONDITIONAL(USE_A52DEC, true)
GST_CHECK_FEATURE(A52DEC, [a52dec], a52dec, [
469
  AC_CHECK_A52DEC(HAVE_A52DEC=yes, HAVE_A52DEC=no)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
470
471
472
473
])

dnl *** aalib ***
translit(dnm, m, l) AM_CONDITIONAL(USE_AALIB, true)
474
GST_CHECK_FEATURE(AALIB, [aasink plug-in], aasink, [
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
475
  AM_PATH_AALIB(, HAVE_AALIB=yes, HAVE_AALIB=no)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
476
  AS_SCRUB_INCLUDE(AALIB_CFLAGS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
477
478
479
480
])

dnl *** alsa ***
translit(dnm, m, l) AM_CONDITIONAL(USE_ALSA, true)
481
GST_CHECK_FEATURE(ALSA, [alsa plug-ins], gstalsa, [
482
   AM_PATH_ALSA(0.9.0, HAVE_ALSA=yes, HAVE_ALSA=no)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
483
484
485
])

dnl *** arts ***
486
487
dnl if mcopidl can't be found there's no use in compiling it
AC_CHECK_PROG(MCOPIDL, mcopidl, yes, no)
488
if test "x$HAVE_MCOPIDL" = "xno";
489
490
491
492
then
  USE_ARTS=no
fi

493
translit(dnm, m, l) AM_CONDITIONAL(USE_ARTS, true)
494
GST_CHECK_FEATURE(ARTS, [arts plug-ins], arts, [
495
496
  AM_PATH_ARTS(, HAVE_ARTS=yes, HAVE_ARTS=no)
])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
497
498

dnl *** artsc ***
499
translit(dnm, m, l) AM_CONDITIONAL(USE_ARTSC, true)
500
GST_CHECK_FEATURE(ARTSC, [artsd plug-ins], artsdsink, [
501
502
  GST_CHECK_ARTSC()
])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
503
504
505

dnl *** audiofile ***
dnl this check uses the GST_CHECK_CONFIGPROG macro
506
507
508
509
translit(dnm, m, l) AM_CONDITIONAL(USE_AUDIOFILE, true)
GST_CHECK_FEATURE(AUDIOFILE, [audiofile], afsink afsrc, [
  translit(dnm, m, l) AC_SUBST(AUDIOFILE_LIBS)
  translit(dnm, m, l) AC_SUBST(AUDIOFILE_CFLAGS)
510
511
512
513
514
515
  dnl check with pkg-config first
  PKG_CHECK_MODULES(AUDIOFILE, audiofile, HAVE_AUDIOFILE="yes", HAVE_AUDIOFILE="no")
  if test "x$HAVE_AUDIOFILE" = "xno"; then
    GST_CHECK_CONFIGPROG(AUDIOFILE, audiofile-config)
    dnl we need this function
    AC_CHECK_LIB(audiofile, afOpenVirtualFile, , HAVE_AUDIOFILE="no")
516
  fi])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
517
518
519
520

dnl *** CDParanoia ***
translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
521
522
523
524
  GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
                      cdda_open, -lm, 
                      cdda_interface.h, 
                      CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
525
526
527
528
529
530
531
532
533
534
535
                      HEADER_DIR="no"
                      FOUND_CDPARANOIA="yes")
  if test "x$FOUND_CDPARANOIA" != "xyes";
  then
    GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
                        cdda_open, -lm, 
                        cdda/cdda_interface.h, 
                        CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
                        HEADER_DIR="yes"
                        FOUND_CDPARANOIA="yes")
  fi
536
537
538
539
540
  if test "x$HEADER_DIR" = "xyes";
  then
    AC_DEFINE_UNQUOTED(CDPARANOIA_HEADERS_IN_DIR, ,
                       defined if cdda headers are in a cdda/ directory)
  fi
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
541
  AC_SUBST(CDPARANOIA_LIBS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
542
543
544
545
546
])
dnl FIXME : add second check somehow if that is necessary
dnl AC_CHECK_LIB(cdda_paranoia, paranoia_init, : , HAVE_CDPARANOIA=no, -lcdda_interface )
dnl AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no)

547
548
549
550
551
dnl *** DIVX ***
translit(dnm, m, l) AM_CONDITIONAL(USE_DIVX, true)
GST_CHECK_FEATURE(DIVX, [divx plugins], divx, [
  HAVE_DIVX=yes
  AC_CHECK_HEADER(encore2.h, ,
552
553
                  [ AC_MSG_WARN([Divx4linux encore headers not found]) &&
                    HAVE_DIVX=no ] )
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
  if [ test x$HAVE_DIVX = xyes ]; then
    AC_MSG_CHECKING([Checking for valid divx4linux encore version])
    AC_TRY_COMPILE([
#include <encore2.h>
#if ENCORE_VERSION != 20021024
#error Wrong version of divx encore libraries
#endif
    ], [
return 0;
    ], [ HAVE_DIVX=yes && AC_MSG_RESULT(yes)],
       [ HAVE_DIVX=no  && AC_MSG_RESULT(no) &&
         AC_MSG_WARN([Wrong version of divx4linux installed]) ])
  fi
  if [ test x$HAVE_DIVX = xyes ]; then
    AC_CHECK_HEADER(decore.h, ,
                    [ AC_MSG_WARN([Divx4linux decoder headers not found]) &&
                      HAVE_DIVX=no ] )
  fi
  if [ test x$HAVE_DIVX = xyes ]; then
    AC_MSG_CHECKING([Checking for valid divx4linux decore version])
    AC_TRY_COMPILE([
#include <decore.h>
#if DECORE_VERSION != 20021112
#error Wrong version of divx decore libraries
#endif
    ], [
return 0;
    ], [ HAVE_DIVX=yes && AC_MSG_RESULT(yes)],
       [ HAVE_DIVX=no  && AC_MSG_RESULT(no) &&
         AC_MSG_WARN([Wrong version of divx4linux installed]) ])
  fi
585
  LIBS="-lm"
586
587
588
589
590
591
592
593
594
595
  if test x$HAVE_DIVX = xyes; then
    AC_CHECK_LIB(divxencore, encore, ,
                 [ AC_MSG_WARN([Divx4linux encore libs not found]) &&
                   HAVE_DIVX=no ] )
  fi
  if test x$HAVE_DIVX = xyes; then
    AC_CHECK_LIB(divxdecore, decore, ,
                 [ AC_MSG_WARN([Divx4linux decore libs not found]) &&
                   HAVE_DIVX=no ] )
  fi
596
597
598
599
600
601
  if test x$HAVE_DIVX = xyes; then
    DIVXENC_LIBS="-ldivxencore -lm"
    DIVXDEC_LIBS="-ldivxdecore -lm"
    AC_SUBST(DIVXENC_LIBS)
    AC_SUBST(DIVXDEC_LIBS)
  fi
602
603
])

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
604
dnl *** dvdread ***
605
translit(dnm, m, l) AM_CONDITIONAL(USE_DVDREAD, true)
606
GST_CHECK_FEATURE(DVDREAD, [dvdread library], dvdreadsrc, [
607
608
  GST_CHECK_LIBHEADER(DVDREAD, dvdread, DVDOpen, , dvdread/dvd_reader.h, DVDREAD_LIBS="-ldvdread")
  AC_SUBST(DVDREAD_LIBS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
609
610
])

611
612
613
614
615
616
dnl *** dvdnav ***
translit(dnm, m, l) AM_CONDITIONAL(USE_DVDNAV, true)
GST_CHECK_FEATURE(DVDNAV, [dvdnav library], dvdnavsrc, [
  translit(dnm, m, l) AC_SUBST(DVDNAV_LIBS)
  translit(dnm, m, l) AC_SUBST(DVDNAV_CFLAGS)
  GST_CHECK_CONFIGPROG(DVDNAV, dvdnav-config)
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
  if test x"$HAVE_DVDNAV" = x"yes"; then
    dnl check version
    DVDNAV_VERSION=`dvdnav-config --version|head -n 1|sed 's/^.*) //'|sed 's/ (.*)//'`
    DVDNAV_MAJOR=`echo $DVDNAV_VERSION | cut -d. -f1 | sed s/[a-zA-Z\-].*//g`
    DVDNAV_MINOR=`echo $DVDNAV_VERSION | cut -d. -f2 | sed s/[a-zA-Z\-].*//g`
    DVDNAV_MICRO=`echo $DVDNAV_VERSION | cut -d. -f3 | sed s/[a-zA-Z\-].*//g`
    if [[ "$DVDNAV_MAJOR" -eq "0" ]] && \
       [[ "$DVDNAV_MINOR" -lt "1" ]]; then
      AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION])
      HAVE_DVDNAV="no"
    elif [[ "$DVDNAV_MAJOR" -eq "0" ]] && \
         [[ "$DVDNAV_MINOR" -eq "1" ]] && \
         [[ "$DVDNAV_MICRO" -lt "7" ]]; then
      AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION])
      HAVE_DVDNAV="no"
      fi
    fi
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
634
  AS_SCRUB_INCLUDE(DVDNAV_CFLAGS)
635
636
])

637
638
639
640
641
642
643
644
645
dnl *** MAS ***
translit(dnm, m, l) AM_CONDITIONAL(USE_MAS, true)
GST_CHECK_FEATURE(MAS, [mas library], massink, [
  translit(dnm, m, l) AC_SUBST(MAS_LIBS)
  translit(dnm, m, l) AC_SUBST(MAS_CFLAGS)
  GST_CHECK_CONFIGPROG(MAS, mas-config)
  AS_SCRUB_INCLUDE(MAS_CFLAGS)
])

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
646
dnl **** ESound ****
647
translit(dnm, m, l) AM_CONDITIONAL(USE_ESD, true)
648
GST_CHECK_FEATURE(ESD, [esound plug-ins], esdsink esdmon, [
649
  AM_PATH_ESD(0.2.12, HAVE_ESD=yes, HAVE_ESD=no)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
650
  AS_SCRUB_INCLUDE(ESD_CFLAGS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
651
652
])

653
dnl **** festival ****
654
dnl translit(dnm, m, l) AM_CONDITIONAL(USE_FESTIVAL, true)
655
dnl GST_CHECK_FEATURE(FESTIVAL, [festival plug-ins], festivalsrc, [
656
657
658
659
660
661
662
663
664
665
666
  dnl NOTE: just using local net connection now, add this lib check
  dnl       in the future if needed
  dnl AC_LANG_PUSH(C++)
  dnl dnl FIXME: took out func to check for
  dnl dnl This check puts festival_tidy_up in extern "C".
  dnl dnl But, at least on Debian as of 20020110, it is compiled with name
  dnl dnl mangling C++ nonsense and symbols can't resolve
  dnl dnl GST_CHECK_LIBHEADER(FESTIVAL, Festival, festival_tidy_up, , festival/festival.h, FESTIVAL_LIBS="-lFestival")
  dnl GST_CHECK_LIBHEADER(FESTIVAL, Festival, , , festival/festival.h, FESTIVAL_LIBS="-lFestival")
  dnl AC_LANG_POP(C++)
  dnl AC_SUBST(FESTIVAL_LIBS)
667
668
dnl  HAVE_FESTIVAL=yes
dnl])
669

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
670
dnl *** FLAC ***
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
671
672
translit(dnm, m, l) AM_CONDITIONAL(USE_FLAC, true)
GST_CHECK_FEATURE(FLAC, [FLAC lossless audio], flacenc flacdec, [
Jeremy Simon's avatar
Jeremy Simon committed
673
  GST_CHECK_LIBHEADER(FLAC, FLAC, FLAC__seekable_stream_encoder_new, -lm, FLAC/all.h, FLAC_LIBS="-lFLAC")
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
674
  AC_SUBST(FLAC_LIBS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
675
676
])

677
678
679
dnl *** FFMPEG ***
translit(dnm, m, l) AM_CONDITIONAL(USE_FFMPEG, true)
GST_CHECK_FEATURE(FFMPEG, [ffmpeg plug-ins], ffmpeg, [
680
681
682
683
  # only slurp in the case where we are in CVS mode;
  # prerelease and release should get it disted
  if test "x$GST_PLUGINS_VERSION_NANO" = x1; then
    AC_MSG_NOTICE(slurping FFmpeg CVS source)
684
    AS_SLURP_FFMPEG(gst-libs/ext/ffmpeg, 2003-07-05 22:00 GMT,
685
686
687
688
689
                    HAVE_FFMPEG=yes, HAVE_FFMPEG=no)
  else
    AC_MSG_NOTICE(FFmpeg CVS code should be included already)
    HAVE_FFMPEG=yes
  fi
690
691
692
  # we only bother with uninstalled (included) ffmpeg for now
  AC_DEFINE_UNQUOTED(HAVE_FFMPEG_UNINSTALLED, 1,
                     [defined if we use uninstalled ffmpeg])
693
694
])

695
696
697
dnl *** GDK pixbuf ***
translit(dnm, m, l) AM_CONDITIONAL(USE_GDK_PIXBUF, true)
GST_CHECK_FEATURE(GDK_PIXBUF, [GDK pixbuf], gdkpixbufsrc, [
698
  if test $HAVE_GTK_22 = "yes"; then HAVE_GDK_PIXBUF=yes; fi;
699
700
])

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
701
702
703
dnl *** Gnome VFS ***
translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
704
705
706
  PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0, HAVE_GNOME_VFS="yes", HAVE_GNOME_VFS="no")
  AC_SUBST(GNOME_VFS_CFLAGS)
  AC_SUBST(GNOME_VFS_LIBS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
707
708
709
])

dnl *** gsm ***
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
710
711
translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
712
  GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
Andy Wingo's avatar
Andy Wingo committed
713
714
715
  if test $HAVE_GSM != "yes"; then
    GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
    if test $HAVE_GSM = "yes"; then 
David I. Lehn's avatar
David I. Lehn committed
716
      AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
Andy Wingo's avatar
Andy Wingo committed
717
718
    fi
  fi
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
719
  AC_SUBST(GSM_LIBS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
720
721
722
])

dnl *** Hermes ***
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
723
724
725
726
translit(dnm, m, l) AM_CONDITIONAL(USE_HERMES, true)
GST_CHECK_FEATURE(HERMES, [Hermes library], colorspace, [
  GST_CHECK_LIBHEADER(HERMES, Hermes, Hermes_ConverterInstance, , Hermes/Hermes.h, HERMES_LIBS="-lHermes")
], AC_SUBST(HERMES_LIBS))
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
727

Andy Wingo's avatar
Andy Wingo committed
728
dnl *** http ***
Christian Schaller's avatar
Christian Schaller committed
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
dnl translit(dnm, m, l) AM_CONDITIONAL(USE_HTTP, true)
dnl GST_CHECK_FEATURE(HTTP, [http plug-ins], gsthttpsrc, [
dnl  dnl FIXME: need to check for header
dnl  GHTTP_LIBS=
dnl  GST_HTTPSRC_GET_TYPE=
dnl  if test x$USE_GLIB2 = xyes; then
dnl    AC_MSG_WARN(ghttp disabled for glib2.0)
dnl  else
dnl    AC_CHECK_LIB(ghttp, ghttp_request_new,
dnl      [HTTP_LIBS="-lghttp"
dnl       GST_HTTPSRC_GET_TYPE="gst_httpsrc_get_type"
dnl       HAVE_HTTP=yes
dnl      ], :, $LIBS)
dnl  fi
dnl  AC_SUBST(HTTP_LIBS)
dnl  AC_SUBST(GST_HTTPSRC_GET_TYPE)
dnl ])
Andy Wingo's avatar
Andy Wingo committed
746

747
748
749
750
dnl *** ivorbis ***
dnl AM_PATH_IVORBIS only takes two options
translit(dnm, m, l) AM_CONDITIONAL(USE_IVORBIS, true)
GST_CHECK_FEATURE(IVORBIS, [integer vorbis plug-in], ivorbisdec, [
751
752
753
754
755
756
757
758
  IVORBIS_LIBS=
  IVORBIS_CFLAGS=
  AC_CHECK_LIB(vorbisidec, vorbis_block_init,
    [IVORBIS_LIBS=-lvorbisidec
     HAVE_IVORBIS=yes],
    HAVE_IVORBIS=no)
  AC_SUBST(IVORBIS_LIBS)
  AC_SUBST(IVORBIS_CFLAGS)
759
760
])

761
762
dnl *** Jack ***
translit(dnm, m, l) AM_CONDITIONAL(USE_JACK, true)
Andy Wingo's avatar
Andy Wingo committed
763
764
GST_CHECK_FEATURE(JACK, Jack, jack, [
  PKG_CHECK_MODULES(JACK, jack >= 0.29.0, HAVE_JACK="yes", HAVE_JACK="no")
765
766
767
768
769
770
771
772
  AC_SUBST(JACK_CFLAGS)
  AC_SUBST(JACK_LIBS)
])

dnl *** jpeg ***
dnl FIXME: we could use header checks here as well IMO
translit(dnm, m, l) AM_CONDITIONAL(USE_JPEG, true)
GST_CHECK_FEATURE(JPEG, [jpeg], jpegenc jpegdec, [
Ronald S. Bultje's avatar
Ronald S. Bultje committed
773
774
775
776
777
778
779
780
781
782
783
784
785
  AC_ARG_WITH(jpeg-mmx,
    [  --with-jpeg-mmx, path to MMX'ified JPEG library])
  OLD_LIBS="$LIBS"
  if test x$with_jpeg_mmx != x; then
    LIBS="$LIBS -L$with_jpeg_mmx"
  fi
  AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
  JPEG_LIBS="$LIBS -ljpeg-mmx"
  LIBS="$OLD_LIBS"
  if test x$HAVE_JPEG != xyes; then
    AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
    JPEG_LIBS="-ljpeg"
  fi
786
787
788
  AC_SUBST(JPEG_LIBS)
])

789
790
791
792
793
794
dnl *** ladspa ***
translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
  AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
])

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
795
dnl *** lame ***
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
796
797
translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true)
GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [
798
  GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, -lm, lame/lame.h, HAVE_LAME="yes" LAME_LIBS="-lmp3lame")
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
799
])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
800
AC_SUBST(LAME_LIBS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
801

802
803
804
805
806
807
808
809
dnl *** libcolorspace ***
translit(dnm, m, l) AM_CONDITIONAL(USE_LCS, true)
GST_CHECK_FEATURE(LCS, Lcs, lcs, [
  PKG_CHECK_MODULES(LCS, lcs, HAVE_LCS="yes", HAVE_LCS="no")
  AC_SUBST(LCS_CFLAGS)
  AC_SUBST(LCS_LIBS)
])

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
810
811
812
813
814
815
816
817
dnl *** libdv ***
translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDV, true)
GST_CHECK_FEATURE(LIBDV, [libdv DV/video decoder], dvdec, [
  PKG_CHECK_MODULES(LIBDV, libdv >= 0.98, HAVE_LIBDV="yes", HAVE_LIBDV="no")
  AC_SUBST(LIBDV_CFLAGS)
  AC_SUBST(LIBDV_LIBS)
])

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
818
819
820
821
822
823
824
825
dnl *** libfame ***
translit(dnm, m, l) AM_CONDITIONAL(USE_LIBFAME, true)
GST_CHECK_FEATURE(LIBFAME, [libfame MPEG1/4 encoder], libfame, [
  AM_PATH_LIBFAME(0.9.0, HAVE_LIBFAME="yes", HAVE_LIBFAME="no")
  AC_SUBST(LIBFAME_CFLAGS)
  AC_SUBST(LIBFAME_LIBS)
])

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
826
827
828
829
830
831
832
833
834
dnl *** libpng ***
translit(dnm, m, l) AM_CONDITIONAL(USE_LIBPNG, true)
GST_CHECK_FEATURE(LIBPNG, [libpng PNG encoder], pngenc, [
  PKG_CHECK_MODULES(LIBPNG, libpng12, HAVE_LIBPNG="yes", HAVE_LIBPNG="no")
  AC_SUBST(LIBPNG_CFLAGS)
  AC_SUBST(LIBPNG_LIBS)
])


Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
835
836
dnl *** mad ***
dnl FIXME: we could use header checks here as well IMO
837
838
translit(dnm, m, l) AM_CONDITIONAL(USE_MAD, true)
GST_CHECK_FEATURE(MAD, [mad mp3 decoder], mad, [
839
840
841
842
843
844
845
846
847
848
849
850
851
  dnl check with pkg-config first
  PKG_CHECK_MODULES(MAD, mad id3tag, HAVE_MAD="yes", HAVE_MAD="no")
  if test "x$HAVE_MAD" = "xno"; then
    dnl fall back to oldskool detection
    AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_MAD="yes" MAD_LIBS="-lmad")
    if test "x$HAVE_MAD" = "xyes"; then
      # installed with mad >= 0.14
      HAVE_MAD="no"
      save_libs=$LIBS
      LIBS="-lz"
      AC_CHECK_LIB(id3tag, id3_tag_query, HAVE_MAD="yes" MAD_LIBS="$MAD_LIBS -lid3tag")
      LIBS=$save_LIBS
    fi
Andy Wingo's avatar
Andy Wingo committed
852
  fi    
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
853
])
854
AC_SUBST(MAD_LIBS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
855

856
857
dnl *** matroska ***
translit(dnm, m, l) AM_CONDITIONAL(USE_MATROSKA, true)
858
859
860
861
862
863
GST_CHECK_FEATURE(MATROSKA, [matroska muxer/demuxer], matroska muxer/demuxer, [
  PATH_EBML([HAVE_MATROSKA=yes], [HAVE_MATROSKA=no])
  if test x$HAVE_MATROSKA = xyes; then
    PATH_MATROSKA(0.4.4, [HAVE_MATROSKA=yes], [HAVE_MATROSKA=no])
  fi
])
864

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
865
dnl *** mikmod ***
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
866
translit(dnm, m, l) AM_CONDITIONAL(USE_MIKMOD, true)
867
GST_CHECK_FEATURE(MIKMOD, [mikmod plug-in], mikmod, [
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
868
869
870
  AM_PATH_LIBMIKMOD(, HAVE_MIKMOD=yes, HAVE_MIKMOD=no)
  AC_SUBST(MIKMOD_LIBS, "$LIBMIKMOD_LIBS")
  AC_SUBST(MIKMOD_CFLAGS, "$LIBMIKMODCFLAGS")
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
871
872
873
874
])

dnl *** mpeg2dec ***
translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true)
875
GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [
876
  PKG_CHECK_MODULES(MPEG2DEC, libmpeg2 >= 0.3.1,
877
878
879
      HAVE_MPEG2DEC="yes", HAVE_MPEG2DEC="no")
  AC_SUBST(MPEG2DEC_CFLAGS)
  AC_SUBST(MPEG2DEC_LIBS)
880
])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
881

882
883
884
885
dnl *** mplex ***
translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [HAVE_MPLEX=$HAVE_CXX])

886
887
888
889
890
891
892
893
894
dnl *** pango ***
translit(dnm, m, l) AM_CONDITIONAL(USE_PANGO, true)
GST_CHECK_FEATURE(PANGO, [pango], pango, [
  PKG_CHECK_MODULES(PANGO, pango pangoft2,
      HAVE_PANGO="yes", HAVE_PANGO="no")
  AC_SUBST(PANGO_CFLAGS)
  AC_SUBST(PANGO_LIBS)
])

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
895
896
897
dnl *** raw1394 ***
translit(dnm, m, l) AM_CONDITIONAL(USE_RAW1394, true)
GST_CHECK_FEATURE(RAW1394, [raw1394 library], dv1394src, [
898
  GST_CHECK_LIBHEADER(RAW1394, raw1394, raw1394_new_handle,, libraw1394/raw1394.h, RAW1394_LIBS="-lraw1394")
899
  AC_SUBST(RAW1394_LIBS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
900
901
902
])

dnl *** SDL ***
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
903
translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
904
GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink, [
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
905
 AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
906
907
908
])

dnl *** shout ***
909
translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT, true)
910
GST_CHECK_FEATURE(SHOUT, [shout plug-in], icecastsend, [
911
912
  GST_CHECK_LIBHEADER(SHOUT, shout, shout_init_connection,, shout/shout.h, SHOUT_LIBS="-lshout")
  AC_SUBST(SHOUT_LIBS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
913
914
])

915
916
dnl *** shout2 *** 
translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT2, true)
917
GST_CHECK_FEATURE(SHOUT2, [shout2 plug-in], shout2send, [
David I. Lehn's avatar
David I. Lehn committed
918
  AM_PATH_SHOUT2(HAVE_SHOUT2=yes, HAVE_SHOUT2=no)
919
920
  AC_SUBST(SHOUT2_CFLAGS)
  AC_SUBST(SHOUT2_LIBS)
921
922
])

923
924
dnl *** sidplay ***
translit(dnm, m, l) AM_CONDITIONAL(USE_SIDPLAY, true)
925
GST_CHECK_FEATURE(SIDPLAY, [sidplay plug-in], sidplay, [
926
  GST_PATH_SIDPLAY()
927
928
])

929
930
dnl *** smoothwave ***
translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHWAVE, true)
931
GST_CHECK_FEATURE(SMOOTHWAVE, [smoothwave plug-in], smoothwave, [
932
933
934
  if test $HAVE_GTK = "yes"; then HAVE_SMOOTHWAVE=yes; fi;
])

935
936
937

dnl *** snapshot ***
translit(dnm, m, l) AM_CONDITIONAL(USE_LIBPNG, true)
938
GST_CHECK_FEATURE(LIBPNG, [snapshot plug-in], snapshot, [
David I. Lehn's avatar
David I. Lehn committed
939
  GST_CHECK_LIBHEADER(LIBPNG, png, png_read_info, -lz -lm, png.h, LIBPNG_LIBS="-lpng -lz -lm")
940
941
942
  AC_SUBST(LIBPNG_LIBS)
])

943
944
945
946
947
948
949
950
dnl *** speex ***
translit(dnm, m, l) AM_CONDITIONAL(USE_SPEEX, true)
GST_CHECK_FEATURE(SPEEX, [speex plug-in], speex, [
  GST_CHECK_LIBHEADER(SPEEX, speex, speex_bits_init, , speex.h, HAVE_SPEEX="yes" SPEEX_LIBS="-lspeex")
  AC_SUBST(SPEEX_CFLAGS)
  AC_SUBST(SPEEX_LIBS)
])

951
952
953
954
955
956
957
958
dnl *** sndfile ***
translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfsrc sfsink, [
  PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.0, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
  AC_SUBST(SNDFILE_CFLAGS)
  AC_SUBST(SNDFILE_LIBS)
])

David Schleef's avatar
David Schleef committed
959
960
961
dnl *** swfdec ***
translit(dnm, m, l) AM_CONDITIONAL(USE_SWFDEC, true)
GST_CHECK_FEATURE(SWFDEC, [swfdec plug-in], swfdec, [
962
  PKG_CHECK_MODULES(SWFDEC, swfdec >= 0.1.3.1, HAVE_SWFDEC=yes, HAVE_SWFDEC=no)
David Schleef's avatar
David Schleef committed
963
964
965
966
  AC_SUBST(SWFDEC_CFLAGS)
  AC_SUBST(SWFDEC_LIBS)
])

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
967
dnl *** tarkin ***
968
dnl for now the sources are included in the plug-in
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
969
970
971
972
973
974
dnl and should be moved to ext-libs/ perhaps
translit(dnm, m, l) AM_CONDITIONAL(USE_TARKIN, true)
GST_CHECK_FEATURE(TARKIN, [tarkinenc tarkindec], tarkin, [
  HAVE_TARKIN="yes"
])

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
975
976
977
dnl *** vorbis ***
dnl AM_PATH_VORBIS only takes two options
translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
978
GST_CHECK_FEATURE(VORBIS, [vorbis plug-in], vorbisenc vorbisdec, [
979
  XIPH_PATH_VORBIS(HAVE_VORBIS=yes, HAVE_VORBIS=no)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
980
  AS_SCRUB_INCLUDE(VORBIS_CFLAGS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
981
982
])

983
984
985
986
987
988
989
990
991
dnl *** XVID ***
translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
  HAVE_XVID=yes
  AC_CHECK_HEADER(xvid.h, ,
                  [ AC_MSG_WARN([Xvid headers not found]) &&
                    HAVE_XVID=no ] )
  LIBS="-lm"
  AC_CHECK_LIB(xvidcore, xvid_encore, ,
992
               [ AC_MSG_WARN([Xvid encore libs not found]) &&
993
                 HAVE_XVID=no ] )
994
995
996
997
998
999
1000
  AC_CHECK_LIB(xvidcore, xvid_decore, ,
               [ AC_MSG_WARN([Xvid decore libs not found]) &&
                 HAVE_XVID=no ] )
  if test x$HAVE_XVID = xyes; then
    XVID_LIBS="-lxvidcore -lm"
    AC_SUBST(XVID_LIBS)
  fi