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

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

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

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
13
dnl when going to/from release please set the nano (fourth number) right !
14
dnl releases only do Wall, cvs and prerelease does Werror too
15
AS_VERSION(gst-plugins, GST_PLUGINS_VERSION, 0, 9, 0, 1, GST_CVS="no", GST_CVS="yes")
16

17
AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
18
19
20

dnl our libraries and install dirs use major.minor as a version
GST_MAJORMINOR=$GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR
21
22
dnl we override it here if we need to for the release candidate of new series
GST_MAJORMINOR=0.9
23
24
25
26
27
28
29
AC_SUBST(GST_MAJORMINOR)

dnl CURRENT, REVISION, AGE
dnl - library source changed -> increment REVISION
dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
dnl - interfaces added -> increment AGE
dnl - interfaces removed -> AGE = 0
30
dnl for 0.8.3 release, gst_play_get_all_by_interface was added, so update
31
AS_LIBTOOL(GST_PLUGINS, 1, 0, 1)
32
AS_LIBTOOL_TAGS([CXX])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
33
AM_PROG_LIBTOOL
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
34

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
35
36
37
dnl FIXME take something else ?
AC_CONFIG_SRCDIR([gst/law/alaw.c])
AM_CONFIG_HEADER(config.h)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
38

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
39
40
dnl Add parameters for aclocal
dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
Benjamin Otte's avatar
Benjamin Otte committed
41
ACLOCAL_FLAGS="-I m4 -I common/m4"
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
42
AC_SUBST(ACLOCAL_AMFLAGS, $ACLOCAL_FLAGS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
43

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
44
45
46
47
AC_PROG_CC
AM_PROG_CC_STDC
AM_PROG_AS
AS="${CC}"
48
49
AS_PROG_OBJC

50
dnl the gettext stuff needed
51
52
53
54
55
56
57
58
59
60
61
62
AM_GNU_GETTEXT_VERSION(0.11.5)
AM_GNU_GETTEXT([external])
                                                                            
GETTEXT_PACKAGE=gst-plugins-$GST_MAJORMINOR
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], "$GETTEXT_PACKAGE",
                  [gettext package name])

dnl define LOCALEDIR in config.h
AS_AC_EXPAND(LOCALEDIR, $datadir/locale)
AC_DEFINE_UNQUOTED([LOCALEDIR], "$LOCALEDIR",
                   [gettext locale dir])
63

64
dnl decide on error flags
65
AS_COMPILER_FLAG(-Wall, GST_WALL="yes", GST_WALL="no")
66

67
if test "x$GST_WALL" = "xyes"; then
68
   GST_ERROR="$GST_ERROR -Wall"
69
70
71
72

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

75
dnl determine c++ compiler
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
76
AC_PROG_CXX
77
78
79
dnl determine if c++ is available on this system
AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
dnl determine c++ preprocessor
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
80
81
82
83
AC_PROG_CXXCPP
AC_ISC_POSIX

AC_HEADER_STDC([])
Benjamin Otte's avatar
Benjamin Otte committed
84
AC_C_INLINE
85
AX_CREATE_STDINT_H
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
86

87
88
89
90
91
dnl Check for malloc.h
AC_CHECK_HEADER(malloc.h,[
  AC_DEFINE(HAVE_MALLOC_H, 1, [whether malloc.h available])
])

92
93
94
dnl Check for a way to display the function name in debug output
GST_CHECK_FUNCTION()

95
96
97
98
99
100
dnl define correct errorlevel for debugging messages. We want to have GST_ERROR
dnl messages printed when running cvs builds
if test "x$GST_CVS" = "xyes"; then
  AC_DEFINE(GST_LEVEL_DEFAULT, GST_LEVEL_ERROR, [Default errorlevel to use])
fi

101
dnl Check for FIONREAD ioctl declaration :
102
GST_CHECK_FIONREAD()
103

104
105
106
DEFAULT_AUDIOSINK="autoaudiosink"
DEFAULT_VIDEOSINK="autovideosink"
DEFAULT_AUDIOSRC="alsasrc"
107
108
109
110
111
112
113
114
115
116
117
118
DEFAULT_VIDEOSRC="v4lsrc"
DEFAULT_VISUALIZER="goom"
case "$host" in 
  *-sun-* | *pc-solaris* )
    DEFAULT_AUDIOSRC="sunaudiosrc"
    ;;
  *-darwin* )
    DEFAULT_AUDIOSRC="osxaudiosrc"
    ;;
