configure.ac 21.1 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

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

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

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
13
dnl when going to/from release please set the nano (fourth number) right !
14
dnl releases only do Wall, cvs and prerelease does Werror too
15
AS_VERSION(gst-plugins, GST_PLUGINS_VERSION, 0, 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's avatar
Andy 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
		wavparse \
307
		mpegaudioparse \
308
                "
309 310 311

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

AC_SUBST(GST_PLUGINS_ALL)

GST_PLUGINS_SELECTED=""

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

AC_SUBST(GST_PLUGINS_SELECTED)
334

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

339
dnl *** OSS audio *** (Linux, *BSD)
340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359
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"
     ])
   ])
 ])
])
360

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

365 366 367 368 369 370 371
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)
])

372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414
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))
])

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)
])

415 416 417 418 419 420 421 422 423 424 425 426 427 428
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)
])

Wim Taymans's avatar
Wim Taymans committed
429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452
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)
  ])
])
453

Zeeshan Ali's avatar
Zeeshan Ali committed
454 455 456 457 458 459 460 461
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
462 463 464 465 466 467 468 469
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)
])

Zaheer Abbas Merali's avatar
Zaheer Abbas Merali committed
470 471 472 473 474 475 476 477 478 479 480 481 482 483
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)
  ], [
    AM_PATH_SHOUT2(HAVE_SHOUT2="yes", HAVE_SHOUT2="no")
    AC_SUBST(SHOUT2_CFLAGS)
    AC_SUBST(SHOUT2_LIBS)
  ])
])

Wim Taymans's avatar
Wim Taymans committed
484 485 486 487
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()
488
])
Wim Taymans's avatar
Wim Taymans committed
489

490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510
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)
])


511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529
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
530

531 532 533 534 535 536 537 538 539
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
540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565
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
])

Arwed v. Merkatz's avatar
Arwed v. Merkatz committed
566 567 568 569 570 571 572 573 574 575 576 577
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)
  ])
])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
578

579 580 581 582 583 584 585 586
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)
])

587 588 589 590 591 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
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>
        ])
      ])
    ])
  ])
])
631

Christian Schaller's avatar
Christian Schaller committed
632 633
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"
634

635 636
AC_SUBST(GST_LIBS)
AC_SUBST(GST_CFLAGS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
637

638 639 640 641 642 643
dnl ############################
dnl # Set up some more defines #
dnl ############################

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

645 646 647 648 649 650 651 652
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], 
653 654 655 656 657 658 659 660 661 662 663
[
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
]
)
664 665
AC_MSG_NOTICE(Using $GST_PACKAGE as package name)
AC_DEFINE_UNQUOTED(GST_PACKAGE, "$GST_PACKAGE", [package name in plugins])
666

667 668 669 670 671 672 673 674
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], 
675
[GST_ORIGIN="http://gstreamer.freedesktop.org/"]) dnl Default value
676 677 678
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
679 680 681 682
dnl #########################
dnl # Make the output files #
dnl #########################

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

735 736
echo -n "configure: *** Plug-ins that will be built :"
echo -e "$GST_PLUGINS_YES" | sort
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
737
echo
738 739
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
740
echo
741 742 743
if test "x$BUILD_EXTERNAL" = "xno"; then
  echo "configure: *** No external plug-ins will be built"
fi