oops
[platform/upstream/gst-plugins-good.git] / configure.ac
index 6c455a8..c2a3243 100644 (file)
@@ -7,18 +7,15 @@ dnl this goes before AS_LIBTOOL to appease autoconf
 dnl *NOTE*: dnl this line before release, so release does static too
 AM_DISABLE_STATIC
 
+dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
+AM_MAINTAINER_MODE
+
 dnl when going to/from release please set the nano (fourth number) right !
-dnl We disable static building for development, for time savings
-AM_DISABLE_STATIC
-AS_VERSION(gst-plugins, GST_PLUGINS, 0, 3, 4, 1)
+dnl releases only do Wall, cvs and prerelease does Werror too
+AS_VERSION(gst-plugins, GST_PLUGINS, 0, 4, 0, 1, GST_ERROR="-Wall", GST_ERROR="-Wall -Werror")
 AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
 AS_LIBTOOL(GST_PLUGINS, 0, 0, 0, yes)
 
-dnl we'll move this to a configure option later on which will be turned on
-dnl by autogen
-dnl GST_ERROR="-Wall -Werror"
-GST_ERROR="-Werror"
-
 dnl FIXME take something else ?
 AC_CONFIG_SRCDIR([gst/law/alaw.c])
 AM_CONFIG_HEADER(config.h)
@@ -28,13 +25,15 @@ dnl Add parameters for aclocal
 dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
 ACLOCAL="$ACLOCAL -I m4 -I common/m4 $ACLOCAL_FLAGS"
 
-AM_MAINTAINER_MODE
-
 AC_PROG_CC
 AM_PROG_CC_STDC
 AM_PROG_AS
 AS="${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
 AC_PROG_CXXCPP
 AC_ISC_POSIX
 
@@ -64,9 +63,11 @@ GST_CHECK_FEATURE(EXPERIMENTAL, [enable building of experimental plug-ins],,
 [
   AC_MSG_WARN(building experimental plug-ins)
   USE_TARKIN="yes"
+  USE_RTP="yes"
 ],[
   AC_MSG_NOTICE(not building experimental plug-ins)
   USE_TARKIN="no"
+  USE_RTP="no"
 ])
 
 dnl broken plug-ins; stuff that doesn't seem to build at the moment
@@ -77,13 +78,11 @@ HAVE_BROKEN=yes,disabled,
   USE_SMOOTHWAVE="yes"
   USE_VGA="yes"
   USE_XMMS="yes"
-  USE_ARTS="yes"
 ],[
   USE_SMOOTHWAVE="no"
   USE_VGA="no"
   USE_XMMS="no"
-  USE_ARTS="no"
-  AC_MSG_NOTICE(not building broken plug-ins)
+  AC_MSG_NOTICE([not building broken plug-ins])
 ])
 
 dnl ##############################
@@ -112,18 +111,26 @@ else
   HAVE_NASM="yes"
 fi
 
-dnl check for gconf
-translit(dnm, m, l) AM_CONDITIONAL(USE_GCONF, true)
-GST_CHECK_FEATURE(GCONF, [GConf stuff], , [
+dnl check for gconftool-2
+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_GCONF="no"
+    HAVE_GCONFTOOL="no"
   else
     AM_GCONF_SOURCE_2
-    HAVE_GCONF="yes"
+    HAVE_GCONFTOOL="yes"
   fi
-  AC_SUBST(HAVE_GCONF)
+  AC_SUBST(HAVE_GCONFTOOL)
+])
+
+dnl check for GConf libraries
+translit(dnm, m, l) AM_CONDITIONAL(USE_GCONF, true)
+GST_CHECK_FEATURE(GCONF, [GConf libraries], , [
+  PKG_CHECK_MODULES(GCONF, gconf-2.0, HAVE_GCONF="yes", HAVE_GCONF="no")
+  AC_SUBST(GCONF_CFLAGS)
+  AC_SUBST(GCONF_LIBS)
 ])
 
 dnl check for gstreamer; uninstalled is selected preferentially -- see pkg-config(1)
