# Process this file with autoconf to produce a configure script.
#
# This file is part of DisOrder.
-# Copyright (C) 2004-2013 Richard Kettlewell
+# Copyright (C) 2004-2014 Richard Kettlewell
# Portions copyright (C) 2007 Ross Younger
#
# This program is free software: you can redistribute it and/or modify
# 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
# Look for a suitable version of libdb among the versions found in FreeBSD 7.0
AC_CACHE_CHECK([looking for a libdb install],[rjk_cv_libdb],[
rjk_cv_libdb="none"
- for db in db43 db44 db45 db47; do
+ for db in db43 db44 db45 db47 db48; do
if test -e /usr/local/lib/$db; then
rjk_cv_libdb=$db
break
LDFLAGS="${LDFLAGS} -L/usr/local/lib/$rjk_cv_libdb"
CPPFLAGS="${CPPFLAGS} -isystem /usr/local/include/$rjk_cv_libdb"
fi
+ # iconv needs bodging
+ AC_SUBST(LIBICONV,[-liconv])
;;
* )
AC_MSG_RESULT([unknown, winging it])
[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
#
if test $want_cgi = yes; then
if test -z "$httpdir"; then
AC_CACHE_CHECK([for httpd document root],[rjk_cv_httpdir],[
- rjk_cv_httpdir="not found"
+ rjk_cv_httpdir="/usr/local/apache/htdocs"
for dir in /var/www/html \
/var/www/htdocs \
/var/www/localhost/htdocs \
fi
done
])
- if test "$rjk_cv_httpdir" = "not found"; then
- AC_MSG_ERROR([cannot identify httpd documentroot. Set httpdir on configure command line])
- fi
httpdir="$rjk_cv_httpdir"
fi
if test ! -z "$cgidir"; then
fi
if test -z "$cgiexecdir"; then
AC_CACHE_CHECK([for CGI directory],[rjk_cv_cgiexecdir],[
- rjk_cv_cgiexecdir="not found"
+ rjk_cv_cgiexecdir="/usr/lib/cgi-bin"
for dir in /usr/lib/cgi-bin \
/Library/WebServer/CGI-Executables \
/srv/www/cgi-bin \
fi
done
])
- if test "$rjk_cv_cgiexecdir" = "not found"; then
- AC_MSG_ERROR([cannot identify CGI install directory. Set cgiexecdir on configure command line])
- fi
cgiexecdir="$rjk_cv_cgiexecdir"
fi
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 in
+ yes | whatever)
+ PKG_CHECK_MODULES([GSTREAMER], [gstreamer-0.10],
+ [have_gstreamer=yes], [have_gstreamer=no])
+ PKG_CHECK_MODULES([GSTREAMER_PLUGINS_BASE],
+ [gstreamer-plugins-base-0.10],
+ [have_gst_plugins_base=yes], [have_gst_plugins_base=no])
+ ;;
+esac
+case $want_gstdecode,$have_gstreamer,$have_gst_plugins_base in
+ whatever,yes,yes | yes,yes,yes) want_gstdecode=yes ;;
+ whatever,*) want_gstdecode=no ;;
+ yes,*)
+ case $have_gstreamer in
+ no) missing_libraries="$missing_libraries gstreamer-0.10" ;;
+ esac
+ case $have_gst_plugins_base in
+ no) missing_libraries="$missing_libraries gstreamer-plugins-base-0.10" ;;
+ esac
+esac
+
+mdw_SAVE_CFLAGS=$CFLAGS
+mdw_SAVE_LIBS=$LIBS
+CFLAGS="$CFLAGS $GSTREAMER_CFLAGS $GSTREAMER_PLUGINS_BASE_CFLAGS"
+LIBS="$LIBS \
+ $GSTREAMER_LIBS $GSTREAMER_PLUGINS_BASE_LIBS
+ -lgstaudio-0.10 -lgstapp-0.10"
+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"])
+AC_CHECK_FUNCS(GC_get_all_interior_pointers)
AC_CHECK_LIB(gcrypt, gcry_md_open,
[AC_SUBST(LIBGCRYPT,[-lgcrypt])],
[missing_libraries="$missing_libraries libgcrypt"])
old_CFLAGS="${CFLAGS}"
CFLAGS="${CFLAGS} $gcc_werror"
-AC_CHECK_TYPES([long long,uint32_t,uint8_t,intmax_t,uintmax_t])
-
-# Some GCC invocations warn for converting function pointers to void *.
-# This is fair enough, as it's technically forbidden, but we use dlsym()
-# which can pretty much only exist if object and function pointers are
-# interconvertable. So we disable -Werror if need be.
-if test ! -z "$gcc_werror"; then
- AC_CACHE_CHECK([whether function pointers can be converted to void * without a warning],
- [rjk_cv_function_pointer_cast],[
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT
- void somefunction(void);],
- [(void *)somefunction])],
- [rjk_cv_function_pointer_cast=yes],
- [rjk_cv_function_pointer_cast=no])])
- if test $rjk_cv_function_pointer_cast = no; then
- gcc_werror=""
- fi
-fi
-
+AC_CHECK_TYPES([long long,uint32_t,uint16_t,uint8_t,intmax_t,uintmax_t])
CFLAGS="${old_CFLAGS}"
# gcrypt maintainers keep changing everything. Design your interface
if test ! -z "$missing_functions"; then
AC_MSG_ERROR([missing functions:$missing_functions])
fi
+# dlsym will do if dlfunc not available
+AC_CHECK_FUNCS([dlfunc],[:],[
+ AC_DEFINE([dlfunc],[dlsym],[define dlfunc to dlsym if not available])
+])
+if test ! -z "$missing_functions"; then
+ AC_MSG_ERROR([missing functions:$missing_functions])
+fi
# Functions we can take or leave
-AC_CHECK_FUNCS([fls getfsstat])
+AC_CHECK_FUNCS([fls getfsstat closesocket])
if test $want_server = yes; then
# <db.h> had better be version 3 or later
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()
+# which can pretty much only exist if object and function pointers are
+# interconvertable. So we disable -Werror if need be.
+if test ! -z "$gcc_werror" && test "$ac_cv_func_dlfunc" != yes; then
+ CFLAGS="${CFLAGS} $gcc_werror"
+ AC_CACHE_CHECK([whether function pointers can be converted to void * without a warning],
+ [rjk_cv_function_pointer_cast],[
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT
+ void somefunction(void);],
+ [(void *)somefunction])],
+ [rjk_cv_function_pointer_cast=yes],
+ [rjk_cv_function_pointer_cast=no])])
+ if test $rjk_cv_function_pointer_cast = no; then
+ gcc_werror=""
+ fi
+ CFLAGS="${old_CFLAGS}"
+fi
if test "x$GCC" = xyes; then
# We need LLONG_MAX and annoyingly GCC doesn't always give it to us
AC_CONFIG_FILES([Makefile
images/Makefile
scripts/Makefile
+ common/Makefile
lib/Makefile
server/Makefile
cgi/Makefile