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

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
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
15
AS_VERSION(gst-plugins-base, GST_PLUGINS_BASE_VERSION, 0, 9, 3, 1,
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
16
    GST_CVS="no", GST_CVS="yes")
17

18
AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
19 20

dnl our libraries and install dirs use major.minor as a version
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
21
GST_MAJORMINOR=$GST_PLUGINS_BASE_VERSION_MAJOR.$GST_PLUGINS_BASE_VERSION_MINOR
22 23
dnl we override it here if we need to for the release candidate of new series
GST_MAJORMINOR=0.9
24 25 26 27 28 29 30
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
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
31
AS_LIBTOOL(GST_PLUGINS, 2, 0, 0)
32
AS_LIBTOOL_TAGS([])
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
dnl FIXME take something else ?
36
AC_CONFIG_SRCDIR([gst/sine/gstsinesrc.c])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
37
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
AM_GNU_GETTEXT_VERSION(0.11.5)
52 53
AM_GNU_GETTEXT([external])
                                                                                
54
GETTEXT_PACKAGE=gst-plugins-base-$GST_MAJORMINOR
55 56 57 58 59 60 61 62 63
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])

64
GST_SET_ERROR_CFLAGS($GST_CVS)
65

66
dnl determine c++ compiler
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
67
AC_PROG_CXX
68 69 70
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
71 72 73 74
AC_PROG_CXXCPP
AC_ISC_POSIX

AC_HEADER_STDC([])
Benjamin Otte's avatar
Benjamin Otte committed
75
AC_C_INLINE
76
AX_CREATE_STDINT_H
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
77

78 79 80 81 82
dnl Check for malloc.h
AC_CHECK_HEADER(malloc.h,[
  AC_DEFINE(HAVE_MALLOC_H, 1, [whether malloc.h available])
])

83 84 85
dnl Check for a way to display the function name in debug output
GST_CHECK_FUNCTION()

86 87 88 89 90 91
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

92
dnl Check for FIONREAD ioctl declaration :
93
GST_CHECK_FIONREAD()
94

95
DEFAULT_AUDIOSINK="alsasink"
96
DEFAULT_VIDEOSINK="xvimagesink"
97
DEFAULT_AUDIOSRC="alsasrc"
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
DEFAULT_VIDEOSRC="v4lsrc"
DEFAULT_VISUALIZER="goom"
case "$host" in 
  *-sun-* | *pc-solaris* )
    DEFAULT_AUDIOSINK="sunaudiosink"
    DEFAULT_VIDEOSINK="ximagesink"
    DEFAULT_AUDIOSRC="sunaudiosrc"
    ;;
  *-darwin* )
    DEFAULT_AUDIOSINK="osxaudiosink"
    DEFAULT_AUDIOSRC="osxaudiosrc"
    DEFAULT_VIDEOSINK="osxvideosink"
    ;;
esac

AC_SUBST(DEFAULT_AUDIOSINK)
114
AC_DEFINE_UNQUOTED(DEFAULT_AUDIOSINK,"$DEFAULT_AUDIOSINK",[Default audio sink])
115
AC_SUBST(DEFAULT_AUDIOSRC)
116
AC_DEFINE_UNQUOTED(DEFAULT_AUDIOSRC,"$DEFAULT_AUDIOSRC",[Default audio source])
117
AC_SUBST(DEFAULT_VIDEOSINK)
118
AC_DEFINE_UNQUOTED(DEFAULT_VIDEOSINK,"$DEFAULT_VIDEOSINK",[Default video sink])
119
AC_SUBST(DEFAULT_VIDEOSRC)
120
AC_DEFINE_UNQUOTED(DEFAULT_VIDEOSRC,"$DEFAULT_VIDEOSRC",[Default video source])
121
AC_SUBST(DEFAULT_VISUALIZER)
122
AC_DEFINE_UNQUOTED(DEFAULT_VISUALIZER,"$DEFAULT_VISUALIZER",[Default visualizer])
123

124 125 126 127 128 129 130 131
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
132
  AC_MSG_WARN(building external plug-ins)
133 134 135 136 137
  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
138 139
# 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
140

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

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

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

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

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
169 170 171
dnl allow for different autotools
AS_AUTOTOOLS_ALTERNATE()

