1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
dnl Process this file with autoconf to produce a configure script.
dnl
dnl Copyright 1998 - 2005 Double Precision, Inc. See COPYING for
dnl distribution information.
AC_INIT([cgi],[0.10],[courier-users@lists.sourceforge.net])
>confdefs.h # Kill PACKAGE_ macros
AC_CONFIG_SRCDIR(cgi.c)
AC_CONFIG_AUX_DIR(../..)
AM_INIT_AUTOMAKE([foreign no-define])
AC_CONFIG_HEADERS(cgi_config.h)
dnl Checks for programs.
AC_USE_SYSTEM_EXTENSIONS
AC_PROG_CC
AC_PROG_AWK
AC_PROG_INSTALL
AC_PROG_LN_S
LT_INIT
dnl Checks for libraries.
dnl Checks for header files.
AC_CHECK_HEADERS(fcntl.h sys/time.h sys/wait.h sys/select.h sys/uio.h unistd.h)
AC_CHECK_HEADERS_ONCE([sys/time.h])
# Obsolete code to be removed.
if test $ac_cv_header_sys_time_h = yes; then
AC_DEFINE([TIME_WITH_SYS_TIME],[1],[Define to 1 if you can safely include both <sys/time.h>
and <time.h>. This macro is obsolete.])
fi
# End of obsolete code.
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_SIZE_T
AC_CACHE_CHECK([for socklen_t],
cgi_cv_hassocklen_t,
AC_COMPILE_IFELSE([
AC_LANG_SOURCE( [
#include <sys/types.h>
#include <sys/socket.h>
socklen_t sl_t;
],[
accept(0, 0, &sl_t);
])],
cgi_cv_hassocklen_t=yes,
cgi_cv_hassocklen_t=no)
)
socklen_t="int"
if test $cgi_cv_hassocklen_t = yes
then
:
else
AC_DEFINE_UNQUOTED(socklen_t, int, [ Default definition for socklen_t ])
fi
dnl Checks for library functions.
AC_CHECK_FUNCS(strdup strncasecmp)
dnl Other checks
AC_ARG_WITH(formdata,
[ --with-formdata Compile support for multipart/formdata],
AC_DEFINE_UNQUOTED(CGIFORMDATA, 1,
[ Whether to generate code to handle multipart/formdata ]))
AC_ARG_WITH(maxargsize,
[ --with-maxargsize=nbytes Limit maximum size of CGI args],
CFLAGS="$CFLAGS -DCGIMAXARG=$withval")
AC_ARG_WITH(maxformargsize,
[ --with-maxformargsize=nbytes Maximum size of multipart/formdata uploads],
CFLAGS="$CFLAGS -DCGIMAXFORMDATAARG=$withval")
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int main()
{
FILE *fp=fopen("conftestval", "w");
if (!fp) exit(1);
fprintf(fp, "-%lu\n", ULONG_MAX);
fclose(fp);
return (0);
}
]])],[ MAXLONGSIZE=`wc -c conftestval | awk ' { print $1 } ' ` ],[
AC_MSG_ERROR(Unable to run test program.)
],[
MAXLONGSIZE=60
AC_MSG_WARN([Cross compiling, setting MAXLONGSIZE to $MAXLONGSIZE])
])
AC_CACHE_CHECK([how to pass file descriptors],
ac_cv_sqwebmail_passfd,
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
int fd; struct msghdr msg; ]], [[
msg.msg_accrights=(caddr_t)fd;
msg.msg_accrightslen=sizeof(fd);
]])],[ac_cv_sqwebmail_passfd=msg_accrights],[])
if test "$ac_cv_sqwebmail_passfd" = ""
then
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
struct msghdr msg; struct cmsghdr cmsg; char buf;
]], [[
msg.msg_control = &buf;
msg.msg_controllen = 1;
]])],[ac_cv_sqwebmail_passfd=msg_control],[ac_cv_sqwebmail_passfd=none])
fi
)
if test "$ac_cv_sqwebmail_passfd" = "msg_accrights"
then
AC_DEFINE_UNQUOTED(CGI_PASSFD_MSGACCRIGHTS,1,
[Pass file descriptors in msg_accrights])
fi
if test "$ac_cv_sqwebmail_passfd" = "msg_control"
then
AC_DEFINE_UNQUOTED(CGI_PASSFD_MSGCONTROL,1,
[Pass file descriptors in msg_control])
fi
if test "$GCC" = yes ; then
CFLAGS="$CFLAGS -Wall"
fi
CFLAGS="$CFLAGS -I.. -I$srcdir/.."
AC_SYS_LARGEFILE
AC_DEFINE_UNQUOTED(MAXLONGSIZE, $MAXLONGSIZE, [ Calculate max size of long ])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
|