@@ -197,6 +204,7 @@ AC_SUBST(X_LIBS)
 dnl ===========================================================================
 dnl ============================= gst plug-ins ================================
 dnl ===========================================================================
+
 GST_PLUGIN_LDFLAGS='-module -avoid-version'
 AC_SUBST(GST_PLUGIN_LDFLAGS)
 
@@ -205,11 +213,20 @@ GST_PLUGINS_ALL="\
         ac3parse adder audioscale auparse avi cdxaparse chart\
         cutter deinterlace effectv festival filter flx goom\
         intfloat law level\
-        median mpeg1enc mpeg1sys mpeg1videoparse mpeg2enc mpeg2sub\
-        mpegaudio mpegaudioparse mpegstream mpegtypes modplug\
+        median mixmatrix mpeg1enc mpeg1sys mpeg1videoparse mpeg2enc mpeg2sub\
+        mpegaudio mpegaudioparse mpegstream mpegtypes\
         monoscope passthrough playondemand qtdemux rtjpeg silence sine\
         smooth spectrum speed stereo stereomono\
-        synaesthesia udp videoscale volenv volume vumeter wavparse y4m"
+        synaesthesia udp videocrop videoscale videotestsrc volenv volume\ 
+        vumeter wavparse y4m"
+
+dnl see if we can build C++ plug-ins
+if test "x$HAVE_CXX" = "xyes"; then
+  GST_PLUGINS_ALL="$GST_PLUGINS_ALL \
+                  modplug"
+else
+  AC_MSG_WARN([Not compiling plug-ins requiring C++ compiler])
+fi
 
 AC_SUBST(GST_PLUGINS_ALL)
 
@@ -263,6 +280,12 @@ GST_CHECK_FEATURE(V4L, [Video 4 Linux], v4lsrc v4lmjpegsrc v4lmjpegsink, [
   AC_CHECK_DECL(VID_TYPE_MPEG_ENCODER, HAVE_V4L="yes", HAVE_V4L="no", [#include <linux/videodev.h>])
 ])
 
+dnl *** Video 4 Linux 2***
+translit(dnm, m, l) AM_CONDITIONAL(USE_V4L2, true)
+GST_CHECK_FEATURE(V4L2, [Video 4 Linux 2], v4l2src, [
+  AC_CHECK_HEADER(linux/videodev2.h, HAVE_V4L2="yes", HAVE_V4L2="no")
+])
+
 dnl *** Video CD ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
 GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
@@ -275,6 +298,40 @@ GST_CHECK_FEATURE(VGA, [VGA], vgavideosink, [
   AC_CHECK_HEADER(asm/vga.h, HAVE_VGA="yes", HAVE_VGA="no")
 ])
 
+dnl *** CDROM Audio ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_CDROM, true)
+GST_CHECK_FEATURE(CDROM, [CDROM Audio], cdrom, [
+  AC_CHECK_HEADERS(linux/cdrom.h) dnl linux
+  AC_CHECK_HEADERS(sys/cdio.h) dnl almost everything else
+dnl  AC_CHECK_HEADERS(dmedia/cdaudio.h) dnl irix
+
+  if test "${ac_cv_header_linux_cdrom_h}" = "yes" || test "${ac_cv_header_sys_cdio_h}" = "yes" || test "${ac_cv_header_dmedia_cdaudio_h}" = "yes"; then
+       case "$host" in 
+               *-sun-* | *-*-linux*)
+                       AC_DEFINE(HAVE_CDROM_SOLARIS,, [Define if cdrom access is in Solaris style])
+               ;;
+               *-*-freebsd*)
+                       AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style])
+               ;;
+               *-*-netbsd* | *-*-openbsd*)
+                       AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style])
+                       AC_DEFINE(HAVE_CDROM_BSD_NETBSD,, [Define if cdrom access uses NetBSD variant])
+               ;;
+               *-*darwin*)
+                       AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style])
+                       AC_DEFINE(HAVE_CDROM_BSD_DARWIN,, [Define if cdrom access uses Darwin variant])
+               ;;
+dnl            *-irix-*)
+dnl                    AC_DEFINE(HAVE_CDROM_IRIX,, [Define if cdrom access is in Irix DMedia style])
+dnl            ;;
+    esac
+
+       HAVE_CDROM="yes"
+  else
+       HAVE_CDROM="no"
+  fi
+])
+
 dnl *** XVideo ***
 dnl Look for the PIC library first, Debian requires it.
 dnl Check debian-devel archives for gory details.