172 173 174 175 176
dnl modify pkg-config path
AC_ARG_WITH(pkg-config-path, 
   AC_HELP_STRING([--with-pkg-config-path],[colon-separated list of pkg-config(1) dirs]),
   [export PKG_CONFIG_PATH=${withval}])

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
177 178 179
dnl check architecture
GST_ARCH()

180 181
dnl check for gstreamer
dnl uninstalled is selected preferentially -- see pkg-config(1)
182
GST_REQ=0.9.0
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
183
PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR >= $GST_REQ,
184
  HAVE_GST="yes", HAVE_GST="no")
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
185

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
186 187 188
if test "x$HAVE_GST" = "xno"; then
  AC_MSG_ERROR(no GStreamer found)
fi
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
189

190
GST_TOOLS_DIR=`pkg-config --variable=toolsdir gstreamer-$GST_MAJORMINOR`
191 192 193 194 195
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)

196 197 198 199 200 201 202
GST_PLUGINS_DIR=`pkg-config --variable=pluginsdir gstreamer-$GST_MAJORMINOR`
if test -z $GST_PLUGINS_DIR; then
  AC_MSG_ERROR([no plugins dir defined in GStreamer pkg-config file; core upgrade needed.])
fi
AC_SUBST(GST_PLUGINS_DIR)


Wim Taymans's avatar
Wim Taymans committed
203 204 205 206 207 208 209 210 211 212
dnl check for gstreamer-dataprotocol; uninstalled is selected preferentially
PKG_CHECK_MODULES(GST_GDP, gstreamer-dataprotocol-$GST_MAJORMINOR >= $GST_REQ,
  HAVE_GST_GDP="yes", HAVE_GST_GDP="no")

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

AC_SUBST(GST_GDP_LIBS)

213 214 215 216 217 218 219 220 221 222
dnl check for gstreamer-controller; uninstalled is selected preferentially
PKG_CHECK_MODULES(GST_CTRL, gstreamer-controller-$GST_MAJORMINOR >= $GST_REQ,
  HAVE_GST_CTRL="yes", HAVE_GST_CTRL="no")

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

AC_SUBST(GST_CTRL_LIBS)

223 224 225 226 227 228 229 230 231
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 libgstbase found)
fi

AC_SUBST(GST_BASE_LIBS)

232 233 234 235 236 237
PKG_CHECK_MODULES(GST_CHECK, gstreamer-check-$GST_MAJORMINOR >= $GST_REQ,
  HAVE_GST_CHECK="yes", HAVE_GST_CHECK="no")

AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
238 239 240
dnl Determine endianness
AC_C_BIGENDIAN

241 242 243 244
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
245 246 247
dnl Check for essential libraries first:
dnl ====================================

248
GST_GLIB2_CHECK()
249

250 251
dnl Check for additional libraries that we might use:
dnl =================================================
252 253 254 255 256
dnl GTK
HAVE_GTK=NO
PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.2.0, HAVE_GTK_22=yes, HAVE_GTK_22=no)
if test "x$HAVE_GTK_22" = "xyes"; then
  HAVE_GTK=yes
