X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/8fcf5c48920ed93a7bf7ce2104f5ede87bfba7cd..f03c5a86c8c9b1f03d8ced522597c9a9844002b4:/configure.ac diff --git a/configure.ac b/configure.ac index 5bfe13d..bfed8b5 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, 2005, 2006, 2007 Richard Kettlewell +# Copyright (C) 2004-2008 Richard Kettlewell # Portions copyright (C) 2007 Ross Younger # # This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ # USA # -AC_INIT([disorder], [2.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, [2.0+]) +AM_INIT_AUTOMAKE(disorder, [3.0+]) AC_CONFIG_SRCDIR([server/disorderd.c]) AM_CONFIG_HEADER([config.h]) @@ -44,6 +44,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 @@ -111,9 +112,20 @@ case "$host" in # there by default LDFLAGS="${LDFLAGS} -L/usr/local/lib" CPPFLAGS="${CPPFLAGS} -isystem /usr/local/include" - # libdb installs elsewhere again - LDFLAGS="${LDFLAGS} -L/usr/local/lib/db44" - CPPFLAGS="${CPPFLAGS} -isystem /usr/local/include/db44" + # 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 + if test -e /usr/local/lib/$db; then + rjk_cv_libdb=$db + break + fi + done + ]) + if test $rjk_cv_libdb != none; then + LDFLAGS="${LDFLAGS} -L/usr/local/lib/$rjk_cv_libdb" + CPPFLAGS="${CPPFLAGS} -isystem /usr/local/include/$rjk_cv_libdb" + fi ;; * ) AC_MSG_RESULT([unknown, winging it]) @@ -129,7 +141,7 @@ AC_ARG_WITH([browser], AC_CACHE_CHECK([default HTML viewer],[rjk_cv_browser],[ rjk_cv_browser=UNKNOWN - for candidate in x-www-browser firefox mozilla konqueror netscape; do + for candidate in x-www-browser sensible-browser firefox mozilla konqueror netscape; do if type $candidate >/dev/null 2>&1; then rjk_cv_browser="$candidate" break @@ -405,7 +417,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 @@ -416,6 +428,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],[ @@ -439,7 +455,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" @@ -477,7 +520,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]) @@ -528,7 +576,6 @@ AH_BOTTOM([#ifdef __GNUC__ #endif]) AC_CONFIG_FILES([Makefile - templates/Makefile images/Makefile scripts/Makefile lib/Makefile @@ -536,6 +583,7 @@ AC_CONFIG_FILES([Makefile clients/Makefile disobedience/Makefile doc/Makefile + templates/Makefile plugins/Makefile driver/Makefile debian/Makefile