X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/7c82ecb820073aa894f9b41442fdf910c19accdb..8b15f02d9c4041d45a310dce13f67b5a8bf11ca8:/configure.ac?ds=sidebyside diff --git a/configure.ac b/configure.ac index 1de3613..18380c0 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,3 @@ - # Process this file with autoconf to produce a configure script. # # This file is part of DisOrder. @@ -33,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 @@ -45,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 @@ -60,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 @@ -166,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" @@ -177,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 @@ -203,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 @@ -417,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 @@ -456,8 +470,33 @@ if test $want_server = yes; then 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" @@ -495,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]) @@ -546,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