X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/ddd86f12cb98d24f640d961c57aa8af165ccd6ab..8d2f469d99914d5ff20d815a2e6e1ab9523ea135:/configure.ac diff --git a/configure.ac b/configure.ac index 6b894b9..1491c67 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ # Process this file with autoconf to produce a configure script. # # This file is part of DisOrder. -# Copyright (C) 2004-2010 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 @@ -18,9 +18,9 @@ # along with this program. If not, see . # -AC_INIT([disorder], [5.0.DEV], [richard+disorder@sfere.greenend.org.uk]) +AC_INIT([disorder], [5.1.1], [richard+disorder@sfere.greenend.org.uk]) AC_CONFIG_AUX_DIR([config.aux]) -AM_INIT_AUTOMAKE(disorder, [5.0.DEV]) +AM_INIT_AUTOMAKE([foreign]) AC_CONFIG_SRCDIR([server/disorderd.c]) AM_CONFIG_HEADER([config.h]) AC_CONFIG_MACRO_DIR([m4]) @@ -39,6 +39,7 @@ want_cgi=yes want_alsa=yes want_oss=yes want_coreaudio=yes +want_pulseaudio=yes # By default we don't want gtk-osx. But if you ask for --with-gtk-osx... # @@ -47,6 +48,7 @@ want_coreaudio=yes # - you will still need Fink (or something) for other libraries # - if you wanted an application bundle you are out of luck # - the menu bar is still in the main window (not at the top of the screen) +# - drag and drop doesn't work # # So it's still rather rough and ready. But it does work... # @@ -78,6 +80,10 @@ AC_ARG_WITH([alsa], [AS_HELP_STRING([--without-alsa], [do not build with ALSA support])], [want_alsa=$withval]) +AC_ARG_WITH([pulseaudio], + [AS_HELP_STRING([--without-pulseaudio], + [do not build with PulseAudio support])], + [want_pulseaudio=$withval]) AC_ARG_WITH([oss], [AS_HELP_STRING([--without-oss], [do not build with OSS support])], @@ -108,6 +114,7 @@ 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]) @@ -157,7 +164,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 db47; do + for db in db43 db44 db45 db47 db48; do if test -e /usr/local/lib/$db; then rjk_cv_libdb=$db break @@ -168,6 +175,8 @@ case "$host" in 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]) @@ -271,7 +280,7 @@ 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 \ @@ -287,9 +296,6 @@ if test $want_cgi = yes; then 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 @@ -298,7 +304,7 @@ if test $want_cgi = yes; 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 \ @@ -314,9 +320,6 @@ if test $want_cgi = yes; then 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 @@ -444,6 +447,13 @@ if test $want_alsa = yes; then AC_CHECK_LIB([asound], [snd_pcm_open], [AC_SUBST(LIBASOUND,[-lasound])]) fi +if test $want_pulseaudio = yes; then + PKG_CHECK_MODULES([PULSEAUDIO],[libpulse], + [AC_DEFINE([HAVE_PULSEAUDIO],[1],[define to 1 for PulseAudio support])], + [missing_libraries="$missing_libraries libpulse"]) + PKG_CHECK_MODULES([PULSEAUDIO_SIMPLE],[libpulse-simple],, + [missing_libraries="$missing_libraries libpulse-simple"]) +fi AC_CHECK_LIB([samplerate],[src_new], [AC_SUBST([LIBSAMPLERATE],[-lsamplerate])]) if test $want_server = yes; then @@ -460,9 +470,6 @@ if test $want_server = yes; then AC_CHECK_LIB(mad, mad_stream_init, [AC_SUBST(LIBMAD,[-lmad])], [missing_libraries="$missing_libraries libmad"]) - AC_CHECK_LIB([ao], [ao_initialize], - [AC_SUBST(LIBAO,[-lao])], - [missing_libraries="$missing_libraries libao"]) AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_new], [AC_SUBST(LIBFLAC,[-lFLAC])], [missing_libraries="$missing_libraries libFLAC"]) @@ -515,7 +522,8 @@ fi if test $want_coreaudio = yes; then AC_CHECK_HEADERS([CoreAudio/AudioHardware.h]) fi -AC_CHECK_HEADERS([inttypes.h]) +AC_CHECK_HEADERS([inttypes.h sys/time.h sys/socket.h netinet/in.h \ + arpa/inet.h sys/un.h netdb.h pcre.h pwd.h langinfo.h]) # We don't bother checking very standard stuff # Compilation will fail if any of these headers are missing, so we # check for them here and fail early. @@ -563,25 +571,7 @@ fi 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 @@ -649,9 +639,16 @@ AC_CHECK_FUNCS([fdatasync],[:],[ 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 # had better be version 3 or later @@ -699,6 +696,25 @@ if test $want_gtk = yes; then fi AM_CONDITIONAL([GTK], [test x$want_gtk = 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 # by default. @@ -728,13 +744,13 @@ if test "x$GCC" = xyes; then if test $GCC = yes; then CC="$CC -Wall -Werror" fi - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[ + 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] )