diff --git a/configure.ac b/configure.ac
index faec353297c586e010071a91ce74252909162e79..7a4d897e77e738dadce170e84da61031f462344d 100644 (file)
--- a/configure.ac
+++ b/configure.ac
-AC_PREREQ(2.52)
+AC_PREREQ(2.60)
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/prerelease
-AC_INIT(GStreamer Ugly Plug-ins, 0.10.9.3,
+AC_INIT(GStreamer Ugly Plug-ins, 0.10.18.2,
http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
gst-plugins-ugly)
AG_GST_INIT
dnl initialize automake
-AM_INIT_AUTOMAKE
+AM_INIT_AUTOMAKE([-Wno-portability 1.10])
dnl define PACKAGE_VERSION_* variables
AS_VERSION
dnl check if this is a release version
-AS_NANO(GST_CVS="no", GST_CVS="yes")
+AS_NANO(GST_GIT="no", GST_GIT="yes")
dnl can autoconf find the source ?
AC_CONFIG_SRCDIR([ext/mad/gstmad.c])
dnl sets host_* variables
AC_CANONICAL_HOST
+dnl use pretty build output with automake >= 1.11
+m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
+ [AM_DEFAULT_VERBOSITY=1
+ AC_SUBST(AM_DEFAULT_VERBOSITY)])
+
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
AM_PROG_LIBTOOL
dnl *** required versions of GStreamer stuff ***
-GST_REQ=0.10.20
-GSTPB_REQ=0.10.14
+GST_REQ=0.10.35.2
+GSTPB_REQ=0.10.35.2
dnl *** autotools stuff ****
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_VERSION(0.17)
AM_GNU_GETTEXT([external])
AG_GST_GETTEXT([gst-plugins-ugly-$GST_MAJORMINOR])
dnl find a compiler
AC_PROG_CC
+AC_PROG_CC_STDC
dnl determine c++ compiler
AC_PROG_CXX
dnl *** checks for dependency libraries ***
dnl GLib is required
-AG_GST_GLIB_CHECK([2.12])
-
-dnl liboil is required
-PKG_CHECK_MODULES(LIBOIL, liboil-0.3 >= 0.3.8, HAVE_LIBOIL=yes, HAVE_LIBOIL=no)
-if test "x$HAVE_LIBOIL" != "xyes"; then
- AC_ERROR([liboil-0.3.8 or later is required])
-fi
+AG_GST_GLIB_CHECK([2.24])
+ORC_CHECK([0.4.11])
dnl checks for gstreamer
dnl uninstalled is selected preferentially -- see pkg-config(1)
dnl set location of plugin directory
AG_GST_SET_PLUGINDIR
+dnl set release date/time
+AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
+ ["${srcdir}/gst-plugins-ugly.doap"],
+ [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
+
dnl define an ERROR_CFLAGS Makefile variable
-AG_GST_SET_ERROR_CFLAGS($GST_CVS)
+AG_GST_SET_ERROR_CFLAGS($GST_GIT, [
+ -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
+ -Wwrite-strings -Wformat-nonliteral -Wformat-security -Wold-style-definition
+ -Winit-self -Wmissing-include-dirs -Waddress
+ -Waggregate-return -Wno-multichar -Wnested-externs ])
dnl define an ERROR_CXXFLAGS Makefile variable
-AG_GST_SET_ERROR_CXXFLAGS($GST_CVS)
+AG_GST_SET_ERROR_CXXFLAGS($GST_GIT, [
+ -Wmissing-declarations -Wredundant-decls
+ -Wwrite-strings -Wformat-nonliteral -Wformat-security
+ -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return
+ -Wno-multichar])
dnl define correct level for debugging messages
-AG_GST_SET_LEVEL_DEFAULT($GST_CVS)
+AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
dnl used in examples
AG_GST_DEFAULT_ELEMENTS
AG_GST_CHECK_PLUGIN(realmedia)
AG_GST_CHECK_PLUGIN(synaesthesia)
+AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
+
+if test "x$HAVE_WINSOCK2_H" = "xyes"; then
+ WIN32_LIBS="-lws2_32"
+ AC_SUBST(WIN32_LIBS)
+fi
+
dnl disable experimental plug-ins
if test "x$BUILD_EXPERIMENTAL" != "xyes"; then
AG_GST_DISABLE_PLUGIN(synaesthesia)
AC_CHECK_A52DEC(HAVE_A52DEC=yes, HAVE_A52DEC=no)
])
-dnl *** AMR-NB ***
+dnl *** amr-nb ***
translit(dnm, m, l) AM_CONDITIONAL(USE_AMRNB, true)
-AG_GST_CHECK_FEATURE(AMRNB, [AMR-NB], amrnb, [
- AG_GST_CHECK_LIBHEADER(AMRNB, amrnb,
- Decoder_Interface_init, -lm,
- amrnb/interf_dec.h,
- AMRNB_LIBS="-lamrnb -lm"
- AC_SUBST(AMRNB_LIBS))
+AG_GST_CHECK_FEATURE(AMRNB, [amrnb library], amrnb, [
+ PKG_CHECK_MODULES(AMRNB, opencore-amrnb, HAVE_AMRNB="yes",
+ [ AG_GST_CHECK_LIBHEADER(AMRNB, opencore-amrnb,
+ Decoder_Interface_init, $LIBM,
+ opencore-amrnb/interf_dec.h,
+ AMRNB_LIBS="-lopencore-amrnb")
+ ])
+ AC_SUBST(AMRNB_CFLAGS)
+ AC_SUBST(AMRNB_LIBS)
+])
+
+dnl *** amr-wb dec ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_AMRWB, true)
+AG_GST_CHECK_FEATURE(AMRWB, [amrwb library], amrwbdec, [
+ PKG_CHECK_MODULES(AMRWB, opencore-amrwb, HAVE_AMRWB="yes",
+ [ AG_GST_CHECK_LIBHEADER(AMRWB, opencore-amrwb,
+ D_IF_decode, ,
+ opencore-amrwb/dec_if.h,
+ AMRWB_LIBS="-lopencore-amrwb")
+ ])
+ AC_SUBST(AMRWB_CFLAGS)
+ AC_SUBST(AMRWB_LIBS)
])
dnl *** cdio ***
AC_SUBST(DVDREAD_LIBS)
])
-dnl *** dvdnav ***
-translit(dnm, m, l) AM_CONDITIONAL(USE_DVDNAV, true)
-AG_GST_CHECK_FEATURE(DVDNAV, [dvdnav library], dvdnav, [
- translit(dnm, m, l) AC_SUBST(DVDNAV_LIBS)
- translit(dnm, m, l) AC_SUBST(DVDNAV_CFLAGS)
- AG_GST_CHECK_CONFIGPROG(DVDNAV, dvdnav-config)
- if test x"$HAVE_DVDNAV" = x"yes"; then
- dnl check version
- DVDNAV_VERSION=`dvdnav-config --version|head -n 1|sed 's/^.*) //'|sed 's/ (.*)//'`
- DVDNAV_MAJOR=`echo $DVDNAV_VERSION | cut -d. -f1 | sed s/[a-zA-Z\-].*//g`
- DVDNAV_MINOR=`echo $DVDNAV_VERSION | cut -d. -f2 | sed s/[a-zA-Z\-].*//g`
- DVDNAV_MICRO=`echo $DVDNAV_VERSION | cut -d. -f3 | sed s/[a-zA-Z\-].*//g`
- if [[ "$DVDNAV_MAJOR" -eq "0" ]] && \
- [[ "$DVDNAV_MINOR" -lt "1" ]]; then
- AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION])
- HAVE_DVDNAV="no"
- elif [[ "$DVDNAV_MAJOR" -eq "0" ]] && \
- [[ "$DVDNAV_MINOR" -eq "1" ]] && \
- [[ "$DVDNAV_MICRO" -lt "7" ]]; then
- AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION])
- HAVE_DVDNAV="no"
- fi
- fi
- dnl now check for dvdread/nav_print.h - see #133002
- AC_CHECK_HEADER(dvdread/nav_print.h, , [
- AC_MSG_WARN([header dvdread/nav_print.h from dvdread missing])
- HAVE_DVDNAV="no"
- ])
- AS_SCRUB_INCLUDE(DVDNAV_CFLAGS)
-
- dnl disabled until plugin is fully functional
- HAVE_DVDNAV=no
-], disabled, , [
- AC_MSG_NOTICE([dvdnavsrc not stable yet, not building])
-])
-
dnl *** lame ***
translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true)
AG_GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [
- AG_GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, -lm, lame/lame.h,
+ AG_GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, $LIBM, lame/lame.h,
[
HAVE_LAME="yes"
- LAME_LIBS="-lmp3lame -lm"
+ LAME_LIBS="-lmp3lame $LIBM"
dnl is lame presets available
LAME_CFLAGS=""
AC_TRY_COMPILE([#include <lame/lame.h>], [ int preset = MEDIUM ],
[LAME_CFLAGS="-DGSTLAME_PRESET"],
[LAME_CFLAGS=""]
)
+ AC_TRY_COMPILE([#include <lame/lame.h>], [
+ void *ptr = &lame_set_VBR_quality
+ ],
+ [LAME_CFLAGS="$LAME_CFLAGS -DHAVE_LAME_SET_VBR_QUALITY"],
+ [LAME_CFLAGS="$LAME_CFLAGS"]
+ )
AC_SUBST(LAME_CFLAGS)
AC_SUBST(LAME_LIBS)
])
])
-dnl *** id3tag from the MAD project ***
-translit(dnm, m, l) AM_CONDITIONAL(USE_ID3TAG, true)
-AG_GST_CHECK_FEATURE(ID3TAG, [id3tag reading and writing from the MAD project],
- id3tag, [
- dnl check with pkg-config first
- AG_GST_PKG_CHECK_MODULES(ID3TAG, id3tag >= 0.15)
- if test "x$HAVE_ID3TAG" = "xno"; then
- dnl fall back to oldskool detection
- AC_CHECK_HEADER(id3tag.h, [
- save_LIBS=$LIBS
- LIBS="-lz"
- AC_CHECK_LIB(id3tag, id3_tag_options,
- HAVE_ID3TAG="yes" ID3TAG_LIBS="-lid3tag -lz")
- LIBS=$save_LIBS
- AC_SUBST(ID3TAG_LIBS)
- ])
- fi
-])
-
dnl *** mad ***
translit(dnm, m, l) AM_CONDITIONAL(USE_MAD, true)
AG_GST_CHECK_FEATURE(MAD, [mad mp3 decoder], mad, [
- if test "x$HAVE_ID3TAG" = "xyes"; then
- dnl check with pkg-config first
- AG_GST_PKG_CHECK_MODULES(MAD, mad >= 0.15 id3tag >= 0.15)
- if test "x$HAVE_MAD" = "xno"; then
- dnl fall back to oldskool detection
- AC_CHECK_HEADER(mad.h, [
- AC_CHECK_LIB(mad, mad_decoder_finish,
- HAVE_MAD="yes" MAD_LIBS="-lmad $ID3TAG_LIBS")
- ])
- fi
- else
- HAVE_MAD="no"
- AC_MSG_WARN([libid3tag not available, cannot build MAD MP3 decoder plugin])
+
+ dnl check with pkg-config first
+ AG_GST_PKG_CHECK_MODULES(MAD, mad >= 0.15)
+ MAD_LIBS="$MAD_LIBS"
+ if test "x$HAVE_MAD" = "xno"; then
+ dnl fall back to oldskool detection
+ AC_CHECK_HEADER(mad.h, [
+ AC_CHECK_LIB(mad, mad_decoder_finish,
+ HAVE_MAD="yes" MAD_LIBS="-lmad")
+ ])
fi
])
AC_SUBST(MAD_LIBS)
GST_PATH_SIDPLAY()
])
+dnl *** twolame ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_TWOLAME, true)
+AG_GST_CHECK_FEATURE(TWOLAME, [twolame], twolame, [
+ PKG_CHECK_MODULES(TWOLAME, twolame >= 0.3.10, [
+ HAVE_TWOLAME="yes"], [
+ HAVE_TWOLAME="no"
+ ])
+ AC_SUBST(TWOLAME_CFLAGS)
+ AC_SUBST(TWOLAME_LIBS)
+])
+
+dnl *** x264 (MPEG-4 part 10/h.264/AVC encoder) ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_X264, true)
+AG_GST_CHECK_FEATURE(X264, [x264 plug-in], x264, [
+ AG_GST_PKG_CHECK_MODULES(X264, x264 >= 0.55.0)
+])
+
else
dnl not building plugins with external dependencies,
AM_CONDITIONAL(USE_A52DEC, false)
AM_CONDITIONAL(USE_AMRNB, false)
+AM_CONDITIONAL(USE_AMRWB, false)
AM_CONDITIONAL(USE_CDIO, false)
AM_CONDITIONAL(USE_DVDREAD, false)
-AM_CONDITIONAL(USE_DVDNAV, false)
AM_CONDITIONAL(USE_LAME, false)
-AM_CONDITIONAL(USE_ID3TAG, false)
AM_CONDITIONAL(USE_MAD, false)
AM_CONDITIONAL(USE_MPEG2DEC, false)
AM_CONDITIONAL(USE_SIDPLAY, false)
+AM_CONDITIONAL(USE_TWOLAME, false)
+AM_CONDITIONAL(USE_X264, false)
fi dnl of EXT plugins
dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
dnl at make time with e.g. make ERROR_CFLAGS=""
-GST_OPTION_CFLAGS="\$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
-GST_OPTION_CXXFLAGS="\$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
+GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
+GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
AC_SUBST(GST_OPTION_CFLAGS)
AC_SUBST(GST_OPTION_CXXFLAGS)
dnl prefer internal headers to already installed ones
dnl also add builddir include for enumtypes and marshal
dnl add GST_OPTION_CFLAGS, but overridable
-GST_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs $GST_CFLAGS \$(GST_OPTION_CFLAGS)"
-GST_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs $GST_CXXFLAGS \$(GST_OPTION_CXXFLAGS)"
+GST_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs $GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
+GST_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs $GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
AC_SUBST(GST_CFLAGS)
AC_SUBST(GST_CXXFLAGS)
AC_SUBST(GST_LIBS)
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"
+GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_desc.*' $GST_ALL_LDFLAGS"
AC_SUBST(GST_PLUGIN_LDFLAGS)
dnl *** output files ***
AC_CONFIG_FILES(
Makefile
+common/Makefile
+common/m4/Makefile
gst-libs/Makefile
gst-libs/gst/Makefile
gst/Makefile
ext/Makefile
ext/a52dec/Makefile
ext/amrnb/Makefile
+ext/amrwbdec/Makefile
ext/cdio/Makefile
-ext/dvdnav/Makefile
ext/dvdread/Makefile
ext/lame/Makefile
ext/mad/Makefile
ext/mpeg2dec/Makefile
ext/sidplay/Makefile
+ext/twolame/Makefile
+ext/x264/Makefile
docs/Makefile
docs/plugins/Makefile
docs/version.entities
tests/Makefile
tests/check/Makefile
-common/Makefile
-common/m4/Makefile
m4/Makefile
po/Makefile.in
-win32/common/config.h
+pkgconfig/Makefile
+pkgconfig/gstreamer-plugins-ugly-uninstalled.pc
gst-plugins-ugly.spec
)
+
+dnl Create the config.h file for Visual Studio builds
+dnl Beware of spaces and /'s in some of the shell variable contents.
+sed \
+ -e 's/.*config.h.in.*autoheader.*/\/* Autogenerated config.h created for win32 Visual Studio builds *\/\n\n\/* PREFIX -- specifically added for Windows for easier moving *\/\n#define PREFIX "C:\\\\gstreamer"\n\n/' \
+ -e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \
+ -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
+ -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
+ -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
+ -e 's/.* GST_MAJORMINOR$/#define GST_MAJORMINOR "'$GST_MAJORMINOR'"/' \
+ -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
+ -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
+ -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
+ -e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \
+ -e 's/.* HAVE_FGETPOS$/#define HAVE_FGETPOS 1/' \
+ -e 's/.* HAVE_FSETPOS$/#define HAVE_FSETPOS 1/' \
+ -e 's/.* HAVE_LIBXML2$/#define HAVE_LIBXML2 1/' \
+ -e 's/.* HAVE_PROCESS_H$/#define HAVE_PROCESS_H 1/' \
+ -e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
+ -e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
+ -e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \
+ -e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \
+ -e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \
+ -e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \
+ -e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \
+ -e 's/.* LIBDIR$/#ifdef _DEBUG\n# define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n# define LIBDIR PREFIX "\\\\lib"\n#endif/' \
+ -e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \
+ -e "s/.* PACKAGE$/#define PACKAGE \"$PACKAGE\"/" \
+ -e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \
+ -e "s/.* PACKAGE_NAME$/#define PACKAGE_NAME \"$PACKAGE_NAME\"/" \
+ -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
+ -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
+ -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
+ -e 's/.* PLUGINDIR$/#ifdef _DEBUG\n# define PLUGINDIR PREFIX "\\\\debug\\\\lib\\\\gstreamer-0.10"\n#else\n# define PLUGINDIR PREFIX "\\\\lib\\\\gstreamer-0.10"\n#endif/' \
+ -e 's/.* USE_BINARY_REGISTRY$/#define USE_BINARY_REGISTRY/' \
+ -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
+ -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directsoundsink\"/" \
+ -e "s/.* DEFAULT_AUDIOSRC$/#define DEFAULT_AUDIOSRC \"audiotestsrc\"/" \
+ -e "s/.* DEFAULT_VIDEOSRC$/#define DEFAULT_VIDEOSRC \"videotestsrc\"/" \
+ -e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \
+ config.h.in >win32/common/config.h-new
+
AC_OUTPUT
AG_GST_OUTPUT_PLUGINS
+
+ORC_OUTPUT