esac

AC_SUBST(DEFAULT_AUDIOSINK)
119
AC_DEFINE_UNQUOTED(DEFAULT_AUDIOSINK,"$DEFAULT_AUDIOSINK",[Default audio sink])
120
AC_SUBST(DEFAULT_AUDIOSRC)
121
AC_DEFINE_UNQUOTED(DEFAULT_AUDIOSRC,"$DEFAULT_AUDIOSRC",[Default audio source])
122
AC_SUBST(DEFAULT_VIDEOSINK)
123
AC_DEFINE_UNQUOTED(DEFAULT_VIDEOSINK,"$DEFAULT_VIDEOSINK",[Default video sink])
124
AC_SUBST(DEFAULT_VIDEOSRC)
125
AC_DEFINE_UNQUOTED(DEFAULT_VIDEOSRC,"$DEFAULT_VIDEOSRC",[Default video source])
126
AC_SUBST(DEFAULT_VISUALIZER)
127
AC_DEFINE_UNQUOTED(DEFAULT_VISUALIZER,"$DEFAULT_VISUALIZER",[Default visualizer])
128

129
130
131
132
133
134
135
136
dnl ############################################
dnl # Super Duper options for plug-in building #
dnl ############################################

dnl ext plug-ins; plug-ins that have external dependencies
GST_CHECK_FEATURE(EXTERNAL, [enable building of plug-ins with external deps],,
[HAVE_EXTERNAL=yes],enabled,
[
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
137
  AC_MSG_WARN(building external plug-ins)
138
139
140
141
142
  BUILD_EXTERNAL="yes"
],[
  AC_MSG_WARN(all plug-ins with external dependencies will not be built)
  BUILD_EXTERNAL="no"
])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
143
144
# make BUILD_EXTERNAL available to Makefile.am
AM_CONDITIONAL(BUILD_EXTERNAL, test "x$BUILD_EXTERNAL" = "xyes")
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
145

146
dnl experimental plug-ins; stuff that hasn't had the dust settle yet
147
dnl read 'builds, but might not work'UTO
148
GST_CHECK_FEATURE(EXPERIMENTAL, [enable building of experimental plug-ins],,
149
150
[HAVE_EXPERIMENTAL=yes],disabled,
[
151
  AC_MSG_WARN(building experimental plug-ins)
152
  USE_TARKIN="yes"
153
],[
154
  AC_MSG_NOTICE(not building experimental plug-ins)
155
  USE_TARKIN="no"
156
])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
157

158
159
dnl broken plug-ins; stuff that doesn't seem to build at the moment
GST_CHECK_FEATURE(BROKEN, [enable building of broken plug-ins],,
160
161
HAVE_BROKEN=yes,disabled,
[  
162
  AC_MSG_WARN([building broken plug-ins -- no bug reports on these, only patches :)])
163
],[
Andy Wingo Wingo's avatar
Andy Wingo Wingo committed
164
  AC_MSG_NOTICE([not building broken plug-ins])
165
])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
166
167
168
169
170
171
172
173

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

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

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
174
175
176
dnl allow for different autotools
AS_AUTOTOOLS_ALTERNATE()

177
178
179
180
181
dnl modify pkg-config path
AC_ARG_WITH(pkg-config-path, 
   AC_HELP_STRING([--with-pkg-config-path],[colon-separated list of pkg-config(1) dirs]),
   [export PKG_CONFIG_PATH=${withval}])

182
GST_DOC()
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
183
184
185
dnl check architecture
GST_ARCH()

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
186
dnl check for gconftool-2
187
188
189
190

dnl this macro defines an am conditional, so it needs to be run always
AM_GCONF_SOURCE_2

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
191
192
translit(dnm, m, l) AM_CONDITIONAL(USE_GCONFTOOL, true)
GST_CHECK_FEATURE(GCONFTOOL, [GConf schemas], , [
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
193
194
195
  AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
  if test x$GCONFTOOL = xno; then
    AC_MSG_WARN(Not installing GConf schemas)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
196
    HAVE_GCONFTOOL="no"
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
197
  else
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
198
    HAVE_GCONFTOOL="yes"
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
199
  fi
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
200
201
202
203
204
205
206
207
208
  AC_SUBST(HAVE_GCONFTOOL)
])

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

