initial capture of my stuff
[rrq/thttpd.git] / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2
3 AC_INIT(thttpd.c)
4
5 AC_CANONICAL_SYSTEM
6
7 AC_PROG_CC
8
9 V_CCOPT="-O"
10 if test "$GCC" = yes ; then
11         AC_MSG_CHECKING(gcc version)
12         AC_CACHE_VAL(ac_cv_lbl_gcc_vers,
13             ac_cv_lbl_gcc_vers=`$CC -dumpversion 2>&1 | \
14                 sed -e 's/\..*//'`)
15         AC_MSG_RESULT($ac_cv_lbl_gcc_vers)
16         if test "$ac_cv_lbl_gcc_vers" -gt 1 ; then
17                 V_CCOPT="-O2"
18         fi
19 fi
20 if test -f .devel ; then
21         V_CCOPT="-g $V_CCOPT -ansi -pedantic -U__STRICT_ANSI__ -Wall -Wpointer-arith -Wshadow -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wno-long-long"
22 fi
23
24 dnl
25 dnl maybe this should be a loop
26 dnl
27 AC_MSG_CHECKING(how to link static binaries)
28 AC_CACHE_VAL(ac_cv_lbl_static_flag,
29     ac_cv_lbl_static_flag=unknown
30     echo 'main() {}' > conftest.c
31     if test "$GCC" != yes ; then
32             trial_flag="-Bstatic"
33             test=`$CC $trial_flag -o conftest conftest.c 2>&1`
34             if test -z "$test" ; then
35                     ac_cv_lbl_static_flag="$trial_flag"
36             fi
37             rm -f conftest
38     fi
39     if test "$ac_cv_lbl_static_flag" = unknown ; then
40             trial_flag="-static"
41             test=`$CC $trial_flag -o conftest conftest.c 2>&1`
42             if test -z "$test" ; then
43                     ac_cv_lbl_static_flag="$trial_flag"
44             fi
45             rm -f conftest
46     fi
47     rm conftest.c)
48 AC_MSG_RESULT($ac_cv_lbl_static_flag)
49 if test "$ac_cv_lbl_static_flag" != unknown ; then
50         V_STATICFLAG="$ac_cv_lbl_static_flag"
51 fi
52
53 AC_MSG_CHECKING(for __progname)
54 AC_CACHE_VAL(ac_cv_extern__progname,
55     AC_TRY_LINK([],
56         [extern char *__progname; 
57         puts(__progname)],
58         ac_cv_extern__progname=yes,
59         ac_cv_extern__progname=no))
60 if test $ac_cv_extern__progname = yes ; then
61         AC_DEFINE(HAVE__PROGNAME)
62         AC_MSG_RESULT(yes)
63 else
64         AC_MSG_RESULT(no)   
65 fi
66
67 AC_CHECK_HEADERS(fcntl.h grp.h memory.h paths.h poll.h sys/poll.h sys/devpoll.h sys/event.h osreldate.h)
68 AC_HEADER_TIME
69 AC_HEADER_DIRENT
70
71 d="/usr/local/v6/lib"
72 AC_MSG_CHECKING(for $d)
73 if test -d $d; then
74         AC_MSG_RESULT(yes (Adding -L$d to LDFLAGS))
75         LDFLAGS="$LDFLAGS -L$d"
76 else
77         AC_MSG_RESULT(no)
78 fi
79
80 dnl
81 dnl Most operating systems have gethostbyname() in the default searched
82 dnl libraries (i.e. libc):
83 dnl
84 V_NETLIBS=""
85 AC_CHECK_FUNC(gethostbyname, ,
86     # Some OSes (eg. Solaris) place it in libnsl:
87     AC_LBL_CHECK_LIB(nsl, gethostbyname,
88         V_NETLIBS="-lnsl $V_NETLIBS", 
89         # Some strange OSes (SINIX) have it in libsocket:
90         AC_LBL_CHECK_LIB(socket, gethostbyname,
91             V_NETLIBS="-lsocket $V_NETLIBS", 
92             # Unfortunately libsocket sometimes depends on libnsl.
93             # AC_CHECK_LIB's API is essentially broken so the
94             # following ugliness is necessary:
95             AC_LBL_CHECK_LIB(socket, gethostbyname,
96                 V_NETLIBS="-lsocket -lnsl $V_NETLIBS",
97                 AC_CHECK_LIB(resolv, gethostbyname,
98                     V_NETLIBS="-lresolv $V_NETLIBS"),
99                 -lnsl))))
100 AC_CHECK_FUNC(socket, ,
101     AC_CHECK_LIB(socket, socket,
102         V_NETLIBS="-lsocket $V_NETLIBS",
103         AC_LBL_CHECK_LIB(socket, socket,
104             V_NETLIBS="-lsocket -lnsl $V_NETLIBS", , -lnsl)))
105
106 AC_CHECK_LIB(inet6, main)
107
108 AC_CHECK_FUNC(crypt, , AC_CHECK_LIB(crypt, crypt))
109 AC_CHECK_FUNC(hstrerror, ,
110     AC_CHECK_LIB(resolv, hstrerror, V_NETLIBS="-lresolv $V_NETLIBS"))
111
112 AC_REPLACE_FUNCS(strerror)
113 AC_CHECK_FUNCS(waitpid vsnprintf daemon setsid setlogin getaddrinfo getnameinfo gai_strerror kqueue sigset atoll)
114 AC_FUNC_MMAP
115
116 case "$target_os" in
117 solaris*)
118         dnl Solaris's select() is a bad wrapper routine.
119         AC_CHECK_FUNCS(poll)
120         ;;
121 *)
122         AC_CHECK_FUNCS(select poll)
123         ;;
124 esac
125
126 AC_ACME_TM_GMTOFF
127 AC_ACME_INT64T
128 AC_ACME_SOCKLENT
129
130 AC_PROG_MAKE_SET
131 AC_PROG_INSTALL
132
133 AC_SUBST(DEFS)
134 AC_SUBST(V_CCOPT)
135 AC_SUBST(V_STATICFLAG)
136 AC_SUBST(V_NETLIBS)
137
138 AC_OUTPUT(Makefile cgi-src/Makefile extras/Makefile)