@@ -356,32 +413,57 @@ GST_CHECK_FEATURE(AUDIOFILE, [audiofile], afsink afsrc, [
 ])
 
 dnl *** avifile ***
-dnl this check uses the GST_CHECK_CONFIGPROG macro
-dnl this check needs more fixing
-dnl translit(dnm, m, l) AC_SUBST(AVIFILE_LIBS)
 translit(dnm, m, l) AM_CONDITIONAL(USE_AVIFILE, true)
-GST_CHECK_FEATURE(AVIFILE, [avifile], windec winenc, [
-  translit(dnm, m, l) AC_SUBST(AVIFILE_CFLAGS)
-  GST_CHECK_CONFIGPROG(AVIFILE, avifile-config)
-  AVIFILE_LIBS="$AVIFILE_LIBS -lstdc++"
-  AC_SUBST(AVIFILE_LIBS)
+GST_CHECK_FEATURE(AVIFILE, [avifile], winenc windec, [
+  if test "x$no_x" = "xyes"; then
+    AC_MSG_WARN([No X libraries found, avifile test might fail compilation])
+  fi
+  if test "x$HAVE_CXX" != "xyes"; then
+    AC_MSG_WARN([No C++ compiler found, avifile test will fail compilation])
+  fi
+  AC_CHECK_LIB(stdc++, cout,,
+               [AC_MSG_WARN([no libstdc++ found, avifile test will fail])]
+              )
+  AS_AVIFILE(0.7.0)
 ])
 
 dnl *** CDParanoia ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
 GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
-  GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, cdda_open, -lm, cdda_interface.h, CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia")
+  GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
+                      cdda_open, -lm, 
+                      cdda_interface.h, 
+                      CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
+                      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
+  if test "x$HEADER_DIR" = "xyes";
+  then
+    AC_DEFINE_UNQUOTED(CDPARANOIA_HEADERS_IN_DIR, ,
+                       defined if cdda headers are in a cdda/ directory)
+  fi
   AC_SUBST(CDPARANOIA_LIBS)
 ])
 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 *** dv ***
-translit(dnm, m, l) AM_CONDITIONAL(USE_DV, true)
-GST_CHECK_FEATURE(DV, [dv library], dv, [
-  AM_PATH_LIBDV(HAVE_DV=yes, HAVE_DV=no)
-  AC_SUBST(DV_LIBS)
+dnl *** libdv ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDV, true)
+GST_CHECK_FEATURE(LIBDV, [libdv DV/video decoder], dvdec, [
+  dnl use this when gtk deps are removed from its pkg-config .pc
+  dnl PKG_CHECK_MODULES(LIBDV, libdv, HAVE_LIBDV="yes", HAVE_LIBDV="no")
+  AM_PATH_LIBDV(HAVE_LIBDV="yes", HAVE_LIBDV="no")
+  AC_SUBST(LIBDV_CFLAGS)
+  AC_SUBST(LIBDV_LIBS)
 ])
 
 dnl *** dvdread ***
@@ -423,6 +505,7 @@ dnl  HAVE_FESTIVAL=yes
 dnl])
 
 dnl *** FLAC ***