257 258
  GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-2.0`
  AC_SUBST(GTK_VERSION)
259
  GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
260
  AC_SUBST(GTK_BASE_DIR)
261 262 263 264 265 266
else
  PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK_20=yes, HAVE_GTK_20=no)
fi
if test "x$HAVE_GTK_20" = "xyes"; then
  HAVE_GTK=yes
fi
Andy Wingo's avatar
Andy Wingo committed
267 268
GTK_CFLAGS=$GTK2_CFLAGS
GTK_LIBS=$GTK2_LIBS
269 270
AC_SUBST(GTK_LIBS)
AC_SUBST(GTK_CFLAGS)
271
AC_SUBST(HAVE_GTK)
272

David Schleef's avatar
David Schleef committed
273
PKG_CHECK_MODULES(LIBOIL, liboil-0.3 >= 0.3.2, HAVE_LIBOIL=yes, HAVE_LIBOIL=no)
274 275
AC_SUBST(LIBOIL_CFLAGS)
AC_SUBST(LIBOIL_LIBS)
David Schleef's avatar
David Schleef committed
276 277
if test "x${HAVE_LIBOIL}" != xyes ; then
  AC_ERROR([liboil-0.3 is required])
278 279
fi

280 281 282
dnl ===========================================================================
dnl ============================= gst plug-ins ================================
dnl ===========================================================================
283

David Schleef's avatar
David Schleef committed
284 285 286
plugindir="\$(libdir)/gstreamer-$GST_MAJORMINOR"
AC_SUBST(plugindir)

287 288
dnl this really should only contain flags, not libs - they get added before
dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
289
GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_desc\$\$' -no-undefined"
290
AC_SUBST(GST_PLUGIN_LDFLAGS)
291

292
dnl these are all the gst plug-ins, compilable without additional libs
293
GST_PLUGINS_ALL="\
294 295
	adder \
	audioconvert \
296
        audiorate \
297
        audioresample \
298
	ffmpegcolorspace \
299
	playback \
300
	sine \
301
        subparse \
Wim Taymans's avatar
Wim Taymans committed
302
        tcp \
303 304
	typefind \
	videotestsrc \
305
	videorate \
306
	videoscale \
307
        volume \
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 ==========================================================================

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
339 340 341 342
echo
AC_MSG_NOTICE([Checking libraries for plugins in sys/])
echo

343
dnl Check for X11
344 345 346 347
translit(dnm, m, l) AM_CONDITIONAL(USE_X, true)
GST_CHECK_FEATURE(X, [X libraries and plugins],
                  [ximagesink], [
  AC_PATH_XTRA
348 349 350 351 352
  ac_cflags_save="$CFLAGS"
  ac_cppflags_save="$CPPFLAGS"
  CFLAGS="$CFLAGS $X_CFLAGS"
  CPPFLAGS="$CPPFLAGS $X_CFLAGS"

353 354 355 356
  dnl now try to find the HEADER
  AC_CHECK_HEADER(X11/Xlib.h, HAVE_X="yes", HAVE_X="no")

  if test "x$HAVE_X" = "xno"
357 358 359 360 361
  then
    AC_MSG_NOTICE([cannot find X11 development files])
  else
    dnl this is much more than we want
    X_LIBS="$X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS"
362 363
    dnl AC_PATH_XTRA only defines the path needed to find the X libs,
    dnl it does not add the libs; therefore we add them here
364 365 366 367 368
    X_LIBS="$X_LIBS -lX11"
    AC_SUBST(X_CFLAGS)
    AC_SUBST(X_LIBS)
  fi
  AC_SUBST(HAVE_X)
369 370
  CFLAGS="$ac_cflags_save"
  CPPFLAGS="$ac_cppflags_save"
371 372
])
  
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
373
dnl *** XVideo ***
374 375 376 377 378 379
dnl Look for the PIC library first, Debian requires it.
dnl Check debian-devel archives for gory details.
dnl 20020110:
dnl At the moment XFree86 doesn't distribute shared libXv due
dnl to unstable API.  On many platforms you CAN NOT link a shared
dnl lib to a static non-PIC lib.  This is what the xvideo GStreamer
380 381
dnl plug-in wants to do.  So Debian distributes a PIC compiled
dnl version of the static lib for plug-ins to link to when it is
382 383 384 385 386
dnl inappropriate to link the main application to libXv directly.
dnl FIXME: add check if this platform can support linking to a
dnl        non-PIC libXv, if not then don not use Xv.
dnl FIXME: perhaps warn user if they have a shared libXv since
dnl        this is an error until XFree86 starts shipping one
387 388
   
dnl Check for Xv extension
389
translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
390
GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions],
391
                  [xvimagesink], [
392
  if test x$HAVE_X = xyes; then
393 394
    AC_CHECK_LIB(Xv_pic, XvQueryExtension,
		 HAVE_XVIDEO="yes", HAVE_XVIDEO="no",
395
		 $X_LIBS -lXext)
396

397 398 399 400 401 402 403
    if test x$HAVE_XVIDEO = xyes; then
      XVIDEO_LIBS="-lXv_pic -lXext"
      AC_SUBST(XVIDEO_LIBS)
    else
      dnl try again using something else if we didn't find it first
      if test x$HAVE_XVIDEO = xno; then
        AC_CHECK_LIB(Xv, XvQueryExtension,
404
		   HAVE_XVIDEO="yes", HAVE_XVIDEO="no",
405
		   $X_LIBS -lXext)
406

407 408 409 410 411 412
        if test x$HAVE_XVIDEO = xyes; then
          XVIDEO_LIBS="-lXv -lXext"
          AC_SUBST(XVIDEO_LIBS)
        fi
      fi
    fi
413
  fi
414
])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
415

416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438
dnl check for X Shm
translit(dnm, m, l) AM_CONDITIONAL(USE_XSHM, true)
GST_CHECK_FEATURE(XSHM, [X Shared Memory extension], xshm, [
  if test x$HAVE_X = xyes; then
    AC_CHECK_LIB(Xext, XShmAttach, 
		 HAVE_XSHM="yes", HAVE_XSHM="no",
		 $X_LIBS) 
    if test "x$HAVE_XSHM" = "xyes"; then
      XSHM_LIBS="-lXext"
    else
      dnl On AIX, it is in XextSam instead, but we still need -lXext
      AC_CHECK_LIB(XextSam, XShmAttach, 
		   HAVE_XSHM="yes", HAVE_XSHM="no",
		   $X_LIBS) 
      if test "x$HAVE_XSHM" = "xyes"; then
	XSHM_LIBS="-lXext -lXextSam"
      fi
    fi
  fi
], , [ 
  AC_SUBST(HAVE_XSHM) 
  AC_SUBST(XSHM_LIBS) 
] )
439

440 441 442 443
dnl v4l/v4l2 checks have been moved down because they require X

dnl *** Video 4 Linux ***
dnl for information about the header/define, see sys/v4l/gstv4lelement.h
444 445 446
dnl renamed to GST_V4L in accordance with V4L2 below
translit(dnm, m, l) AM_CONDITIONAL(USE_GST_V4L, true)
GST_CHECK_FEATURE(GST_V4L, [Video 4 Linux], v4lsrc v4lmjpegsrc v4lmjpegsink, [
447
  # first check X
448
  HAVE_GST_V4L="no"
449
  if test "$HAVE_X" = "yes"
450
  then
451
    AC_CHECK_DECL(VID_TYPE_MPEG_ENCODER, HAVE_GST_V4L="yes", HAVE_GST_V4L="no", [
452 453
#include <sys/types.h>
#define _LINUX_TIME_H
454
#define __user
455 456 457 458 459
#include <linux/videodev.h>
    ])
  fi
])

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

465 466
if test "x$BUILD_EXTERNAL" = "xyes"; then

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
467 468 469
echo
AC_MSG_NOTICE([Checking libraries for plugins in ext/])
echo
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
470 471 472

dnl *** alsa ***
translit(dnm, m, l) AM_CONDITIONAL(USE_ALSA, true)
473
GST_CHECK_FEATURE(ALSA, [alsa plug-ins], gstalsa, [
474 475 476 477 478 479 480
  PKG_CHECK_MODULES(ALSA, alsa >= 0.9.1, [
    HAVE_ALSA="yes"
    AC_SUBST(ALSA_CFLAGS)
    AC_SUBST(ALSA_LIBS)
  ], [
    AM_PATH_ALSA(0.9.1, HAVE_ALSA="yes", HAVE_ALSA="no")
  ])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
481 482 483 484 485
])

dnl *** CDParanoia ***
translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
486 487 488 489
  GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
                      cdda_open, -lm, 
                      cdda_interface.h, 
                      CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
490 491 492 493 494 495 496 497 498 499 500
                      HEADER_DIR="no"
                      FOUND_CDPARANOIA="yes")
  if test "x$FOUND_CDPARANOIA" != "xyes";
  then
    GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
                        cdda_open, -lm, 
                        cdda/cdda_interface.h, 
                        CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
                        HEADER_DIR="yes"
                        FOUND_CDPARANOIA="yes")
  fi
501 502 503 504 505
  if test "x$HEADER_DIR" = "xyes";
  then
    AC_DEFINE_UNQUOTED(CDPARANOIA_HEADERS_IN_DIR, ,
                       defined if cdda headers are in a cdda/ directory)
  fi
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
506
  AC_SUBST(CDPARANOIA_LIBS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
507 508 509 510 511 512 513 514
])
dnl FIXME : add second check somehow if that is necessary
dnl AC_CHECK_LIB(cdda_paranoia, paranoia_init, : , HAVE_CDPARANOIA=no, -lcdda_interface )
dnl AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no)

dnl *** Gnome VFS ***
translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
515 516 517
  PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0, HAVE_GNOME_VFS="yes", HAVE_GNOME_VFS="no")
  AC_SUBST(GNOME_VFS_CFLAGS)
  AC_SUBST(GNOME_VFS_LIBS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
518 519
])

520 521 522
dnl *** libvisual ***
translit(dnm, m, l) AM_CONDITIONAL(USE_LIBVISUAL, true)
GST_CHECK_FEATURE(LIBVISUAL, [libvisual visualization plugins], libvisual, [
Arwed v. Merkatz's avatar
Arwed v. Merkatz committed
523
  PKG_CHECK_MODULES(LIBVISUAL, libvisual = 0.2.0, HAVE_LIBVISUAL="yes", HAVE_LIBVISUAL="no")
524 525 526 527
  AC_SUBST(LIBVISUAL_CFLAGS)
  AC_SUBST(LIBVISUAL_LIBS)
])

528 529 530
dnl *** ogg ***
translit(dnm, m, l) AM_CONDITIONAL(USE_OGG, true)
GST_CHECK_FEATURE(OGG, [ogg de/encoder], oggdemux oggmux, [
531 532 533 534 535 536 537 538
  PKG_CHECK_MODULES(OGG, ogg >= 1.0, [
    HAVE_OGG="yes"
    AC_SUBST(OGG_CFLAGS)
    AC_SUBST(OGG_LIBS)
  ], [
    XIPH_PATH_OGG(HAVE_OGG="yes", HAVE_OGG="no")
    AS_SCRUB_INCLUDE(OGG_CFLAGS)
  ])
539 540
])

Benjamin Otte's avatar
Benjamin Otte committed
541 542
dnl *** theora ***
translit(dnm, m, l) AM_CONDITIONAL(USE_THEORA, true)
Thomas Vander Stichele's avatar
add enc  
Thomas Vander Stichele committed
543
GST_CHECK_FEATURE(THEORA, [ogg theora codec], theoradec theoraenc, [
544 545 546 547 548
  PKG_CHECK_MODULES(THEORA, theora, [
    HAVE_THEORA="yes"
    AC_SUBST(THEORA_LIBS)
    AC_SUBST(THEORA_CFLAGS)
  ], [
549
    GST_CHECK_LIBHEADER(THEORA, theora, theora_version_string, "-logg", theora/theora.h, THEORA_LIBS="-ltheora -logg")
550 551
    AC_SUBST(THEORA_LIBS)
  ])
Benjamin Otte's avatar
Benjamin Otte committed
552 553
])

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
554 555 556
dnl *** vorbis ***
dnl AM_PATH_VORBIS only takes two options
translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
557
GST_CHECK_FEATURE(VORBIS, [vorbis plug-in], vorbisenc vorbisdec, [
558 559 560 561 562 563
  PKG_CHECK_MODULES(VORBIS, vorbis >= 1.0 vorbisenc >= 1.0, [
    HAVE_VORBIS="yes"
  ], [
    XIPH_PATH_VORBIS(HAVE_VORBIS="yes", HAVE_VORBIS="no")
    AS_SCRUB_INCLUDE(VORBIS_CFLAGS)
  ])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
564
])
565 566
if test "x$HAVE_VORBIS" = "xyes"; then
  ac_cflags_save="$CFLAGS"
567
  dnl FIXME: does this work on non-gcc? -- Company
568
  dnl FIXME: no, it doesn't.  Why is this here in the first place ? -- thomasvs
569 570 571 572 573 574 575 576 577 578 579 580 581 582 583
  CFLAGS="-Wall -Werror"
  AC_COMPILE_IFELSE(
    AC_LANG_PROGRAM([
#include <vorbis/codec.h>
                     ],[
vorbis_dsp_state *v;

vorbis_synthesis_restart (v);
                     ]), HAVE_VSR=yes, HAVE_VSR=no)
  if test "x$HAVE_VSR" = "xyes"; then
    AC_DEFINE_UNQUOTED(HAVE_VORBIS_SYNTHESIS_RESTART, 1,
                       [defined if vorbis_synthesis_restart is present])
  fi
  CFLAGS="$ac_cflags_save"
fi
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
584

585 586
fi dnl of EXT plugins

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608
dnl Check for atomic.h
dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
if test x$HAVE_ATOMIC_H = xyes; then
  AC_TRY_RUN([
#include "asm/atomic.h"
main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
  ],, [
    # Not successful
    if test x$HAVE_ATOMIC_H = xyes; then
      AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
    fi
    HAVE_ATOMIC_H=no
  ], [
    # Cross compiling
    AC_MSG_RESULT(yes)
    AC_MSG_WARN(Can't check properly for atomic reference counting.  Assuming OK.)
  ])
fi

609 610 611
dnl check for "check", unit testing library/header
AM_PATH_CHECK(0.9.2, HAVE_CHECK=yes, HAVE_CHECK=no)
AM_CONDITIONAL(HAVE_CHECK, test "x$HAVE_CHECK" = "xyes")
612

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
613 614 615 616 617
dnl ######################################################################
dnl # Check command line parameters, and set shell variables accordingly #
dnl ######################################################################

AC_ARG_ENABLE(atomic,
618
  AC_HELP_STRING([--enable-atomic],[use atomic reference counting header]),
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
619 620 621 622 623 624 625 626 627
[case "${enableval}" in
  yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
  noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
  no)  USE_ATOMIC_H=no;;
  *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
esac], 
[USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value

AC_ARG_ENABLE(profiling,
628 629
  AC_HELP_STRING([--enable-profiling],
                 [-pg to compiler commandline, for profiling]),
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
630 631 632 633 634 635 636 637
[case "${enableval}" in
  yes) USE_PROFILING=yes ;;
  no)  UES_PROFILING=no ;;
  *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
esac], 
[USE_PROFILING=no]) dnl Default value

AC_ARG_ENABLE(tests,
638
  AC_HELP_STRING([--disable-tests],[disable building test apps]),
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
639 640 641 642 643 644 645 646
[case "${enableval}" in
  yes) BUILD_TESTS=yes ;;
  no)  BUILD_TESTS=no ;;
  *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
esac], 
[BUILD_TESTS=yes]) dnl Default value

AC_ARG_ENABLE(examples,
647
  AC_HELP_STRING([--disable-examples],[disable building examples]),
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
648 649 650 651 652 653 654
[case "${enableval}" in
  yes) BUILD_EXAMPLES=yes ;;
  no)  BUILD_EXAMPLES=no ;;
  *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
esac], 
[BUILD_EXAMPLES=yes]) dnl Default value

655
dnl seeking needs freetype, so check for it here
656 657 658
PKG_CHECK_MODULES(FT2, freetype2 >= 2.0.9, HAVE_FT2="yes", [
  AC_CHECK_FT2(2.0.9, HAVE_FT2="yes", HAVE_FT2="no")
])
659 660 661 662 663
dnl make the HAVE_FT2 variable available to automake and Makefile.am
AM_CONDITIONAL(HAVE_FT2, test "x$HAVE_FT2" = "xyes")
AC_SUBST(FT2_CFLAGS)
AC_SUBST(FT2_LIBS)

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
664 665 666 667 668 669 670 671 672
dnl ################################################
dnl # Set defines according to variables set above #
dnl ################################################


if test "x$USE_ATOMIC_H" = xyes; then
  AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
fi

673 674 675
# do not use deprecated stuff
GST_CFLAGS="$GST_CFLAGS -DGST_DISABLE_DEPRECATED"

676 677 678
if test "x$USE_DEBUG" = xyes; then
  GST_CFLAGS="$GST_CFLAGS -g"
fi
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
679

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
680 681 682
dnl ############################
dnl # Checks for documentation #
dnl ############################
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
683

684
GTK_DOC_CHECK([1.3])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
685
AS_PATH_PYTHON([2.1])
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
686

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705
dnl #############################
dnl # Set automake conditionals #
dnl #############################

dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
dnl HAVE_ and it is likely to be easier to stick with the old name
AM_CONDITIONAL(HAVE_ATOMIC_H,       test "x$USE_ATOMIC_H" = "xyes")

AM_CONDITIONAL(EXPERIMENTAL,        test "$EXPERIMENTAL" = "$xyes")
AM_CONDITIONAL(BROKEN,              test "$BROKEN" = "$xyes")

AM_CONDITIONAL(HAVE_NASM,           test "x$HAVE_NASM" = "xyes")
AM_CONDITIONAL(HAVE_GTK,            test "x$HAVE_GTK" = "xyes")
AM_CONDITIONAL(BUILD_TESTS,         test "x$BUILD_TESTS" = "xyes")
AM_CONDITIONAL(BUILD_EXAMPLES,      test "x$BUILD_EXAMPLES" = "xyes")
AM_CONDITIONAL(HAVE_FIG2DEV_PNG,    $HAVE_FIG2DEV_PNG)
AM_CONDITIONAL(HAVE_FIG2DEV_PDF,    $HAVE_FIG2DEV_PDF)
AM_CONDITIONAL(HAVE_RAW1394,        test "x$HAVE_RAW1394" = "xyes")

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
706
dnl prefer internal headers to already installed ones
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
707
dnl also add builddir include for enumtypes and marshal
708 709
dnl add ERROR_CFLAGS, but overridable
GST_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs $GST_CFLAGS \$(ERROR_CFLAGS)"
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
710

711 712
AC_SUBST(GST_LIBS)
AC_SUBST(GST_CFLAGS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
713

714 715 716 717
dnl ###########################
dnl # Configure external libs #
dnl ###########################

718 719 720 721 722 723
dnl ############################
dnl # Set up some more defines #
dnl ############################

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

725 726 727 728 729 730 731 732
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], 
733 734 735 736 737 738 739 740 741 742 743
[
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
]
)
744 745
AC_MSG_NOTICE(Using $GST_PACKAGE as package name)
AC_DEFINE_UNQUOTED(GST_PACKAGE, "$GST_PACKAGE", [package name in plugins])
746

747 748 749 750 751 752 753 754
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], 
755
[GST_ORIGIN="http://gstreamer.freedesktop.org/"]) dnl Default value
756 757 758
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
759 760 761 762
dnl #########################
dnl # Make the output files #
dnl #########################

Andy Wingo's avatar
Andy Wingo committed
763
AC_CONFIG_FILES(
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
764
Makefile
765
gst-plugins-base.spec
766
gst/Makefile
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
767
gst/adder/Makefile
768
gst/audioconvert/Makefile
769
gst/audiorate/Makefile
770
gst/audioresample/Makefile
771
gst/ffmpegcolorspace/Makefile
772
gst/playback/Makefile
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
773
gst/sine/Makefile
774
gst/subparse/Makefile
Wim Taymans's avatar
Wim Taymans committed
775
gst/tcp/Makefile
776
gst/typefind/Makefile
David Schleef's avatar
David Schleef committed
777
gst/videotestsrc/Makefile
778
gst/videorate/Makefile
779
gst/videoscale/Makefile
780
gst/volume/Makefile
781
sys/Makefile
782
sys/ximage/Makefile
783
sys/xvimage/Makefile
Andy Wingo's avatar
Andy Wingo committed
784
sys/v4l/Makefile
785
ext/Makefile
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
786
ext/alsa/Makefile
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
787
ext/cdparanoia/Makefile
788
ext/gnomevfs/Makefile
789
ext/libvisual/Makefile
790
ext/ogg/Makefile
Benjamin Otte's avatar
Benjamin Otte committed
791 792
ext/theora/Makefile
ext/vorbis/Makefile
793
gst-libs/Makefile
794 795
gst-libs/gst/Makefile
gst-libs/gst/audio/Makefile
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
796
gst-libs/gst/floatcast/Makefile
797
gst-libs/gst/interfaces/Makefile
Andy Wingo's avatar
Andy Wingo committed
798
gst-libs/gst/net/Makefile
799
gst-libs/gst/riff/Makefile
800
gst-libs/gst/rtp/Makefile
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
801
gst-libs/gst/tag/Makefile
802
gst-libs/gst/video/Makefile
803
gst-libs/ext/Makefile
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
804
examples/seeking/Makefile
Andy Wingo's avatar
Andy Wingo committed
805
examples/Makefile
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
806
tools/Makefile
807
pkgconfig/Makefile
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
808 809
pkgconfig/gstreamer-plugins-base.pc
pkgconfig/gstreamer-plugins-base-uninstalled.pc
810
check/Makefile
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
811 812
docs/Makefile
docs/libs/Makefile
813
docs/plugins/Makefile
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
814
docs/version.entities
815
po/Makefile.in
816 817 818
common/Makefile
common/m4/Makefile
m4/Makefile
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
819
)
Andy Wingo's avatar
Andy Wingo committed
820 821
AC_OUTPUT

822 823
echo "configure: *** Core plug-ins, always built:"
( for i in $GST_PLUGINS_ALL; do echo -e '\t'$i; done ) | sort
824 825
echo
echo -n "configure: *** Plug-ins relying on libraries that will be built:"
826
echo -e "$GST_PLUGINS_YES" | sort
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
827
echo
828
echo -n "configure: *** Plug-ins relying on libraries that will NOT be built:"
829
echo -e "$GST_PLUGINS_NO" | sort
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
830
echo
831 832 833
if test "x$BUILD_EXTERNAL" = "xno"; then
  echo "configure: *** No external plug-ins will be built"
fi