1# Process this file with autoconf to produce a configure script. 2AC_PREREQ(2.52) 3AC_INIT(gigabase.h) 4AC_CANONICAL_SYSTEM 5AC_AIX 6GB_VERSION=`$srcdir/mkversion` 7 8AC_ARG_ENABLE(pthreads, [ 9 --disable-pthreads use this for single-threaded libs], 10[case "$enableval" in 11 yes) AC_DEFINE(_REENTRANT) server_o="server.o" SUFF="_r" ;; 12dnl AC_DEFINE(_THREAD_SAFE) 13 no) AC_DEFINE(NO_PTHREADS) server_o="" SUFF="" ;; 14 *) "error: unrecognized option for --enable-pthreads: $enableval" 1>&2 ; exit 1 ;; 15esac], [AC_DEFINE(_REENTRANT) server_o="server.o" SUFF="_r"]) 16AC_SUBST(SUFF) 17AC_SUBST(server_o) 18 19AC_ARG_ENABLE(debug, [[ --enable-debug=(none|check|trace) [trace] enable debugging]], 20[case "$enableval" in 21 none|no) AC_DEFINE(DEBUG,DEBUG_NONE) ;; 22 check) AC_DEFINE(DEBUG,DEBUG_CHECK) ;; 23 trace|yes) AC_DEFINE(DEBUG,DEBUG_TRACE) ;; 24 *) "error: unrecognized option for --enable-debug: $enableval" 1>&2 ; exit 1 ;; 25esac]) 26 27AC_ARG_ENABLE(queue-manager, [[ --disable-queque-manager [enabled by default] spawn 8 threads for handling HTTP requests]], 28[case "$enableval" in 29 yes) AC_DEFINE(USE_QUEUE_MANAGER) ;; 30 no) ;; 31 *) "error: unrecognized option for --enable-queue-manager: $enableval" 1>&2 ; exit 1 ;; 32esac], AC_DEFINE(USE_QUEUE_MANAGER)) 33 34AC_ARG_ENABLE(exception-on-error, [ --enable-exception-on-error throw exception on error], 35AC_DEFINE(THROW_EXCEPTION_ON_ERROR)) 36 37# Checks for programs. 38AC_PROG_CXX 39AC_PROG_CXXCPP 40AC_PROG_LN_S 41 42AC_PROG_LIBTOOL 43 44#AC_PATH_PROG(MKLIB, makeC++SharedLib$SUFF, [#makeC++SharedLib$SUFF], [$PATH:/usr/ibmcxx/bin]) 45 46# Check working member template 47AC_MSG_CHECKING(for MEMBER_TEMPLATES) 48AC_TRY_COMPILE([ 49struct X { 50template<class T> 51T foo(T x) { return x; } 52}; 53],[ 54X x; 55],[AC_MSG_RESULT(yes)],[AC_DEFINE(NO_MEMBER_TEMPLATES) AC_MSG_RESULT(no)]) 56 57 58 59# Checks for libraries. 60LIBS="" 61AC_SEARCH_LIBS(connect, socket) 62AC_SEARCH_LIBS(gethostbyname, nsl) 63SOCKLIBS="$LIBS" 64LIBS="" 65AC_SUBST(SOCKLIBS) 66dnl FIXME AC_CHECK_LIB(m, main) 67 68# Checks for header files. 69AC_HEADER_STDC 70AC_CHECK_HEADERS(limits.h unistd.h) 71 72# Checks for typedefs, structures, and compiler characteristics. 73AC_CHECK_SIZEOF(long) 74AC_TYPE_SIZE_T 75AC_STRUCT_TM 76 77# Checks for library functions. 78AC_FUNC_MALLOC 79AC_FUNC_MKTIME 80dnl AC_TYPE_SIGNAL 81AC_FUNC_STRFTIME 82 83AC_CACHE_CHECK(for compiler option for pthreads, ac_cv_pthreads, 84[SAVE_CXXFLAGS="$CXXFLAGS" 85SAVE_CFLAGS="$CFLAGS" 86for i in -lpthread -pthreads -mthreads -mt; do 87CXXFLAGS="$SAVE_CXXFLAGS $i" 88CFLAGS="$SAVE_CFLAGS $i" 89AC_LANG_CPLUSPLUS 90ac_cv_pthreads="not found" 91AC_TRY_LINK([#include <unistd.h> 92#include <pthread.h>], [pthread_t t; pthread_detach(t);], 93 ac_cv_pthreads="$i") 94if test "$ac_cv_pthreads" != "not found"; then 95 if test "$ac_cv_pthreads" = ""; then ac_cv_pthreads="none required"; fi 96 break; 97fi 98done 99CXXFLAGS="$SAVE_CXXFLAGS" 100CFLAGS="$SAVE_CFLAGS"]) 101 102case "$ac_cv_pthreads" in 103 "not found"|"none required") TDEFS="" ;; 104 *) TDEFS="$ac_cv_pthreads" 105 case "${host_os}-${GCC}" in 106 *linux*-yes) 107 # On Linux/GCC, libtool uses -nostdlib for linking, which cancel part 108 # of the -pthread flag effect (libpthread is not automatically linked). 109 # So we'll try to link with both -pthread and -lpthread first: 110 LTHREADSLIB="-lpthread" 111 AC_SUBST(LTHREADSLIB) 112 ;; 113 esac 114 ;; 115esac 116AC_SUBST(TDEFS) 117CFLAGS="$CFLAGS $TDEFS" 118CXXFLAGS="$CXXFLAGS $TDEFS" 119 120AC_CHECK_FUNCS(localtime_r gethostbyname_r) 121 122AC_OUTPUT(Makefile) 123