X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/5aff007d8fcfb4c6cc3c3627ae15f45562db7a0d..bfa2f233a2fbcdd16205b7018c832575e2f01520:/configure.ac diff --git a/configure.ac b/configure.ac index 091f96a..18380c0 100644 --- a/configure.ac +++ b/configure.ac @@ -20,9 +20,9 @@ # USA # -AC_INIT([disorder], [3.0], [richard+disorder@sfere.greenend.org.uk]) +AC_INIT([disorder], [3.0+], [richard+disorder@sfere.greenend.org.uk]) AC_CONFIG_AUX_DIR([config.aux]) -AM_INIT_AUTOMAKE(disorder, [3.0]) +AM_INIT_AUTOMAKE(disorder, [3.0+]) AC_CONFIG_SRCDIR([server/disorderd.c]) AM_CONFIG_HEADER([config.h]) @@ -32,6 +32,7 @@ AC_CANONICAL_HOST # What we want to build want_gtk=yes want_python=yes +want_tests=yes # APIs we want want_alsa=yes @@ -44,6 +45,7 @@ AC_SET_MAKE if test "x$GCC" = xyes; then gcc_werror=-Werror else + AC_MSG_ERROR([GNU C is required to build this program]) gcc_werror="" fi @@ -59,6 +61,10 @@ AC_ARG_WITH([coreaudio], [AS_HELP_STRING([--without-coreaudio], [do not build with Core Audio support])], [want_coreaudio=$withval]) +AC_ARG_WITH([tests], + [AS_HELP_STRING([--without-tests], + [do not build test suit])], + [want_tests=$withval]) AC_MSG_CHECKING([for a known target platform]) case "$host" in @@ -165,10 +171,14 @@ AC_ARG_WITH([python], [do not build Python support])], [want_python=$withval]) -subdirs="scripts lib clients doc examples debian" +subdirs="scripts lib" +if test $want_tests = yes; then + subdirs="${subdirs} libtests" +fi +subdirs="${subdirs} clients doc examples debian" if test $want_server = yes; then - subdirs="${subdirs} server plugins driver templates sounds images" + subdirs="${subdirs} server cgi plugins driver templates sounds images" fi if test $want_gtk = yes; then subdirs="${subdirs} disobedience" @@ -176,7 +186,7 @@ if test $want_gtk = yes; then subdirs="${subdirs} images" fi fi -if test $want_python = yes; then +if test $want_tests = yes && test $want_python = yes; then AM_PATH_PYTHON([2.4]) subdirs="${subdirs} python tests" fi @@ -202,12 +212,17 @@ if test "$GNUSED" = "not found"; then fi AC_SUBST([GNUSED]) +AC_CHECK_PROGS([GROG],[grog]) +AM_CONDITIONAL([GROG],[test "x$GROG" != xnone]) + missing_libraries="" missing_headers="" missing_functions="" AC_DEFINE(_GNU_SOURCE, 1, [required for e.g. strsignal]) +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 @@ -416,7 +431,7 @@ if test $ac_cv_type_long_long = yes; then AC_DEFINE([DECLARES_ATOLL],[1],[define if declares atoll]) fi fi -AC_CHECK_FUNCS([ioctl nl_langinfo strsignal],[:],[ +AC_CHECK_FUNCS([ioctl nl_langinfo strsignal setenv unsetenv],[:],[ missing_functions="$missing_functions $ac_func" ]) # fsync will do if fdatasync not available @@ -427,6 +442,10 @@ AC_CHECK_FUNCS([fdatasync],[:],[ if test ! -z "$missing_functions"; then AC_MSG_ERROR([missing functions:$missing_functions]) fi + +# Functions we can take or leave +AC_CHECK_FUNCS([fls]) + if test $want_server = yes; then # had better be version 3 or later AC_CACHE_CHECK([db.h version],[rjk_cv_db_version],[ @@ -450,7 +469,34 @@ if test $want_server = yes; then fi fi +AM_CONDITIONAL([SERVER], [test x$want_server = xyes]) +if test $want_gtk = yes; then + AC_DEFINE([WITH_GTK], [1], [define if using GTK+]) +fi + if test "x$GCC" = xyes; then + # We need LLONG_MAX and annoyingly GCC doesn't always give it to us + # by default. + AC_CACHE_CHECK([what C version to ask for],[rjk_cv_cstd],[ + AC_TRY_COMPILE([#include ],[ + long long n = LLONG_MAX; + ],[rjk_cv_cstd=default],[ + old_CC="$CC" + CC="${CC} -std=gnu99" + AC_TRY_COMPILE([#include ],[ + long long n = LLONG_MAX; + ],[rjk_cv_cstd=gnu99],[rjk_cv_cstd=unknown]) + CC="$old_CC" + ]) + ]) + case $rjk_cv_cstd in + default | unknown ) + ;; + * ) + CC="${CC} -std=${rjk_cv_cstd}" + ;; + esac + # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29478 AC_CACHE_CHECK([checking for GCC bug 29478],[rjk_cv_pr29478],[ old_CC="$CC" @@ -488,7 +534,12 @@ if test "x$GCC" = xyes; then rjk_cv_werror, [ save_CFLAGS="${CFLAGS}" CFLAGS="${CFLAGS} ${GTK_CFLAGS} -Werror" - AC_TRY_COMPILE([#include ], + AC_TRY_COMPILE([#if WITH_GTK + #include +#endif + +struct s { int a, b; }; +const struct s sv = { .a = 1 };], [], [rjk_cv_werror=yes], [rjk_cv_werror=no]) @@ -539,20 +590,22 @@ AH_BOTTOM([#ifdef __GNUC__ #endif]) AC_CONFIG_FILES([Makefile - templates/Makefile images/Makefile scripts/Makefile lib/Makefile server/Makefile + cgi/Makefile clients/Makefile disobedience/Makefile doc/Makefile + templates/Makefile plugins/Makefile driver/Makefile debian/Makefile sounds/Makefile python/Makefile examples/Makefile + libtests/Makefile tests/Makefile]) AC_OUTPUT