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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
|
dnl ## Process this file with autoconf to produce a configure script
AC_PREREQ(2.13)
AC_INIT(acinclude.m4)
dnl ## This is the central place where Apache's version should be kept.
dnl AM_INIT_AUTOMAKE(apache, 2.0-dev)
VERSION="apache-2.0-dev"
AC_CONFIG_HEADER(include/ap_config_auto.h)
APACHE_VERSION=$VERSION
APACHE_SUBST(APACHE_VERSION)
test "$exec_prefix" = "NONE" && exec_prefix='${prefix}'
test "$prefix" = "NONE" && prefix='/usr/local'
dnl Needed for APACHE_MODULE() to work
cwd=`pwd`
dnl ## Run configure for packages Apache uses
AC_CONFIG_SUBDIRS(lib/apr)
dnl ## Check for programs
AC_PROG_AWK
AC_PROG_CC
AC_PROG_CPP
AC_PROG_INSTALL
dnl AC_PROG_RANLIB
dnl AC_PATH_PROG(PERL_PATH, perl)
REENTRANCY_FLAGS
dnl various OS checks that apparently set required flags
AC_AIX
AC_ISC_POSIX
AC_MINIX
dnl ## Check for libraries
dnl ## Check for header files
dnl I think these are just used all over the place, so just check for
dnl them at the base of the tree. If some are specific to a single
dnl directory, they should be moved (Comment #Spoon)
dnl Regarding standard header files: AC_HEADER_STDC doesn't set symbols
dnl HAVE_STRING_H, HAVE_STDLIB_H, etc., so those are checked for
dnl explicitly so that the normal HAVE_xxx_H symbol is defined.
AC_HEADER_STDC
AC_CHECK_HEADERS( \
string.h \
stdlib.h \
ctype.h \
limits.h \
unistd.h \
sys/stat.h \
sys/time.h \
sys/types.h \
sys/socket.h \
netinet/in.h \
netinet/tcp.h \
arpa/inet.h \
netdb.h \
pwd.h \
grp.h \
)
AC_HEADER_SYS_WAIT
AC_STRUCT_TM
dnl ## Check for C preprocessor symbols
AC_CHECK_DEFINE(EAGAIN, errno.h)
dnl ## Check for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_INLINE
AC_TYPE_PID_T
dnl ## Check for library functions
dnl See Comment #Spoon
AC_CHECK_FUNCS( \
strdup \
strcasecmp \
strncasecmp \
strstr \
strerror \
initgroups \
waitpid \
gettimeofday \
memmove \
bzero \
)
AC_CHECK_LIB(nsl, gethostbyname)
AC_CHECK_LIB(nsl, gethostname)
AC_CHECK_LIB(socket, socket)
AC_CHECK_LIB(resolv, sethostent)
AC_CHECK_FUNCS(inet_addr inet_network, break, [
AC_MSG_ERROR(inet_addr function not found)
])
APACHE_INADDR_NONE
APACHE_EBCDIC
AC_FUNC_SELECT_ARGTYPES
dnl Check if we'll actually need to cast select args all the time
if test "$ac_cv_func_select_arg1" != "int" \
-o "$ac_cv_func_select_arg234" != "fd_set *" \
-o "$ac_cv_func_select_arg5" != "struct timeval *" ; then
AC_DEFINE(SELECT_NEEDS_CAST,,
[Define if arguments to select() aren't what we expect])
fi
dnl ## Checking command-line options
test -n "$GCC" && test "$USE_MAINTAINER_MODE" = "yes" && \
EXTRA_CFLAGS="$EXTRA_CFLAGS -g -Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations"
test -n "$GCC" && test "$USE_MAINTAINER_MODE" = "y2" && \
EXTRA_CFLAGS="$EXTRA_CFLAGS -g -Wall -Werror -Wmissing-declarations"
APACHE_ENABLE_LAYOUT
APACHE_ENABLE_MODULES
APACHE_ENABLE_SHARED
INCLUDES="-I\$(top_srcdir)/include -I\$(top_srcdir)/lib/apr/include"
APACHE_SUBST(INCLUDES)
dnl reading config stubs
esyscmd(./helpers/config-stubs .)
INCLUDES="$INCLUDES -I\$(top_srcdir)/\$(OS_DIR)"
EXTRA_LIBS="$EXTRA_LIBS $LIBS"
EXTRA_LDFLAGS="$LDFLAGS"
LIBS=""
LDFLAGS=""
APACHE_SUBST(progname)
APACHE_SUBST(EXTRA_CFLAGS)
APACHE_SUBST(EXTRA_LDFLAGS)
APACHE_SUBST(EXTRA_LIBS)
APACHE_SUBST(REGEX_DIR)
APACHE_SUBST(REGEX_LIB)
APACHE_SUBST(MPM_LIB)
APACHE_SUBST(OS)
APACHE_SUBST(OS_DIR)
APACHE_SUBST(BUILTIN_LIBS)
APACHE_SUBST(LIBPRE)
AM_DISABLE_SHARED
AM_PROG_LIBTOOL
APACHE_LIBTOOL_SILENT
if test "$apache_need_shared" = "yes"; then
$SHELL $srcdir/ltconfig --output=shlibtool --disable-static --srcdir=$srcdir --cache-file=./config.cache $srcdir/ltmain.sh
fi
AC_ARG_WITH(program-name,
[ --with-program-name=alternate executable name],[
progname="$withval" ], [
progname="httpd"] )
APACHE_FAST_OUTPUT(Makefile ap/Makefile lib/Makefile main/Makefile
modules/Makefile os/Makefile support/Makefile)
APACHE_FAST_GENERATE
dnl ## Build modules.c
rm -f $srcdir/modules.c
echo $MODLIST | $AWK -f $srcdir/helpers/build-modules-c.awk > $srcdir/modules.c
AC_OUTPUT_COMMANDS([
echo '/* Generated by configure */' > ${path_h}.new
echo "#define HTTPD_ROOT \"$prefix\"" >> ${path_h}.new
echo "#define SUEXEC_BIN \"$bindir/suexec\"" >> ${path_h}.new
echo "#define SERVER_CONFIG_FILE \"conf/$progname.conf\"" >> ${path_h}.new
cmp ${path_h}.new ${path_h} >/dev/null 2>&1
if test $? -ne 0 ; then
rm -f ${path_h} && mv ${path_h}.new ${path_h} && \
echo "Updated ${path_h}"
else
rm -f ${path_h}.new && \
echo "${path_h} unchanged"
fi
],[
path_h=./include/ap_config_path.h
prefix=$prefix
exec_prefix=$exec_prefix
bindir=$bindir
progname=$progname
])
AC_OUTPUT($APACHE_OUTPUT_FILES)
|