211
212
dnl check for gstreamer
dnl uninstalled is selected preferentially -- see pkg-config(1)
213
GST_REQ=0.9.0.1
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
214
PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR >= $GST_REQ,
215
  HAVE_GST="yes", HAVE_GST="no")
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
216

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
217
218
219
if test "x$HAVE_GST" = "xno"; then
  AC_MSG_ERROR(no GStreamer found)
fi
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
220

221
GST_TOOLS_DIR=`pkg-config --variable=toolsdir gstreamer-$GST_MAJORMINOR`
222
223
224
225
226
if test -z $GST_TOOLS_DIR; then
  AC_MSG_ERROR([no tools dir defined in GStreamer pkg-config file; core upgrade needed.])
fi
AC_SUBST(GST_TOOLS_DIR)

227
228
229
230
231
232
233
234
235
dnl check for gstreamer-base; uninstalled is selected preferentially
PKG_CHECK_MODULES(GST_BASE, gstreamer-base-$GST_MAJORMINOR >= $GST_REQ,
  HAVE_GST_BASE="yes", HAVE_GST_BASE="no")

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

AC_SUBST(GST_BASE_LIBS)
Christian Schaller's avatar
Christian Schaller committed
236
AC_SUBST(GST_BASE_CFLAGS)
237

238
dnl check for gstreamer-plugins-base; uinstalled is selected preferentially
239
240
241
PKG_CHECK_MODULES(GST_PLUGINS_BASE,
  gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQ,
  HAVE_GST_PLUGINS_BASE="yes", HAVE_GST_PLUGINS_BASE="no")
Christian Schaller's avatar
Christian Schaller committed
242

243
244
if test "x$HAVE_GST_PLUGINS_BASE" = "xno"; then
  AC_MSG_ERROR(no GStreamer Base Plugins development files found)
Christian Schaller's avatar
Christian Schaller committed
245
246
fi

247
248
AC_SUBST(GST_PLUGINS_BASE_LIBS)
AC_SUBST(GST_PLUGINS_BASE_CFLAGS)
249

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
250
251
252
dnl Determine endianness
AC_C_BIGENDIAN

253
254
255
256
dnl Check for fast float to int casting as defined in C99
AC_C99_FUNC_LRINT()
AC_C99_FUNC_LRINTF()

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
257
258
259
dnl Check for essential libraries first:
dnl ====================================

260
GST_GLIB2_CHECK()
261

262
263
dnl Check for additional libraries that we might use:
dnl =================================================
264

265
266
267
# we set the defaults always to make sure we have non-empty variables
# for the Makefile

Wim Taymans's avatar
Wim Taymans committed
268
PKG_CHECK_MODULES(LIBOIL, liboil-0.3 >= 0.3.0, HAVE_LIBOIL=yes, HAVE_LIBOIL=no)
269
270
271
272
273
274
275
AC_SUBST(LIBOIL_CFLAGS)
AC_SUBST(LIBOIL_LIBS)
if test "x${HAVE_LIBOIL}" = xyes ; then
  #AC_DEFINE_UNQUOTED(HAVE_LIBOIL, 1, [Define if liboil is being used])
  true
fi

276
277
278
dnl ===========================================================================
dnl ============================= gst plug-ins ================================
dnl ===========================================================================
279

David Schleef's avatar
David Schleef committed
280
281
282
plugindir="\$(libdir)/gstreamer-$GST_MAJORMINOR"
AC_SUBST(plugindir)

283
GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '[_]*(gst_|Gst|GST_).*' $GST_LIBS"
284
AC_SUBST(GST_PLUGIN_LDFLAGS)
285

286
dnl these are all the gst plug-ins, compilable without additional libs
Christian Schaller's avatar
Christian Schaller committed
287
GST_PLUGINS_ALL="\
288
		videofilter \
Wim Taymans's avatar
Wim Taymans committed
289
		alpha \
290
		autodetect \
Ronald S. Bultje's avatar
Ronald S. Bultje committed
291
		avi \
