AC_PREREQ(2.52) dnl please read gstreamer/docs/random/autotools before changing this file dnl initialize autoconf dnl releases only do -Wall, cvs and prerelease does -Werror too dnl use a three digit version number for releases, and four for cvs/pre AC_INIT(GStreamer Good Plug-ins, 0.10.5.1, http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer, gst-plugins-good) dnl initialize automake AM_INIT_AUTOMAKE dnl define PACKAGE_VERSION_* variables AS_VERSION dnl check if this is a release version AS_NANO(GST_CVS="no", GST_CVS="yes") dnl can autoconf find the source ? AC_CONFIG_SRCDIR([gst/law/alaw.c]) dnl define the output header for config AM_CONFIG_HEADER([config.h]) dnl AM_MAINTAINER_MODE only provides the option to configure to enable it AM_MAINTAINER_MODE dnl sets host_* variables AC_CANONICAL_HOST dnl our libraries and install dirs use major.minor as a version GST_MAJORMINOR=$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR dnl we override it here if we need to for the release candidate of new series GST_MAJORMINOR=0.10 AC_SUBST(GST_MAJORMINOR) dnl FIXME: this macro doesn't actually work; dnl the generated libtool script has no support for the listed tags. dnl So this needs to be fixed first if we want to use this dnl AS_LIBTOOL_TAGS AM_PROG_LIBTOOL dnl *** required versions of GStreamer stuff *** GST_REQ=0.10.11.1 GSTPB_REQ=0.10.11.1 dnl *** autotools stuff **** dnl allow for different autotools AS_AUTOTOOLS_ALTERNATE dnl Add parameters for aclocal AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4") dnl set up gettext dnl the version check needs to stay here because autopoint greps for it AM_GNU_GETTEXT_VERSION([0.11.5]) AM_GNU_GETTEXT([external]) GST_GETTEXT([gst-plugins-good-$GST_MAJORMINOR]) dnl *** check for arguments to configure *** GST_ARG_DEBUG GST_ARG_PROFILING GST_ARG_VALGRIND GST_ARG_GCOV GST_ARG_EXAMPLES GST_ARG_WITH_PKG_CONFIG_PATH GST_ARG_WITH_PACKAGE_NAME GST_ARG_WITH_PACKAGE_ORIGIN dnl these are all the gst plug-ins, compilable without additional libs dnl videofilter is at the top because others depend on it GST_PLUGINS_ALL="\ videofilter \ alpha \ apetag \ audiofx \ auparse \ autodetect \ avi \ cutter \ debug \ effectv \ id3demux \ icydemux \ flx \ goom \ law \ level \ matroska \ monoscope \ multipart \ rtp \ rtsp \ smpte \ udp \ videobox \ videomixer \ wavenc \ wavparse \ " AC_SUBST(GST_PLUGINS_ALL) GST_PLUGINS_SELECTED="" AC_ARG_WITH(plugins, AC_HELP_STRING([--with-plugins], [comma-separated list of plug-ins to compile]), [for i in `echo $withval | tr , ' '`; do if echo $GST_PLUGINS_ALL | grep $i > /dev/null then GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED $i" else echo "plug-in $i not recognized, ignoring..." fi done], [GST_PLUGINS_SELECTED=$GST_PLUGINS_ALL]) dnl disable gst plugins we might not be able to build on this dnl platform: udp and rtsp (ugly but minimally invasive) dnl FIXME: maybe move to sys AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes) AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes) if test "x$HAVE_SYS_SOCKET_H" != "xyes" -a "x$HAVE_WINSOCK2_H" != "xyes"; then GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/udp//` GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/rtsp//` fi if test "x$HAVE_WINSOCK2_H" = "xyes"; then WIN32_LIBS="-lws2_32" AC_SUBST(WIN32_LIBS) fi dnl disable monoscope plugin GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/monoscope//` AC_SUBST(GST_PLUGINS_SELECTED) 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, [ AC_MSG_NOTICE(building external plug-ins) BUILD_EXTERNAL="yes" ],[ AC_MSG_NOTICE(all plug-ins with external dependencies will not be built) BUILD_EXTERNAL="no" ]) AM_CONDITIONAL(BUILD_EXTERNAL, test "x$BUILD_EXTERNAL" = "xyes") dnl experimental plug-ins; stuff that hasn't had the dust settle yet GST_CHECK_FEATURE(EXPERIMENTAL, [enable building of experimental plug-ins],, [HAVE_EXPERIMENTAL=yes],disabled, [ AC_MSG_WARN(building experimental plug-ins) USE_GST_V4L2="yes" ],[ AC_MSG_NOTICE(not building experimental plug-ins) USE_GST_V4L2="no" ]) dnl *** checks for platform *** dnl * hardware/architecture * dnl common/m4/gst-arch.m4 dnl check CPU type GST_ARCH dnl Determine endianness AC_C_BIGENDIAN dnl *** checks for programs *** dnl find a compiler AC_PROG_CC dnl determine c++ compiler AC_PROG_CXX dnl determine if c++ is available on this system AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no) dnl determine c++ preprocessor dnl FIXME: do we need this ? AC_PROG_CXXCPP AS_PROG_OBJC AC_PATH_PROG(VALGRIND_PATH, valgrind, no) AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno") dnl check for gconftool-2 dnl this macro defines an am conditional, so it needs to be run always AM_GCONF_SOURCE_2 dnl check for documentation tools GTK_DOC_CHECK([1.3]) AS_PATH_PYTHON([2.1]) GST_PLUGIN_DOCS([1.3],[2.1]) dnl *** checks for libraries *** dnl *** checks for header files *** dnl check if we have ANSI C header files AC_HEADER_STDC dnl used in gst/rtp/gstasteriskh263.c AC_CHECK_HEADERS([netinet/in.h]) AC_CHECK_HEADERS([winsock2.h]) AM_CONDITIONAL(HAVE_WINSOCK2_H, test "x$HAVE_WINSOCK2_H" = "xyes") dnl *** checks for types/defines *** dnl Check for FIONREAD ioctl declaration. This check is needed dnl for the UDP plugin to build on Solaris GST_CHECK_FIONREAD dnl *** checks for structures *** dnl *** checks for compiler characteristics *** dnl FIXME: check if this is used; was used for floatcast.h in base dnl Check for fast float to int casting as defined in C99 AC_C99_FUNC_LRINT AC_C99_FUNC_LRINTF dnl *** checks for library functions *** dnl Check for mmap (needed by electricfence plugin) AC_FUNC_MMAP AM_CONDITIONAL(GST_HAVE_MMAP, test "x$ac_cv_func_mmap_fixed_mapped" == "xyes") dnl *** checks for dependancy libraries *** dnl GLib is required GST_GLIB_CHECK([2.6]) dnl liboil is required PKG_CHECK_MODULES(LIBOIL, liboil-0.3 >= 0.3.2, HAVE_LIBOIL=yes, HAVE_LIBOIL=no) if test "x${HAVE_LIBOIL}" != xyes ; then AC_ERROR([liboil-0.3 is required]) fi dnl checks for gstreamer dnl uninstalled is selected preferentially -- see pkg-config(1) GST_CHECK_GST($GST_MAJORMINOR, [$GST_REQ]) GST_CHECK_GST_BASE($GST_MAJORMINOR, [$GST_REQ]) GST_CHECK_GST_GDP($GST_MAJORMINOR, [$GST_REQ]) GST_CHECK_GST_CONTROLLER($GST_MAJORMINOR, [$GST_REQ]) GST_CHECK_GST_CHECK($GST_MAJORMINOR, [$GST_REQ], no) GST_CHECK_GST_PLUGINS_BASE($GST_MAJORMINOR, [$GSTPB_REQ]) GST_TOOLS_DIR=`pkg-config --variable=toolsdir gstreamer-$GST_MAJORMINOR` 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) AC_MSG_NOTICE(Using GStreamer Core Plugins in $GST_PLUGINS_DIR) AC_MSG_NOTICE(Using GStreamer Base Plugins in $GSTPB_PLUGINS_DIR) dnl FIXME: get rid of this by making sure gstreamer-check brings it in 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") dnl GTK is optional and used in examples 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 GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-2.0` AC_SUBST(GTK_VERSION) GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0` AC_SUBST(GTK_BASE_DIR) GDK_PIXBUF_LIBDIR=`$PKG_CONFIG --variable=libdir gdk-pixbuf-2.0` GDK_PIXBUF_PREFIXDIR=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0` AC_SUBST(GTK_BASE_DIR) 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 GTK_CFLAGS=$GTK2_CFLAGS GTK_LIBS=$GTK2_LIBS AC_SUBST(GTK_LIBS) AC_SUBST(GTK_CFLAGS) AC_SUBST(HAVE_GTK) AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes") dnl should we install schemas ? translit(dnm, m, l) AM_CONDITIONAL(USE_GCONFTOOL, true) GST_CHECK_FEATURE(GCONFTOOL, [GConf schemas], , [ AC_PATH_PROG(GCONFTOOL, gconftool-2, no) if test x$GCONFTOOL = xno; then AC_MSG_WARN(Not installing GConf schemas) HAVE_GCONFTOOL="no" else HAVE_GCONFTOOL="yes" fi AC_SUBST(HAVE_GCONFTOOL) ]) dnl *** set variables based on configure arguments *** dnl set license and copyright notice GST_LICENSE="LGPL" AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license]) AC_SUBST(GST_LICENSE) dnl set location of plugin directory GST_SET_PLUGINDIR dnl define an ERROR_CFLAGS Makefile variable GST_SET_ERROR_CFLAGS($GST_CVS) dnl define correct level for debugging messages GST_SET_LEVEL_DEFAULT($GST_CVS) dnl used in examples GST_DEFAULT_ELEMENTS dnl *** sys plug-ins *** echo AC_MSG_NOTICE([Checking libraries for plugins in sys/]) echo dnl *** OSS audio *** (Linux, *BSD) translit(dnm, m, l) AM_CONDITIONAL(USE_OSS, true) GST_CHECK_FEATURE(OSS, [OSS audio], ossaudio, [ 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 and also newer OpenBSD 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" ]) ]) ]) ]) dnl *** Sun Audio *** translit(dnm, m, l) AM_CONDITIONAL(USE_SUNAUDIO, true) GST_CHECK_FEATURE(SUNAUDIO, [Sun Audio], sunaudio, [ AC_CHECK_HEADER(sys/audioio.h, HAVE_SUNAUDIO="yes", HAVE_SUNAUDIO="no") ]) dnl *** Video 4 Linux 2 *** dnl for information about the header/define, see sys/v4l2/gstv4l2element.h dnl renamed to GST_V4L2 because of some conflict with kernel headers translit(dnm, m, l) AM_CONDITIONAL(USE_GST_V4L2, true) GST_CHECK_FEATURE(GST_V4L2, [Video 4 Linux 2], v4l2src, [ AC_MSG_CHECKING([Checking for uptodate v4l2 installation]) AC_TRY_COMPILE([ #include #include #define _LINUX_TIME_H #define __user #include #if defined(V4L2_MAJOR_VERSION) || defined(V4L2_MINOR_VERSION) #error too early v4l2 version or no v4l2 at all #endif ], [ return 0; ], [ HAVE_GST_V4L2="yes" AC_MSG_RESULT(yes) ], [ HAVE_GST_V4L2="no" AC_MSG_RESULT(no) AC_CHECK_HEADER(linux/videodev2.h, [ AC_MSG_WARN([video4linux2 headers were found, but they're old.]) AC_MSG_WARN([Please update v4l2 to compile the v4l2 plugins]) ], [ AC_MSG_WARN([video4linux2 was not found]) ]) ]) if [ test x$HAVE_GST_V4L2 = xyes ]; then dnl check for missing v4l2_buffer declaration (see #135919) MISSING_DECL=0 AC_MSG_CHECKING(struct v4l2_buffer declaration) AC_TRY_COMPILE([ #include #include #define _LINUX_TIME_H #define __user #include ],[ struct v4l2_buffer buf; buf.index = 0; return 0; ], [ AC_MSG_RESULT(yes) ], [ MISSING_DECL=1 && AC_MSG_RESULT(no) ]) if [ test x$MISSING_DECL = x1 ]; then AC_DEFINE(GST_V4L2_MISSING_BUFDECL, 1, [struct v4l2_buffer missing]) fi dnl check for XOverlay libraries GST_CHECK_XV fi ]) dnl Check for X11 translit(dnm, m, l) AM_CONDITIONAL(USE_X, true) GST_CHECK_FEATURE(X, [X libraries and plugins], [ximagesrc], [ AC_PATH_XTRA dnl now try to find the HEADER ac_cflags_save="$CFLAGS" ac_cppflags_save="$CPPFLAGS" CFLAGS="$CFLAGS $X_CFLAGS" CPPFLAGS="$CPPFLAGS $X_CFLAGS" AC_CHECK_HEADER(X11/Xlib.h, HAVE_X="yes", HAVE_X="no") if test "x$HAVE_X" = "xno" 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" 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 X_LIBS="$X_LIBS -lX11" AC_SUBST(X_CFLAGS) AC_SUBST(X_LIBS) dnl check for Xfixes PKG_CHECK_MODULES(XFIXES, xfixes, HAVE_XFIXES="yes", HAVE_XFIXES="no") if test "x$HAVE_XFIXES" = "xyes" then XFIXES_CFLAGS="-DHAVE_XFIXES $XFIXES_CFLAGS" fi AC_SUBST(XFIXES_LIBS) AC_SUBST(XFIXES_CFLAGS) dnl check for Xdamage PKG_CHECK_MODULES(XDAMAGE, xdamage, HAVE_XDAMAGE="yes", HAVE_XDAMAGE="no") if test "x$HAVE_XDAMAGE" = "xyes" then XDAMAGE_CFLAGS="-DHAVE_XDAMAGE $XDAMAGE_CFLAGS" fi AC_SUBST(XDAMAGE_LIBS) AC_SUBST(XDAMAGE_CFLAGS) fi AC_SUBST(HAVE_X) CFLAGS="$ac_cflags_save" CPPFLAGS="$ac_cppflags_save" ]) dnl FIXME: this should be rolled into the test above, it's just an additional dnl feature of the ximagesrc plug-in dnl This is the same as in gst-plugins-base dnl check for X Shm translit(dnm, m, l) AM_CONDITIONAL(USE_XSHM, true) GST_CHECK_FEATURE(XSHM, [X Shared Memory extension], , [ 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) ]) dnl for V4L2, we also need to know if we have XVIDEO translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true) GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions], [], [ GST_CHECK_XV ]) dnl *** ext plug-ins *** dnl keep this list sorted alphabetically ! if test "x$BUILD_EXTERNAL" = "xyes"; then echo AC_MSG_NOTICE([Checking libraries for plugins in ext/]) echo dnl *** aalib *** translit(dnm, m, l) AM_CONDITIONAL(USE_AALIB, true) GST_CHECK_FEATURE(AALIB, [aalib ASCII Art library], aasink, [ AM_PATH_AALIB(, HAVE_AALIB=yes, HAVE_AALIB=no) AS_SCRUB_INCLUDE(AALIB_CFLAGS) ]) dnl *** annodex *** translit(dnm, m, l) AM_CONDITIONAL(USE_ANNODEX, true) GST_CHECK_FEATURE(ANNODEX, [XML library], annodex, [ GST_PKG_CHECK_MODULES(ANNODEX, libxml-2.0 >= 2.4.9) ]) dnl *** cairo *** translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true) GST_CHECK_FEATURE(CAIRO, [Cairo graphics rendering], cairo, [ GST_PKG_CHECK_MODULES(CAIRO, cairo >= 1.0.0) ]) dnl *** cdio *** translit(dnm, m, l) AM_CONDITIONAL(USE_CDIO, true) GST_CHECK_FEATURE(CDIO, [cdio library], cdio, [ GST_PKG_CHECK_MODULES(CDIO, libcdio >= 0.71) ]) dnl **** ESound **** translit(dnm, m, l) AM_CONDITIONAL(USE_ESD, true) GST_CHECK_FEATURE(ESD, [ESounD sound daemon], esdsink, [ GST_PKG_CHECK_MODULES(ESD, esound >= 0.2.12) if test $HAVE_ESD = no then AM_PATH_ESD(0.2.12, HAVE_ESD="yes") AS_SCRUB_INCLUDE(ESD_CFLAGS) fi ]) dnl *** FLAC *** translit(dnm, m, l) AM_CONDITIONAL(USE_FLAC, true) GST_CHECK_FEATURE(FLAC, [FLAC lossless audio], flac, [ 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... dnl (this check will also fail with FLAC 1.1.3 which changed API again dnl and with which our plugin does not compile or work yet) if test x$HAVE_FLAC = xyes; then AC_CHECK_DECL(FLAC__SEEKABLE_STREAM_ENCODER_TELL_ERROR, HAVE_FLAC="yes", HAVE_FLAC="no", [ #include ]) fi AC_SUBST(FLAC_LIBS) ]) dnl *** GConf *** translit(dnm, m, l) AM_CONDITIONAL(USE_GCONF, true) GST_CHECK_FEATURE(GCONF, [GConf libraries], gconfelements, [ GST_PKG_CHECK_MODULES(GCONF, gconf-2.0) ]) dnl *** GDK pixbuf *** translit(dnm, m, l) AM_CONDITIONAL(USE_GDK_PIXBUF, true) GST_CHECK_FEATURE(GDK_PIXBUF, [GDK pixbuf], gdkpixbuf, [ if test $HAVE_GTK_22 = "yes"; then HAVE_GDK_PIXBUF=yes; fi; ]) dnl *** HAL *** translit(dnm, m, l) AM_CONDITIONAL(USE_HAL, true) GST_CHECK_FEATURE(HAL, [HAL libraries], halelements, [ GST_PKG_CHECK_MODULES(HAL, [hal >= 0.5.6, dbus-1 >= 0.32]) ]) 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 library], jpeg, [ AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library]) OLD_LIBS="$LIBS" if test x$with_jpeg_mmx != x; then LIBS="$LIBS -L$with_jpeg_mmx" fi AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no") JPEG_LIBS="$LIBS -ljpeg-mmx" LIBS="$OLD_LIBS" if test x$HAVE_JPEG != xyes; then AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no") JPEG_LIBS="-ljpeg" fi AC_SUBST(JPEG_LIBS) ]) dnl *** ladspa *** translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true) GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [ AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no") ], disabled) dnl *** libcaca *** translit(dnm, m, l) AM_CONDITIONAL(USE_LIBCACA, true) GST_CHECK_FEATURE(LIBCACA, [libcaca coloured ASCII art], cacasink, [ GST_PKG_CHECK_MODULES(LIBCACA, caca) dnl only newer versions of libcaca ship caca.pc, so try caca-config as well if test "x$HAVE_LIBCACA" != "xyes"; then GST_CHECK_CONFIGPROG(LIBCACA, caca-config) dnl see if it compilation works too, might not if we are cross-compiling if test "x$HAVE_LIBCACA" = "xyes"; then AC_CHECK_LIB([caca], [caca_init], [HAVE_LIBCACA=yes], [HAVE_LIBCACA=no], [$LIBCACA_LIBS]) fi fi ]) dnl *** libdv *** translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDV, true) GST_CHECK_FEATURE(LIBDV, [libdv DV demuxer/decoder], dv, [ GST_PKG_CHECK_MODULES(LIBDV, libdv >= 0.100) ]) dnl *** libpng *** translit(dnm, m, l) AM_CONDITIONAL(USE_LIBPNG, true) GST_CHECK_FEATURE(LIBPNG, [Portable Network Graphics library], png, [ GST_PKG_CHECK_MODULES(LIBPNG, libpng12) ]) dnl *** dv1394 *** translit(dnm, m, l) AM_CONDITIONAL(USE_DV1394, true) GST_CHECK_FEATURE(DV1394, [raw1394 and avc1394 library], 1394, [ dnl first test for libraw1394 >= 1.2.1 GST_PKG_CHECK_MODULES(RAW1394, libraw1394 >= 1.2.1) GST_PKG_CHECK_MODULES(LIBIEC61883, libiec61883 >= 1.0.0) dnl now see how far we got if test x$HAVE_RAW1394 = xyes && \ test x$HAVE_LIBIEC61883 = xyes; then 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") if test x$HAVE_AVC1394 = xyes && \ test x$HAVE_AVC1394 = xyes && \ test x$HAVE_ROM1394 = xyes; then HAVE_DV1394=yes DV1394_LIBS="$RAW1394_LIBS $AVC1394_LIBS $ROM1394_LIBS $LIBIEC61883_LIBS" DV1394_CFLAGS="$RAW1394_CFLAGS $LIBIEC61883_CFLAGS -DHAVE_LIBIEC61883" AC_SUBST(DV1394_CFLAGS) AC_SUBST(DV1394_LIBS) fi else if test x$HAVE_RAW1394 = xno; then GST_PKG_CHECK_MODULES(RAW1394, libraw1394 >= 1.1.0) 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") 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" DV1394_CFLAGS="$RAW1394_CFLAGS" if test x$HAVE_LIBIEC61883 = xyes; then DV1394_CFLAGS="$RAW1394_CFLAGS $LIBIEC61883_CFLAGS -DHAVE_LIBIEC61883" DV1394_LIBS="$DV1394_LIBS $LIBIEC61883_LIBS" fi AC_SUBST(DV1394_CFLAGS) AC_SUBST(DV1394_LIBS) fi fi fi ]) dnl *** shout2 *** translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT2, true) GST_CHECK_FEATURE(SHOUT2, [Shoutcast/Icecast client library], shout2, [ GST_PKG_CHECK_MODULES(SHOUT2, shout >= 2.0) if test $HAVE_SHOUT2 = no then AM_PATH_SHOUT2(HAVE_SHOUT2="yes") AC_SUBST(SHOUT2_CFLAGS) AC_SUBST(SHOUT2_LIBS) fi ]) 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 speech codec], speex, [ GST_PKG_CHECK_MODULES(SPEEX, speex >= 1.1.6) if test $HAVE_SPEEX = no then 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 ]) ]) ]) fi ]) dnl *** taglib *** translit(dnm, m, l) AM_CONDITIONAL(USE_TAGLIB, true) GST_CHECK_FEATURE(TAGLIB, [taglib tagging library], taglib, [ GST_PKG_CHECK_MODULES(TAGLIB, taglib >= 1.4) if test "x$HAVE_CXX" != "xyes"; then USE_TAGLIB=false AC_MSG_NOTICE([Not building taglib plugin: no C++ compiler found]) fi ]) dnl *** id3demux prefers to have zlib *** translit(dnm, m, l) AM_CONDITIONAL(USE_ZLIB, true) GST_CHECK_FEATURE(ZLIB, [zlib support for id3demux],, [ GST_CHECK_LIBHEADER(ZLIB, z, uncompress,, zlib.h, [ HAVE_ZLIB="yes" ZLIB_LIBS="-lz" AC_SUBST(ZLIB_LIBS) ]) ]) else dnl not building plugins with external dependencies, dnl but we still need to set the conditionals AM_CONDITIONAL(USE_GCONFTOOL, false) AM_CONDITIONAL(USE_OSS, false) AM_CONDITIONAL(USE_SUNAUDIO, false) AM_CONDITIONAL(USE_X, false) AM_CONDITIONAL(USE_XSHM, false) AM_CONDITIONAL(USE_AALIB, false) AM_CONDITIONAL(USE_ANNODEX, false) AM_CONDITIONAL(USE_CAIRO, false) AM_CONDITIONAL(USE_CDIO, false) AM_CONDITIONAL(USE_ESD, false) AM_CONDITIONAL(USE_FLAC, false) AM_CONDITIONAL(USE_GCONF, false) AM_CONDITIONAL(USE_GDK_PIXBUF, false) AM_CONDITIONAL(USE_HAL, false) AM_CONDITIONAL(USE_JPEG, false) AM_CONDITIONAL(USE_LADSPA, false) AM_CONDITIONAL(USE_LIBCACA, false) AM_CONDITIONAL(USE_LIBDV, false) AM_CONDITIONAL(USE_LIBPNG, false) AM_CONDITIONAL(USE_DV1394, false) AM_CONDITIONAL(USE_SHOUT2, false) AM_CONDITIONAL(USE_SPEEX, false) AM_CONDITIONAL(USE_TAGLIB, false) AM_CONDITIONAL(USE_ZLIB, false) fi dnl of EXT plugins dnl *** finalize CFLAGS, LDFLAGS, LIBS dnl Overview: dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ... dnl GST_*: flags shared by all built objects dnl GST_ALL_LDFLAGS: linker flags shared by all dnl GST_LIB_LDFLAGS: not needed, we don't install libraries dnl GST_LT_LDFLAGS: library versioning of our libraries dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins dnl GST_OPTION_CFLAGS if test "x$USE_DEBUG" = xyes; then PROFILE_CFLAGS="-g" fi AC_SUBST(PROFILE_CFLAGS) DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED" AC_SUBST(DEPRECATED_CFLAGS) dnl every flag in GST_OPTION_CFLAGS can be overridden at make time GST_OPTION_CFLAGS="\$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)" AC_SUBST(GST_OPTION_CFLAGS) dnl our libraries need to be versioned correctly AC_SUBST(GST_LT_LDFLAGS) dnl FIXME: do we want to rename to GST_ALL_* ? dnl prefer internal headers to already installed ones dnl also add builddir include for enumtypes and marshal dnl add ERROR_CFLAGS, but overridable GST_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs $GST_CFLAGS \$(GST_OPTION_CFLAGS)" AC_SUBST(GST_CFLAGS) AC_SUBST(GST_LIBS) dnl LDFLAGS really should only contain flags, not libs - they get added before dnl whatevertarget_LIBS and -L flags here affect the rest of the linking GST_ALL_LDFLAGS="-no-undefined" AC_SUBST(GST_ALL_LDFLAGS) 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 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_desc\$\$' $GST_ALL_LDFLAGS" AC_SUBST(GST_PLUGIN_LDFLAGS) dnl *** output files *** dnl keep this alphabetic per directory, please AC_CONFIG_FILES( Makefile gst/Makefile gst/alpha/Makefile gst/apetag/Makefile gst/audiofx/Makefile gst/auparse/Makefile gst/autodetect/Makefile gst/avi/Makefile gst/cutter/Makefile gst/debug/Makefile gst/effectv/Makefile gst/id3demux/Makefile gst/icydemux/Makefile gst/goom/Makefile gst/law/Makefile gst/level/Makefile gst/matroska/Makefile gst/monoscope/Makefile gst/multipart/Makefile gst/rtp/Makefile gst/rtsp/Makefile gst/smpte/Makefile gst/udp/Makefile gst/videobox/Makefile gst/videofilter/Makefile gst/videomixer/Makefile gst/wavenc/Makefile gst/wavparse/Makefile gst/flx/Makefile ext/jpeg/Makefile ext/Makefile ext/aalib/Makefile ext/annodex/Makefile ext/cairo/Makefile ext/cdio/Makefile ext/dv/Makefile ext/esd/Makefile ext/flac/Makefile ext/gconf/Makefile ext/gdk_pixbuf/Makefile ext/hal/Makefile ext/ladspa/Makefile ext/libcaca/Makefile ext/libpng/Makefile ext/raw1394/Makefile ext/shout2/Makefile ext/speex/Makefile ext/taglib/Makefile sys/Makefile sys/oss/Makefile sys/sunaudio/Makefile sys/v4l2/Makefile sys/ximage/Makefile po/Makefile.in tests/Makefile tests/check/Makefile tests/icles/Makefile tests/examples/Makefile tests/examples/level/Makefile gconf/Makefile gconf/gstreamer.schemas common/Makefile common/m4/Makefile m4/Makefile docs/Makefile docs/plugins/Makefile docs/version.entities win32/common/config.h pkgconfig/Makefile pkgconfig/gstreamer-plugins-good-uninstalled.pc gst-plugins-good.spec ) AC_OUTPUT GST_OUTPUT_PLUGINS