Update xvid plugin to latest xvid (1.0.0-beta3) API.
[platform/upstream/gst-plugins-good.git] / configure.ac
1 dnl autoconf configuration file for gst-plugins 
2 AC_INIT
3 AC_CANONICAL_TARGET([])
4
5 dnl We disable static building for development, for time savings
6 dnl this goes before AS_LIBTOOL to appease autoconf
7 dnl *NOTE*: dnl this line before release, so release does static too
8 AM_DISABLE_STATIC
9
10 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
11 AM_MAINTAINER_MODE
12
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, 3, 1, GST_CVS="no", GST_CVS="yes")
16
17 dnl add a suffix to apps
18 if test x$program_suffix = xNONE ; then
19   program_suffix=-$GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR
20 fi
21
22 AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
23
24 dnl our libraries and install dirs use major.minor as a version
25 GST_MAJORMINOR=$GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR
26 AC_SUBST(GST_MAJORMINOR)
27
28 dnl CURRENT, REVISION, AGE
29 dnl - library source changed -> increment REVISION
30 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
31 dnl - interfaces added -> increment AGE
32 dnl - interfaces removed -> AGE = 0
33 AS_LIBTOOL(GST_PLUGINS, 2, 0, 0)
34
35 dnl FIXME take something else ?
36 AC_CONFIG_SRCDIR([gst/law/alaw.c])
37 AM_CONFIG_HEADER(config.h)
38
39 dnl Add parameters for aclocal
40 dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
41 ACLOCAL_FLAGS="-I m4 -I common/m4"
42 AC_SUBST(ACLOCAL_AMFLAGS, $ACLOCAL_FLAGS)
43
44 AC_PROG_CC
45 AM_PROG_CC_STDC
46 AM_PROG_AS
47 AS="${CC}"
48
49 dnl decide on error flags
50 AS_COMPILER_FLAG(-Wall, GST_WALL="yes", GST_WALL="no")
51
52 if test "x$GST_WALL" = "xyes"; then
53    GST_ERROR="$GST_ERROR -Wall"
54
55    if test "x$GST_CVS" = "xyes"; then
56      AS_COMPILER_FLAG(-Werror,GST_ERROR="$GST_ERROR -Werror",GST_ERROR="$GST_ERROR")
57      GST_ERROR="$GST_ERROR -DG_DISABLE_DEPRECATED"
58    fi
59 fi
60
61 dnl determine c++ compiler
62 AC_PROG_CXX
63 dnl determine if c++ is available on this system
64 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
65 dnl determine c++ preprocessor
66 AC_PROG_CXXCPP
67 AC_ISC_POSIX
68
69 AC_HEADER_STDC([])
70
71 dnl Check for a way to display the function name in debug output
72 GST_CHECK_FUNCTION()
73
74 dnl define correct errorlevel for debugging messages. We want to have GST_ERROR
75 dnl messages printed when running cvs builds
76 if test "x$GST_CVS" = "xyes"; then
77   AC_DEFINE(GST_LEVEL_DEFAULT, GST_LEVEL_ERROR, [Default errorlevel to use])
78 fi
79
80 dnl ############################################
81 dnl # Super Duper options for plug-in building #
82 dnl ############################################
83
84 dnl ext plug-ins; plug-ins that have external dependencies
85 GST_CHECK_FEATURE(EXTERNAL, [enable building of plug-ins with external deps],,
86 [HAVE_EXTERNAL=yes],enabled,
87 [
88   AC_MSG_WARN(building external plug-ins)
89   BUILD_EXTERNAL="yes"
90 ],[
91   AC_MSG_WARN(all plug-ins with external dependencies will not be built)
92   BUILD_EXTERNAL="no"
93 ])
94 # make BUILD_EXTERNAL available to Makefile.am
95 AM_CONDITIONAL(BUILD_EXTERNAL, test "x$BUILD_EXTERNAL" = "xyes")
96
97 dnl experimental plug-ins; stuff that hasn't had the dust settle yet
98 dnl read 'builds, but might not work'UTO
99 GST_CHECK_FEATURE(EXPERIMENTAL, [enable building of experimental plug-ins],,
100 [HAVE_EXPERIMENTAL=yes],disabled,
101 [
102   AC_MSG_WARN(building experimental plug-ins)
103   USE_TARKIN="yes"
104   USE_SHOUT2="yes"
105 ],[
106   AC_MSG_NOTICE(not building experimental plug-ins)
107   USE_TARKIN="no"
108   USE_SHOUT2="no"
109 ])
110
111 dnl broken plug-ins; stuff that doesn't seem to build at the moment
112 GST_CHECK_FEATURE(BROKEN, [enable building of broken plug-ins],,
113 HAVE_BROKEN=yes,disabled,
114 [  
115   AC_MSG_WARN([building broken plug-ins -- no bug reports on these, only patches :)])
116 ],[
117   AC_MSG_NOTICE([not building broken plug-ins])
118 ])
119
120 dnl ##############################
121 dnl # Do automated configuration #
122 dnl ##############################
123
124 dnl Check for tools:
125 dnl ================
126
127 dnl allow for different autotools
128 AS_AUTOTOOLS_ALTERNATE()
129
130 dnl modify pkg-config path
131 AC_ARG_WITH(pkg-config-path, 
132    AC_HELP_STRING([--with-pkg-config-path],[colon-separated list of pkg-config(1) dirs]),
133    [export PKG_CONFIG_PATH=${withval}])
134
135 dnl Check for nasm
136 AC_PATH_PROG(NASM_PATH, nasm, no)
137 AC_SUBST(NASM_PATH)
138 if test x$NASM_PATH = xno; then
139   AC_MSG_WARN(Couldn't find nasm)
140   HAVE_NASM="no"
141 else
142   AC_DEFINE(HAVE_NASM, 1, [Define if NASM, the netwide assembler, is available])
143   HAVE_NASM="yes"
144 fi
145
146 dnl check for gconftool-2
147 translit(dnm, m, l) AM_CONDITIONAL(USE_GCONFTOOL, true)
148 GST_CHECK_FEATURE(GCONFTOOL, [GConf schemas], , [
149   AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
150   if test x$GCONFTOOL = xno; then
151     AC_MSG_WARN(Not installing GConf schemas)
152     HAVE_GCONFTOOL="no"
153   else
154     AM_GCONF_SOURCE_2
155     HAVE_GCONFTOOL="yes"
156   fi
157   AC_SUBST(HAVE_GCONFTOOL)
158 ])
159
160 dnl check for GConf libraries
161 translit(dnm, m, l) AM_CONDITIONAL(USE_GCONF, true)
162 GST_CHECK_FEATURE(GCONF, [GConf libraries], , [
163   PKG_CHECK_MODULES(GCONF, gconf-2.0, HAVE_GCONF="yes", HAVE_GCONF="no")
164   AC_SUBST(GCONF_CFLAGS)
165   AC_SUBST(GCONF_LIBS)
166 ])
167
168 dnl check for gstreamer; uninstalled is selected preferentially -- see pkg-config(1)
169 PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR >= $GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR.$GST_PLUGINS_VERSION_MICRO,
170   HAVE_GST="yes", HAVE_GST="no")
171
172 if test "x$HAVE_GST" = "xno"; then
173   AC_MSG_ERROR(no GStreamer found)
174 fi
175
176 GST_TOOLS_DIR=`pkg-config --variable=toolsdir gstreamer-$GST_MAJORMINOR`
177 if test -z $GST_TOOLS_DIR; then
178   AC_MSG_ERROR([no tools dir defined in GStreamer pkg-config file; core upgrade needed.])
179 fi
180 AC_SUBST(GST_TOOLS_DIR)
181
182 dnl check for gstreamer-control; uninstalled is selected preferentially
183 PKG_CHECK_MODULES(GST_CONTROL, gstreamer-control-$GST_MAJORMINOR >= $GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR.$GST_PLUGINS_VERSION_MICRO,
184   HAVE_GST_CONTROL="yes", HAVE_GST_CONTROL="no")
185
186 if test "x$HAVE_GST_CONTROL" = "xno"; then
187   AC_MSG_ERROR(no GStreamer Control Libs found)
188 fi
189
190 AC_SUBST(GST_CONTROL_LIBS)
191
192 dnl Set up conditionals for (target) architecture:
193 dnl ==============================================
194
195 dnl Determine CPU
196 case "x${target_cpu}" in
197   xi?86 | k?) HAVE_CPU_I386=yes
198               AC_DEFINE(HAVE_CPU_I386, 1, [Define if the target CPU is an x86])
199               dnl FIXME could use some better detection
200               dnl       (ie CPUID)
201               case "x${target_cpu}" in
202                 xi386 | xi486) ;;
203                 *)             AC_DEFINE(HAVE_RDTSC, 1, [Define if RDTSC is available]) ;;
204               esac ;;
205   xpowerpc)   HAVE_CPU_PPC=yes
206               AC_DEFINE(HAVE_CPU_PPC, 1, [Define if the target CPU is a PPC]) ;;
207   xalpha)     HAVE_CPU_ALPHA=yes
208               AC_DEFINE(HAVE_CPU_ALPHA, 1, [Define if the target CPU is an Alpha]) ;;
209   xarm*)      HAVE_CPU_ARM=yes
210               AC_DEFINE(HAVE_CPU_ARM, 1, [Define if the target CPU is an ARM]) ;;
211   xsparc*)    HAVE_CPU_SPARC=yes
212               AC_DEFINE(HAVE_CPU_SPARC, 1, [Define if the target CPU is a PPC]) ;;
213   xmips*)     HAVE_CPU_MIPS=yes
214               AC_DEFINE(HAVE_CPU_MIPS, 1, [Define if the target CPU is a MIPS]) ;;
215   xhppa*)     HAVE_CPU_HPPA=yes
216               AC_DEFINE(HAVE_CPU_HPPA, 1, [Define if the target CPU is a HPPA]) ;;
217 esac
218 # make these available to automake
219 AM_CONDITIONAL(HAVE_CPU_I386,       test "x$HAVE_CPU_I386" = "xyes")
220 AM_CONDITIONAL(HAVE_CPU_PPC,        test "x$HAVE_CPU_PPC" = "xyes")
221 AM_CONDITIONAL(HAVE_CPU_ALPHA,      test "x$HAVE_CPU_ALPHA" = "xyes")
222 AM_CONDITIONAL(HAVE_CPU_ARM,        test "x$HAVE_CPU_ARM" = "xyes")
223 AM_CONDITIONAL(HAVE_CPU_SPARC,      test "x$HAVE_CPU_SPARC" = "xyes")
224
225 dnl Determine endianness
226 AC_C_BIGENDIAN
227
228 dnl Check for fast float to int casting as defined in C99
229 AC_C99_FUNC_LRINT()
230 AC_C99_FUNC_LRINTF()
231
232 dnl Check for essential libraries first:
233 dnl ====================================
234
235 GST_GLIB2_CHECK()
236
237 dnl Check for additional libraries that we might use:
238 dnl =================================================
239 dnl GTK
240 HAVE_GTK=NO
241 PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.2.0, HAVE_GTK_22=yes, HAVE_GTK_22=no)
242 if test "x$HAVE_GTK_22" = "xyes"; then
243   HAVE_GTK=yes
244   GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-2.0`
245   AC_SUBST(GTK_VERSION)
246   GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
247   GDK_PIXBUF_LIBDIR=`$PKG_CONFIG --variable=libdir gdk-pixbuf-2.0`
248   GDK_PIXBUF_PREFIXDIR=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
249   AC_SUBST(GTK_BASE_DIR)
250 else
251   PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK_20=yes, HAVE_GTK_20=no)
252 fi
253 if test "x$HAVE_GTK_20" = "xyes"; then
254   HAVE_GTK=yes
255 fi
256 GTK_CFLAGS=$GTK2_CFLAGS
257 GTK_LIBS=$GTK2_LIBS
258 AC_SUBST(GTK_LIBS)
259 AC_SUBST(GTK_CFLAGS)
260 AC_SUBST(HAVE_GTK)
261
262 # gdk_pixbuf gstreamer loader is considered experimental, so disable
263 # by default
264 if test "x$HAVE_GTK_22" = "xyes"; then
265   HAVE_GDK_LOADERS=yes
266 else
267   HAVE_GDK_LOADERS=no
268 fi
269
270 AC_ARG_ENABLE(gdk-pixbuf-loader,
271   AC_HELP_STRING([--enable-gdk-pixbuf-loader],
272               [whether to enable building of gdk_pixbuf loader]),
273               :, HAVE_GDK_LOADERS="no")
274
275 # allow customization of pixbuf loader install location
276 # when nothing specified, adhere to prefix settings
277 # when called without any option with this argument, autodetect
278 # when called with a path, set to the given path
279
280 if test "x$HAVE_GDK_LOADERS" == "xyes"; then
281   AC_PATH_PROG(QUERYLOADERS, gdk-pixbuf-query-loaders, no)
282   AC_ARG_WITH(gdk-pixbuf-loader-dir, 
283      AC_HELP_STRING([--with-gdk-pixbuf-loader-dir],
284         [directory to install the gdk_pixbuf loader (none for pkg-config default)]),
285      [
286       if test "x${withval}" != xyes ; then
287         GDK_PIXBUF_LOADER_DIR="${withval}"
288       else
289         GDK_PIXBUF_LOADER_DIR="$GDK_PIXBUF_LIBDIR/gtk-2.0/\$GTK_VERSION/loaders"
290       fi
291      ],
292      # nothing specified
293      GDK_PIXBUF_LOADER_DIR=${libdir}/gtk-2.0/\$GTK_VERSION/loaders
294   )
295   AS_AC_EXPAND(GDK_PIXBUF_LOADER_DIR, $GDK_PIXBUF_LOADER_DIR)
296   AC_SUBST(GDK_PIXBUF_LOADER_DIR)
297   AC_MSG_NOTICE([Putting GTK+-2 pixbuf loaders in $GDK_PIXBUF_LOADER_DIR])
298   
299   # allow customization of pixbuf loader configuration file
300   # when nothing specified, adhere to prefix settings
301   # when called without any option with this argument, autodetect
302   # when called with a path, set to the given path
303   AC_ARG_WITH(gdk-pixbuf-conf-dir, 
304      AC_HELP_STRING([--with-gdk-pixbuf-conf-dir],
305         [directory to install the gdk_pixbuf config (none for pkg-config default)]),
306      [
307       if test "x${withval}" != xyes ; then
308         GDK_PIXBUF_CONF_DIR="${withval}"
309       else
310         GDK_PIXBUF_CONF_DIR="$GDK_PIXBUF_PREFIXDIR/etc/gtk-2.0/"
311       fi
312      ],
313      # nothing specified
314      GDK_PIXBUF_LOADER_DIR=${libdir}/gtk-2.0/\$GTK_VERSION/loaders
315      GDK_PIXBUF_CONF_DIR=${sysconfdir}/gtk-2.0
316   )
317   AS_AC_EXPAND(GDK_PIXBUF_CONF_DIR, $GDK_PIXBUF_CONF_DIR)
318   AC_SUBST(GDK_PIXBUF_CONF_DIR)
319   AC_MSG_NOTICE([Putting GTK+-2 pixbuf loader config in $GDK_PIXBUF_CONF_DIR])
320 fi
321 AM_CONDITIONAL(HAVE_GDK_LOADERS, test "x$HAVE_GDK_LOADERS" = "xyes")
322
323 dnl ===========================================================================
324 dnl ============================= gst plug-ins ================================
325 dnl ===========================================================================
326
327 plugindir="\$(libdir)/gstreamer-$GST_MAJORMINOR"
328 AC_SUBST(plugindir)
329
330 GST_PLUGIN_LDFLAGS='-module -avoid-version'
331 AC_SUBST(GST_PLUGIN_LDFLAGS)
332
333 dnl these are all the gst plug-ins, compilable without additional libs
334 GST_PLUGINS_ALL="\
335         ac3parse \
336         adder \
337         asfdemux \
338         audioconvert \
339         audioscale \
340         auparse \
341         avi \
342         cdxaparse \
343         chart \
344         cutter \
345         debug \
346         deinterlace \
347         effectv \
348         festival \
349         filter \
350         flx \
351         goom \
352         id3 \
353         intfloat \
354         law \
355         level \
356         matroska \
357         median \
358         mixmatrix \
359         mpeg1sys \
360         mpeg1videoparse \
361         mpeg2sub \
362         mpegaudio \
363         mpegaudioparse \
364         mpegstream \
365         monoscope \
366         oneton \
367         overlay \
368         passthrough \
369         playondemand \
370         qtdemux \
371         realmedia \
372         rtjpeg \
373         rtp \
374         silence \
375         sine \
376         smooth \
377         smpte \
378         spectrum \
379         speed \
380         stereo \
381         switch \
382         synaesthesia \
383         tags \
384         tcp \
385         typefind \
386         udp \
387         vbidec \
388         videocrop \
389         videodrop \
390         videoflip \
391         videofilter \
392         videoscale \
393         videotestsrc \
394         volenv \
395         volume \
396         wavenc \
397         wavparse \
398         y4m"
399
400 dnl see if we can build C++ plug-ins
401 if test "x$HAVE_CXX" = "xyes"; then
402   GST_PLUGINS_ALL="$GST_PLUGINS_ALL \
403                   modplug"
404 else
405   AC_MSG_WARN([Not compiling plug-ins requiring C++ compiler])
406 fi
407
408 AC_SUBST(GST_PLUGINS_ALL)
409
410 GST_PLUGINS_SELECTED=""
411
412 AC_ARG_WITH(plugins,
413     AC_HELP_STRING([--with-plugins],[comma-separated list of plug-ins to compile]),
414     [for i in `echo $withval | tr , ' '`; do
415         if test -n `echo $i | grep $GST_PLUGINS_ALL`; then
416             GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED $i"
417         else
418             echo "plug-in $i not recognized, ignoring..."
419         fi
420     done],
421     [GST_PLUGINS_SELECTED=$GST_PLUGINS_ALL])
422
423 AC_SUBST(GST_PLUGINS_SELECTED)
424
425 dnl ==========================================================================
426 dnl ============================= sys plug-ins ================================
427 dnl ==========================================================================
428
429 dnl *** DXR3 card ***
430 translit(dnm, m, l) AM_CONDITIONAL(USE_DXR3, true)
431 GST_CHECK_FEATURE(DXR3, [DXR3 hardware MPEG DVD decoder],
432   dxr3videosink dxr3audiosink dxr3spusink, [
433   HAVE_DXR3=yes
434   AC_CHECK_HEADER(linux/em8300.h, ,
435                   [ AC_MSG_WARN([DXR3/em8300 header file not found]) &&
436                     HAVE_DXR3=no ] )
437   AC_CHECK_HEADER(linux/soundcard.h, ,
438                   [ AC_MSG_WARN([Generic sound header file not found]) &&
439                     HAVE_DXR3=no ] )
440 ])
441
442 dnl *** OSS audio ***
443 translit(dnm, m, l) AM_CONDITIONAL(USE_OSS, true)
444 GST_CHECK_FEATURE(OSS, [OSS audio], osssrc osssink, [
445   AC_CHECK_HEADER(sys/soundcard.h, HAVE_OSS="yes", HAVE_OSS="no")
446 ])
447
448 dnl *** QuickCam ***
449 translit(dnm, m, l) AM_CONDITIONAL(USE_QCAM, true)
450 GST_CHECK_FEATURE(QCAM, [QuickCam], qcamsrc, [
451   if test "x$HAVE_CPU_I386" != "xyes";
452   then
453     HAVE_QCAM="no"
454   else
455     AC_CHECK_HEADER(sys/io.h, HAVE_QCAM="yes", HAVE_QCAM="no")
456   fi
457   if test "x$HAVE_QCAM" != "xyes";
458   then
459     AC_MSG_WARN([QuickCam only works on i386-linux])
460   fi
461 ])
462
463 dnl *** Video CD ***
464 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
465 GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
466   AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
467 ])
468
469 dnl *** CDROM Audio ***
470 translit(dnm, m, l) AM_CONDITIONAL(USE_CDROM, true)
471 GST_CHECK_FEATURE(CDROM, [CDROM Audio], cdrom, [
472   AC_CHECK_HEADERS(linux/cdrom.h) dnl linux
473   AC_CHECK_HEADERS(sys/cdio.h) dnl almost everything else
474 dnl  AC_CHECK_HEADERS(dmedia/cdaudio.h) dnl irix
475
476   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
477         case "$host" in 
478                 *-sun-* | *-*-linux*)
479                         AC_DEFINE(HAVE_CDROM_SOLARIS,, [Define if cdrom access is in Solaris style])
480                 ;;
481                 *-*-freebsd*)
482                         AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style])
483                 ;;
484                 *-*-netbsd* | *-*-openbsd*)
485                         AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style])
486                         AC_DEFINE(HAVE_CDROM_BSD_NETBSD,, [Define if cdrom access uses NetBSD variant])
487                 ;;
488                 *-*darwin*)
489                         AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style])
490                         AC_DEFINE(HAVE_CDROM_BSD_DARWIN,, [Define if cdrom access uses Darwin variant])
491                 ;;
492 dnl             *-irix-*)
493 dnl                     AC_DEFINE(HAVE_CDROM_IRIX,, [Define if cdrom access is in Irix DMedia style])
494 dnl             ;;
495     esac
496
497         HAVE_CDROM="yes"
498   else
499         HAVE_CDROM="no"
500   fi
501 ])
502
503 dnl Check for X11
504 translit(dnm, m, l) AM_CONDITIONAL(USE_X, true)
505 GST_CHECK_FEATURE(X, [X libraries and plugins],
506                   [ximagesink], [
507   AC_PATH_XTRA
508 dnl  if test "x$X_CFLAGS" == "x" -o "$X_CFLAGS" == "-DX_DISPLAY_MISSING"
509   if test "x$X_DISPLAY_MISSING" = "x1"
510   then
511     AC_MSG_NOTICE([cannot find X11 development files])
512     HAVE_X="no"
513   else
514     dnl this is much more than we want
515     X_LIBS="$X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS"
516     dnl AC_PATH_XTRA only defines the path needed to find the X libs, not the libs
517     dnl therefore we add them here
518     X_LIBS="$X_LIBS -lX11"
519     AC_SUBST(X_CFLAGS)
520     AC_SUBST(X_LIBS)
521     HAVE_X="yes"
522   fi
523   AC_SUBST(HAVE_X)
524 ])
525   
526 dnl *** XVideo ***
527 dnl Look for the PIC library first, Debian requires it.
528 dnl Check debian-devel archives for gory details.
529 dnl 20020110:
530 dnl At the moment XFree86 doesn't distribute shared libXv due
531 dnl to unstable API.  On many platforms you CAN NOT link a shared
532 dnl lib to a static non-PIC lib.  This is what the xvideo GStreamer
533 dnl plug-in wants to do.  So Debian distributes a PIC compiled
534 dnl version of the static lib for plug-ins to link to when it is
535 dnl inappropriate to link the main application to libXv directly.
536 dnl FIXME: add check if this platform can support linking to a
537 dnl        non-PIC libXv, if not then don not use Xv.
538 dnl FIXME: perhaps warn user if they have a shared libXv since
539 dnl        this is an error until XFree86 starts shipping one
540    
541 dnl Check for Xv extension
542 translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
543 GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions],
544                   [xvimagesink xvideosink], [
545   if test x$HAVE_X = xyes; then
546     AC_CHECK_LIB(Xv_pic, XvQueryExtension,
547                  HAVE_XVIDEO="yes", HAVE_XVIDEO="no",
548                  $X_LIBS -lXext)
549
550     if test x$HAVE_XVIDEO = xyes; then
551       XVIDEO_LIBS="-lXv_pic -lXext"
552       AC_SUBST(XVIDEO_LIBS)
553     else
554       dnl try again using something else if we didn't find it first
555       if test x$HAVE_XVIDEO = xno; then
556         AC_CHECK_LIB(Xv, XvQueryExtension,
557                    HAVE_XVIDEO="yes", HAVE_XVIDEO="no",
558                    $X_LIBS -lXext)
559
560         if test x$HAVE_XVIDEO = xyes; then
561           XVIDEO_LIBS="-lXv -lXext"
562           AC_SUBST(XVIDEO_LIBS)
563         fi
564       fi
565     fi
566   fi
567 ])
568
569 dnl check for X Shm
570 translit(dnm, m, l) AM_CONDITIONAL(USE_XSHM, true)
571 GST_CHECK_FEATURE(XSHM, [X Shared Memory extension], xshm, [
572   if test x$HAVE_X = xyes; then
573     AC_CHECK_LIB(Xext, XShmAttach, 
574                  HAVE_XSHM="yes", HAVE_XSHM="no",
575                  $X_LIBS) 
576     if test "x$HAVE_XSHM" = "xyes"; then
577       XSHM_LIBS="-lXext"
578     else
579       dnl On AIX, it is in XextSam instead, but we still need -lXext
580       AC_CHECK_LIB(XextSam, XShmAttach, 
581                    HAVE_XSHM="yes", HAVE_XSHM="no",
582                    $X_LIBS) 
583       if test "x$HAVE_XSHM" = "xyes"; then
584         XSHM_LIBS="-lXext -lXextSam"
585       fi
586     fi
587   fi
588 ], , [ 
589   AC_SUBST(HAVE_XSHM) 
590   AC_SUBST(XSHM_LIBS) 
591 ] )
592
593 dnl v4l/v4l2 checks have been moved down because they require X
594
595 dnl *** Video 4 Linux ***
596 dnl for information about the header/define, see sys/v4l/gstv4lelement.h
597 translit(dnm, m, l) AM_CONDITIONAL(USE_V4L, true)
598 GST_CHECK_FEATURE(V4L, [Video 4 Linux], v4lsrc v4lmjpegsrc v4lmjpegsink, [
599   # first check X
600   HAVE_V4L="no"
601   if test "$HAVE_X" == "yes"
602   then
603     AC_CHECK_DECL(VID_TYPE_MPEG_ENCODER, HAVE_V4L="yes", HAVE_V4L="no", [
604 #include <sys/types.h>
605 #define _LINUX_TIME_H
606 #include <linux/videodev.h>
607     ])
608   fi
609 ])
610
611 dnl *** Video 4 Linux 2 ***
612 dnl for information about the header/define, see sys/v4l2/gstv4l2element.h
613 translit(dnm, m, l) AM_CONDITIONAL(USE_V4L2, true)
614 GST_CHECK_FEATURE(V4L2, [Video 4 Linux 2], v4l2src, [
615   HAVE_V4L2="no"
616   if test "$HAVE_X" == "yes"
617   then
618     AC_MSG_CHECKING([Checking for uptodate v4l2 installation])
619     AC_TRY_COMPILE([
620 #include <sys/types.h>
621 #include <linux/types.h>
622 #define _LINUX_TIME_H
623 #include <linux/videodev2.h>
624 #if defined(V4L2_MAJOR_VERSION) || defined(V4L2_MINOR_VERSION)
625 #error too early v4l2 version or no v4l2 at all
626 #endif
627     ], [
628 return 0;
629     ], [ HAVE_V4L2="yes" && AC_MSG_RESULT(yes)],
630        [ HAVE_V4L2="no"  && AC_MSG_RESULT(no) &&
631          AC_CHECK_HEADER(linux/videodev2.h,
632                          [ AC_MSG_WARN([video4linux2 headers were found, but they're old. Please update v4l2 to compile the v4l2 plugins])],
633                          [ AC_MSG_WARN([video4linux2 was not found])])
634        ])
635   fi
636 ])
637
638 dnl Next, check for the optional libraries:
639 dnl These are all libraries used in building plug-ins
640 dnl ================================================
641 dnl let's try and sort them alphabetically, shall we ?
642
643 if test "x$BUILD_EXTERNAL" = "xyes"; then
644
645 AC_MSG_NOTICE(Checking for plug-in dependency libraries)
646
647 dnl *** a52dec ***
648 translit(dnm, m, l) AM_CONDITIONAL(USE_A52DEC, true)
649 GST_CHECK_FEATURE(A52DEC, [a52dec], a52dec, [
650   AC_CHECK_A52DEC(HAVE_A52DEC=yes, HAVE_A52DEC=no)
651 ])
652
653 dnl *** aalib ***
654 translit(dnm, m, l) AM_CONDITIONAL(USE_AALIB, true)
655 GST_CHECK_FEATURE(AALIB, [aasink plug-in], aasink, [
656   AM_PATH_AALIB(, HAVE_AALIB=yes, HAVE_AALIB=no)
657   AS_SCRUB_INCLUDE(AALIB_CFLAGS)
658 ])
659
660 dnl *** alsa ***
661 translit(dnm, m, l) AM_CONDITIONAL(USE_ALSA, true)
662 GST_CHECK_FEATURE(ALSA, [alsa plug-ins], gstalsa, [
663    AM_PATH_ALSA(0.9.1, HAVE_ALSA=yes, HAVE_ALSA=no)
664 ])
665
666 dnl *** arts ***
667 dnl if mcopidl can't be found there's no use in compiling it
668 AC_CHECK_PROG(MCOPIDL, mcopidl, yes, no)
669 if test "x$HAVE_MCOPIDL" = "xno";
670 then
671   USE_ARTS=no
672 fi
673
674 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTS, true)
675 GST_CHECK_FEATURE(ARTS, [arts plug-ins], arts, [
676   AM_PATH_ARTS(, HAVE_ARTS=yes, HAVE_ARTS=no)
677 ])
678
679 dnl *** artsc ***
680 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTSC, true)
681 GST_CHECK_FEATURE(ARTSC, [artsd plug-ins], artsdsink, [
682   GST_CHECK_ARTSC()
683 ])
684
685 dnl *** audiofile ***
686 dnl this check uses the GST_CHECK_CONFIGPROG macro
687 translit(dnm, m, l) AM_CONDITIONAL(USE_AUDIOFILE, true)
688 GST_CHECK_FEATURE(AUDIOFILE, [audiofile], afsink afsrc, [
689   translit(dnm, m, l) AC_SUBST(AUDIOFILE_LIBS)
690   translit(dnm, m, l) AC_SUBST(AUDIOFILE_CFLAGS)
691   dnl check with pkg-config first
692   PKG_CHECK_MODULES(AUDIOFILE, audiofile, HAVE_AUDIOFILE="yes", HAVE_AUDIOFILE="no")
693   if test "x$HAVE_AUDIOFILE" = "xno"; then
694     GST_CHECK_CONFIGPROG(AUDIOFILE, audiofile-config)
695     dnl we need this function
696     AC_CHECK_LIB(audiofile, afOpenVirtualFile, , HAVE_AUDIOFILE="no")
697   fi])
698
699 dnl *** CDParanoia ***
700 translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
701 GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
702   GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
703                       cdda_open, -lm, 
704                       cdda_interface.h, 
705                       CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
706                       HEADER_DIR="no"
707                       FOUND_CDPARANOIA="yes")
708   if test "x$FOUND_CDPARANOIA" != "xyes";
709   then
710     GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
711                         cdda_open, -lm, 
712                         cdda/cdda_interface.h, 
713                         CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
714                         HEADER_DIR="yes"
715                         FOUND_CDPARANOIA="yes")
716   fi
717   if test "x$HEADER_DIR" = "xyes";
718   then
719     AC_DEFINE_UNQUOTED(CDPARANOIA_HEADERS_IN_DIR, ,
720                        defined if cdda headers are in a cdda/ directory)
721   fi
722   AC_SUBST(CDPARANOIA_LIBS)
723 ])
724 dnl FIXME : add second check somehow if that is necessary
725 dnl AC_CHECK_LIB(cdda_paranoia, paranoia_init, : , HAVE_CDPARANOIA=no, -lcdda_interface )
726 dnl AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no)
727
728 dnl *** DIVX ***
729 translit(dnm, m, l) AM_CONDITIONAL(USE_DIVX, true)
730 GST_CHECK_FEATURE(DIVX, [divx plugins], divx, [
731   HAVE_DIVX=yes
732   AC_CHECK_HEADER(encore2.h, ,
733                   [ AC_MSG_WARN([Divx4linux encore headers not found]) &&
734                     HAVE_DIVX=no ] )
735   if [ test x$HAVE_DIVX = xyes ]; then
736     AC_MSG_CHECKING([Checking for valid divx4linux encore version])
737     AC_TRY_COMPILE([
738 #include <encore2.h>
739 #if ENCORE_VERSION != 20021024
740 #error Wrong version of divx encore libraries
741 #endif
742     ], [
743 return 0;
744     ], [ HAVE_DIVX=yes && AC_MSG_RESULT(yes)],
745        [ HAVE_DIVX=no  && AC_MSG_RESULT(no) &&
746          AC_MSG_WARN([Wrong version of divx4linux installed]) ])
747   fi
748   if [ test x$HAVE_DIVX = xyes ]; then
749     AC_CHECK_HEADER(decore.h, ,
750                     [ AC_MSG_WARN([Divx4linux decoder headers not found]) &&
751                       HAVE_DIVX=no ] )
752   fi
753   if [ test x$HAVE_DIVX = xyes ]; then
754     AC_MSG_CHECKING([Checking for valid divx4linux decore version])
755     AC_TRY_COMPILE([
756 #include <decore.h>
757 #if DECORE_VERSION != 20021112
758 #error Wrong version of divx decore libraries
759 #endif
760     ], [
761 return 0;
762     ], [ HAVE_DIVX=yes && AC_MSG_RESULT(yes)],
763        [ HAVE_DIVX=no  && AC_MSG_RESULT(no) &&
764          AC_MSG_WARN([Wrong version of divx4linux installed]) ])
765   fi
766   LIBS="-lm"
767   if test x$HAVE_DIVX = xyes; then
768     AC_CHECK_LIB(divxencore, encore, ,
769                  [ AC_MSG_WARN([Divx4linux encore libs not found]) &&
770                    HAVE_DIVX=no ] )
771   fi
772   if test x$HAVE_DIVX = xyes; then
773     AC_CHECK_LIB(divxdecore, decore, ,
774                  [ AC_MSG_WARN([Divx4linux decore libs not found]) &&
775                    HAVE_DIVX=no ] )
776   fi
777   if test x$HAVE_DIVX = xyes; then
778     DIVXENC_LIBS="-ldivxencore -lm"
779     DIVXDEC_LIBS="-ldivxdecore -lm"
780     AC_SUBST(DIVXENC_LIBS)
781     AC_SUBST(DIVXDEC_LIBS)
782   fi
783 ])
784
785 dnl *** dvdread ***
786 translit(dnm, m, l) AM_CONDITIONAL(USE_DVDREAD, true)
787 GST_CHECK_FEATURE(DVDREAD, [dvdread library], dvdreadsrc, [
788   GST_CHECK_LIBHEADER(DVDREAD, dvdread, DVDOpen, , dvdread/dvd_reader.h, DVDREAD_LIBS="-ldvdread")
789   AC_SUBST(DVDREAD_LIBS)
790 ])
791
792 dnl *** dvdnav ***
793 translit(dnm, m, l) AM_CONDITIONAL(USE_DVDNAV, true)
794 GST_CHECK_FEATURE(DVDNAV, [dvdnav library], dvdnavsrc, [
795   translit(dnm, m, l) AC_SUBST(DVDNAV_LIBS)
796   translit(dnm, m, l) AC_SUBST(DVDNAV_CFLAGS)
797   GST_CHECK_CONFIGPROG(DVDNAV, dvdnav-config)
798   if test x"$HAVE_DVDNAV" = x"yes"; then
799     dnl check version
800     DVDNAV_VERSION=`dvdnav-config --version|head -n 1|sed 's/^.*) //'|sed 's/ (.*)//'`
801     DVDNAV_MAJOR=`echo $DVDNAV_VERSION | cut -d. -f1 | sed s/[a-zA-Z\-].*//g`
802     DVDNAV_MINOR=`echo $DVDNAV_VERSION | cut -d. -f2 | sed s/[a-zA-Z\-].*//g`
803     DVDNAV_MICRO=`echo $DVDNAV_VERSION | cut -d. -f3 | sed s/[a-zA-Z\-].*//g`
804     if [[ "$DVDNAV_MAJOR" -eq "0" ]] && \
805        [[ "$DVDNAV_MINOR" -lt "1" ]]; then
806       AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION])
807       HAVE_DVDNAV="no"
808     elif [[ "$DVDNAV_MAJOR" -eq "0" ]] && \
809          [[ "$DVDNAV_MINOR" -eq "1" ]] && \
810          [[ "$DVDNAV_MICRO" -lt "7" ]]; then
811       AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION])
812       HAVE_DVDNAV="no"
813       fi
814     fi
815   AS_SCRUB_INCLUDE(DVDNAV_CFLAGS)
816 ])
817
818 dnl *** MAS ***
819 translit(dnm, m, l) AM_CONDITIONAL(USE_MAS, true)
820 GST_CHECK_FEATURE(MAS, [mas library], massink, [
821   translit(dnm, m, l) AC_SUBST(MAS_LIBS)
822   translit(dnm, m, l) AC_SUBST(MAS_CFLAGS)
823   GST_CHECK_CONFIGPROG(MAS, mas-config)
824   AS_SCRUB_INCLUDE(MAS_CFLAGS)
825 ])
826
827 dnl **** ESound ****
828 translit(dnm, m, l) AM_CONDITIONAL(USE_ESD, true)
829 GST_CHECK_FEATURE(ESD, [esound plug-ins], esdsink esdmon, [
830   AM_PATH_ESD(0.2.12, HAVE_ESD=yes, HAVE_ESD=no)
831   AS_SCRUB_INCLUDE(ESD_CFLAGS)
832 ])
833
834 dnl **** Free AAC Encoder (FAAC) ****
835 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
836 GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
837   GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, -lm, faac.h, FAAC_LIBS="-lfaac -lm")
838   AS_SCRUB_INCLUDE(FAAC_CFLAGS)
839   AC_SUBST(FAAC_LIBS)
840 ])
841
842 dnl **** Free AAC Decoder (FAAD) ****
843 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
844 GST_CHECK_FEATURE(FAAD, [AAC decoder plug-in], faad, [
845   GST_CHECK_LIBHEADER(FAAD, faad, faacDecOpen, -lm, faad.h, FAAD_LIBS="-lfaad -lm")
846   AC_MSG_CHECKING([Checking for FAAD >= 2])
847   AC_TRY_COMPILE([
848 #include <faad.h>
849 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
850 #error Not faad2
851 #endif
852   ], [ return 0; ],
853      [ HAVE_FAAD="yes" && AC_MSG_RESULT(yes)],
854      [ HAVE_FAAD="no"  && AC_MSG_RESULT(no)])
855   AS_SCRUB_INCLUDE(FAAD_CFLAGS)
856   AC_SUBST(FAAD_LIBS)
857 ])
858
859 dnl **** festival ****
860 dnl translit(dnm, m, l) AM_CONDITIONAL(USE_FESTIVAL, true)
861 dnl GST_CHECK_FEATURE(FESTIVAL, [festival plug-ins], festivalsrc, [
862   dnl NOTE: just using local net connection now, add this lib check
863   dnl       in the future if needed
864   dnl AC_LANG_PUSH(C++)
865   dnl dnl FIXME: took out func to check for
866   dnl dnl This check puts festival_tidy_up in extern "C".
867   dnl dnl But, at least on Debian as of 20020110, it is compiled with name
868   dnl dnl mangling C++ nonsense and symbols can't resolve
869   dnl dnl GST_CHECK_LIBHEADER(FESTIVAL, Festival, festival_tidy_up, , festival/festival.h, FESTIVAL_LIBS="-lFestival")
870   dnl GST_CHECK_LIBHEADER(FESTIVAL, Festival, , , festival/festival.h, FESTIVAL_LIBS="-lFestival")
871   dnl AC_LANG_POP(C++)
872   dnl AC_SUBST(FESTIVAL_LIBS)
873 dnl  HAVE_FESTIVAL=yes
874 dnl])
875
876 dnl *** FLAC ***
877 translit(dnm, m, l) AM_CONDITIONAL(USE_FLAC, true)
878 GST_CHECK_FEATURE(FLAC, [FLAC lossless audio], flacenc flacdec, [
879   GST_CHECK_LIBHEADER(FLAC, FLAC, FLAC__seekable_stream_encoder_new, -lm, FLAC/all.h, FLAC_LIBS="-lFLAC")
880   AC_SUBST(FLAC_LIBS)
881 ])
882
883 dnl *** FFMPEG ***
884 translit(dnm, m, l) AM_CONDITIONAL(USE_FFMPEG, true)
885 GST_CHECK_FEATURE(FFMPEG, [ffmpeg plug-ins], ffmpeg, [
886   # only slurp in the case where we are in CVS mode;
887   # prerelease and release should get it disted
888   if test "x$GST_PLUGINS_VERSION_NANO" = x1; then
889     AC_MSG_NOTICE(slurping FFmpeg CVS source)
890     AS_SLURP_FFMPEG(gst-libs/ext/ffmpeg, 2003-10-26 10:00 GMT,
891                     HAVE_FFMPEG=yes, HAVE_FFMPEG=no)
892   else
893     AC_MSG_NOTICE(FFmpeg CVS code should be included already)
894     HAVE_FFMPEG=yes
895   fi
896   # we only bother with uninstalled (included) ffmpeg for now
897   AC_DEFINE_UNQUOTED(HAVE_FFMPEG_UNINSTALLED, 1,
898                      [defined if we use uninstalled ffmpeg])
899 ])
900
901 dnl *** GDK pixbuf ***
902 translit(dnm, m, l) AM_CONDITIONAL(USE_GDK_PIXBUF, true)
903 GST_CHECK_FEATURE(GDK_PIXBUF, [GDK pixbuf], gdkpixbufsrc, [
904   if test $HAVE_GTK_22 = "yes"; then HAVE_GDK_PIXBUF=yes; fi;
905 ])
906
907 dnl *** Gnome VFS ***
908 translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
909 GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [
910   PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0, HAVE_GNOME_VFS="yes", HAVE_GNOME_VFS="no")
911   AC_SUBST(GNOME_VFS_CFLAGS)
912   AC_SUBST(GNOME_VFS_LIBS)
913 ])
914
915 dnl *** gsm ***
916 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
917 GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
918   GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
919   if test $HAVE_GSM != "yes"; then
920     GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
921     if test $HAVE_GSM = "yes"; then 
922       AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
923     fi
924   fi
925   AC_SUBST(GSM_LIBS)
926 ])
927
928 dnl *** Hermes ***
929 translit(dnm, m, l) AM_CONDITIONAL(USE_HERMES, true)
930 GST_CHECK_FEATURE(HERMES, [Hermes library], colorspace, [
931   GST_CHECK_LIBHEADER(HERMES, Hermes, Hermes_ConverterInstance, , Hermes/Hermes.h, HERMES_LIBS="-lHermes")
932 ], AC_SUBST(HERMES_LIBS))
933
934 dnl *** http ***
935 dnl translit(dnm, m, l) AM_CONDITIONAL(USE_HTTP, true)
936 dnl GST_CHECK_FEATURE(HTTP, [http plug-ins], gsthttpsrc, [
937 dnl  dnl FIXME: need to check for header
938 dnl  GHTTP_LIBS=
939 dnl  GST_HTTPSRC_GET_TYPE=
940 dnl  if test x$USE_GLIB2 = xyes; then
941 dnl    AC_MSG_WARN(ghttp disabled for glib2.0)
942 dnl  else
943 dnl    AC_CHECK_LIB(ghttp, ghttp_request_new,
944 dnl      [HTTP_LIBS="-lghttp"
945 dnl       GST_HTTPSRC_GET_TYPE="gst_httpsrc_get_type"
946 dnl       HAVE_HTTP=yes
947 dnl      ], :, $LIBS)
948 dnl  fi
949 dnl  AC_SUBST(HTTP_LIBS)
950 dnl  AC_SUBST(GST_HTTPSRC_GET_TYPE)
951 dnl ])
952
953 dnl *** ivorbis ***
954 dnl AM_PATH_IVORBIS only takes two options
955 translit(dnm, m, l) AM_CONDITIONAL(USE_IVORBIS, true)
956 GST_CHECK_FEATURE(IVORBIS, [integer vorbis plug-in], ivorbisdec, [
957   IVORBIS_LIBS=
958   IVORBIS_CFLAGS=
959   AC_CHECK_LIB(vorbisidec, vorbis_block_init,
960     [IVORBIS_LIBS=-lvorbisidec
961      HAVE_IVORBIS=yes],
962     HAVE_IVORBIS=no)
963   AC_SUBST(IVORBIS_LIBS)
964   AC_SUBST(IVORBIS_CFLAGS)
965 ])
966
967 dnl *** Jack ***
968 translit(dnm, m, l) AM_CONDITIONAL(USE_JACK, true)
969 GST_CHECK_FEATURE(JACK, Jack, jack, [
970   PKG_CHECK_MODULES(JACK, jack >= 0.29.0, HAVE_JACK="yes", HAVE_JACK="no")
971   AC_SUBST(JACK_CFLAGS)
972   AC_SUBST(JACK_LIBS)
973 ])
974
975 dnl *** jpeg ***
976 dnl FIXME: we could use header checks here as well IMO
977 translit(dnm, m, l) AM_CONDITIONAL(USE_JPEG, true)
978 GST_CHECK_FEATURE(JPEG, [jpeg], jpegenc jpegdec, [
979   AC_ARG_WITH(jpeg-mmx,
980     [  --with-jpeg-mmx, path to MMX'ified JPEG library])
981   OLD_LIBS="$LIBS"
982   if test x$with_jpeg_mmx != x; then
983     LIBS="$LIBS -L$with_jpeg_mmx"
984   fi
985   AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
986   JPEG_LIBS="$LIBS -ljpeg-mmx"
987   LIBS="$OLD_LIBS"
988   if test x$HAVE_JPEG != xyes; then
989     AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
990     JPEG_LIBS="-ljpeg"
991   fi
992   AC_SUBST(JPEG_LIBS)
993 ])
994
995 dnl *** ladspa ***
996 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
997 GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
998   AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
999 ])
1000
1001 dnl *** lame ***
1002 translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true)
1003 GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [
1004   GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, -lm, lame/lame.h, HAVE_LAME="yes" LAME_LIBS="-lmp3lame")
1005 ])
1006 AC_SUBST(LAME_LIBS)
1007
1008 dnl *** libcolorspace ***
1009 translit(dnm, m, l) AM_CONDITIONAL(USE_LCS, true)
1010 GST_CHECK_FEATURE(LCS, Lcs, lcs, [
1011   PKG_CHECK_MODULES(LCS, lcs, HAVE_LCS="yes", HAVE_LCS="no")
1012   AC_SUBST(LCS_CFLAGS)
1013   AC_SUBST(LCS_LIBS)
1014 ])
1015
1016 dnl *** libdv ***
1017 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDV, true)
1018 GST_CHECK_FEATURE(LIBDV, [libdv DV/video decoder], dvdec, [
1019   PKG_CHECK_MODULES(LIBDV, libdv >= 0.98, HAVE_LIBDV="yes", HAVE_LIBDV="no")
1020   AC_SUBST(LIBDV_CFLAGS)
1021   AC_SUBST(LIBDV_LIBS)
1022 ])
1023
1024 dnl *** libfame ***
1025 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBFAME, true)
1026 GST_CHECK_FEATURE(LIBFAME, [libfame MPEG1/4 encoder], libfame, [
1027   AM_PATH_LIBFAME(0.9.0, HAVE_LIBFAME="yes", HAVE_LIBFAME="no")
1028   AC_SUBST(LIBFAME_CFLAGS)
1029   AC_SUBST(LIBFAME_LIBS)
1030 ])
1031
1032 dnl *** libpng ***
1033 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBPNG, true)
1034 GST_CHECK_FEATURE(LIBPNG, [libpng PNG encoder], pngenc, [
1035   PKG_CHECK_MODULES(LIBPNG, libpng12, HAVE_LIBPNG="yes", HAVE_LIBPNG="no")
1036   AC_SUBST(LIBPNG_CFLAGS)
1037   AC_SUBST(LIBPNG_LIBS)
1038 ])
1039
1040
1041 dnl *** mad ***
1042 dnl FIXME: we could use header checks here as well IMO
1043 translit(dnm, m, l) AM_CONDITIONAL(USE_MAD, true)
1044 GST_CHECK_FEATURE(MAD, [mad mp3 decoder], mad, [
1045   dnl check with pkg-config first
1046   PKG_CHECK_MODULES(MAD, mad >= 0.15 id3tag >= 0.15, HAVE_MAD="yes", HAVE_MAD="no")
1047   if test "x$HAVE_MAD" = "xno"; then
1048     dnl fall back to oldskool detection
1049     AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_MAD="yes" MAD_LIBS="-lmad")
1050     if test "x$HAVE_MAD" = "xyes"; then
1051       HAVE_MAD="no"
1052       save_libs=$LIBS
1053       LIBS="-lz"
1054       AC_CHECK_LIB(id3tag, id3_tag_options, HAVE_MAD="yes" MAD_LIBS="-lmad -lid3tag -lz")
1055       LIBS=$save_LIBS
1056     fi
1057   fi    
1058 ])
1059 AC_SUBST(MAD_LIBS)
1060
1061 dnl *** mikmod ***
1062 translit(dnm, m, l) AM_CONDITIONAL(USE_MIKMOD, true)
1063 GST_CHECK_FEATURE(MIKMOD, [mikmod plug-in], mikmod, [
1064   AM_PATH_LIBMIKMOD(, HAVE_MIKMOD=yes, HAVE_MIKMOD=no)
1065   AC_SUBST(MIKMOD_LIBS, "$LIBMIKMOD_LIBS")
1066   AC_SUBST(MIKMOD_CFLAGS, "$LIBMIKMODCFLAGS")
1067 ])
1068
1069 dnl *** mpeg2dec ***
1070 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true)
1071 GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [
1072   PKG_CHECK_MODULES(MPEG2DEC, libmpeg2 >= 0.3.1,
1073       HAVE_MPEG2DEC="yes", HAVE_MPEG2DEC="no")
1074   AC_SUBST(MPEG2DEC_CFLAGS)
1075   AC_SUBST(MPEG2DEC_LIBS)
1076 ])
1077
1078 dnl *** mpeg2enc ***
1079 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
1080 GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
1081   HAVE_MPEG2ENC="no"
1082   dnl we require a c++ compiler for this one
1083   if [ test x$HAVE_CXX = xyes ]; then
1084     dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
1085     dnl since many distros include mjpegtools specifically without mplex
1086     dnl and mpeg2enc, we check for mpeg2enc on its own, too.
1087     PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
1088       dnl switch over to c++ to test things
1089       AC_LANG_CPLUSPLUS
1090       OLD_CPPFLAGS="$CPPFLAGS"
1091       CPPFLAGS="$CPPFLAGS $MPEG2ENC_CFLAGS"
1092       AC_CHECK_HEADER(mpeg2encoder.hh, [
1093         MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp -lm -lpthread"
1094         OLD_LIBS="$LIBS"
1095         LIBS="$LIBS $MPEG2ENC_LIBS"
1096         AC_MSG_CHECKING([for valid mpeg2enc objects])
1097         AC_TRY_RUN([
1098 #include <mpeg2encoder.hh>
1099 #include <mpeg2encoptions.hh>
1100
1101 int
1102 main (int   argc,
1103       char *argv[])
1104 {
1105   MPEG2EncOptions *options = new MPEG2EncOptions ();
1106   MPEG2Encoder encoder (*options);
1107   return 0;
1108 }
1109         ],[
1110           HAVE_MPEG2ENC="yes"
1111           AC_SUBST(MPEG2ENC_CFLAGS)
1112           AC_SUBST(MPEG2ENC_LIBS)
1113           AC_MSG_RESULT(yes)
1114         ], AC_MSG_RESULT(no))
1115         LIBS="$OLD_LIBS"
1116       ])
1117       CPPFLAGS="$OLD_CPPFLAGS"
1118       AC_LANG_C
1119     ],
1120     HAVE_MPEG2ENC="no")
1121   fi
1122 ])
1123
1124 dnl *** mplex ***
1125 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
1126 GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
1127   HAVE_MPLEX="no"
1128   dnl we require a c++ compiler for this one
1129   if [ test x$HAVE_CXX = xyes ]; then
1130     dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
1131     dnl since many distros include mjpegtools specifically without mplex
1132     dnl and mpeg2enc, we check for mplex on its own, too.
1133     PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.6.1.93, [
1134       dnl switch over to c++ to test things
1135       AC_LANG_CPLUSPLUS
1136       OLD_CPPFLAGS="$CPPFLAGS"
1137       CPPFLAGS="$CPPFLAGS $MPLEX_CFLAGS"
1138       AC_CHECK_HEADER(interact.hpp, [
1139         MPLEX_LIBS="$MPLEX_LIBS -lmplex2 -lm"
1140         OLD_LIBS="$LIBS"
1141         LIBS="$LIBS $MPLEX_LIBS"
1142         AC_MSG_CHECKING([for valid mplex objects])
1143         AC_TRY_RUN([
1144 #include <interact.hpp>
1145 #include <outputstrm.hpp>
1146 #include <multiplexor.hpp>
1147
1148 int
1149 main (int   argc,
1150       char *argv[])
1151 {
1152   class TestOutputStream : public OutputStream {
1153   public:
1154     TestOutputStream () : OutputStream () { }
1155     void Write (uint8_t *a, unsigned int b) { }
1156     void NextSegment () { }
1157     off_t SegmentSize () { }
1158     void Close () { }
1159     int Open () { }
1160   };
1161   MultiplexJob *job = new MultiplexJob ();
1162   vector<IBitStream *> inputs;
1163   job->SetupInputStreams (inputs);
1164   TestOutputStream *out = new TestOutputStream ();
1165   Multiplexor mux (*job, *out);
1166   return 0;
1167 }
1168         ],[
1169           HAVE_MPLEX="yes"
1170           AC_SUBST(MPLEX_CFLAGS)
1171           AC_SUBST(MPLEX_LIBS)
1172           AC_MSG_RESULT(yes)
1173         ], AC_MSG_RESULT(no))
1174         LIBS="$OLD_LIBS"
1175       ])
1176       CPPFLAGS="$OLD_CPPFLAGS"
1177       AC_LANG_C
1178     ], HAVE_MPLEX="no")
1179   fi
1180 ])
1181
1182 dnl *** pango ***
1183 translit(dnm, m, l) AM_CONDITIONAL(USE_PANGO, true)
1184 GST_CHECK_FEATURE(PANGO, [pango], pango, [
1185   PKG_CHECK_MODULES(PANGO, pango pangoft2,
1186       HAVE_PANGO="yes", HAVE_PANGO="no")
1187   AC_SUBST(PANGO_CFLAGS)
1188   AC_SUBST(PANGO_LIBS)
1189 ])
1190
1191 dnl *** raw1394 ***
1192 translit(dnm, m, l) AM_CONDITIONAL(USE_RAW1394, true)
1193 GST_CHECK_FEATURE(RAW1394, [raw1394 library], dv1394src, [
1194   GST_CHECK_LIBHEADER(RAW1394, raw1394, raw1394_new_handle,, libraw1394/raw1394.h, RAW1394_LIBS="-lraw1394")
1195   AC_SUBST(RAW1394_LIBS)
1196 ])
1197
1198 dnl *** SDL ***
1199 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
1200 GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink, [
1201   dnl sdlvideosink depends on the xoverlay interface, which depends on X
1202   if test x$HAVE_X = xyes; then
1203     AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
1204   fi
1205 ])
1206
1207 dnl *** shout ***
1208 translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT, true)
1209 GST_CHECK_FEATURE(SHOUT, [shout plug-in], icecastsend, [
1210   GST_CHECK_LIBHEADER(SHOUT, shout, shout_init_connection,, shout/shout.h, SHOUT_LIBS="-lshout")
1211   AC_SUBST(SHOUT_LIBS)
1212 ])
1213
1214 dnl *** shout2 *** 
1215 translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT2, true)
1216 GST_CHECK_FEATURE(SHOUT2, [shout2 plug-in], shout2send, [
1217   AM_PATH_SHOUT2(HAVE_SHOUT2=yes, HAVE_SHOUT2=no)
1218   AC_SUBST(SHOUT2_CFLAGS)
1219   AC_SUBST(SHOUT2_LIBS)
1220 ])
1221
1222 dnl *** sidplay ***
1223 translit(dnm, m, l) AM_CONDITIONAL(USE_SIDPLAY, true)
1224 GST_CHECK_FEATURE(SIDPLAY, [sidplay plug-in], sidplay, [
1225   GST_PATH_SIDPLAY()
1226 ])
1227
1228 dnl *** smoothwave ***
1229 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHWAVE, true)
1230 GST_CHECK_FEATURE(SMOOTHWAVE, [smoothwave plug-in], smoothwave, [
1231   if test $HAVE_GTK = "yes"; then HAVE_SMOOTHWAVE=yes; fi;
1232 ])
1233
1234
1235 dnl *** snapshot ***
1236 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBPNG, true)
1237 GST_CHECK_FEATURE(LIBPNG, [snapshot plug-in], snapshot, [
1238   GST_CHECK_LIBHEADER(LIBPNG, png, png_read_info, -lz -lm, png.h, LIBPNG_LIBS="-lpng -lz -lm")
1239   AC_SUBST(LIBPNG_LIBS)
1240 ])
1241
1242 dnl *** speex ***
1243 translit(dnm, m, l) AM_CONDITIONAL(USE_SPEEX, true)
1244 GST_CHECK_FEATURE(SPEEX, [speex plug-in], speex, [
1245   GST_CHECK_LIBHEADER(SPEEX, speex, speex_bits_init, , speex.h, HAVE_SPEEX="yes" SPEEX_LIBS="-lspeex")
1246   AC_SUBST(SPEEX_CFLAGS)
1247   AC_SUBST(SPEEX_LIBS)
1248 ])
1249
1250 dnl *** sndfile ***
1251 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
1252 GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfsrc sfsink, [
1253   PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.0, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
1254   AC_SUBST(SNDFILE_CFLAGS)
1255   AC_SUBST(SNDFILE_LIBS)
1256 ])
1257
1258 dnl *** swfdec ***
1259 translit(dnm, m, l) AM_CONDITIONAL(USE_SWFDEC, true)
1260 GST_CHECK_FEATURE(SWFDEC, [swfdec plug-in], swfdec, [
1261   PKG_CHECK_MODULES(SWFDEC, swfdec >= 0.1.3.1, HAVE_SWFDEC=yes, HAVE_SWFDEC=no)
1262   AC_SUBST(SWFDEC_CFLAGS)
1263   AC_SUBST(SWFDEC_LIBS)
1264 ])
1265
1266 dnl *** tarkin ***
1267 dnl for now the sources are included in the plug-in
1268 dnl and should be moved to ext-libs/ perhaps
1269 translit(dnm, m, l) AM_CONDITIONAL(USE_TARKIN, true)
1270 GST_CHECK_FEATURE(TARKIN, [tarkinenc tarkindec], tarkin, [
1271   HAVE_TARKIN="yes"
1272 ])
1273
1274 dnl *** ogg ***
1275 translit(dnm, m, l) AM_CONDITIONAL(USE_OGG, true)
1276 GST_CHECK_FEATURE(OGG, [ogg de/encoder], oggdemux oggmux, [
1277   XIPH_PATH_OGG(HAVE_OGG=yes, HAVE_OGG=no)
1278   AS_SCRUB_INCLUDE(OGG_CFLAGS)
1279 ])
1280
1281 dnl *** vorbis ***
1282 dnl AM_PATH_VORBIS only takes two options
1283 translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
1284 GST_CHECK_FEATURE(VORBIS, [vorbis plug-in], vorbisenc vorbisdec, [
1285   XIPH_PATH_VORBIS(HAVE_VORBIS=yes, HAVE_VORBIS=no)
1286   AS_SCRUB_INCLUDE(VORBIS_CFLAGS)
1287 ])
1288
1289 dnl *** XVID ***
1290 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
1291 GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
1292   HAVE_XVID=no
1293   AC_CHECK_HEADER(xvid.h, [
1294     OLD_LIBS="$LIBS"
1295     LIBS="-lm"
1296     AC_CHECK_LIB(xvidcore, xvid_encore, [
1297       AC_CHECK_LIB(xvidcore, xvid_decore, [
1298         AC_CHECK_LIB(xvidcore, xvid_global, [
1299           AC_MSG_CHECKING([for uptodate XviD API version])
1300           AC_TRY_RUN([
1301 #include <xvid.h>
1302 #if XVID_API != XVID_MAKE_API(4,0)
1303 #error "Incompatible XviD API version"
1304 #endif
1305 int main () { return 0; }
1306           ],[ AC_MSG_RESULT(yes)
1307             XVID_LIBS="-lxvidcore -lm"
1308             AC_SUBST(XVID_LIBS)
1309             HAVE_XVID=yes
1310           ], AC_MSG_RESULT(no) )
1311         ], )
1312       ], )
1313     ], )
1314     LIBS="$OLD_LIBS"
1315   ], )
1316 ])
1317
1318
1319 fi dnl of EXT plugins
1320
1321 dnl Check for atomic.h
1322 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
1323 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
1324 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
1325 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
1326 if test x$HAVE_ATOMIC_H = xyes; then
1327   AC_TRY_RUN([
1328 #include "asm/atomic.h"
1329 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
1330   ],, [
1331     # Not successful
1332     if test x$HAVE_ATOMIC_H = xyes; then
1333       AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
1334     fi
1335     HAVE_ATOMIC_H=no
1336   ], [
1337     # Cross compiling
1338     AC_MSG_RESULT(yes)
1339     AC_MSG_WARN(Can't check properly for atomic reference counting.  Assuming OK.)
1340   ])
1341 fi
1342
1343
1344 dnl ######################################################################
1345 dnl # Check command line parameters, and set shell variables accordingly #
1346 dnl ######################################################################
1347
1348 AC_ARG_ENABLE(libmmx,
1349   AC_HELP_STRING([--enable-libmmx],[use libmmx, if available]),
1350 [case "${enableval}" in
1351   yes) USE_LIBMMX=$HAVE_LIBMMX ;;
1352   no)  USE_LIBMMX=no ;;
1353   *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
1354 esac], 
1355 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
1356
1357 AC_ARG_ENABLE(atomic,
1358   AC_HELP_STRING([--enable-atomic],[use atomic reference counting header]),
1359 [case "${enableval}" in
1360   yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
1361   noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
1362   no)  USE_ATOMIC_H=no;;
1363   *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
1364 esac], 
1365 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
1366
1367 AC_ARG_ENABLE(profiling,
1368   AC_HELP_STRING([--enable-profiling],
1369                  [-pg to compiler commandline, for profiling]),
1370 [case "${enableval}" in
1371   yes) USE_PROFILING=yes ;;
1372   no)  UES_PROFILING=no ;;
1373   *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
1374 esac], 
1375 [USE_PROFILING=no]) dnl Default value
1376
1377 AC_ARG_ENABLE(tests,
1378   AC_HELP_STRING([--disable-tests],[disable building test apps]),
1379 [case "${enableval}" in
1380   yes) BUILD_TESTS=yes ;;
1381   no)  BUILD_TESTS=no ;;
1382   *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
1383 esac], 
1384 [BUILD_TESTS=yes]) dnl Default value
1385
1386 AC_ARG_ENABLE(examples,
1387   AC_HELP_STRING([--disable-examples],[disable building examples]),
1388 [case "${enableval}" in
1389   yes) BUILD_EXAMPLES=yes ;;
1390   no)  BUILD_EXAMPLES=no ;;
1391   *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
1392 esac], 
1393 [BUILD_EXAMPLES=yes]) dnl Default value
1394
1395 dnl seeking needs freetype, so check for it here
1396 AC_CHECK_FT2(2.0.9,HAVE_FT2=yes,HAVE_FT2=no)
1397 dnl make the HAVE_FT2 variable available to automake and Makefile.am
1398 AM_CONDITIONAL(HAVE_FT2, test "x$HAVE_FT2" = "xyes")
1399 AC_SUBST(FT2_CFLAGS)
1400 AC_SUBST(FT2_LIBS)
1401
1402 dnl ################################################
1403 dnl # Set defines according to variables set above #
1404 dnl ################################################
1405
1406
1407 if test "x$USE_LIBMMX" = xyes; then
1408   AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
1409 fi
1410
1411 if test "x$USE_ATOMIC_H" = xyes; then
1412   AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
1413 fi
1414
1415 # do not use deprecated stuff
1416 GST_CFLAGS="$GST_CFLAGS -DGST_DISABLE_DEPRECATED"
1417
1418 if test "x$USE_DEBUG" = xyes; then
1419   GST_CFLAGS="$GST_CFLAGS -g"
1420 fi
1421
1422 dnl #############################
1423 dnl # Set automake conditionals #
1424 dnl #############################
1425
1426 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
1427 dnl HAVE_ and it is likely to be easier to stick with the old name
1428 AM_CONDITIONAL(HAVE_LIBMMX,         test "x$USE_LIBMMX" = "xyes")
1429
1430 AM_CONDITIONAL(HAVE_ATOMIC_H,       test "x$USE_ATOMIC_H" = "xyes")
1431
1432 AM_CONDITIONAL(EXPERIMENTAL,        test "$EXPERIMENTAL" = "$xyes")
1433 AM_CONDITIONAL(BROKEN,              test "$BROKEN" = "$xyes")
1434
1435 AM_CONDITIONAL(HAVE_NASM,           test "x$HAVE_NASM" = "xyes")
1436 AM_CONDITIONAL(HAVE_GTK,            test "x$HAVE_GTK" = "xyes")
1437 AM_CONDITIONAL(HAVE_GTK_DOC,        $HAVE_GTK_DOC)
1438 AM_CONDITIONAL(BUILD_DOCS,          test "x$BUILD_DOCS" = "xyes")
1439 AM_CONDITIONAL(BUILD_TESTS,         test "x$BUILD_TESTS" = "xyes")
1440 AM_CONDITIONAL(BUILD_EXAMPLES,      test "x$BUILD_EXAMPLES" = "xyes")
1441 AM_CONDITIONAL(BUILD_PLUGIN_DOCS,   test "x$BUILD_PLUGIN_DOCS" = "xyes")
1442 AM_CONDITIONAL(HAVE_FIG2DEV_PNG,    $HAVE_FIG2DEV_PNG)
1443 AM_CONDITIONAL(HAVE_FIG2DEV_PDF,    $HAVE_FIG2DEV_PDF)
1444 AM_CONDITIONAL(HAVE_RAW1394,        test "x$HAVE_RAW1394" = "xyes")
1445
1446 dnl prefer internal headers to already installed ones
1447 GST_CFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $GST_ERROR"
1448
1449 AC_SUBST(GST_LIBS)
1450 AC_SUBST(GST_CFLAGS)
1451
1452 dnl ###########################
1453 dnl # Configure external libs #
1454 dnl ###########################
1455 if test "x$HAVE_FFMPEG" = xyes; then
1456   AC_CONFIG_SUBDIRS(gst-libs/ext/ffmpeg/ffmpeg)
1457 fi 
1458
1459 dnl ############################
1460 dnl # Set up some more defines #
1461 dnl ############################
1462
1463 dnl set license and copyright notice
1464 AC_DEFINE(GST_LICENSE, "LGPL", [GStreamer license])
1465 dnl package name in plugins
1466 AC_ARG_WITH(package-name,
1467 AC_HELP_STRING([--with-package-name],[specify package name to use in plugins]),
1468 [case "${withval}" in
1469   yes) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;;
1470   no) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;;
1471   *) GST_PACKAGE="${withval}" ;;
1472 esac], 
1473 [GST_PACKAGE="GStreamer"]) dnl Default value
1474 AC_MSG_NOTICE(Using $GST_PACKAGE as package name)
1475 AC_DEFINE_UNQUOTED(GST_PACKAGE, "$GST_PACKAGE", [package name in plugins])
1476 dnl package origin URL
1477 AC_ARG_WITH(package-origin,
1478 AC_HELP_STRING([--with-package-origin],[specify package origin URL to use in plugins]),
1479 [case "${withval}" in
1480   yes) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;;
1481   no) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;;
1482   *) GST_ORIGIN="${withval}" ;;
1483 esac], 
1484 [GST_ORIGIN="http://gstreamer.net"]) dnl Default value
1485 AC_MSG_NOTICE(Using $GST_ORIGIN as package origin)
1486 AC_DEFINE_UNQUOTED(GST_ORIGIN, "$GST_ORIGIN", [package origin])
1487
1488 dnl #########################
1489 dnl # Make the output files #
1490 dnl #########################
1491
1492 AC_CONFIG_FILES(
1493 Makefile
1494 pkgconfig/gstreamer-libs.pc
1495 pkgconfig/gstreamer-libs-uninstalled.pc
1496 pkgconfig/gstreamer-play.pc
1497 pkgconfig/gstreamer-play-uninstalled.pc
1498 pkgconfig/gstreamer-interfaces.pc
1499 pkgconfig/gstreamer-interfaces-uninstalled.pc
1500 gst-libs/gst/gconf/gstreamer-gconf.pc
1501 gst-libs/gst/gconf/gstreamer-gconf-uninstalled.pc
1502 gst-plugins.spec
1503 gst/Makefile
1504 gst/ac3parse/Makefile
1505 gst/adder/Makefile
1506 gst/audioconvert/Makefile
1507 gst/audioscale/Makefile
1508 gst/auparse/Makefile
1509 gst/avi/Makefile
1510 gst/asfdemux/Makefile
1511 gst/cdxaparse/Makefile
1512 gst/chart/Makefile
1513 gst/cutter/Makefile
1514 gst/debug/Makefile
1515 gst/deinterlace/Makefile
1516 gst/effectv/Makefile
1517 gst/festival/Makefile
1518 gst/filter/Makefile
1519 gst/flx/Makefile
1520 gst/goom/Makefile
1521 gst/id3/Makefile
1522 gst/intfloat/Makefile
1523 gst/law/Makefile
1524 gst/level/Makefile
1525 gst/matroska/Makefile
1526 gst/median/Makefile
1527 gst/mixmatrix/Makefile
1528 gst/mpeg1sys/Makefile
1529 gst/mpeg1videoparse/Makefile
1530 gst/mpeg2sub/Makefile
1531 gst/mpegaudio/Makefile
1532 gst/mpegaudioparse/Makefile
1533 gst/mpegstream/Makefile
1534 gst/modplug/Makefile
1535 gst/modplug/libmodplug/Makefile
1536 gst/monoscope/Makefile
1537 gst/oneton/Makefile
1538 gst/overlay/Makefile
1539 gst/passthrough/Makefile
1540 gst/playondemand/Makefile
1541 gst/qtdemux/Makefile
1542 gst/realmedia/Makefile
1543 gst/rtjpeg/Makefile
1544 gst/rtp/Makefile
1545 gst/silence/Makefile
1546 gst/sine/Makefile
1547 gst/smooth/Makefile
1548 gst/smpte/Makefile
1549 gst/spectrum/Makefile
1550 gst/speed/Makefile
1551 gst/stereo/Makefile
1552 gst/switch/Makefile
1553 gst/synaesthesia/Makefile
1554 gst/tags/Makefile
1555 gst/tcp/Makefile
1556 gst/typefind/Makefile
1557 gst/udp/Makefile
1558 gst/vbidec/Makefile
1559 gst/videocrop/Makefile
1560 gst/videodrop/Makefile
1561 gst/videofilter/Makefile
1562 gst/videoflip/Makefile
1563 gst/videoscale/Makefile
1564 gst/videotestsrc/Makefile
1565 gst/volenv/Makefile
1566 gst/volume/Makefile
1567 gst/wavenc/Makefile
1568 gst/wavparse/Makefile
1569 gst/y4m/Makefile
1570 sys/Makefile
1571 sys/cdrom/Makefile
1572 sys/dxr3/Makefile
1573 sys/glsink/Makefile
1574 sys/oss/Makefile
1575 sys/qcam/Makefile
1576 sys/v4l/Makefile
1577 sys/v4l2/Makefile
1578 sys/vcd/Makefile
1579 sys/ximage/Makefile
1580 sys/xvimage/Makefile
1581 sys/xvideo/Makefile
1582 ext/Makefile
1583 ext/a52dec/Makefile
1584 ext/aalib/Makefile
1585 ext/alsa/Makefile
1586 ext/arts/Makefile
1587 ext/artsd/Makefile
1588 ext/audiofile/Makefile
1589 ext/cdparanoia/Makefile
1590 ext/divx/Makefile
1591 ext/dv/Makefile
1592 ext/dvdread/Makefile
1593 ext/dvdnav/Makefile
1594 ext/esd/Makefile
1595 ext/faac/Makefile
1596 ext/faad/Makefile
1597 ext/ffmpeg/Makefile
1598 ext/flac/Makefile
1599 ext/gdk_pixbuf/Makefile
1600 ext/gnomevfs/Makefile
1601 ext/gsm/Makefile
1602 ext/hermes/Makefile
1603 dnl ext/http/Makefile
1604 ext/jack/Makefile
1605 ext/jpeg/Makefile
1606 ext/ladspa/Makefile
1607 ext/lame/Makefile
1608 ext/ivorbis/Makefile
1609 ext/lcs/Makefile
1610 ext/libfame/Makefile
1611 ext/libpng/Makefile
1612 ext/mad/Makefile
1613 ext/mas/Makefile
1614 ext/mikmod/Makefile
1615 ext/mpeg2dec/Makefile
1616 ext/mpeg2enc/Makefile
1617 ext/mplex/Makefile
1618 ext/ogg/Makefile
1619 ext/pango/Makefile
1620 ext/raw1394/Makefile
1621 ext/sdl/Makefile
1622 ext/shout/Makefile
1623 ext/shout2/Makefile
1624 ext/sidplay/Makefile
1625 ext/smoothwave/Makefile
1626 ext/snapshot/Makefile
1627 ext/speex/Makefile
1628 ext/sndfile/Makefile
1629 ext/swfdec/Makefile
1630 ext/vorbis/Makefile
1631 ext/tarkin/Makefile
1632 ext/xvid/Makefile
1633 gst-libs/Makefile
1634 gst-libs/gst/Makefile
1635 gst-libs/gst/audio/Makefile
1636 gst-libs/gst/colorbalance/Makefile
1637 gst-libs/gst/floatcast/Makefile
1638 gst-libs/gst/gconf/Makefile
1639 gst-libs/gst/idct/Makefile
1640 gst-libs/gst/media-info/Makefile
1641 gst-libs/gst/mixer/Makefile
1642 gst-libs/gst/navigation/Makefile
1643 gst-libs/gst/play/Makefile
1644 gst-libs/gst/propertyprobe/Makefile
1645 gst-libs/gst/resample/Makefile
1646 gst-libs/gst/riff/Makefile
1647 gst-libs/gst/tag/Makefile
1648 gst-libs/gst/tuner/Makefile
1649 gst-libs/gst/video/Makefile
1650 gst-libs/gst/xoverlay/Makefile
1651 gst-libs/gst/xwindowlistener/Makefile
1652 gst-libs/ext/Makefile
1653 gst-libs/ext/ffmpeg/Makefile
1654 examples/dynparams/Makefile
1655 examples/capsfilter/Makefile
1656 examples/seeking/Makefile
1657 examples/indexing/Makefile
1658 examples/gstplay/Makefile
1659 examples/Makefile
1660 testsuite/spider/Makefile
1661 testsuite/alsa/Makefile
1662 testsuite/Makefile
1663 tools/Makefile
1664 tools/gst-launch-ext
1665 gconf/Makefile
1666 pkgconfig/Makefile
1667 )
1668 AC_OUTPUT
1669
1670 echo -n "configure: *** Plug-ins that will be built :"
1671 echo -e "$GST_PLUGINS_YES" | sort
1672 echo
1673 echo -n "configure: *** Plug-ins that will not be built :"
1674 echo -e "$GST_PLUGINS_NO" | sort
1675 echo
1676 if test "x$BUILD_EXTERNAL" = "xno"; then
1677   echo "configure: *** No external plug-ins will be built"
1678 fi