Christian Schaller's avatar
Christian Schaller committed
292
		effectv \
293
		fdsrc \
Wim Taymans's avatar
Wim Taymans committed
294
		goom \
295
		law \
296
		level \
297
		mpegaudioparse \
298
		qtdemux \
299
		realmedia \
Wim Taymans's avatar
Wim Taymans committed
300
301
302
		rtp	\
		rtsp	\
		smpte	\
303
		silence \
304
		udp     \
305
		videobox \
306
		wavenc \
307
		wavparse \
308
		mpegaudioparse \
309
                "
310
311
312

dnl see if we can build C++ plug-ins
if test "x$HAVE_CXX" = "xyes"; then
313
  GST_PLUGINS_ALL="$GST_PLUGINS_ALL"
314
else
315
  AC_MSG_WARN([Not compiling plug-ins requiring C++ compiler])
316
fi
317
318
319
320
321
322

AC_SUBST(GST_PLUGINS_ALL)

GST_PLUGINS_SELECTED=""

AC_ARG_WITH(plugins,
323
    AC_HELP_STRING([--with-plugins],[comma-separated list of plug-ins to compile]),
324
    [for i in `echo $withval | tr , ' '`; do
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
325
326
        if echo $GST_PLUGINS_ALL | grep $i > /dev/null
        then
327
328
            GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED $i"
        else
329
            echo "plug-in $i not recognized, ignoring..."
330
331
332
333
334
        fi
    done],
    [GST_PLUGINS_SELECTED=$GST_PLUGINS_ALL])

AC_SUBST(GST_PLUGINS_SELECTED)
335

336
dnl ==========================================================================
337
dnl ============================= sys plug-ins ================================
338
339
dnl ==========================================================================

340
dnl *** OSS audio *** (Linux, *BSD)
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
translit(dnm, m, l) AM_CONDITIONAL(USE_OSS, true)
GST_CHECK_FEATURE(OSS, [OSS audio], osssrc osssink, [
 HAVE_OSS="yes"
dnl Linux and newer BSD versions :
 AC_CHECK_HEADER(sys/soundcard.h, [
   AC_DEFINE(HAVE_OSS_INCLUDE_IN_SYS,, [Define if OSS includes are in /sys/])
   ] , [
dnl Some old BSD versions :
   AC_CHECK_HEADER(soundcard.h, [
     AC_DEFINE(HAVE_OSS_INCLUDE_IN_ROOT,, [Define if OSS includes are in /])
     ], [
  dnl Some old BSD versions :
     AC_CHECK_HEADER(machine/soundcard.h, [
       AC_DEFINE(HAVE_OSS_INCLUDE_IN_MACHINE,, [Define if OSS includes are in /machine/])
       ], [
       HAVE_OSS="no"
     ])
   ])
 ])
])
361

362
363
364
365
dnl ###########################
dnl # Configure external libs #
dnl ###########################

366
367
368
369
370
371
372
dnl *** aalib ***
translit(dnm, m, l) AM_CONDITIONAL(USE_AALIB, true)
GST_CHECK_FEATURE(AALIB, [aasink plug-in], aasink, [
  AM_PATH_AALIB(, HAVE_AALIB=yes, HAVE_AALIB=no)
  AS_SCRUB_INCLUDE(AALIB_CFLAGS)
])

373
374
375
376
377
378
379
380
381
382
dnl *** AMR-NB ***
translit(dnm, m, l) AM_CONDITIONAL(USE_AMRNB, true)
GST_CHECK_FEATURE(AMRNB, [AMR-NB], amrnbdec amrnbenc, [
  GST_CHECK_LIBHEADER(AMRNB, amrnb,
		      Decoder_Interface_init, -lm,
		      amrnb/interf_dec.h,
		      AMRNB_LIBS="-lamrnb -lm"
		      AC_SUBST(AMRNB_LIBS))
])