+dnl FLAC 1.0.3 is needed
 translit(dnm, m, l) AM_CONDITIONAL(USE_FLAC, true)
 GST_CHECK_FEATURE(FLAC, [FLAC lossless audio], flacenc flacdec, [
   GST_CHECK_LIBHEADER(FLAC, FLAC, FLAC__stream_decoder_new, -lm, FLAC/all.h, FLAC_LIBS="-lFLAC")
@@ -513,14 +596,6 @@ GST_CHECK_FEATURE(LCS, Lcs, lcs, [
   AC_SUBST(LCS_LIBS)
 ])
 
-dnl *** libdv ***
-translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDV, true)
-GST_CHECK_FEATURE(LIBDV, [libdv DV/video decoder], dvdec, [
-  PKG_CHECK_MODULES(LIBDV, libdv, HAVE_LIBDV="yes", HAVE_LIBDV="no")
-  AC_SUBST(LIBDV_CFLAGS)
-  AC_SUBST(LIBDV_LIBS)
-])
-
 dnl *** libfame ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBFAME, true)
 GST_CHECK_FEATURE(LIBFAME, [libfame MPEG1/4 encoder], libfame, [
@@ -557,8 +632,43 @@ dnl *** mjpegtools ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_MJPEGTOOLS, true)
 GST_CHECK_FEATURE(MJPEGTOOLS, [mjpegtools], jpegmmxenc jpegmmxdec, [
   PKG_CHECK_MODULES(MJPEGTOOLS, mjpegtools, HAVE_MJPEGTOOLS="yes", HAVE_MJPEGTOOLS="no")
-  AC_SUBST(MJPEGTOOLS_LIBS)
-  AC_SUBST(MJPEGTOOLS_CFLAGS)
+
+  if [ test x$HAVE_MJPEGTOOLS = x"yes" ]; then
+    dnl some headers we might want to need
+    AC_CHECK_HEADERS(stdint.h, HAVE_STDINT_H="yes", HAVE_STDINT_H="no")
+    if [ test x$HAVE_STDINT_H = x"no" ]; then
+      AC_CHECK_HEADERS(inttypes.h sys/types.h, HAVE_INTTYPES_H="yes", [
+        AC_WARNING(No valid header files found, mjpegtools plugins disabled)
+        HAVE_INTTYPES_H="no" HAVE_MJPEGTOOLS="no"
+      ])
+    fi
+    AC_CHECK_HEADERS(stdbool.h, HAVE_STDBOOL_H="yes", HAVE_STDBOOL_H="no")
+
+    dnl sizeof PRId64 etc...
+    AC_CHECK_SIZEOF(int)
+    AC_CHECK_SIZEOF(long)
+    AC_CHECK_SIZEOF(long long)
+    case 8 in
+    $ac_cv_sizeof_int)
+      PRID64_STRING_FORMAT="d"
+      ;;
+    $ac_cv_sizeof_long)
+      PRID64_STRING_FORMAT="ld"
+      ;;
+    $ac_cv_sizeof_long_long)
+      PRID64_STRING_FORMAT="lld"
+      ;;
+    *)
+      AC_MSG_WARN(No suitable variant for 64bits integers found, mjpegtools plugins disabled)
+      HAVE_MJPEGTOOLS="no"
+      ;;
+    esac
+
+    AC_DEFINE_UNQUOTED(PRID64_STRING_FORMAT, "$PRID64_STRING_FORMAT",
+      [ A printf type definition for 64 bit integers ])
+    AC_SUBST(MJPEGTOOLS_LIBS)
+    AC_SUBST(MJPEGTOOLS_CFLAGS)
+  fi
 ])
 
 dnl *** mpeg2dec ***
@@ -585,8 +695,8 @@ dnl *** rtp ***
 dnl FIXME : adapt and make it work
 translit(dnm, m, l) AM_CONDITIONAL(USE_RTP, true)
 GST_CHECK_FEATURE(RTP, [RTP library], rtpenc rtpdec,[
-  AC_CHECK_LIB(rtp, rtp_packet_new_take_data, HAVE_RTP=yes, HAVE_RTP=no, $GST_CFLAGS $GST_LIBS)
-  RTP_LIBS="-lrtp"
+  AC_CHECK_LIB(ortp, ortp_init, HAVE_RTP=yes, HAVE_RTP=no, $GST_CFLAGS $GST_LIBS)
+  RTP_LIBS="-lortp"
   AC_SUBST(RTP_LIBS)
 ])
 
