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