383
384
385
386
387
388
389
390
391
392
393
394
395
dnl **** ESound ****
translit(dnm, m, l) AM_CONDITIONAL(USE_ESD, true)
GST_CHECK_FEATURE(ESD, [esound plug-ins], esdsink, [
  PKG_CHECK_MODULES(ESD, esound >= 0.2.12, [
    HAVE_ESD="yes"
    AC_SUBST(ESD_CFLAGS)
    AC_SUBST(ESD_LIBS)
  ], [
    AM_PATH_ESD(0.2.12, HAVE_ESD="yes", HAVE_ESD="no")
    AS_SCRUB_INCLUDE(ESD_CFLAGS)
  ])
])

396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
dnl **** Free AAC Decoder (FAAD) ****
translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
GST_CHECK_FEATURE(FAAD, [AAC decoder plug-in], faad, [
  HAVE_FAAD="yes"
  GST_CHECK_LIBHEADER(FAAD, faad, faacDecOpen, -lm, faad.h, FAAD_LIBS="-lfaad -lm", HAVE_FAAD="no")
  if test $HAVE_FAAD = "yes"; then
    AC_MSG_CHECKING([Checking for FAAD >= 2])
    AC_TRY_RUN([

#include <faad.h>
#if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
#error Not faad2
#else
#include <string.h>

int main()
{
char version[9] = FAAD2_VERSION;
// a release candidate of 2.0 is not enought for us
if ( strstr( version, "2.0 RC" ) ) { return 1; }

return 0;
}

#endif
    ],
       [ HAVE_FAAD="yes" && AC_MSG_RESULT(yes)],
       [ HAVE_FAAD="no"  && AC_MSG_RESULT(no)])
  fi;
  AS_SCRUB_INCLUDE(FAAD_CFLAGS)
  AC_SUBST(FAAD_LIBS)
])

429
430
431
432
433
434
435
436
437
438
439
440
441
442
dnl *** FLAC ***
translit(dnm, m, l) AM_CONDITIONAL(USE_FLAC, true)
GST_CHECK_FEATURE(FLAC, [FLAC lossless audio], flacenc flacdec, [
  GST_CHECK_LIBHEADER(FLAC, FLAC, FLAC__seekable_stream_encoder_new, -lm, FLAC/all.h, FLAC_LIBS="-lFLAC -lm")
  dnl API change in FLAC 1.1.1, so require that...
  if test x$HAVE_FLAC = xyes; then
    AC_CHECK_DECL(FLAC__SEEKABLE_STREAM_ENCODER_TELL_ERROR,
                  HAVE_FLAC="yes", HAVE_FLAC="no", [
#include <FLAC/seekable_stream_encoder.h>
                  ])
  fi
  AC_SUBST(FLAC_LIBS)
])

443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
dnl *** jpeg ***
dnl FIXME: we could use header checks here as well IMO
translit(dnm, m, l) AM_CONDITIONAL(USE_JPEG, true)
GST_CHECK_FEATURE(JPEG, [jpeg], jpegenc jpegdec, [
  AC_ARG_WITH(jpeg-mmx,
    [  --with-jpeg-mmx, path to MMX'ified JPEG library])
  OLD_LIBS="$LIBS"
  if test x$with_jpeg_mmx != x; then
    LIBS="$LIBS -L$with_jpeg_mmx"
  fi
  AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
  JPEG_LIBS="$LIBS -ljpeg-mmx"
  LIBS="$OLD_LIBS"
  if test x$HAVE_JPEG != xyes; then
    AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
    JPEG_LIBS="-ljpeg"
  fi
  AC_SUBST(JPEG_LIBS)
])


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

Wim Taymans's avatar
Wim Taymans committed
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
dnl *** lame ***
translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true)
GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [
  GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, -lm, lame/lame.h,
  [
    HAVE_LAME="yes"
    LAME_LIBS="-lmp3lame -lm"
    dnl is lame presets available
    LAME_CFLAGS=""
    AC_TRY_RUN([
#include <lame/lame.h>
int main (int argc, char *argv[])
{
  printf("%d\n", MEDIUM);
  return 0;
}
      ],
      [LAME_CFLAGS="-DGSTLAME_PRESET"],
      [LAME_CFLAGS=""]
    )
  AC_SUBST(LAME_CFLAGS)
  AC_SUBST(LAME_LIBS)
  ])
])
494