@@ -729,6 +839,13 @@ AC_ARG_ENABLE(examples,
 esac], 
 [BUILD_EXAMPLES=yes]) dnl Default value
 
+dnl seeking needs freetype, so check for it here
+AC_CHECK_FT2(2.0.9,HAVE_FT2=yes,HAVE_FT2=no)
+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)
+
 dnl ################################################
 dnl # Set defines according to variables set above #
 dnl ################################################
@@ -742,9 +859,9 @@ if test "x$USE_ATOMIC_H" = xyes; then
   AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
 fi
 
-dnl if test "x$USE_DEBUG" = xyes; then
-dnl   CFLAGS="$CFLAGS -g"
-dnl fi
+if test "x$USE_DEBUG" = xyes; then
+  GST_CFLAGS="$GST_CFLAGS -g"
+fi
 
 if test "x$USE_PROFILING" = xyes; then
 dnl  CFLAGS="$CFLAGS -pg -fprofile-arcs"
@@ -776,8 +893,6 @@ AM_CONDITIONAL(EXPERIMENTAL,        test "$EXPERIMENTAL" = "$xyes")
 AM_CONDITIONAL(BROKEN,              test "$BROKEN" = "$xyes")
 
 AM_CONDITIONAL(HAVE_NASM,           test "x$HAVE_NASM" = "xyes")
-AM_CONDITIONAL(HAVE_LIBGLADE_GNOME, test "x$HAVE_LIBGLADE_GNOME" = "xyes")
-AM_CONDITIONAL(HAVE_GNOME,          test "x$HAVE_GNOME" = "xyes")
 AM_CONDITIONAL(HAVE_GTK,            test "x$HAVE_GTK" = "xyes")
 AM_CONDITIONAL(HAVE_GTK_DOC,        $HAVE_GTK_DOC)
 AM_CONDITIONAL(BUILD_DOCS,          test "x$BUILD_DOCS" = "xyes")
@@ -822,6 +937,7 @@ gst/intfloat/Makefile
 gst/law/Makefile
 gst/level/Makefile
 gst/median/Makefile
+gst/mixmatrix/Makefile
 gst/mpeg1enc/Makefile
 gst/mpeg1sys/Makefile
 gst/mpeg1videoparse/Makefile
@@ -848,16 +964,20 @@ gst/stereomono/Makefile
 gst/synaesthesia/Makefile
 gst/udp/Makefile
 gst/videoscale/Makefile
+gst/videotestsrc/Makefile
+gst/videocrop/Makefile
 gst/volenv/Makefile
 gst/volume/Makefile
 gst/vumeter/Makefile
 gst/wavparse/Makefile
 gst/y4m/Makefile
 sys/Makefile
+sys/cdrom/Makefile
 sys/dxr3/Makefile
 sys/oss/Makefile
 sys/qcam/Makefile
 sys/v4l/Makefile
+sys/v4l2/Makefile
 sys/vcd/Makefile
 sys/vga/Makefile
 sys/xvideo/Makefile
@@ -904,10 +1024,11 @@ ext/xmms/Makefile
 gst-libs/Makefile
 gst-libs/gst/Makefile
 gst-libs/gst/audio/Makefile
+gst-libs/gst/floatcast/Makefile
+gst-libs/gst/gconf/Makefile
 gst-libs/gst/idct/Makefile
 gst-libs/gst/resample/Makefile
 gst-libs/gst/riff/Makefile
-gst-libs/gst/floatcast/Makefile
 examples/dynparams/Makefile
 examples/capsfilter/Makefile
 examples/seeking/Makefile