summaryrefslogtreecommitdiffstats
path: root/configure.in
blob: 10c49f52a173d8618d3dae59f19a5edb58b4a2fd (plain)
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)