Zeeshan Ali's avatar
Zeeshan Ali committed
495
496
497
498
499
500
501
502
dnl *** libcaca ***
translit(dnm, m, l) AM_CONDITIONAL(USE_LIBCACA, true)
GST_CHECK_FEATURE(LIBCACA, [libcaca], libcaca, [
  GST_CHECK_CONFIGPROG(LIBCACA, caca-config)
  AC_SUBST(LIBCACA_CFLAGS)
  AC_SUBST(LIBCACA_LIBS)
])

Wim Taymans's avatar
Wim Taymans committed
503
504
505
506
507
508
509
510
dnl *** libdv ***
translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDV, true)
GST_CHECK_FEATURE(LIBDV, [libdv DV/video decoder], dvdec, [
  PKG_CHECK_MODULES(LIBDV, libdv >= 0.100, HAVE_LIBDV="yes", HAVE_LIBDV="no")
  AC_SUBST(LIBDV_CFLAGS)
  AC_SUBST(LIBDV_LIBS)
])

511
512
513
514
515
516
dnl *** libpng ***
translit(dnm, m, l) AM_CONDITIONAL(USE_LIBPNG, true)
GST_CHECK_FEATURE(LIBPNG, [libpng PNG encoder], pngenc, [
  PKG_CHECK_MODULES(LIBPNG, libpng12, HAVE_LIBPNG="yes", HAVE_LIBPNG="no")
  AC_SUBST(LIBPNG_CFLAGS)
  AC_SUBST(LIBPNG_LIBS)
517
518
])

519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
dnl *** mad ***
dnl FIXME: we could use header checks here as well IMO
translit(dnm, m, l) AM_CONDITIONAL(USE_MAD, true)
GST_CHECK_FEATURE(MAD, [mad mp3 decoder], mad, [
  dnl check with pkg-config first
  PKG_CHECK_MODULES(MAD, mad >= 0.15 id3tag >= 0.15, HAVE_MAD="yes", HAVE_MAD="no")
  if test "x$HAVE_MAD" = "xno"; then
    dnl fall back to oldskool detection
    AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_MAD="yes" MAD_LIBS="-lmad")
    if test "x$HAVE_MAD" = "xyes"; then
      HAVE_MAD="no"
      save_LIBS=$LIBS
      LIBS="-lz"
      AC_CHECK_LIB(id3tag, id3_tag_options, HAVE_MAD="yes" MAD_LIBS="-lmad -lid3tag -lz")
      LIBS=$save_LIBS
    fi
  fi    
])
AC_SUBST(MAD_LIBS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
538

539
540
541
542
543
544
545
546
547
dnl *** mpeg2dec ***
translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true)
GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [
  PKG_CHECK_MODULES(MPEG2DEC, libmpeg2 >= 0.4.0,
      HAVE_MPEG2DEC="yes", HAVE_MPEG2DEC="no")
  AC_SUBST(MPEG2DEC_CFLAGS)
  AC_SUBST(MPEG2DEC_LIBS)
])

Wim Taymans's avatar
Wim Taymans committed
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
dnl *** dv1394 ***
translit(dnm, m, l) AM_CONDITIONAL(USE_DV1394, true)
GST_CHECK_FEATURE(DV1394, [raw1394 and avc1394 library], dv1394src, [
  dnl we need to test three headers and three libs
  GST_CHECK_LIBHEADER(RAW1394,
    raw1394, raw1394_new_handle,,
    libraw1394/raw1394.h, RAW1394_LIBS="-lraw1394")
  GST_CHECK_LIBHEADER(AVC1394,
    avc1394, avc1394_send_command, $RAW1394_LIBS,
    libavc1394/avc1394.h, AVC1394_LIBS="-lavc1394")
  GST_CHECK_LIBHEADER(ROM1394,
    rom1394, rom1394_free_directory, $RAW1394_LIBS,
    libavc1394/rom1394.h, ROM1394_LIBS="-lrom1394")

  dnl now see how far we got
  if test x$HAVE_RAW1394 = xyes && \
     test x$HAVE_AVC1394 = xyes && \
     test x$HAVE_ROM1394 = xyes; then
       HAVE_DV1394=yes
       DV1394_LIBS="$RAW1394_LIBS $AVC1394_LIBS $ROM1394_LIBS"
       AC_SUBST(DV1394_LIBS)
  else
       HAVE_DV1394=no
  fi
])

