chiark / gitweb /
doxygen: add some missing docstrings.
[disorder] / configure.ac
index f9d9b04bde9be61dd3d77255fc3d07441e1a0873..ee96f219e1d4ed9da707564c349dd433b6e273b4 100644 (file)
@@ -1,7 +1,7 @@
 # Process this file with autoconf to produce a configure script.
 #
 # This file is part of DisOrder.
-# Copyright (C) 2004-2009 Richard Kettlewell
+# Copyright (C) 2004-2010 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], [4.3+], [richard+disorder@sfere.greenend.org.uk])
+AC_INIT([disorder], [5.0.DEV], [richard+disorder@sfere.greenend.org.uk])
 AC_CONFIG_AUX_DIR([config.aux])
-AM_INIT_AUTOMAKE(disorder, [4.3+])
+AM_INIT_AUTOMAKE(disorder, [5.0.DEV])
 AC_CONFIG_SRCDIR([server/disorderd.c])
 AM_CONFIG_HEADER([config.h])
+AC_CONFIG_MACRO_DIR([m4])
 
 # Find host type
 AC_CANONICAL_HOST
@@ -93,10 +94,6 @@ AC_ARG_WITH([gtk-osx],
            [AS_HELP_STRING([--with-gtk-osx],
                            [use native GTK+ (OS X only)])],
            [want_gtkosx=$withval])
-AC_ARG_WITH([bits],
-            [AS_HELP_STRING([--with-bits=64],
-                            [request a 64-bit build (OS X only)])],
-            [BITS=$withval])
 
 AC_MSG_CHECKING([for a known target platform])
 case "$host" in
@@ -111,15 +108,10 @@ case "$host" in
  ;;
 *linux* | *Linux* )
   AC_MSG_RESULT([Linux])
+  AC_DEFINE_UNQUOTED([PATH_PROC_MOUNTS],["/proc/mounts"],[path to kernel mount list])
   ;;
 *-apple-darwin* )
   AC_MSG_RESULT([Mac OS X])
-  AC_MSG_CHECKING([bitness])
-  if test "x$BITS" = "x"; then
-    BITS=32
-  fi
-  AC_MSG_RESULT([$BITS])
-  CC="$CC -m$BITS"
   # AudioHardwareGetProperty is deprecated in 10.6, but it's still _there_,
   # so we'll just turn off the warning.
   CC="$CC -Wno-deprecated-declarations"
@@ -166,7 +158,7 @@ case "$host" in
   # 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 db46; do
+    for db in db43 db44 db45 db47; do
       if test -e /usr/local/lib/$db; then
         rjk_cv_libdb=$db
         break
@@ -296,7 +288,7 @@ if test $want_cgi = yes; then
         fi
       done
     ])
-    if test "$rjk_cv_cgiexecdir" = "not found"; then
+    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"
@@ -336,6 +328,11 @@ if test -z "$pkghttpdir"; then
 fi
 AC_SUBST([pkghttpdir])
 
+if test -z "$dochtmldir"; then
+  dochtmldir='$(docdir)/html'
+fi
+AC_SUBST([dochtmldir])
+
 subdirs="scripts lib"
 if test $want_tests = yes; then
   subdirs="${subdirs} libtests"
@@ -343,7 +340,7 @@ fi
 subdirs="${subdirs} clients doc examples debian"
 
 if test $want_server = yes; then
-  subdirs="${subdirs} server plugins driver sounds"
+  subdirs="${subdirs} server plugins sounds"
 fi
 if test $want_cgi = yes; then
   subdirs="${subdirs} cgi templates images"
@@ -394,9 +391,11 @@ AC_PATH_PROG([SENDMAIL],[sendmail],[none],[$PATH:/usr/sbin:/usr/lib])
 # Macs might have libraries under fink's root
 AC_PATH_PROG([FINK],[fink],[none],[$PATH:/sw/bin])
 if test "x$FINK" != xnone; then
+  # Find Fink prefix
   AC_CACHE_CHECK([fink install directory],[rjk_cv_finkprefix],[
     rjk_cv_finkprefix="`echo "$FINK" | sed 's,/bin/fink$,,'`"
   ])
+  # Add include and link paths
   finkdir="${rjk_cv_finkprefix}"
   finkbindir="${rjk_cv_finkprefix}/bin"
   CPPFLAGS="${CPPFLAGS} -isystem ${rjk_cv_finkprefix}/include/gc -isystem ${rjk_cv_finkprefix}/include"
@@ -404,6 +403,27 @@ if test "x$FINK" != xnone; then
     CPPFLAGS="${CPPFLAGS} -isystem ${rjk_cv_finkprefix}/include/db4"
   fi
   LDFLAGS="${LDFLAGS} -L${rjk_cv_finkprefix}/lib"
+  # Distinguish 32- and 64-bit fink
+  AC_CACHE_CHECK([whether Fink is 32-bit or 64-bit],[rjk_cv_finkbits],[
+    odata=`otool -v -h $finkbindir/dpkg`
+    case "$odata" in
+    *X86_64* )
+      rjk_cv_finkbits=64
+      ;;
+    *I386* )
+      rjk_cv_finkbits=32
+      ;;
+    * )
+      rjk_cv_finkbits=unknown
+      ;;
+    esac
+  ])
+  # Match Fink so we can use its libraries
+  case $rjk_cv_finkbits in
+  32 | 64 )
+    CC="$CC -m$rjk_cv_finkbits"
+    ;;
+  esac
 else
   finkbindir=""
 fi
@@ -425,6 +445,8 @@ if test $want_alsa = yes; then
   AC_CHECK_LIB([asound], [snd_pcm_open],
                [AC_SUBST(LIBASOUND,[-lasound])])
 fi
