1 dnl autoconf configuration file for gst-plugins
2 AC_INIT
3 AC_CANONICAL_TARGET([])
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
10 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
11 AM_MAINTAINER_MODE
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)
18 dnl our libraries and install dirs use major.minor as a version
19 GST_MAJORMINOR=$GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR
20 AC_SUBST(GST_MAJORMINOR)
22 dnl CURRENT, REVISION, AGE
23 dnl - library source changed -> increment REVISION
24 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
25 dnl - interfaces added -> increment AGE
26 dnl - interfaces removed -> AGE = 0
27 AS_LIBTOOL(GST_PLUGINS, 1, 0, 0)
29 dnl FIXME take something else ?
30 AC_CONFIG_SRCDIR([gst/law/alaw.c])
31 AM_CONFIG_HEADER(config.h)
33 dnl Add parameters for aclocal
34 dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
35 ACLOCAL_FLAGS="-I m4 -I common/m4"
36 AC_SUBST(ACLOCAL_AMFLAGS, $ACLOCAL_FLAGS)
38 AC_PROG_CC
39 AM_PROG_CC_STDC
40 AM_PROG_AS
41 AS="${CC}"
43 dnl decide on error flags
44 AS_COMPILER_FLAG(-Wall, GST_WALL="yes", GST_WALL="no")
46 if test "x$GST_WALL" = "xyes"; then
47 GST_ERROR="$GST_ERROR -Wall"
49 if test "x$GST_CVS" = "xyes"; then
50 AS_COMPILER_FLAG(-Werror,GST_ERROR="$GST_ERROR -Werror",GST_ERROR="$GST_ERROR")
51 fi
53 dnl set gcc-style optimization flags if using the gnu compiler.
54 GST_FUNROLL_CFLAGS="$GST_FUNROLL_CFLAGS -funroll-all-loops"
55 GST_FINLINE_CFLAGS="$GST_FINLINE_CFLAGS -finline-functions"
56 GST_FFASTMATH_CFLAGS="$GST_FFASTMATH_CFLAGS -ffast-math"
57 GST_FSCHEDULE_CFLAGS="$GST_FSCHEDULE_CFLAGS -fschedule-insns2"
58 GST_FNOEXCEPTIONS_CFLAGS="$GST_FNOEXCEPTIONS_CFLAGS -fno-exceptions"
59 fi
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
69 AC_HEADER_STDC([])
71 dnl ############################################
72 dnl # Super Duper options for plug-in building #
73 dnl ############################################
75 dnl ext plug-ins; plug-ins that have external dependencies
76 GST_CHECK_FEATURE(EXTERNAL, [enable building of plug-ins with external deps],,
77 [HAVE_EXTERNAL=yes],enabled,
78 [
79 AC_MSG_WARN(building external plug-ins)
80 BUILD_EXTERNAL="yes"
81 ],[
82 AC_MSG_WARN(all plug-ins with external dependencies will not be built)
83 BUILD_EXTERNAL="no"
84 ])
85 # make BUILD_EXTERNAL available to Makefile.am
86 AM_CONDITIONAL(BUILD_EXTERNAL, test "x$BUILD_EXTERNAL" = "xyes")
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 [HAVE_EXPERIMENTAL=yes],disabled,
92 [
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 ])
102 dnl broken plug-ins; stuff that doesn't seem to build at the moment
103 GST_CHECK_FEATURE(BROKEN, [enable building of broken plug-ins],,
104 HAVE_BROKEN=yes,disabled,
105 [
106 AC_MSG_WARN([building broken plug-ins -- no bug reports on these, only patches :)])
107 ],[
108 AC_MSG_NOTICE([not building broken plug-ins])
109 ])
111 dnl ##############################
112 dnl # Do automated configuration #
113 dnl ##############################
115 dnl Check for tools:
116 dnl ================
118 dnl allow for different autotools
119 AS_AUTOTOOLS_ALTERNATE()
121 dnl modify pkg-config path
122 AC_ARG_WITH(pkg-config-path,
123 AC_HELP_STRING([--with-pkg-config-path],[colon-separated list of pkg-config(1) dirs]),
124 [export PKG_CONFIG_PATH=${withval}])
126 dnl Check for nasm
127 AC_PATH_PROG(NASM_PATH, nasm, no)
128 AC_SUBST(NASM_PATH)
129 if test x$NASM_PATH = xno; then
130 AC_MSG_WARN(Couldn't find nasm)
131 HAVE_NASM="no"
132 else
133 AC_DEFINE(HAVE_NASM, 1, [Define if NASM, the netwide assembler, is available])
134 HAVE_NASM="yes"
135 fi
137 dnl check for gconftool-2
138 translit(dnm, m, l) AM_CONDITIONAL(USE_GCONFTOOL, true)
139 GST_CHECK_FEATURE(GCONFTOOL, [GConf schemas], , [
140 AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
141 if test x$GCONFTOOL = xno; then
142 AC_MSG_WARN(Not installing GConf schemas)
143 HAVE_GCONFTOOL="no"
144 else
145 AM_GCONF_SOURCE_2
146 HAVE_GCONFTOOL="yes"
147 fi
148 AC_SUBST(HAVE_GCONFTOOL)
149 ])
151 dnl check for GConf libraries
152 translit(dnm, m, l) AM_CONDITIONAL(USE_GCONF, true)
153 GST_CHECK_FEATURE(GCONF, [GConf libraries], , [
154 PKG_CHECK_MODULES(GCONF, gconf-2.0, HAVE_GCONF="yes", HAVE_GCONF="no")
155 AC_SUBST(GCONF_CFLAGS)
156 AC_SUBST(GCONF_LIBS)
157 ])
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")
163 if test "x$HAVE_GST" = "xno"; then
164 AC_MSG_ERROR(no GStreamer found)
165 fi
167 GST_TOOLS_DIR=`pkg-config --variable=toolsdir gstreamer-$GST_MAJORMINOR`
168 if test -z $GST_TOOLS_DIR; then
169 AC_MSG_ERROR([no tools dir defined in GStreamer pkg-config file; core upgrade needed.])
170 fi
171 AC_SUBST(GST_TOOLS_DIR)
173 dnl check for gstreamer-control; uninstalled is selected preferentially
174 PKG_CHECK_MODULES(GST_CONTROL, gstreamer-control-$GST_MAJORMINOR >= $GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR.$GST_PLUGINS_VERSION_MICRO,
175 HAVE_GST_CONTROL="yes", HAVE_GST_CONTROL="no")
177 if test "x$HAVE_GST_CONTROL" = "xno"; then
178 AC_MSG_ERROR(no GStreamer Control Libs found)
179 fi
181 AC_SUBST(GST_CONTROL_LIBS)
184 dnl Set up conditionals for (target) architecture:
185 dnl ==============================================
187 dnl Determine CPU
188 case "x${target_cpu}" in
189 xi?86 | k?) HAVE_CPU_I386=yes
190 AC_DEFINE(HAVE_CPU_I386, 1, [Define if the target CPU is an x86])
191 dnl FIXME could use some better detection
192 dnl (ie CPUID)
193 case "x${target_cpu}" in
194 xi386 | xi486) ;;
195 *) AC_DEFINE(HAVE_RDTSC, 1, [Define if RDTSC is available]) ;;
196 esac ;;
197 xpowerpc) HAVE_CPU_PPC=yes
198 AC_DEFINE(HAVE_CPU_PPC, 1, [Define if the target CPU is a PPC]) ;;
199 xalpha) HAVE_CPU_ALPHA=yes
200 AC_DEFINE(HAVE_CPU_ALPHA, 1, [Define if the target CPU is an Alpha]) ;;
201 xarm*) HAVE_CPU_ARM=yes
202 AC_DEFINE(HAVE_CPU_ARM, 1, [Define if the target CPU is an ARM]) ;;
203 xsparc*) HAVE_CPU_SPARC=yes
204 AC_DEFINE(HAVE_CPU_SPARC, 1, [Define if the target CPU is a PPC]) ;;
205 xmips*) HAVE_CPU_MIPS=yes
206 AC_DEFINE(HAVE_CPU_MIPS, 1, [Define if the target CPU is a MIPS]) ;;
207 xhppa*) HAVE_CPU_HPPA=yes
208 AC_DEFINE(HAVE_CPU_HPPA, 1, [Define if the target CPU is a HPPA]) ;;
209 esac
211 dnl Determine endianness
212 AC_C_BIGENDIAN
214 dnl Check for fast float to int casting as defined in C99
215 AC_C99_FUNC_LRINT()
216 AC_C99_FUNC_LRINTF()
218 dnl Check for essential libraries first:
219 dnl ====================================
221 GST_GLIB2_CHECK()
222 PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK=yes, HAVE_GTK=no)
223 GTK_CFLAGS=$GTK2_CFLAGS
224 GTK_LIBS=$GTK2_LIBS
225 AC_SUBST(GTK_LIBS)
226 AC_SUBST(GTK_CFLAGS)
229 dnl Check for X11 extensions
230 AC_PATH_XTRA
231 if test "-DX_DISPLAY_MISSING" = "$X_CFLAGS"; then
232 AC_MSG_NOTICE([cannot find X11, the build system needs fixage])
233 fi
234 AC_SUBST(X_CFLAGS)
235 AC_SUBST(X_PRE_LIBS)
236 AC_SUBST(X_EXTRA_LIBS)
237 AC_SUBST(X_LIBS)
239 dnl ===========================================================================
240 dnl ============================= gst plug-ins ================================
241 dnl ===========================================================================
243 GST_PLUGIN_LDFLAGS='-module -avoid-version'
244 AC_SUBST(GST_PLUGIN_LDFLAGS)
246 dnl these are all the gst plug-ins, compilable without additional libs
247 GST_PLUGINS_ALL="\
248 ac3parse adder audioscale auparse avi \
249 asfdemux audioconvert cdxaparse chart \
250 cutter debug deinterlace effectv festival \
251 filter flx goom intfloat law level median mixmatrix \
252 mpeg1enc mpeg1sys mpeg1videoparse mpeg2enc mpeg2sub \
253 mpegaudio mpegaudioparse mpegstream mpegtypes \
254 monoscope oneton overlay passthrough playondemand qtdemux \
255 realmedia rtp rtjpeg silence sine smooth smpte \
256 spectrum speed stereo synaesthesia udp vbidec \
257 videocrop videofilter videoflip videoscale videotestsrc \
258 volenv volume wavenc wavparse y4m"
260 dnl see if we can build C++ plug-ins
261 if test "x$HAVE_CXX" = "xyes"; then
262 GST_PLUGINS_ALL="$GST_PLUGINS_ALL \
263 modplug"
264 else
265 AC_MSG_WARN([Not compiling plug-ins requiring C++ compiler])
266 fi
268 AC_SUBST(GST_PLUGINS_ALL)
270 GST_PLUGINS_SELECTED=""
272 AC_ARG_WITH(plugins,
273 AC_HELP_STRING([--with-plugins],[comma-separated list of plug-ins to compile]),
274 [for i in `echo $withval | tr , ' '`; do
275 if test -n `echo $i | grep $GST_PLUGINS_ALL`; then
276 GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED $i"
277 else
278 echo "plug-in $i not recognized, ignoring..."
279 fi
280 done],
281 [GST_PLUGINS_SELECTED=$GST_PLUGINS_ALL])
283 AC_SUBST(GST_PLUGINS_SELECTED)
285 dnl ==========================================================================
286 dnl ============================= sys plug-ins ================================
287 dnl ==========================================================================
289 dnl *** DXR3 card ***
290 translit(dnm, m, l) AM_CONDITIONAL(USE_DXR3, true)
291 GST_CHECK_FEATURE(DXR3, [DXR3 hardware MPEG DVD decoder],
292 dxr3videosink dxr3audiosink dxr3spusink, [
293 HAVE_DXR3=yes
294 AC_CHECK_HEADER(linux/em8300.h, ,
295 [ AC_MSG_WARN([DXR3/em8300 header file not found]) &&
296 HAVE_DXR3=no ] )
297 AC_CHECK_HEADER(linux/soundcard.h, ,
298 [ AC_MSG_WARN([Generic sound header file not found]) &&
299 HAVE_DXR3=no ] )
300 ])
302 dnl *** OSS audio ***
303 translit(dnm, m, l) AM_CONDITIONAL(USE_OSS, true)
304 GST_CHECK_FEATURE(OSS, [OSS audio], osssrc osssink, [
305 AC_CHECK_HEADER(sys/soundcard.h, HAVE_OSS="yes", HAVE_OSS="no")
306 ])
308 dnl *** QuickCam ***
309 translit(dnm, m, l) AM_CONDITIONAL(USE_QCAM, true)
310 GST_CHECK_FEATURE(QCAM, [QuickCam], qcamsrc, [
311 if test "x$HAVE_CPU_I386" != "xyes";
312 then
313 HAVE_QCAM="no"
314 else
315 AC_CHECK_HEADER(sys/io.h, HAVE_QCAM="yes", HAVE_QCAM="no")
316 fi
317 if test "x$HAVE_QCAM" != "xyes";
318 then
319 AC_MSG_WARN([QuickCam only works on i386-linux])
320 fi
321 ])
323 dnl *** Video 4 Linux ***
324 dnl for information about the header/define, see sys/v4l/gstv4lelement.h
325 translit(dnm, m, l) AM_CONDITIONAL(USE_V4L, true)
326 GST_CHECK_FEATURE(V4L, [Video 4 Linux], v4lsrc v4lmjpegsrc v4lmjpegsink, [
327 AC_CHECK_DECL(VID_TYPE_MPEG_ENCODER, HAVE_V4L="yes", HAVE_V4L="no", [
328 #include <sys/types.h>
329 #define _LINUX_TIME_H
330 #include <linux/videodev.h>
331 ])
332 ])
334 dnl *** Video 4 Linux 2***
335 dnl for information about the header/define, see sys/v4l2/gstv4l2element.h
336 translit(dnm, m, l) AM_CONDITIONAL(USE_V4L2, true)
337 GST_CHECK_FEATURE(V4L2, [Video 4 Linux 2], v4l2src, [
338 AC_MSG_CHECKING([Checking for uptodate v4l2 installation])
339 AC_TRY_COMPILE([
340 #include <sys/types.h>
341 #include <linux/types.h>
342 #define _LINUX_TIME_H
343 #include <linux/videodev2.h>
344 #if defined(V4L2_MAJOR_VERSION) || defined(V4L2_MINOR_VERSION)
345 #error too early v4l2 version or no v4l2 at all
346 #endif
347 ], [
348 return 0;
349 ], [ HAVE_V4L2="yes" && AC_MSG_RESULT(yes)],
350 [ HAVE_V4L2="no" && AC_MSG_RESULT(no) &&
351 AC_CHECK_HEADER(linux/videodev2.h,
352 [ AC_MSG_WARN([video4linux2 headers were found, but they're old. Please update v4l2 to compile the v4l2 plugins])],
353 [ AC_MSG_WARN([video4linux2 was not found])])])
354 ])
356 dnl *** Video CD ***
357 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
358 GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
359 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
360 ])
362 dnl *** CDROM Audio ***
363 translit(dnm, m, l) AM_CONDITIONAL(USE_CDROM, true)
364 GST_CHECK_FEATURE(CDROM, [CDROM Audio], cdrom, [
365 AC_CHECK_HEADERS(linux/cdrom.h) dnl linux
366 AC_CHECK_HEADERS(sys/cdio.h) dnl almost everything else
367 dnl AC_CHECK_HEADERS(dmedia/cdaudio.h) dnl irix
369 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
370 case "$host" in
371 *-sun-* | *-*-linux*)
372 AC_DEFINE(HAVE_CDROM_SOLARIS,, [Define if cdrom access is in Solaris style])
373 ;;
374 *-*-freebsd*)
375 AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style])
376 ;;
377 *-*-netbsd* | *-*-openbsd*)
378 AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style])
379 AC_DEFINE(HAVE_CDROM_BSD_NETBSD,, [Define if cdrom access uses NetBSD variant])
380 ;;
381 *-*darwin*)
382 AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style])
383 AC_DEFINE(HAVE_CDROM_BSD_DARWIN,, [Define if cdrom access uses Darwin variant])
384 ;;
385 dnl *-irix-*)
386 dnl AC_DEFINE(HAVE_CDROM_IRIX,, [Define if cdrom access is in Irix DMedia style])
387 dnl ;;
388 esac
390 HAVE_CDROM="yes"
391 else
392 HAVE_CDROM="no"
393 fi
394 ])
396 dnl *** XVideo ***
397 dnl Look for the PIC library first, Debian requires it.
398 dnl Check debian-devel archives for gory details.
399 dnl 20020110:
400 dnl At the moment XFree86 doesn't distribute shared libXv due
401 dnl to unstable API. On many platforms you CAN NOT link a shared
402 dnl lib to a static non-PIC lib. This is what the xvideo GStreamer
403 dnl plug-in wants to do. So Debian distributes a PIC compiled
404 dnl version of the static lib for plug-ins to link to when it is
405 dnl inappropriate to link the main application to libXv directly.
406 dnl FIXME: add check if this platform can support linking to a
407 dnl non-PIC libXv, if not then don not use Xv.
408 dnl FIXME: perhaps warn user if they have a shared libXv since
409 dnl this is an error until XFree86 starts shipping one
410 translit(dnm, m, l) AM_CONDITIONAL(USE_XFREE, true)
411 GST_CHECK_FEATURE(XFREE, [X11 XFree86], xvideosink-X, [
412 if test "-DX_DISPLAY_MISSING" = "$X_CFLAGS"; then
413 HAVE_XFREE=no
414 else
415 HAVE_XFREE=yes
416 fi
417 ])
419 dnl Check for Xv extension
420 translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
421 GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions], xvideosink-Xv, [
422 if test x$HAVE_XFREE = xyes; then
423 AC_CHECK_LIB(Xv_pic, XvQueryExtension,
424 HAVE_XVIDEO="yes", HAVE_XVIDEO="no",
425 $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS)
427 if test x$HAVE_XVIDEO = xyes; then
428 XVIDEO_LIBS="-lXv_pic -lXext"
429 AC_SUBST(XVIDEO_LIBS)
430 else
431 dnl try again using something else if we didn't find it first
432 if test x$HAVE_XVIDEO = xno; then
433 AC_CHECK_LIB(Xv, XvQueryExtension,
434 HAVE_XVIDEO="yes", HAVE_XVIDEO="no",
435 $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS)
437 if test x$HAVE_XVIDEO = xyes; then
438 XVIDEO_LIBS="-lXv -lXext"
439 AC_SUBST(XVIDEO_LIBS)
440 fi
441 fi
442 fi
443 fi
444 ])
446 dnl Next, check for the optional libraries:
447 dnl These are all libraries used in building plug-ins
448 dnl ================================================
449 dnl let's try and sort them alphabetically, shall we ?
451 if test "x$BUILD_EXTERNAL" = "xyes"; then
453 AC_MSG_NOTICE(Checking for plug-in dependency libraries)
455 dnl *** a52dec ***
456 translit(dnm, m, l) AM_CONDITIONAL(USE_A52DEC, true)
457 GST_CHECK_FEATURE(A52DEC, [a52dec], a52dec, [
458 AC_CHECK_A52DEC(HAVE_A52DEC=yes, HAVE_A52DEC=no)
459 ])
461 dnl *** aalib ***
462 translit(dnm, m, l) AM_CONDITIONAL(USE_AALIB, true)
463 GST_CHECK_FEATURE(AALIB, [aasink plug-in], aasink, [
464 AM_PATH_AALIB(, HAVE_AALIB=yes, HAVE_AALIB=no)
465 AS_SCRUB_INCLUDE(AALIB_CFLAGS)
466 ])
468 dnl *** alsa ***
469 translit(dnm, m, l) AM_CONDITIONAL(USE_ALSA, true)
470 GST_CHECK_FEATURE(ALSA, [alsa plug-ins], gstalsa, [
471 AM_PATH_ALSA(0.9.0, HAVE_ALSA=yes, HAVE_ALSA=no)
472 ])
474 dnl *** arts ***
475 dnl if mcopidl can't be found there's no use in compiling it
476 AC_CHECK_PROG(MCOPIDL, mcopidl, yes, no)
477 if test "x$HAVE_MCOPIDL" = "xno";
478 then
479 USE_ARTS=no
480 fi
482 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTS, true)
483 GST_CHECK_FEATURE(ARTS, [arts plug-ins], arts, [
484 AM_PATH_ARTS(, HAVE_ARTS=yes, HAVE_ARTS=no)
485 ])
487 dnl *** artsc ***
488 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTSC, true)
489 GST_CHECK_FEATURE(ARTSC, [artsd plug-ins], artsdsink, [
490 GST_CHECK_ARTSC()
491 ])
493 dnl *** audiofile ***
494 dnl this check uses the GST_CHECK_CONFIGPROG macro
495 translit(dnm, m, l) AM_CONDITIONAL(USE_AUDIOFILE, true)
496 GST_CHECK_FEATURE(AUDIOFILE, [audiofile], afsink afsrc, [
497 translit(dnm, m, l) AC_SUBST(AUDIOFILE_LIBS)
498 translit(dnm, m, l) AC_SUBST(AUDIOFILE_CFLAGS)
499 dnl check with pkg-config first
500 PKG_CHECK_MODULES(AUDIOFILE, audiofile, HAVE_AUDIOFILE="yes", HAVE_AUDIOFILE="no")
501 if test "x$HAVE_AUDIOFILE" = "xno"; then
502 GST_CHECK_CONFIGPROG(AUDIOFILE, audiofile-config)
503 dnl we need this function
504 AC_CHECK_LIB(audiofile, afOpenVirtualFile, , HAVE_AUDIOFILE="no")
505 fi])
507 dnl *** CDParanoia ***
508 translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
509 GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
510 GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface,
511 cdda_open, -lm,
512 cdda_interface.h,
513 CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
514 HEADER_DIR="no"
515 FOUND_CDPARANOIA="yes")
516 if test "x$FOUND_CDPARANOIA" != "xyes";
517 then
518 GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface,
519 cdda_open, -lm,
520 cdda/cdda_interface.h,
521 CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
522 HEADER_DIR="yes"
523 FOUND_CDPARANOIA="yes")
524 fi
525 if test "x$HEADER_DIR" = "xyes";
526 then
527 AC_DEFINE_UNQUOTED(CDPARANOIA_HEADERS_IN_DIR, ,
528 defined if cdda headers are in a cdda/ directory)
529 fi
530 AC_SUBST(CDPARANOIA_LIBS)
531 ])
532 dnl FIXME : add second check somehow if that is necessary
533 dnl AC_CHECK_LIB(cdda_paranoia, paranoia_init, : , HAVE_CDPARANOIA=no, -lcdda_interface )
534 dnl AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no)
536 dnl *** DIVX ***
537 translit(dnm, m, l) AM_CONDITIONAL(USE_DIVX, true)
538 GST_CHECK_FEATURE(DIVX, [divx plugins], divx, [
539 HAVE_DIVX=yes
540 AC_CHECK_HEADER(encore2.h, ,
541 [ AC_MSG_WARN([Divx4linux encore headers not found]) &&
542 HAVE_DIVX=no ] )
543 if [ test x$HAVE_DIVX = xyes ]; then
544 AC_MSG_CHECKING([Checking for valid divx4linux encore version])
545 AC_TRY_COMPILE([
546 #include <encore2.h>
547 #if ENCORE_VERSION != 20021024
548 #error Wrong version of divx encore libraries
549 #endif
550 ], [
551 return 0;
552 ], [ HAVE_DIVX=yes && AC_MSG_RESULT(yes)],
553 [ HAVE_DIVX=no && AC_MSG_RESULT(no) &&
554 AC_MSG_WARN([Wrong version of divx4linux installed]) ])
555 fi
556 if [ test x$HAVE_DIVX = xyes ]; then
557 AC_CHECK_HEADER(decore.h, ,
558 [ AC_MSG_WARN([Divx4linux decoder headers not found]) &&
559 HAVE_DIVX=no ] )
560 fi
561 if [ test x$HAVE_DIVX = xyes ]; then
562 AC_MSG_CHECKING([Checking for valid divx4linux decore version])
563 AC_TRY_COMPILE([
564 #include <decore.h>
565 #if DECORE_VERSION != 20021112
566 #error Wrong version of divx decore libraries
567 #endif
568 ], [
569 return 0;
570 ], [ HAVE_DIVX=yes && AC_MSG_RESULT(yes)],
571 [ HAVE_DIVX=no && AC_MSG_RESULT(no) &&
572 AC_MSG_WARN([Wrong version of divx4linux installed]) ])
573 fi
574 LIBS="-lm"
575 if test x$HAVE_DIVX = xyes; then
576 AC_CHECK_LIB(divxencore, encore, ,
577 [ AC_MSG_WARN([Divx4linux encore libs not found]) &&
578 HAVE_DIVX=no ] )
579 fi
580 if test x$HAVE_DIVX = xyes; then
581 AC_CHECK_LIB(divxdecore, decore, ,
582 [ AC_MSG_WARN([Divx4linux decore libs not found]) &&
583 HAVE_DIVX=no ] )
584 fi
585 if test x$HAVE_DIVX = xyes; then
586 DIVXENC_LIBS="-ldivxencore -lm"
587 DIVXDEC_LIBS="-ldivxdecore -lm"
588 AC_SUBST(DIVXENC_LIBS)
589 AC_SUBST(DIVXDEC_LIBS)
590 fi
591 ])
593 dnl *** dvdread ***
594 translit(dnm, m, l) AM_CONDITIONAL(USE_DVDREAD, true)
595 GST_CHECK_FEATURE(DVDREAD, [dvdread library], dvdreadsrc, [
596 GST_CHECK_LIBHEADER(DVDREAD, dvdread, DVDOpen, , dvdread/dvd_reader.h, DVDREAD_LIBS="-ldvdread")
597 AC_SUBST(DVDREAD_LIBS)
598 ])
600 dnl *** dvdnav ***
601 translit(dnm, m, l) AM_CONDITIONAL(USE_DVDNAV, true)
602 GST_CHECK_FEATURE(DVDNAV, [dvdnav library], dvdnavsrc, [
603 translit(dnm, m, l) AC_SUBST(DVDNAV_LIBS)
604 translit(dnm, m, l) AC_SUBST(DVDNAV_CFLAGS)
605 GST_CHECK_CONFIGPROG(DVDNAV, dvdnav-config)
606 if test x"$HAVE_DVDNAV" = x"yes"; then
607 dnl check version
608 DVDNAV_VERSION=`dvdnav-config --version|head -n 1|sed 's/^.*) //'|sed 's/ (.*)//'`
609 DVDNAV_MAJOR=`echo $DVDNAV_VERSION | cut -d. -f1 | sed s/[a-zA-Z\-].*//g`
610 DVDNAV_MINOR=`echo $DVDNAV_VERSION | cut -d. -f2 | sed s/[a-zA-Z\-].*//g`
611 DVDNAV_MICRO=`echo $DVDNAV_VERSION | cut -d. -f3 | sed s/[a-zA-Z\-].*//g`
612 if [[ "$DVDNAV_MAJOR" -eq "0" ]] && \
613 [[ "$DVDNAV_MINOR" -lt "1" ]]; then
614 AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION])
615 HAVE_DVDNAV="no"
616 elif [[ "$DVDNAV_MAJOR" -eq "0" ]] && \
617 [[ "$DVDNAV_MINOR" -eq "1" ]] && \
618 [[ "$DVDNAV_MICRO" -lt "7" ]]; then
619 AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION])
620 HAVE_DVDNAV="no"
621 fi
622 fi
623 AS_SCRUB_INCLUDE(DVDNAV_CFLAGS)
624 ])
626 dnl *** MAS ***
627 translit(dnm, m, l) AM_CONDITIONAL(USE_MAS, true)
628 GST_CHECK_FEATURE(MAS, [mas library], massink, [
629 translit(dnm, m, l) AC_SUBST(MAS_LIBS)
630 translit(dnm, m, l) AC_SUBST(MAS_CFLAGS)
631 GST_CHECK_CONFIGPROG(MAS, mas-config)
632 AS_SCRUB_INCLUDE(MAS_CFLAGS)
633 ])
635 dnl **** ESound ****
636 translit(dnm, m, l) AM_CONDITIONAL(USE_ESD, true)
637 GST_CHECK_FEATURE(ESD, [esound plug-ins], esdsink esdmon, [
638 AM_PATH_ESD(0.2.12, HAVE_ESD=yes, HAVE_ESD=no)
639 AS_SCRUB_INCLUDE(ESD_CFLAGS)
640 ])
642 dnl **** festival ****
643 dnl translit(dnm, m, l) AM_CONDITIONAL(USE_FESTIVAL, true)
644 dnl GST_CHECK_FEATURE(FESTIVAL, [festival plug-ins], festivalsrc, [
645 dnl NOTE: just using local net connection now, add this lib check
646 dnl in the future if needed
647 dnl AC_LANG_PUSH(C++)
648 dnl dnl FIXME: took out func to check for
649 dnl dnl This check puts festival_tidy_up in extern "C".
650 dnl dnl But, at least on Debian as of 20020110, it is compiled with name
651 dnl dnl mangling C++ nonsense and symbols can't resolve
652 dnl dnl GST_CHECK_LIBHEADER(FESTIVAL, Festival, festival_tidy_up, , festival/festival.h, FESTIVAL_LIBS="-lFestival")
653 dnl GST_CHECK_LIBHEADER(FESTIVAL, Festival, , , festival/festival.h, FESTIVAL_LIBS="-lFestival")
654 dnl AC_LANG_POP(C++)
655 dnl AC_SUBST(FESTIVAL_LIBS)
656 dnl HAVE_FESTIVAL=yes
657 dnl])
659 dnl *** FLAC ***
660 translit(dnm, m, l) AM_CONDITIONAL(USE_FLAC, true)
661 GST_CHECK_FEATURE(FLAC, [FLAC lossless audio], flacenc flacdec, [
662 GST_CHECK_LIBHEADER(FLAC, FLAC, FLAC__seekable_stream_encoder_new, -lm, FLAC/all.h, FLAC_LIBS="-lFLAC")
663 AC_SUBST(FLAC_LIBS)
664 ])
666 dnl *** FFMPEG ***
667 translit(dnm, m, l) AM_CONDITIONAL(USE_FFMPEG, true)
668 GST_CHECK_FEATURE(FFMPEG, [ffmpeg plug-ins], ffmpeg, [
669 # only slurp in the case where we are in CVS mode;
670 # prerelease and release should get it disted
671 if test "x$GST_PLUGINS_VERSION_NANO" = x1; then
672 AC_MSG_NOTICE(slurping FFmpeg CVS source)
673 AS_SLURP_FFMPEG(gst-libs/ext/ffmpeg, 2003-07-05 22:00 GMT,
674 HAVE_FFMPEG=yes, HAVE_FFMPEG=no)
675 else
676 AC_MSG_NOTICE(FFmpeg CVS code should be included already)
677 HAVE_FFMPEG=yes
678 fi
679 # we only bother with uninstalled (included) ffmpeg for now
680 AC_DEFINE_UNQUOTED(HAVE_FFMPEG_UNINSTALLED, 1,
681 [defined if we use uninstalled ffmpeg])
682 ])
684 dnl *** GDK pixbuf ***
685 translit(dnm, m, l) AM_CONDITIONAL(USE_GDK_PIXBUF, true)
686 GST_CHECK_FEATURE(GDK_PIXBUF, [GDK pixbuf], gdkpixbufsrc, [
687 if test $HAVE_GTK = "yes"; then HAVE_GDK_PIXBUF=yes; fi;
688 ])
690 dnl *** Gnome VFS ***
691 translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
692 GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [
693 PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0, HAVE_GNOME_VFS="yes", HAVE_GNOME_VFS="no")
694 AC_SUBST(GNOME_VFS_CFLAGS)
695 AC_SUBST(GNOME_VFS_LIBS)
696 ])
698 dnl *** gsm ***
699 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
700 GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
701 GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
702 if test $HAVE_GSM != "yes"; then
703 GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
704 if test $HAVE_GSM = "yes"; then
705 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
706 fi
707 fi
708 AC_SUBST(GSM_LIBS)
709 ])
711 dnl *** Hermes ***
712 translit(dnm, m, l) AM_CONDITIONAL(USE_HERMES, true)
713 GST_CHECK_FEATURE(HERMES, [Hermes library], colorspace, [
714 GST_CHECK_LIBHEADER(HERMES, Hermes, Hermes_ConverterInstance, , Hermes/Hermes.h, HERMES_LIBS="-lHermes")
715 ], AC_SUBST(HERMES_LIBS))
717 dnl *** http ***
718 dnl translit(dnm, m, l) AM_CONDITIONAL(USE_HTTP, true)
719 dnl GST_CHECK_FEATURE(HTTP, [http plug-ins], gsthttpsrc, [
720 dnl dnl FIXME: need to check for header
721 dnl GHTTP_LIBS=
722 dnl GST_HTTPSRC_GET_TYPE=
723 dnl if test x$USE_GLIB2 = xyes; then
724 dnl AC_MSG_WARN(ghttp disabled for glib2.0)
725 dnl else
726 dnl AC_CHECK_LIB(ghttp, ghttp_request_new,
727 dnl [HTTP_LIBS="-lghttp"
728 dnl GST_HTTPSRC_GET_TYPE="gst_httpsrc_get_type"
729 dnl HAVE_HTTP=yes
730 dnl ], :, $LIBS)
731 dnl fi
732 dnl AC_SUBST(HTTP_LIBS)
733 dnl AC_SUBST(GST_HTTPSRC_GET_TYPE)
734 dnl ])
736 dnl *** ivorbis ***
737 dnl AM_PATH_IVORBIS only takes two options
738 translit(dnm, m, l) AM_CONDITIONAL(USE_IVORBIS, true)
739 GST_CHECK_FEATURE(IVORBIS, [integer vorbis plug-in], ivorbisdec, [
740 IVORBIS_LIBS=
741 IVORBIS_CFLAGS=
742 AC_CHECK_LIB(vorbisidec, vorbis_block_init,
743 [IVORBIS_LIBS=-lvorbisidec
744 HAVE_IVORBIS=yes],
745 HAVE_IVORBIS=no)
746 AC_SUBST(IVORBIS_LIBS)
747 AC_SUBST(IVORBIS_CFLAGS)
748 ])
750 dnl *** Jack ***
751 translit(dnm, m, l) AM_CONDITIONAL(USE_JACK, true)
752 GST_CHECK_FEATURE(JACK, Jack, jack, [
753 PKG_CHECK_MODULES(JACK, jack >= 0.29.0, HAVE_JACK="yes", HAVE_JACK="no")
754 AC_SUBST(JACK_CFLAGS)
755 AC_SUBST(JACK_LIBS)
756 ])
758 dnl *** jpeg ***
759 dnl FIXME: we could use header checks here as well IMO
760 translit(dnm, m, l) AM_CONDITIONAL(USE_JPEG, true)
761 GST_CHECK_FEATURE(JPEG, [jpeg], jpegenc jpegdec, [
762 AC_ARG_WITH(jpeg-mmx,
763 [ --with-jpeg-mmx, path to MMX'ified JPEG library])
764 OLD_LIBS="$LIBS"
765 if test x$with_jpeg_mmx != x; then
766 LIBS="$LIBS -L$with_jpeg_mmx"
767 fi
768 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
769 JPEG_LIBS="$LIBS -ljpeg-mmx"
770 LIBS="$OLD_LIBS"
771 if test x$HAVE_JPEG != xyes; then
772 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
773 JPEG_LIBS="-ljpeg"
774 fi
775 AC_SUBST(JPEG_LIBS)
776 ])
778 dnl *** ladspa ***
779 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
780 GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
781 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
782 ])
784 dnl *** lame ***
785 translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true)
786 GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [
787 GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, -lm, lame/lame.h, HAVE_LAME="yes" LAME_LIBS="-lmp3lame")
788 ])
789 AC_SUBST(LAME_LIBS)
791 dnl *** libcolorspace ***
792 translit(dnm, m, l) AM_CONDITIONAL(USE_LCS, true)
793 GST_CHECK_FEATURE(LCS, Lcs, lcs, [
794 PKG_CHECK_MODULES(LCS, lcs, HAVE_LCS="yes", HAVE_LCS="no")
795 AC_SUBST(LCS_CFLAGS)
796 AC_SUBST(LCS_LIBS)
797 ])
799 dnl *** libdv ***
800 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDV, true)
801 GST_CHECK_FEATURE(LIBDV, [libdv DV/video decoder], dvdec, [
802 PKG_CHECK_MODULES(LIBDV, libdv >= 0.98, HAVE_LIBDV="yes", HAVE_LIBDV="no")
803 AC_SUBST(LIBDV_CFLAGS)
804 AC_SUBST(LIBDV_LIBS)
805 ])
807 dnl *** libfame ***
808 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBFAME, true)
809 GST_CHECK_FEATURE(LIBFAME, [libfame MPEG1/4 encoder], libfame, [
810 AM_PATH_LIBFAME(0.9.0, HAVE_LIBFAME="yes", HAVE_LIBFAME="no")
811 AC_SUBST(LIBFAME_CFLAGS)
812 AC_SUBST(LIBFAME_LIBS)
813 ])
815 dnl *** libpng ***
816 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBPNG, true)
817 GST_CHECK_FEATURE(LIBPNG, [libpng PNG encoder], pngenc, [
818 PKG_CHECK_MODULES(LIBPNG, libpng12, HAVE_LIBPNG="yes", HAVE_LIBPNG="no")
819 AC_SUBST(LIBPNG_CFLAGS)
820 AC_SUBST(LIBPNG_LIBS)
821 ])
824 dnl *** mad ***
825 dnl FIXME: we could use header checks here as well IMO
826 translit(dnm, m, l) AM_CONDITIONAL(USE_MAD, true)
827 GST_CHECK_FEATURE(MAD, [mad mp3 decoder], mad, [
828 dnl check with pkg-config first
829 PKG_CHECK_MODULES(MAD, mad id3tag, HAVE_MAD="yes", HAVE_MAD="no")
830 if test "x$HAVE_MAD" = "xno"; then
831 dnl fall back to oldskool detection
832 AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_MAD="yes" MAD_LIBS="-lmad")
833 if test "x$HAVE_MAD" = "xyes"; then
834 # installed with mad >= 0.14
835 HAVE_MAD="no"
836 save_libs=$LIBS
837 LIBS="-lz"
838 AC_CHECK_LIB(id3tag, id3_tag_query, HAVE_MAD="yes" MAD_LIBS="$MAD_LIBS -lid3tag")
839 LIBS=$save_LIBS
840 fi
841 fi
842 ])
843 AC_SUBST(MAD_LIBS)
845 dnl *** matroska ***
846 translit(dnm, m, l) AM_CONDITIONAL(USE_MATROSKA, true)
847 GST_CHECK_FEATURE(MATROSKA, [matroska muxer/demuxer], matroska muxer/demuxer, [
848 PATH_EBML([HAVE_MATROSKA=yes], [HAVE_MATROSKA=no])
849 if test x$HAVE_MATROSKA = xyes; then
850 PATH_MATROSKA(0.4.4, [HAVE_MATROSKA=yes], [HAVE_MATROSKA=no])
851 fi
852 ])
853 GST_CHECK_FEATURE(MATROSKA, [matroska muxer/demuxer], matroska muxer/demuxer, HAVE_MATROSKA=no)
855 dnl *** mikmod ***
856 translit(dnm, m, l) AM_CONDITIONAL(USE_MIKMOD, true)
857 GST_CHECK_FEATURE(MIKMOD, [mikmod plug-in], mikmod, [
858 AM_PATH_LIBMIKMOD(, HAVE_MIKMOD=yes, HAVE_MIKMOD=no)
859 AC_SUBST(MIKMOD_LIBS, "$LIBMIKMOD_LIBS")
860 AC_SUBST(MIKMOD_CFLAGS, "$LIBMIKMODCFLAGS")
861 ])
863 dnl *** mpeg2dec ***
864 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true)
865 GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [
866 PKG_CHECK_MODULES(MPEG2DEC, libmpeg2 >= 0.3.1,
867 HAVE_MPEG2DEC="yes", HAVE_MPEG2DEC="no")
868 AC_SUBST(MPEG2DEC_CFLAGS)
869 AC_SUBST(MPEG2DEC_LIBS)
870 ])
872 dnl *** pango ***
873 translit(dnm, m, l) AM_CONDITIONAL(USE_PANGO, true)
874 GST_CHECK_FEATURE(PANGO, [pango], pango, [
875 PKG_CHECK_MODULES(PANGO, pango pangoft2,
876 HAVE_PANGO="yes", HAVE_PANGO="no")
877 AC_SUBST(PANGO_CFLAGS)
878 AC_SUBST(PANGO_LIBS)
879 ])
881 dnl *** raw1394 ***
882 translit(dnm, m, l) AM_CONDITIONAL(USE_RAW1394, true)
883 GST_CHECK_FEATURE(RAW1394, [raw1394 library], dv1394src, [
884 GST_CHECK_LIBHEADER(RAW1394, raw1394, raw1394_new_handle,, libraw1394/raw1394.h, RAW1394_LIBS="-lraw1394")
885 AC_SUBST(RAW1394_LIBS)
886 ])
888 dnl *** SDL ***
889 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
890 GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink, [
891 AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
892 ])
894 dnl *** shout ***
895 translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT, true)
896 GST_CHECK_FEATURE(SHOUT, [shout plug-in], icecastsend, [
897 GST_CHECK_LIBHEADER(SHOUT, shout, shout_init_connection,, shout/shout.h, SHOUT_LIBS="-lshout")
898 AC_SUBST(SHOUT_LIBS)
899 ])
901 dnl *** shout2 ***
902 translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT2, true)
903 GST_CHECK_FEATURE(SHOUT2, [shout2 plug-in], shout2send, [
904 AM_PATH_SHOUT2(HAVE_SHOUT2=yes, HAVE_SHOUT2=no)
905 AC_SUBST(SHOUT2_CFLAGS)
906 AC_SUBST(SHOUT2_LIBS)
907 ])
909 dnl *** sidplay ***
910 translit(dnm, m, l) AM_CONDITIONAL(USE_SIDPLAY, true)
911 GST_CHECK_FEATURE(SIDPLAY, [sidplay plug-in], sidplay, [
912 GST_PATH_SIDPLAY()
913 ])
915 dnl *** smoothwave ***
916 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHWAVE, true)
917 GST_CHECK_FEATURE(SMOOTHWAVE, [smoothwave plug-in], smoothwave, [
918 if test $HAVE_GTK = "yes"; then HAVE_SMOOTHWAVE=yes; fi;
919 ])
922 dnl *** snapshot ***
923 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBPNG, true)
924 GST_CHECK_FEATURE(LIBPNG, [snapshot plug-in], snapshot, [
925 GST_CHECK_LIBHEADER(LIBPNG, png, png_read_info, -lz -lm, png.h, LIBPNG_LIBS="-lpng -lz -lm")
926 AC_SUBST(LIBPNG_LIBS)
927 ])
929 dnl *** speex ***
930 translit(dnm, m, l) AM_CONDITIONAL(USE_SPEEX, true)
931 GST_CHECK_FEATURE(SPEEX, [speex plug-in], speex, [
932 GST_CHECK_LIBHEADER(SPEEX, speex, speex_bits_init, , speex.h, HAVE_SPEEX="yes" SPEEX_LIBS="-lspeex")
933 AC_SUBST(SPEEX_CFLAGS)
934 AC_SUBST(SPEEX_LIBS)
935 ])
937 dnl *** sndfile ***
938 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
939 GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfsrc sfsink, [
940 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.0, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
941 AC_SUBST(SNDFILE_CFLAGS)
942 AC_SUBST(SNDFILE_LIBS)
943 ])
945 dnl *** swfdec ***
946 translit(dnm, m, l) AM_CONDITIONAL(USE_SWFDEC, true)
947 GST_CHECK_FEATURE(SWFDEC, [swfdec plug-in], swfdec, [
948 PKG_CHECK_MODULES(SWFDEC, swfdec >= 0.1.3.1, HAVE_SWFDEC=yes, HAVE_SWFDEC=no)
949 AC_SUBST(SWFDEC_CFLAGS)
950 AC_SUBST(SWFDEC_LIBS)
951 ])
953 dnl *** tarkin ***
954 dnl for now the sources are included in the plug-in
955 dnl and should be moved to ext-libs/ perhaps
956 translit(dnm, m, l) AM_CONDITIONAL(USE_TARKIN, true)
957 GST_CHECK_FEATURE(TARKIN, [tarkinenc tarkindec], tarkin, [
958 HAVE_TARKIN="yes"
959 ])
961 dnl *** vorbis ***
962 dnl AM_PATH_VORBIS only takes two options
963 translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
964 GST_CHECK_FEATURE(VORBIS, [vorbis plug-in], vorbisenc vorbisdec, [
965 XIPH_PATH_VORBIS(HAVE_VORBIS=yes, HAVE_VORBIS=no)
966 AS_SCRUB_INCLUDE(VORBIS_CFLAGS)
967 ])
969 dnl *** XVID ***
970 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
971 GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
972 HAVE_XVID=yes
973 AC_CHECK_HEADER(xvid.h, ,
974 [ AC_MSG_WARN([Xvid headers not found]) &&
975 HAVE_XVID=no ] )
976 LIBS="-lm"
977 AC_CHECK_LIB(xvidcore, xvid_encore, ,
978 [ AC_MSG_WARN([Xvid encore libs not found]) &&
979 HAVE_XVID=no ] )
980 AC_CHECK_LIB(xvidcore, xvid_decore, ,
981 [ AC_MSG_WARN([Xvid decore libs not found]) &&
982 HAVE_XVID=no ] )
983 if test x$HAVE_XVID = xyes; then
984 XVID_LIBS="-lxvidcore -lm"
985 AC_SUBST(XVID_LIBS)
986 fi
987 ])
990 fi dnl of EXT plugins
992 dnl Check for atomic.h
993 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
994 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
995 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
996 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
997 if test x$HAVE_ATOMIC_H = xyes; then
998 AC_TRY_RUN([
999 #include "asm/atomic.h"
1000 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
1001 ],, [
1002 # Not successful
1003 if test x$HAVE_ATOMIC_H = xyes; then
1004 AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
1005 fi
1006 HAVE_ATOMIC_H=no
1007 ], [
1008 # Cross compiling
1009 AC_MSG_RESULT(yes)
1010 AC_MSG_WARN(Can't check properly for atomic reference counting. Assuming OK.)
1011 ])
1012 fi
1015 dnl ######################################################################
1016 dnl # Check command line parameters, and set shell variables accordingly #
1017 dnl ######################################################################
1019 AC_ARG_ENABLE(libmmx,
1020 AC_HELP_STRING([--enable-libmmx],[use libmmx, if available]),
1021 [case "${enableval}" in
1022 yes) USE_LIBMMX=$HAVE_LIBMMX ;;
1023 no) USE_LIBMMX=no ;;
1024 *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
1025 esac],
1026 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
1028 AC_ARG_ENABLE(atomic,
1029 AC_HELP_STRING([--enable-atomic],[use atomic reference counting header]),
1030 [case "${enableval}" in
1031 yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
1032 noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
1033 no) USE_ATOMIC_H=no;;
1034 *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
1035 esac],
1036 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
1038 AC_ARG_ENABLE(profiling,
1039 AC_HELP_STRING([--enable-profiling],
1040 [-pg to compiler commandline, for profiling]),
1041 [case "${enableval}" in
1042 yes) USE_PROFILING=yes ;;
1043 no) UES_PROFILING=no ;;
1044 *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
1045 esac],
1046 [USE_PROFILING=no]) dnl Default value
1048 AC_ARG_ENABLE(tests,
1049 AC_HELP_STRING([--disable-tests],[disable building test apps]),
1050 [case "${enableval}" in
1051 yes) BUILD_TESTS=yes ;;
1052 no) BUILD_TESTS=no ;;
1053 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
1054 esac],
1055 [BUILD_TESTS=yes]) dnl Default value
1057 AC_ARG_ENABLE(examples,
1058 AC_HELP_STRING([--disable-examples],[disable building examples]),
1059 [case "${enableval}" in
1060 yes) BUILD_EXAMPLES=yes ;;
1061 no) BUILD_EXAMPLES=no ;;
1062 *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
1063 esac],
1064 [BUILD_EXAMPLES=yes]) dnl Default value
1066 dnl seeking needs freetype, so check for it here
1067 AC_CHECK_FT2(2.0.9,HAVE_FT2=yes,HAVE_FT2=no)
1068 dnl make the HAVE_FT2 variable available to automake and Makefile.am
1069 AM_CONDITIONAL(HAVE_FT2, test "x$HAVE_FT2" = "xyes")
1070 AC_SUBST(FT2_CFLAGS)
1071 AC_SUBST(FT2_LIBS)
1073 dnl ################################################
1074 dnl # Set defines according to variables set above #
1075 dnl ################################################
1078 if test "x$USE_LIBMMX" = xyes; then
1079 AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
1080 fi
1082 if test "x$USE_ATOMIC_H" = xyes; then
1083 AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
1084 fi
1086 # do not use deprecated stuff
1087 GST_CFLAGS="$GST_CFLAGS -DGST_DISABLE_DEPRECATED"
1089 if test "x$USE_DEBUG" = xyes; then
1090 GST_CFLAGS="$GST_CFLAGS -g"
1091 fi
1093 if test "x$USE_PROFILING" = xyes; then
1094 dnl CFLAGS="$CFLAGS -pg -fprofile-arcs"
1095 FOMIT_FRAME_POINTER=""
1096 else
1097 FOMIT_FRAME_POINTER="-fomit-frame-pointer"
1098 fi
1100 dnl
1101 dnl AC_SUBST(FOMIT_FRAME_POINTER)
1102 dnl
1104 dnl #############################
1105 dnl # Set automake conditionals #
1106 dnl #############################
1108 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
1109 dnl HAVE_ and it is likely to be easier to stick with the old name
1110 AM_CONDITIONAL(HAVE_CPU_I386, test "x$HAVE_CPU_I386" = "xyes")
1111 AM_CONDITIONAL(HAVE_CPU_PPC, test "x$HAVE_CPU_PPC" = "xyes")
1112 AM_CONDITIONAL(HAVE_CPU_ALPHA, test "x$HAVE_CPU_ALPHA" = "xyes")
1113 AM_CONDITIONAL(HAVE_CPU_ARM, test "x$HAVE_CPU_ARM" = "xyes")
1114 AM_CONDITIONAL(HAVE_CPU_SPARC, test "x$HAVE_CPU_SPARC" = "xyes")
1115 AM_CONDITIONAL(HAVE_LIBMMX, test "x$USE_LIBMMX" = "xyes")
1117 AM_CONDITIONAL(HAVE_ATOMIC_H, test "x$USE_ATOMIC_H" = "xyes")
1119 AM_CONDITIONAL(EXPERIMENTAL, test "$EXPERIMENTAL" = "$xyes")
1120 AM_CONDITIONAL(BROKEN, test "$BROKEN" = "$xyes")
1122 AM_CONDITIONAL(HAVE_NASM, test "x$HAVE_NASM" = "xyes")
1123 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
1124 AM_CONDITIONAL(HAVE_GTK_DOC, $HAVE_GTK_DOC)
1125 AM_CONDITIONAL(BUILD_DOCS, test "x$BUILD_DOCS" = "xyes")
1126 AM_CONDITIONAL(BUILD_TESTS, test "x$BUILD_TESTS" = "xyes")
1127 AM_CONDITIONAL(BUILD_EXAMPLES, test "x$BUILD_EXAMPLES" = "xyes")
1128 AM_CONDITIONAL(BUILD_PLUGIN_DOCS, test "x$BUILD_PLUGIN_DOCS" = "xyes")
1129 AM_CONDITIONAL(HAVE_FIG2DEV_PNG, $HAVE_FIG2DEV_PNG)
1130 AM_CONDITIONAL(HAVE_FIG2DEV_PDF, $HAVE_FIG2DEV_PDF)
1131 AM_CONDITIONAL(HAVE_RAW1394, test "x$HAVE_RAW1394" = "xyes")
1133 dnl prefer internal headers to already installed ones
1134 GST_CFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $GST_ERROR"
1135 GST_OPT_CFLAGS="$GST_FINLINE_CFLAGS $GST_FFASTMATH_CFLAGS"
1137 AC_SUBST(GST_LIBS)
1138 AC_SUBST(GST_CFLAGS)
1139 AC_SUBST(GST_FUNROLL_CFLAGS)
1140 AC_SUBST(GST_FINLINE_CFLAGS)
1141 AC_SUBST(GST_FFASTMATH_CFLAGS)
1142 AC_SUBST(GST_FSCHEDULE_CFLAGS)
1143 AC_SUBST(GST_FNOEXCEPTIONS_CFLAGS)
1144 AC_SUBST(GST_OPT_CFLAGS)
1146 dnl ###########################
1147 dnl # Configure external libs #
1148 dnl ###########################
1149 if test "x$HAVE_FFMPEG" = xyes; then
1150 AC_CONFIG_SUBDIRS(gst-libs/ext/ffmpeg/ffmpeg)
1151 fi
1153 dnl #########################
1154 dnl # Make the output files #
1155 dnl #########################
1157 AC_CONFIG_FILES(
1158 Makefile
1159 pkgconfig/gstreamer-libs.pc
1160 pkgconfig/gstreamer-libs-uninstalled.pc
1161 pkgconfig/gstreamer-play.pc
1162 pkgconfig/gstreamer-play-uninstalled.pc
1163 gst-libs/gst/gconf/gstreamer-gconf.pc
1164 gst-libs/gst/gconf/gstreamer-gconf-uninstalled.pc
1165 gst-plugins.spec
1166 gst/Makefile
1167 gst/ac3parse/Makefile
1168 gst/adder/Makefile
1169 gst/audioconvert/Makefile
1170 gst/audioscale/Makefile
1171 gst/auparse/Makefile
1172 gst/avi/Makefile
1173 gst/asfdemux/Makefile
1174 gst/cdxaparse/Makefile
1175 gst/chart/Makefile
1176 gst/cutter/Makefile
1177 gst/debug/Makefile
1178 gst/deinterlace/Makefile
1179 gst/effectv/Makefile
1180 gst/festival/Makefile
1181 gst/filter/Makefile
1182 gst/flx/Makefile
1183 gst/goom/Makefile
1184 gst/intfloat/Makefile
1185 gst/law/Makefile
1186 gst/level/Makefile
1187 gst/median/Makefile
1188 gst/mixmatrix/Makefile
1189 gst/mpeg1enc/Makefile
1190 gst/mpeg1sys/Makefile
1191 gst/mpeg1videoparse/Makefile
1192 gst/mpeg2enc/Makefile
1193 gst/mpeg2sub/Makefile
1194 gst/mpegaudio/Makefile
1195 gst/mpegaudioparse/Makefile
1196 gst/mpegstream/Makefile
1197 gst/mpegtypes/Makefile
1198 gst/modplug/Makefile
1199 gst/modplug/libmodplug/Makefile
1200 gst/monoscope/Makefile
1201 gst/oneton/Makefile
1202 gst/overlay/Makefile
1203 gst/passthrough/Makefile
1204 gst/playondemand/Makefile
1205 gst/qtdemux/Makefile
1206 gst/realmedia/Makefile
1207 gst/rtjpeg/Makefile
1208 gst/rtp/Makefile
1209 gst/silence/Makefile
1210 gst/sine/Makefile
1211 gst/smooth/Makefile
1212 gst/smpte/Makefile
1213 gst/spectrum/Makefile
1214 gst/speed/Makefile
1215 gst/stereo/Makefile
1216 gst/synaesthesia/Makefile
1217 gst/udp/Makefile
1218 gst/vbidec/Makefile
1219 gst/videocrop/Makefile
1220 gst/videofilter/Makefile
1221 gst/videoflip/Makefile
1222 gst/videoscale/Makefile
1223 gst/videotestsrc/Makefile
1224 gst/volenv/Makefile
1225 gst/volume/Makefile
1226 gst/wavenc/Makefile
1227 gst/wavparse/Makefile
1228 gst/y4m/Makefile
1229 sys/Makefile
1230 sys/cdrom/Makefile
1231 sys/dxr3/Makefile
1232 sys/oss/Makefile
1233 sys/qcam/Makefile
1234 sys/v4l/Makefile
1235 sys/v4l2/Makefile
1236 sys/vcd/Makefile
1237 sys/xvideo/Makefile
1238 ext/Makefile
1239 ext/a52dec/Makefile
1240 ext/aalib/Makefile
1241 ext/alsa/Makefile
1242 ext/arts/Makefile
1243 ext/artsd/Makefile
1244 ext/audiofile/Makefile
1245 ext/cdparanoia/Makefile
1246 ext/divx/Makefile
1247 ext/dv/Makefile
1248 ext/dvdread/Makefile
1249 ext/dvdnav/Makefile
1250 ext/esd/Makefile
1251 ext/ffmpeg/Makefile
1252 ext/flac/Makefile
1253 ext/gdk_pixbuf/Makefile
1254 ext/gnomevfs/Makefile
1255 ext/gsm/Makefile
1256 ext/hermes/Makefile
1257 dnl ext/http/Makefile
1258 ext/jack/Makefile
1259 ext/jpeg/Makefile
1260 ext/ladspa/Makefile
1261 ext/lame/Makefile
1262 ext/ivorbis/Makefile
1263 ext/lcs/Makefile
1264 ext/libfame/Makefile
1265 ext/libpng/Makefile
1266 ext/mad/Makefile
1267 ext/mas/Makefile
1268 ext/matroska/Makefile
1269 ext/mikmod/Makefile
1270 ext/mpeg2dec/Makefile
1271 ext/pango/Makefile
1272 ext/raw1394/Makefile
1273 ext/sdl/Makefile
1274 ext/shout/Makefile
1275 ext/shout2/Makefile
1276 ext/sidplay/Makefile
1277 ext/smoothwave/Makefile
1278 ext/snapshot/Makefile
1279 ext/speex/Makefile
1280 ext/sndfile/Makefile
1281 ext/swfdec/Makefile
1282 ext/vorbis/Makefile
1283 ext/tarkin/Makefile
1284 ext/xvid/Makefile
1285 gst-libs/Makefile
1286 gst-libs/gst/Makefile
1287 gst-libs/gst/audio/Makefile
1288 gst-libs/gst/floatcast/Makefile
1289 gst-libs/gst/gconf/Makefile
1290 gst-libs/gst/idct/Makefile
1291 gst-libs/gst/media-info/Makefile
1292 gst-libs/gst/play/Makefile
1293 gst-libs/gst/resample/Makefile
1294 gst-libs/gst/riff/Makefile
1295 gst-libs/gst/video/Makefile
1296 gst-libs/ext/Makefile
1297 gst-libs/ext/ffmpeg/Makefile
1298 examples/dynparams/Makefile
1299 examples/capsfilter/Makefile
1300 examples/seeking/Makefile
1301 examples/indexing/Makefile
1302 examples/Makefile
1303 testsuite/autoplug/Makefile
1304 testsuite/spider/Makefile
1305 testsuite/alsa/Makefile
1306 testsuite/Makefile
1307 tools/Makefile
1308 gconf/Makefile
1309 pkgconfig/Makefile
1310 )
1311 AC_OUTPUT
1313 echo -e "configure: *** Plug-ins that will be built : $GST_PLUGINS_YES"
1314 echo
1315 echo -e "configure: *** Plug-ins that will not be built : $GST_PLUGINS_NO"
1316 echo
1317 if test "x$BUILD_EXTERNAL" = "xno"; then
1318 echo "configure: *** No external plug-ins will be built"
1319 fi