574
575
576
577
578
579
580
dnl *** shout2 ***
translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT2, true)
GST_CHECK_FEATURE(SHOUT2, [shout2 plug-in], shout2send, [
  PKG_CHECK_MODULES(SHOUT2, shout >= 2.0, [
    HAVE_SHOUT2="yes"
    AC_SUBST(SHOUT2_CFLAGS)
    AC_SUBST(SHOUT2_LIBS)
581
  ], [
582
583
584
    AM_PATH_SHOUT2(HAVE_SHOUT2="yes", HAVE_SHOUT2="no")
    AC_SUBST(SHOUT2_CFLAGS)
    AC_SUBST(SHOUT2_LIBS)
585
586
  ])
])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
587

588
589
590
591
dnl *** sidplay : works with libsidplay 1.36.x (not 2.x.x) ***
translit(dnm, m, l) AM_CONDITIONAL(USE_SIDPLAY, true)
GST_CHECK_FEATURE(SIDPLAY, [sidplay plug-in], sidplay, [
  GST_PATH_SIDPLAY()
592
593
])

594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
dnl *** speex >= 1.0.4 or >= 1.1.5 ***
dnl   1.1.4 and earlier were not API/ABI compatible with 1.0
dnl   1.1.6 is the first to use a .pc/pkg-config file ***
dnl   speex_jitter.h is 1.1.x only
translit(dnm, m, l) AM_CONDITIONAL(USE_SPEEX, true)
GST_CHECK_FEATURE(SPEEX, [speex plug-in], speex, [
  PKG_CHECK_MODULES(SPEEX, speex >= 1.1.6, [
    HAVE_SPEEX="yes"
    AC_SUBST(SPEEX_CFLAGS)
    AC_SUBST(SPEEX_LIBS)
  ], [
    GST_CHECK_LIBHEADER(SPEEX, speex, speex_bits_init, , speex/speex.h, [
      AC_CHECK_HEADER(speex/speex_jitter.h, [
        dnl speex 1.1.x :
        GST_CHECK_LIBHEADER(SPEEX, speex, speex_encode_int, , speex/speex.h, [
          dnl speex 1.1.5 or + :
          HAVE_SPEEX="yes"
          SPEEX_LIBS="-lspeex"
          AC_SUBST(SPEEX_CFLAGS)
          AC_SUBST(SPEEX_LIBS)
        ],[
          HAVE_SPEEX="no"
        ])
      ],[
        dnl speex 1.0.x :
          AC_CHECK_DECL(SPEEX_GET_LOOKAHEAD, [
            dnl speex 1.0.4
            HAVE_SPEEX="yes"
            SPEEX_LIBS="-lspeex"
            AC_SUBST(SPEEX_CFLAGS)
            AC_SUBST(SPEEX_LIBS)

            AC_DEFINE_UNQUOTED(SPEEX_1_0, 1,
              [defined if speex 1.0.x API detected])
        ],[
            HAVE_SPEEX="no"
            AC_MSG_NOTICE(You need at least 1.0.4 to compile the speex plugin)
        ], [
#include <speex/speex.h>
        ])
      ])
    ])
  ])
])
638

Christian Schaller's avatar
Christian Schaller committed
639
640
dnl also add builddir include for enumtypes and marshal
GST_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs $GST_CFLAGS $GST_ERROR"
641

642
643
AC_SUBST(GST_LIBS)
AC_SUBST(GST_CFLAGS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
644

645
646
647
648
649
650
dnl ############################
dnl # Set up some more defines #
dnl ############################

dnl set license and copyright notice
AC_DEFINE(GST_LICENSE, "LGPL", [GStreamer license])
651

652
653
654
655
656
657
658
659
dnl package name in plugins
AC_ARG_WITH(package-name,
AC_HELP_STRING([--with-package-name],[specify package name to use in plugins]),
[case "${withval}" in
  yes) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;;
  no) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;;
  *) GST_PACKAGE="${withval}" ;;
esac], 
660
661
662
663
664
665
666
667
668
669
670
[
dnl default value
if test "x$GST_CVS" = "xyes"
then
  dnl nano >= 1
  GST_PACKAGE="GStreamer CVS/prerelease"
else
  GST_PACKAGE="GStreamer source release"
fi
]
)
671
672
AC_MSG_NOTICE(Using $GST_PACKAGE as package name)
AC_DEFINE_UNQUOTED(GST_PACKAGE, "$GST_PACKAGE", [package name in plugins])
673