+AC_CHECK_LIB([samplerate],[src_new],
+             [AC_SUBST([LIBSAMPLERATE],[-lsamplerate])])
 if test $want_server = yes; then
   RJK_CHECK_LIB(db, db_create, [#include <db.h>],
               [AC_SUBST(LIBDB,[-ldb])],
@@ -502,7 +524,6 @@ if test $want_server = yes; then
   AC_CHECK_HEADERS([db.h],[:],[
     missing_headers="$missing_headers $ac_header"
   ])
-  AC_CHECK_HEADERS([FLAC/file_decoder.h])
 fi
 AC_CHECK_HEADERS([dlfcn.h gcrypt.h \
                 getopt.h iconv.h langinfo.h \
@@ -510,6 +531,7 @@ AC_CHECK_HEADERS([dlfcn.h gcrypt.h \
                 syslog.h unistd.h],[:],[
   missing_headers="$missing_headers $ac_header"
 ])
+AC_CHECK_HEADERS([samplerate.h])
 
 if test ! -z "$missing_headers"; then
   AC_MSG_ERROR([missing headers:$missing_headers])
@@ -526,6 +548,18 @@ AC_C_BIGENDIAN
 AC_CHECK_TYPES([struct sockaddr_in6],,,[AC_INCLUDES_DEFAULT
 #include <netinet/in.h>])
 
+# Figure out how we'll check for devices being mounted and unmounted
+AC_CACHE_CHECK([for list of mounted filesystems],[rjk_cv_mtab],[
+  if test -e /etc/mtab; then
+    rjk_cv_mtab=/etc/mtab
+  else
+    rjk_cv_mtab=none
+  fi
+])
+if test $rjk_cv_mtab != none; then
+  AC_DEFINE_UNQUOTED([PATH_MTAB],["$rjk_cv_mtab"],[path to file containing mount list])
+fi
+
 # enable -Werror when we check for certain characteristics:
 
 old_CFLAGS="${CFLAGS}"
@@ -618,12 +652,12 @@ if test ! -z "$missing_functions"; then
 fi
 
 # Functions we can take or leave
-AC_CHECK_FUNCS([fls])
+AC_CHECK_FUNCS([fls getfsstat])
 
 if test $want_server = yes; then
   # <db.h> had better be version 3 or later
   AC_CACHE_CHECK([db.h version],[rjk_cv_db_version],[
-    AC_PREPROC_IFELSE([
+    AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
                       #include <db.h>
                       #ifndef DB_VERSION_MAJOR
                       # error cannot determine db version
@@ -634,16 +668,16 @@ if test $want_server = yes; then
                       #if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR <= 2
                       # error inadequate db version
                       #endif
-                     ],
+                     ],[])],
                      [rjk_cv_db_version=ok],
                      [rjk_cv_db_version=inadequate])
     if test $rjk_cv_db_version = ok; then
-      AC_PREPROC_IFELSE([
+      AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
                          #include <db.h>
                          #if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR == 6
                          # error http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=510270
                          #endif
-                        ],
+                        ],[])],
                         [rjk_cv_db_version=ok],
                         [rjk_cv_db_version=toxic])
     fi
@@ -664,6 +698,7 @@ AM_CONDITIONAL([SERVER], [test x$want_server = xyes])
 if test $want_gtk = yes; then
   AC_DEFINE([WITH_GTK], [1], [define if using GTK+])
 fi
+AM_CONDITIONAL([GTK], [test x$want_gtk = xyes])
 
 if test "x$GCC" = xyes; then
   # We need LLONG_MAX and annoyingly GCC doesn't always give it to us
@@ -694,13 +729,13 @@ if test "x$GCC" = xyes; then
     if test $GCC = yes; then
       CC="$CC -Wall -Werror"
     fi
-    AC_COMPILE_IFELSE([
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[
       static int x(char *f) {
        return *f;
       }
       int z(const char *g) {
        return x((char *)g);
-      }],
+      }])],
       [rjk_cv_pr29478=no],
       [rjk_cv_pr29478=yes]
     )
@@ -716,11 +751,11 @@ if test "x$GCC" = xyes; then
     if test $GCC = yes; then
       CC="$CC -Wreturn-type -Werror"
     fi
-    AC_COMPILE_IFELSE([
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[
       static void *threadfn(void) {
         for(;;)
           ;
-      }],
+      }],[])],
       [rjk_cv_gcc44_stupidity=no],
       [rjk_cv_gcc44_stupidity=yes])
     CC="$old_CC"
@@ -730,7 +765,7 @@ if test "x$GCC" = xyes; then
   fi
 
   # a reasonable default set of warnings
-  CC="${CC} -Wall -W -Wpointer-arith -Wbad-function-cast \
+  CC="${CC} -Wall -W -Wpointer-arith \
        -Wwrite-strings -Wmissing-prototypes \
        -Wmissing-declarations -Wnested-externs"
 
@@ -807,10 +842,10 @@ AC_CONFIG_FILES([Makefile
                 cgi/Makefile
                 clients/Makefile
                 disobedience/Makefile
+                disobedience/manual/Makefile
                 doc/Makefile
                 templates/Makefile
                 plugins/Makefile
-                driver/Makefile
                 debian/Makefile
                 sounds/Makefile
                 python/Makefile
@@ -825,6 +860,9 @@ fi
 if test $want_python = no; then
   AC_MSG_WARN([cannot run the test suit without Python])
 fi
+if test $want_server = yes && test "$ac_cv_lib_samplerate_src_new" != yes; then
+  AC_MSG_WARN([libsamplerate will be required in a future version])
+fi
 
 # Local Variables:
 # indent-tabs-mode:nil