# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-AC_INIT([disorder], [5.1.1], [richard+disorder@sfere.greenend.org.uk])
+AC_INIT([disorder], [5.1.1], [rjk@greenend.org.uk])
AC_CONFIG_AUX_DIR([config.aux])
AM_INIT_AUTOMAKE([foreign])
AC_CONFIG_SRCDIR([server/disorderd.c])
want_python=yes
want_tests=yes
want_server=yes
+want_gstdecode=whatever
want_cgi=yes
# APIs we want
want_oss=yes
want_coreaudio=yes
want_pulseaudio=yes
+want_gstreamer=yes
# By default we don't want gtk-osx. But if you ask for --with-gtk-osx...
#
[AS_HELP_STRING([--with-gtk-osx],
[use native GTK+ (OS X only)])],
[want_gtkosx=$withval])
+AC_ARG_WITH([gstreamer],
+ [AS_HELP_STRING([--with-gstreamer], [select GStreamer version])],
+ [want_gstreamer=$withval])
AC_MSG_CHECKING([for a known target platform])
case "$host" in
[AS_HELP_STRING([--without-python],
[do not build Python support])],
[want_python=$withval])
+AC_ARG_WITH([gstdecode],
+ [AS_HELP_STRING([--with-gstdecode],
+ [require GStreamer-based decoder])],
+ [want_gstdecode=$withval])
if test $want_server = no; then
want_cgi=no
+ want_gstdecode=no
fi
#
fi
AC_SUBST([dochtmldir])
-subdirs="scripts lib"
+subdirs="scripts common lib"
if test $want_tests = yes; then
subdirs="${subdirs} libtests"
fi
AC_SUBST([finkdir])
AC_SUBST([finkbindir])
+# Checks for packages.
+case $want_gstdecode,$want_gstreamer in
+ yes,no) AC_MSG_ERROR([gstdecode requires GStreamer]) ;;
+ whatever,no) want_gstdecode=no ;;
+ no,*) want_gstreamer=no ;;
+ *,yes) want_gstreamer="1.0 0.10" ;;
+esac
+
+AH_TEMPLATE([HAVE_GSTREAMER_0_10],
+ [Define if building against GStreamer 0.10])
+AH_TEMPLATE([HAVE_GSTREAMER_1_0],
+ [Define if building against GStreamer 1.0])
+
+for i in $want_gstreamer; do
+ case $i in
+ 0.10) v=0.10 V=0_10 ;;
+ 1.0) v=1.0 V=1_0 ;;
+ *) AC_MSG_ERROR([unrecognized GStreamer version]) ;;
+ esac
+ PKG_CHECK_MODULES([GSTREAMER],
+ [gstreamer-$v gstreamer-app-$v gstreamer-audio-$v],
+ [have_gstreamer=$v], [have_gstreamer=no])
+ case $have_gstreamer in no) continue ;; esac
+ AC_DEFINE_UNQUOTED([HAVE_GSTREAMER_$V], [1])
+ break
+done
+
+case $want_gstdecode,$have_gstreamer,$have_gst_plugins_base in
+ whatever,no,* | whatever,*,no)
+ want_gstdecode=no
+ ;;
+ yes,no,* | yes,*,no)
+ case $have_gstreamer in
+ no) missing_libraries="$missing_libraries gstreamer" ;;
+ esac
+ ;;
+ *)
+ want_gstdecode=yes
+ ;;
+esac
+
+mdw_SAVE_CFLAGS=$CFLAGS
+mdw_SAVE_LIBS=$LIBS
+CFLAGS="$CFLAGS $GSTREAMER_CFLAGS"
+LIBS="$LIBS $GSTREAMER_LIBS"
+AC_CHECK_FUNCS([gst_audio_info_from_caps])
+CFLAGS=$mdw_SAVE_CFLAGS
+LIBS=$mdw_SAVE_LIBS
+
# Checks for libraries.
# We save up a list of missing libraries that we can't do without
# and report them all at once.
AC_CHECK_LIB(gc, GC_malloc, [AC_SUBST(LIBGC,[-lgc])],
[missing_libraries="$missing_libraries libgc"])
+mdw_SAVE_LIBS=$LIBS
+LIBS="$LIBS $LIBGC"
+AC_CHECK_FUNCS(GC_get_all_interior_pointers)
+LIBS=$mdw_SAVE_LIBS
AC_CHECK_LIB(gcrypt, gcry_md_open,
[AC_SUBST(LIBGCRYPT,[-lgcrypt])],
[missing_libraries="$missing_libraries libgcrypt"])
AC_DEFINE([WITH_GTK], [1], [define if using GTK+])
fi
AM_CONDITIONAL([GTK], [test x$want_gtk = xyes])
+AM_CONDITIONAL([GSTDECODE], [test x$want_gstdecode = xyes])
# Some GCC invocations warn for converting function pointers to void *.
# This is fair enough, as it's technically forbidden, but we use dlsym()
AC_CONFIG_FILES([Makefile
images/Makefile
scripts/Makefile
+ common/Makefile
lib/Makefile
server/Makefile
cgi/Makefile