674
675
676
677
678
679
680
681
dnl package origin URL
AC_ARG_WITH(package-origin,
AC_HELP_STRING([--with-package-origin],[specify package origin URL to use in plugins]),
[case "${withval}" in
  yes) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;;
  no) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;;
  *) GST_ORIGIN="${withval}" ;;
esac], 
682
[GST_ORIGIN="http://gstreamer.freedesktop.org/"]) dnl Default value
683
684
685
AC_MSG_NOTICE(Using $GST_ORIGIN as package origin)
AC_DEFINE_UNQUOTED(GST_ORIGIN, "$GST_ORIGIN", [package origin])

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
686
687
688
689
dnl #########################
dnl # Make the output files #
dnl #########################

Andy Wingo Wingo's avatar
Andy Wingo Wingo committed
690
AC_CONFIG_FILES(
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
691
Makefile
Andy Wingo Wingo's avatar
Andy Wingo Wingo committed
692
gst-plugins.spec
693
gst/Makefile
Wim Taymans's avatar
Wim Taymans committed
694
gst/alpha/Makefile
695
gst/autodetect/Makefile
Ronald S. Bultje's avatar
Ronald S. Bultje committed
696
gst/avi/Makefile
Wim Taymans's avatar
Wim Taymans committed
697
gst/effectv/Makefile
698
gst/fdsrc/Makefile
Wim Taymans's avatar
Wim Taymans committed
699
gst/goom/Makefile
Christian Schaller's avatar
Christian Schaller committed
700
gst/law/Makefile
701
gst/level/Makefile
702
gst/mpegaudioparse/Makefile
703
gst/realmedia/Makefile
Wim Taymans's avatar
Wim Taymans committed
704
705
gst/rtp/Makefile
gst/rtsp/Makefile
706
gst/smpte/Makefile
707
gst/silence/Makefile
Wim Taymans's avatar
Wim Taymans committed
708
gst/udp/Makefile
709
gst/videobox/Makefile
710
gst/videofilter/Makefile
711
ext/jpeg/Makefile
712
gst/qtdemux/Makefile
713
gst/wavenc/Makefile
714
gst/wavparse/Makefile
Christian Schaller's avatar
Christian Schaller committed
715
716
gst-libs/Makefile
gst-libs/gst/Makefile
717
sys/Makefile
718
sys/oss/Makefile
719
ext/Makefile
720
ext/aalib/Makefile
Wim Taymans's avatar
Wim Taymans committed
721
ext/dv/Makefile
722
ext/flac/Makefile
723
ext/gconf/Makefile
724
ext/ladspa/Makefile
Wim Taymans's avatar
Wim Taymans committed
725
ext/lame/Makefile
Zeeshan Ali's avatar
Zeeshan Ali committed
726
ext/libcaca/Makefile
727
ext/libpng/Makefile
728
ext/mad/Makefile
Wim Taymans's avatar
Wim Taymans committed
729
ext/raw1394/Makefile
Zaheer Abbas Merali's avatar
Zaheer Abbas Merali committed
730
ext/shout2/Makefile
Wim Taymans's avatar
Wim Taymans committed
731
ext/sidplay/Makefile
732
ext/speex/Makefile
733
ext/esd/Makefile
734
735
736
ext/mpeg2dec/Makefile
ext/faad/Makefile
ext/amrnb/Makefile
737
po/Makefile.in
738
739
740
common/Makefile
common/m4/Makefile
m4/Makefile
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
741
)
Andy Wingo Wingo's avatar
Andy Wingo Wingo committed
742
743
AC_OUTPUT

744
745
echo -n "configure: *** Plug-ins that will be built :"
echo -e "$GST_PLUGINS_YES" | sort
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
746
echo
747
748
echo -n "configure: *** Plug-ins that will not be built :"
echo -e "$GST_PLUGINS_NO" | sort
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
749
echo
750
751
752
if test "x$BUILD_EXTERNAL" = "xno"; then
  echo "configure: *** No external plug-ins will be built"
fi