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_GLIB_CHECK([2.6])
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 \
Stefan Kost's avatar
Stefan Kost committed
296 297 298
	audiorate \
	audioresample \
	audiotestsrc \
299
	ffmpegcolorspace \
300
	playback \
301
	sine \
Stefan Kost's avatar
Stefan Kost committed
302 303
	subparse \
	tcp \
304 305
	typefind \
	videotestsrc \
306
	videorate \
307
	videoscale \
Stefan Kost's avatar
Stefan Kost committed
308
	volume \
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 ==========================================================================

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

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

354 355 356 357
  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"
358 359 360 361 362
  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"
363 364
    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
365 366 367 368 369
    X_LIBS="$X_LIBS -lX11"
    AC_SUBST(X_CFLAGS)
    AC_SUBST(X_LIBS)
  fi
  AC_SUBST(HAVE_X)
370 371
  CFLAGS="$ac_cflags_save"
  CPPFLAGS="$ac_cppflags_save"
372 373
])
  
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
374
dnl *** XVideo ***
375 376 377 378 379 380
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
381 382
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
383 384 385 386 387
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
388 389
   
dnl Check for Xv extension
390
translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
391
GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions],
392
                  [xvimagesink], [
393
  if test x$HAVE_X = xyes; then
394 395
    AC_CHECK_LIB(Xv_pic, XvQueryExtension,
		 HAVE_XVIDEO="yes", HAVE_XVIDEO="no",
396
		 $X_LIBS -lXext)
397

398 399 400 401 402 403 404
    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,
405
		   HAVE_XVIDEO="yes", HAVE_XVIDEO="no",
406
		   $X_LIBS -lXext)
407

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

417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439
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) 
] )
440

441 442 443 444
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
445 446 447
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, [
448
  # first check X
449
  HAVE_GST_V4L="no"
450
  if test "$HAVE_X" = "yes"
451
  then
452
    AC_CHECK_DECL(VID_TYPE_MPEG_ENCODER, HAVE_GST_V4L="yes", HAVE_GST_V4L="no", [
453 454
#include <sys/types.h>
#define _LINUX_TIME_H
455
#define __user
456 457 458 459 460
#include <linux/videodev.h>
    ])
  fi
])

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

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

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

dnl *** alsa ***
translit(dnm, m, l) AM_CONDITIONAL(USE_ALSA, true)
474
GST_CHECK_FEATURE(ALSA, [alsa plug-ins], gstalsa, [
475 476 477 478 479 480 481
  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
482 483 484 485 486
])

dnl *** CDParanoia ***
translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
487 488 489 490
  GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
                      cdda_open, -lm, 
                      cdda_interface.h, 
                      CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
491 492 493 494 495 496 497 498 499 500 501
                      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
502 503 504 505 506
  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
507
  AC_SUBST(CDPARANOIA_LIBS)
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
508 509 510 511 512 513 514 515
])
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
516 517 518
  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
519 520
])

521 522 523
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
524
  PKG_CHECK_MODULES(LIBVISUAL, libvisual = 0.2.0, HAVE_LIBVISUAL="yes", HAVE_LIBVISUAL="no")
525 526 527 528
  AC_SUBST(LIBVISUAL_CFLAGS)
  AC_SUBST(LIBVISUAL_LIBS)
])

529 530 531
dnl *** ogg ***
translit(dnm, m, l) AM_CONDITIONAL(USE_OGG, true)
GST_CHECK_FEATURE(OGG, [ogg de/encoder], oggdemux oggmux, [
532 533 534 535 536 537 538 539
  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)
  ])
540 541
])

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

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
555 556 557
dnl *** vorbis ***
dnl AM_PATH_VORBIS only takes two options
translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
558
GST_CHECK_FEATURE(VORBIS, [vorbis plug-in], vorbisenc vorbisdec, [
559 560 561 562 563 564
  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
565
])
566 567
if test "x$HAVE_VORBIS" = "xyes"; then
  ac_cflags_save="$CFLAGS"
568
  dnl FIXME: does this work on non-gcc? -- Company
569
  dnl FIXME: no, it doesn't.  Why is this here in the first place ? -- thomasvs
570 571 572 573 574 575 576 577 578 579 580 581 582 583 584
  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
585

586 587
fi dnl of EXT plugins

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609
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

610 611 612
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")
613

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

AC_ARG_ENABLE(atomic,
619
  AC_HELP_STRING([--enable-atomic],[use atomic reference counting header]),
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
620 621 622 623 624 625 626 627 628
[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,
629 630
  AC_HELP_STRING([--enable-profiling],
                 [-pg to compiler commandline, for profiling]),
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
631 632 633 634 635 636 637 638
[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,
639
  AC_HELP_STRING([--disable-tests],[disable building test apps]),
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
640 641 642 643 644 645 646 647
[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,
648
  AC_HELP_STRING([--disable-examples],[disable building examples]),
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
649 650 651 652 653 654 655
[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

656
dnl seeking needs freetype, so check for it here
657 658 659
PKG_CHECK_MODULES(FT2, freetype2 >= 2.0.9, HAVE_FT2="yes", [
  AC_CHECK_FT2(2.0.9, HAVE_FT2="yes", HAVE_FT2="no")
])
660 661 662 663 664
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
665 666 667 668 669 670 671 672 673
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

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

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

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

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

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706
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
707
dnl prefer internal headers to already installed ones
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
708
dnl also add builddir include for enumtypes and marshal
709 710
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
711

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

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

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

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

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

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

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

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