gstreamer/configure.in

496 lines
13 KiB
Text
Raw Normal View History

AC_INIT(gst/gstobject.h)
AC_CANONICAL_SYSTEM
AM_CONFIG_HEADER(config.h)
STREAMER_MAJOR_VERSION=0
STREAMER_MINOR_VERSION=9
STREAMER_MICRO_VERSION=2
STREAMER_VERSION=$STREAMER_MAJOR_VERSION.$STREAMER_MINOR_VERSION.$STREAMER_MICRO_VERSION
dnl libtool
STREAMER_CURRENT=0
STREAMER_REVISION=0
STREAMER_AGE=0
AM_INIT_AUTOMAKE(gstreamer, $STREAMER_VERSION)
dnl Add parameters for aclocal
dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
AC_SUBST(STREAMER_MAJOR_VERSION)
AC_SUBST(STREAMER_MINOR_VERSION)
AC_SUBST(STREAMER_MICRO_VERSION)
AC_SUBST(STREAMER_VERSION)
AC_SUBST(STREAMER_CURRENT)
AC_SUBST(STREAMER_REVISION)
AC_SUBST(STREAMER_AGE)
AM_MAINTAINER_MODE
AC_ISC_POSIX
AC_PROG_CC
AC_STDC_HEADERS
AC_ARG_PROGRAM
AM_DISABLE_STATIC
AC_LIBTOOL_DLOPEN
AM_PROG_LIBTOOL
dnl ##############################
dnl # Do automated configuration #
dnl ##############################
dnl Set up conditionals for (target) architecture:
dnl ==============================================
dnl Determine CPU
case "x${target_cpu}" in
xi?86) HAVE_CPU_I386=yes ;
AC_DEFINE(HAVE_CPU_I386) ;;
xpowerpc) HAVE_CPU_PPC=yes ;
AC_DEFINE(HAVE_CPU_PPC) ;;
esac
dnl Determine endianness
AC_C_BIGENDIAN
dnl Check for tools:
dnl ================
dnl Check for nasm
AC_PATH_PROG(NASM_PATH, nasm, no)
AC_SUBST(NASM_PATH)
if test x$NASM_PATH = xno; then
AC_MSG_WARN(Couldn't find nasm)
HAVE_NASM="no"
else
AC_DEFINE(HAVE_NASM)
HAVE_NASM="yes"
fi
dnl Check for essential libraries first:
dnl ====================================
dnl Check for glib
AM_PATH_GLIB(1.2.0,,
AC_MSG_ERROR(Cannot find glib: Is glib-config in path?),
glib gmodule gthread)
dnl Put the glib flags into $LIBS and $CFLAGS since we always use them
LIBS="$LIBS $GLIB_LIBS"
CFLAGS="$FLAGS $GLIB_CFLAGS"
dnl Check for libxml
AC_PATH_PROG(XML_CONFIG, xml-config, no)
if test x$XML_CONFIG = xno; then
AC_MSG_ERROR(Couldn't find xml-config)
fi
XML_LIBS=`xml-config --libs`
XML_CFLAGS=`xml-config --cflags`
AC_SUBST(XML_LIBS)
AC_SUBST(XML_CFLAGS)
dnl Next, check for the optional libraries:
dnl =======================================
dnl Check for libgdk-pixbuf
AC_PATH_PROG(GDK_PIXBUF_CONFIG, gdk-pixbuf-config, no)
if test x$GDK_PIXBUF_CONFIG = xno; then
AC_MSG_WARN(Couldn't find gdk-pixbuf-config)
GDK_PIXBUF_LIBS=
GDK_PIXBUF_CFLAGS=
HAVE_GDK_PIXBUF=no
else
GDK_PIXBUF_LIBS=`gdk-pixbuf-config --libs`
GDK_PIXBUF_CFLAGS=`gdk-pixbuf-config --cflags`
HAVE_GDK_PIXBUF=yes
fi
AC_SUBST(GDK_PIXBUF_LIBS)
AC_SUBST(GDK_PIXBUF_CFLAGS)
dnl Check for gtk
AM_PATH_GTK(1.2.0)
dnl Check for libghttp
dnl FIXME: need to check for header
AC_CHECK_LIB(ghttp, ghttp_request_new,
[GHTTP_LIBS="-lghttp"
GST_HTTPSRC_GET_TYPE="gst_httpsrc_get_type"
HAVE_LIBGHTTP=yes
],
[AC_MSG_WARN(Cannot find libghttp: can't build gsthttpsrc)
GHTTP_LIBS=
GST_HTTPSRC_GET_TYPE=
HAVE_LIBGHTTP=no
],
$LIBS)
AC_SUBST(GHTTP_LIBS)
AC_SUBST(GST_HTTPSRC_GET_TYPE)
dnl Check for libglade
HAVE_LIBGLADE_GNOME="no"
AC_PATH_PROG(LIBGLADE_CONFIG_PATH, libglade-config, no)
if test x$LIBGLADE_CONFIG_PATH = xno; then
AC_MSG_WARN(Couldn't find libglade-config - Can't build gstplay)
else
libglade_save_CFLAGS=${CFLAGS}
CFLAGS="$CFLAGS `$LIBGLADE_CONFIG_PATH --libs gnome` `$LIBGLADE_CONFIG_PATH --cflags gnome`"
AC_TRY_LINK([#include <glade/glade.h>],[glade_gnome_init();],
HAVE_LIBGLADE_GNOME="yes",
AC_MSG_WARN(
[Couldn't find gnome libraries for libglade - Can't build gstplay])
)
CFLAGS=${libglade_save_CFLAGS}
fi
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); 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
dnl Check for MMX capable compiler
AC_MSG_CHECKING(Checking MMX compilation)
AC_TRY_RUN([
#include "include/mmx.h"
main()
{ movq_r2r(mm0, mm1); return 0; }
],
[
HAVE_LIBMMX="yes"
AC_MSG_RESULT(yes)
],
HAVE_LIBMMX="no"
AC_MSG_RESULT(no)
,
HAVE_LIBMMX="no"
AC_MSG_RESULT(no)
)
dnl Check for X11 extensions
AC_PATH_XTRA
if test "-DX_DISPLAY_MISSING" = "$X_CFLAGS"; then
AC_MSG_ERROR(can not find X11)
fi
AC_SUBST(X_CFLAGS)
AC_SUBST(X_PRE_LIBS)
AC_SUBST(X_EXTRA_LIBS)
AC_SUBST(X_LIBS)
xvsave_LIBS=${LIBS}
AC_CHECK_LIB(Xv, XvQueryExtension,
HAVE_LIBXV=yes
AC_DEFINE(HAVE_LIBXV),
HAVE_LIBXV=no, $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS)
LIBS=${xvsave_LIBS}
dnl Check for xaudio
AC_CHECK_HEADER(xaudio/decoder.h,[
AC_DEFINE(HAVE_XAUDIO)
HAVE_XAUDIO="yes", []
])
dnl Set location of plugin directory
if test "x${prefix}" = "xNONE"; then
PLUGINS_DIR=${ac_default_prefix}/lib/gst
else
PLUGINS_DIR=${prefix}/lib/gst
fi
AC_DEFINE_UNQUOTED(PLUGINS_DIR,"$PLUGINS_DIR")
AC_SUBST(PLUGINS_DIR)
dnl Set location of uninstalled plugin directory
PLUGINS_SRCDIR=`pwd`/$srcdir
AC_DEFINE_UNQUOTED(PLUGINS_SRCDIR,"$PLUGINS_SRCDIR")
AC_SUBST(PLUGINS_SRCDIR)
dnl check if css-auth.c exists (FIXME)
AC_MSG_CHECKING(DVD CSS code)
if test -f plugins/dvdsrc/css-auth.c
then
AC_MSG_RESULT(yes)
HAVE_CSSAUTH="yes"
AC_DEFINE(HAVE_CSSAUTH)
else
AC_MSG_RESULT(no)
HAVE_CSSAUTH="no"
fi
dnl check for libvorbis
AC_MSG_CHECKING(Vorbis library)
AC_CHECK_LIB(vorbis, ogg_sync_init,
HAVE_VORBIS=yes
AC_DEFINE(HAVE_VORBIS),
HAVE_VORBIS=no, )
dnl check for gtkdoc
AC_CHECK_PROG(HAVE_GTK_DOC, gtkdoc-mkdb, true, false)
dnl check for db2html
AC_CHECK_PROG(HAVE_DB2HTML, db2html, true, false)
AC_CHECK_PROG(HAVE_DB2PS, db2ps, true, false)
AC_CHECK_PROG(HAVE_DB2PDF, db2pdf, true, false)
dnl ######################################################################
dnl # Check command line parameters, and set shell variables accordingly #
dnl ######################################################################
AC_ARG_ENABLE(gdk-pixbuf,
[ --enable-gdk-pixbuf use gdk pixbuf, if available],
[case "${enableval}" in
yes) USE_GDK_PIXBUF=$HAVE_GDK_PIXBUF ;;
no) USE_GDK_PIXBUF=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-gdk-pixbuf) ;;
esac],
[USE_GDK_PIXBUF=$HAVE_GDK_PIXBUF]) dnl Default value
AC_ARG_ENABLE(libghttp,
[ --enable-libghttp use the ghttp library, if available],
[case "${enableval}" in
yes) USE_LIBGHTTP=$HAVE_LIBGHTTP ;;
no) USE_LIBGHTTP=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-libghttp) ;;
esac],
[USE_LIBGHTTP=$HAVE_LIBGHTTP]) dnl Default value
AC_ARG_ENABLE(libmmx,
[ --enable-libmmx use libmmx, if available],
[case "${enableval}" in
yes) USE_LIBMMX=$HAVE_LIBMMX ;;
no) USE_LIBMMX=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
esac],
[USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
AC_ARG_ENABLE(atomic,
[ --enable-atomic use atomic reference counting header],
[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(plugin-srcdir,
[ --enable-plugin-srcdir allow tests/demos to use non-installed plugins ],
[case "${enableval}" in
yes) PLUGINS_USE_SRCDIR=yes ;;
no) PLUGINS_USE_SRCDIR=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-srcdir) ;;
esac],
[PLUGINS_USE_SRCDIR=yes]) dnl Default value
AC_ARG_ENABLE(debug,
[ --enable-debug spews lots of useless info at runtime],
[case "${enableval}" in
yes) USE_DEBUG=yes ;;
no) USE_DEBUG=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
esac],
[USE_DEBUG=no]) dnl Default value
AC_ARG_ENABLE(profiling,
[ --enable-profiling adds -pg to compiler commandline, for profiling],
[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
dnl ################################################
dnl # Set defines according to variables set above #
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
if test "x$USE_GDK_PIXBUF" = xyes; then
AC_DEFINE(HAVE_GDK_PIXBUF)
fi
if test "x$USE_LIBGHTTP" = xyes; then
AC_DEFINE(HAVE_LIBGHTTP)
fi
if test "x$USE_LIBMMX" = xyes; then
AC_DEFINE(HAVE_LIBMMX)
fi
if test "x$USE_ATOMIC_H" = xyes; then
AC_DEFINE(HAVE_ATOMIC_H)
fi
if test "x$PLUGINS_USE_SRCDIR" = xyes; then
AC_DEFINE(PLUGINS_USE_SRCDIR)
fi
if test "x$USE_DEBUG" = xyes; then
Changes made to the DEBUG system. New header file gstdebug.h holds the stuff to keep it out of gst.h's hair. DEBUG ... Original commit message from CVS: Changes made to the DEBUG system. New header file gstdebug.h holds the stuff to keep it out of gst.h's hair. DEBUG prints out the process id, cothread id, source filename and line number. Two new macros DEBUG_ENTER and DEBUG_LEAVE are used to show the entry and exit of a given function. This eventually might be used to construct call trace graphs, even taking cothreads into account. This would be quite useful in visualizing the scheduling mechanism. Minor changes to various debug messages. Also sitting in gstdebug.h is a prototypical DEBUG_ENTER that's capable of performing DEBUG_LEAVE automatically. It does this by utilizing a little-known GCC extension that allows one to call a function with the same parameters as the current function. The macro uses this to basically call itself. A boolean is used to ensure that when it calls itself it actually runs the body of the function. In the meantime it prints stuff out before and after the real function, as well as constructing a debugging string. This can be used eventually to provide call-wide data on the DEBUG lines, instead of having to replicate data on each call to DEBUG. More research is needed into how this would most cleanly be fit into some other chunk of code, like GStreamer (I think of this DEBUG trick as a separate project, sorta). Unfortunately, the aforementioned DEBUG trick interacts quite poorly with cothreads. Almost any time it's used in a function that has anything remotely to do with a cothread context (as in, it runs in one), a segfault results from the __builtin_apply call, which is the heart of the whole thing. If someone who really knows assembly could analyze the resulting code to see what's really going on, we might find a way to fix either the macro or the cothreads (I'm thinking that there's something we missed in constructing the cothreads themselves) so this works in all cases. In the meantime, please insert both DEBUG_ENTER and DEBUG_LEAVE in your functions. Be sure to put DEBUG_ENTER after your variable declarations and before any functional code, not to put the function name in any DEBUG strings (it's already there, trust me), and put a DEBUG_LEAVE if you care enough. Changes are going to happen in the way DEBUGs and other printouts occur, so stay tuned.
2000-12-04 09:35:08 +00:00
CFLAGS="$CFLAGS -g"
AC_DEFINE(GST_DEBUG_ENABLED)
fi
if test "x$USE_PROFILING" = xyes; then
CFLAGS="$CFLAGS -pg"
fi
Changes made to the DEBUG system. New header file gstdebug.h holds the stuff to keep it out of gst.h's hair. DEBUG ... Original commit message from CVS: Changes made to the DEBUG system. New header file gstdebug.h holds the stuff to keep it out of gst.h's hair. DEBUG prints out the process id, cothread id, source filename and line number. Two new macros DEBUG_ENTER and DEBUG_LEAVE are used to show the entry and exit of a given function. This eventually might be used to construct call trace graphs, even taking cothreads into account. This would be quite useful in visualizing the scheduling mechanism. Minor changes to various debug messages. Also sitting in gstdebug.h is a prototypical DEBUG_ENTER that's capable of performing DEBUG_LEAVE automatically. It does this by utilizing a little-known GCC extension that allows one to call a function with the same parameters as the current function. The macro uses this to basically call itself. A boolean is used to ensure that when it calls itself it actually runs the body of the function. In the meantime it prints stuff out before and after the real function, as well as constructing a debugging string. This can be used eventually to provide call-wide data on the DEBUG lines, instead of having to replicate data on each call to DEBUG. More research is needed into how this would most cleanly be fit into some other chunk of code, like GStreamer (I think of this DEBUG trick as a separate project, sorta). Unfortunately, the aforementioned DEBUG trick interacts quite poorly with cothreads. Almost any time it's used in a function that has anything remotely to do with a cothread context (as in, it runs in one), a segfault results from the __builtin_apply call, which is the heart of the whole thing. If someone who really knows assembly could analyze the resulting code to see what's really going on, we might find a way to fix either the macro or the cothreads (I'm thinking that there's something we missed in constructing the cothreads themselves) so this works in all cases. In the meantime, please insert both DEBUG_ENTER and DEBUG_LEAVE in your functions. Be sure to put DEBUG_ENTER after your variable declarations and before any functional code, not to put the function name in any DEBUG strings (it's already there, trust me), and put a DEBUG_LEAVE if you care enough. Changes are going to happen in the way DEBUGs and other printouts occur, so stay tuned.
2000-12-04 09:35:08 +00:00
CFLAGS="$CFLAGS -O6"
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_CPU_I386, test "x$HAVE_CPU_I386" = "xyes")
AM_CONDITIONAL(HAVE_CPU_PPC, test "x$HAVE_CPU_PPC" = "xyes")
AM_CONDITIONAL(HAVE_GDK_PIXBUF, test "x$USE_GDK_PIXBUF" = "xyes")
AM_CONDITIONAL(HAVE_LIBGHTTP, test "x$USE_LIBGHTTP" = "xyes")
AM_CONDITIONAL(HAVE_LIBMMX, test "x$USE_LIBMMX" = "xyes")
AM_CONDITIONAL(HAVE_ATOMIC_H, test "x$USE_ATOMIC_H" = "xyes")
AM_CONDITIONAL(HAVE_XAUDIO, test "x$HAVE_XAUDIO" = "xyes")
AM_CONDITIONAL(HAVE_CSSAUTH, test "x$HAVE_CSSAUTH" = "xyes")
AM_CONDITIONAL(HAVE_VORBIS, test "x$HAVE_VORBIS" = "xyes")
AM_CONDITIONAL(HAVE_NASM, test "x$HAVE_NASM" = "xyes")
AM_CONDITIONAL(HAVE_LIBGLADE_GNOME, test "x$HAVE_LIBGLADE_GNOME" = "xyes")
AM_CONDITIONAL(HAVE_LIBXV, test "x$HAVE_LIBXV" = "xyes")
AM_CONDITIONAL(HAVE_GTK_DOC, $HAVE_GTK_DOC)
AM_CONDITIONAL(HAVE_DB2HTML, $HAVE_DB2HTML)
AM_CONDITIONAL(HAVE_DB2PDF, $HAVE_DB2PDF)
AM_CONDITIONAL(HAVE_DB2PS, $HAVE_DB2PS)
dnl FIXME: having to AC_SUBST these is messy. Not sure if CPPFLAGS and LDFLAGS
dnl need it, either.
AC_SUBST(CFLAGS)
AC_SUBST(CPPFLAGS)
AC_SUBST(LDFLAGS)
dnl #############################
dnl # Configure the subpackages #
dnl #############################
AC_CONFIG_SUBDIRS(gist)
AC_CONFIG_SUBDIRS(plugins/mp3decode/xing/libxing)
dnl #########################
dnl # Make the output files #
dnl #########################
AC_OUTPUT([Makefile
gst/Makefile
gst/types/Makefile
gst/meta/Makefile
gst/elements/Makefile
gst/xml/Makefile
libs/Makefile
libs/riff/Makefile
libs/colorspace/Makefile
libs/videoscale/Makefile
libs/getbits/Makefile
libs/putbits/Makefile
libs/winloader/Makefile
libs/idct/Makefile
plugins/Makefile
plugins/au/Makefile
plugins/wav/Makefile
plugins/avi/Makefile
plugins/avi/wincodec/Makefile
plugins/jpeg/Makefile
plugins/mp3decode/Makefile
plugins/mp3decode/types/Makefile
plugins/mp3decode/xa/Makefile
plugins/mp3decode/xing/Makefile
plugins/mp3decode/mpg123/Makefile
plugins/mp3decode/parse/Makefile
plugins/mp3encode/Makefile
plugins/mp3encode/lame/Makefile
plugins/mpeg2/Makefile
plugins/mpeg2/parse/Makefile
plugins/mpeg2/ac3parse/Makefile
plugins/mpeg2/ac3dec/Makefile
plugins/mpeg2/video/Makefile
plugins/mpeg2/mpeg2enc/Makefile
plugins/mpeg2/mpeg2dec/Makefile
plugins/mpeg2/subtitles/Makefile
plugins/mpeg2/videoparse/Makefile
plugins/mpeg2/mpegtypes/Makefile
plugins/mpeg1/Makefile
plugins/mpeg1/mpegtypes/Makefile
plugins/mpeg1/mpeg_play/Makefile
plugins/mpeg1/mpegaudio/Makefile
plugins/mpeg1/parse/Makefile
plugins/mpeg1/system_encode/Makefile
plugins/mpeg1/mpeg1encoder/Makefile
plugins/mpeg1video/Makefile
plugins/mpeg1video/parse/Makefile
plugins/filters/Makefile
plugins/filters/smooth/Makefile
plugins/filters/median/Makefile
plugins/effects/Makefile
plugins/effects/stereo/Makefile
plugins/effects/volume/Makefile
plugins/visualization/Makefile
plugins/visualization/spectrum/Makefile
plugins/visualization/vumeter/Makefile
plugins/visualization/synaesthesia/Makefile
plugins/visualization/smoothwave/Makefile
plugins/videosink/Makefile
plugins/videoscale/Makefile
plugins/audioscale/Makefile
plugins/dvdsrc/Makefile
plugins/vcdsrc/Makefile
plugins/cobin/Makefile
plugins/rtjpeg/Makefile
plugins/vorbis/Makefile
plugins/capture/Makefile
plugins/capture/v4l/Makefile
plugins/cdparanoia/Makefile
gstplay/Makefile
components/bonobo-gstmediaplay/Makefile
test/Makefile
test/xml/Makefile
test/bindings/Makefile
test/cothreads/Makefile
tests/Makefile
editor/Makefile
tools/Makefile
docs/Makefile
docs/gst/Makefile
docs/gst/gstreamer.types
docs/libs/Makefile
docs/plugins/Makefile
docs/plugins/gstreamer-plugins.types
docs/manual/Makefile
docs/manual/images/Makefile
stamp.h
gstreamer-config
gstreamer.spec])
AC_OUTPUT_COMMANDS([chmod +x gstreamer-config])