]> granicus.if.org Git - apache/blob - acinclude.m4
Add a comment about an assumption we make in our keepalive buffering.
[apache] / acinclude.m4
1
2 dnl APACHE_SUBST(VARIABLE)
3 dnl Makes VARIABLE available in generated files
4 dnl (do not use @variable@ in Makefiles, but $(variable))
5 AC_DEFUN(APACHE_SUBST,[
6   APACHE_VAR_SUBST="$APACHE_VAR_SUBST $1"
7   AC_SUBST($1)
8 ])
9
10 dnl APACHE_FAST_OUTPUT(FILENAME)
11 dnl Perform substitutions on FILENAME (Makefiles only)
12 AC_DEFUN(APACHE_FAST_OUTPUT,[
13   APACHE_FAST_OUTPUT_FILES="$APACHE_FAST_OUTPUT_FILES $1"
14 ])
15
16 dnl APACHE_MKDIR_P_CHECK
17 dnl checks whether mkdir -p works
18 AC_DEFUN(APACHE_MKDIR_P_CHECK,[
19   AC_CACHE_CHECK(for working mkdir -p, ac_cv_mkdir_p,[
20     test -d conftestdir && rm -rf conftestdir
21     mkdir -p conftestdir/somedir >/dev/null 2>&1
22     if test -d conftestdir/somedir; then
23       ac_cv_mkdir_p=yes
24     else
25       ac_cv_mkdir_p=no
26     fi
27     rm -rf conftestdir
28   ])
29 ])
30
31 dnl APACHE_GEN_CONFIG_VARS
32 dnl Creates config_vars.mk
33 AC_DEFUN(APACHE_GEN_CONFIG_VARS,[
34   APACHE_SUBST(abs_srcdir)
35   APACHE_SUBST(bindir)
36   APACHE_SUBST(sbindir)
37   APACHE_SUBST(cgidir)
38   APACHE_SUBST(logfiledir)
39   APACHE_SUBST(exec_prefix)
40   APACHE_SUBST(datadir)
41   APACHE_SUBST(localstatedir)
42   APACHE_SUBST(libexecdir)
43   APACHE_SUBST(htdocsdir)
44   APACHE_SUBST(includedir)
45   APACHE_SUBST(iconsdir)
46   APACHE_SUBST(sysconfdir)
47   APACHE_SUBST(other_targets)
48   APACHE_SUBST(progname)
49   APACHE_SUBST(prefix)
50   APACHE_SUBST(AWK)
51   APACHE_SUBST(CC)
52   APACHE_SUBST(CXX)
53   APACHE_SUBST(CPPFLAGS)
54   APACHE_SUBST(CFLAGS)
55   APACHE_SUBST(CXXFLAGS)
56   APACHE_SUBST(LTFLAGS)
57   APACHE_SUBST(LDFLAGS)
58   APACHE_SUBST(SH_LDFLAGS)
59   APACHE_SUBST(HTTPD_LDFLAGS)
60   APACHE_SUBST(LIBS)
61   APACHE_SUBST(DEFS)
62   APACHE_SUBST(INCLUDES)
63   APACHE_SUBST(NOTEST_CPPFLAGS)
64   APACHE_SUBST(NOTEST_CFLAGS)
65   APACHE_SUBST(NOTEST_CXXFLAGS)
66   APACHE_SUBST(NOTEST_LDFLAGS)
67   APACHE_SUBST(NOTEST_LIBS)
68   APACHE_SUBST(EXTRA_CPPFLAGS)
69   APACHE_SUBST(EXTRA_CFLAGS)
70   APACHE_SUBST(EXTRA_CXXFLAGS)
71   APACHE_SUBST(EXTRA_LDFLAGS)
72   APACHE_SUBST(EXTRA_LIBS)
73   APACHE_SUBST(EXTRA_INCLUDES)
74   APACHE_SUBST(LIBTOOL)
75   APACHE_SUBST(SHELL)
76   APACHE_SUBST(MODULE_DIRS)
77   APACHE_SUBST(PORT)
78   APACHE_SUBST(CORE_IMPLIB_FILE)
79   APACHE_SUBST(CORE_IMPLIB)
80   APACHE_SUBST(SH_LIBTOOL)
81   APACHE_SUBST(MK_IMPLIB)
82   APACHE_SUBST(INSTALL_PROG_FLAGS)
83
84   abs_srcdir="`(cd $srcdir && pwd)`"
85
86   APACHE_MKDIR_P_CHECK
87   echo creating config_vars.mk
88   > config_vars.mk
89   for i in $APACHE_VAR_SUBST; do
90     eval echo "$i = \$$i" >> config_vars.mk
91   done
92 ])
93
94 dnl APACHE_GEN_MAKEFILES
95 dnl Creates Makefiles
96 AC_DEFUN(APACHE_GEN_MAKEFILES,[
97   $SHELL $srcdir/build/fastgen.sh $srcdir $ac_cv_mkdir_p $BSD_MAKEFILE $APACHE_FAST_OUTPUT_FILES
98 ])
99
100 AC_DEFUN(APACHE_LIBTOOL_SILENT,[
101   LIBTOOL='$(SHELL) $(top_builddir)/libtool --silent'
102 ])
103
104     
105 dnl ## APACHE_OUTPUT(file)
106 dnl ## adds "file" to the list of files generated by AC_OUTPUT
107 dnl ## This macro can be used several times.
108 AC_DEFUN(APACHE_OUTPUT, [
109   APACHE_OUTPUT_FILES="$APACHE_OUTPUT_FILES $1"
110 ])
111
112 dnl
113 dnl APACHE_TYPE_RLIM_T
114 dnl
115 dnl If rlim_t is not defined, define it to int
116 dnl
117 AC_DEFUN(APACHE_TYPE_RLIM_T, [
118   AC_CACHE_CHECK([for rlim_t], ac_cv_type_rlim_t, [
119     AC_TRY_COMPILE([
120 #include <sys/types.h>
121 #include <sys/time.h>
122 #include <sys/resource.h>
123 ], [rlim_t spoon;], [
124       ac_cv_type_rlim_t=yes
125     ],[ac_cv_type_rlim_t=no
126     ])
127   ])
128   if test "$ac_cv_type_rlim_t" = "no" ; then
129       AC_DEFINE(rlim_t, int,
130           [Define to 'int' if <sys/resource.h> doesn't define it for us])
131   fi
132 ])
133
134 dnl APACHE_MODPATH_INIT(modpath)
135 AC_DEFUN(APACHE_MODPATH_INIT,[
136   current_dir=$1
137   modpath_current=modules/$1
138   modpath_static=
139   modpath_shared=
140   test -d $1 || $srcdir/build/mkdir.sh $modpath_current
141   > $modpath_current/modules.mk
142 ])dnl
143 dnl
144 AC_DEFUN(APACHE_MODPATH_FINISH,[
145   echo "DISTCLEAN_TARGETS = modules.mk" >> $modpath_current/modules.mk
146   echo "static = $modpath_static" >> $modpath_current/modules.mk
147   echo "shared = $modpath_shared" >> $modpath_current/modules.mk
148   if test ! -z "$modpath_static" -o ! -z "$modpath_shared"; then
149     MODULE_DIRS="$MODULE_DIRS $current_dir"
150   fi
151   APACHE_FAST_OUTPUT($modpath_current/Makefile)
152 ])dnl
153 dnl
154 dnl APACHE_MODPATH_ADD(name[, shared[, objects [, ldflags[, libs]]]])
155 AC_DEFUN(APACHE_MODPATH_ADD,[
156   if test -z "$3"; then
157     objects="mod_$1.lo"
158   else
159     objects="$3"
160   fi
161
162   if test -z "$module_standalone"; then
163     if test -z "$2"; then
164       libname="mod_$1.la"
165       BUILTIN_LIBS="$BUILTIN_LIBS $modpath_current/$libname"
166       modpath_static="$modpath_static $libname"
167       cat >>$modpath_current/modules.mk<<EOF
168 $libname: $objects
169         \$(MOD_LINK) $objects
170 EOF
171     else
172       apache_need_shared=yes
173       libname="mod_$1.la"
174       shobjects=`echo $objects | sed 's/\.lo/.slo/g'`
175       modpath_shared="$modpath_shared $libname"
176       cat >>$modpath_current/modules.mk<<EOF
177 $libname: $shobjects
178         \$(SH_LINK) -rpath \$(libexecdir) -module -avoid-version $4 $objects $5
179 EOF
180     fi
181   fi
182 ])dnl
183
184 dnl
185 dnl APACHE_MODULE(name, helptext[, objects[, structname[, default[, config]]]])
186 dnl
187 dnl default is one of:
188 dnl   yes  -- enabled by default. user must explicitly disable.
189 dnl   no   -- disabled under default, most, all. user must explicitly enable.
190 dnl   most -- disabled by default. enabled explicitly or with most or all.
191 dnl   ""   -- disabled under default, most. enabled explicitly or with all.
192 dnl
193 dnl basically: yes/no is a hard setting. "most" means follow the "most"
194 dnl            setting. otherwise, fall under the "all" setting.
195 dnl            explicit yes/no always overrides.
196 dnl
197 AC_DEFUN(APACHE_MODULE,[
198   AC_MSG_CHECKING(whether to enable mod_$1)
199   define([optname],[  --]ifelse($5,yes,disable,enable)[-]translit($1,_,-))dnl
200   AC_ARG_ENABLE(translit($1,_,-),optname() substr([                         ],len(optname()))$2,,enable_$1=ifelse($5,,maybe-all,$5))
201   undefine([optname])dnl
202   _apmod_extra_msg=""
203   if test "$enable_$1" = "most"; then
204     if test "$module_selection" = "most" -o "$module_selection" = "all"; then
205       enable_$1=$module_default
206       _apmod_extra_msg=" ($module_selection)"
207     else
208       enable_$1=no
209     fi
210   elif test "$enable_$1" = "maybe-all"; then
211     if test "$module_selection" = "all"; then
212       enable_$1=$module_default
213       _apmod_extra_msg=" (all)"
214     else
215       enable_$1=no
216     fi
217   fi
218   AC_MSG_RESULT($enable_$1$_apmod_extra_msg)
219   if test "$enable_$1" != "no"; then
220     case "$enable_$1" in
221     shared*)
222       enable_$1=`echo $ac_n $enable_$1$ac_c|sed 's/shared,*//'`
223       sharedobjs=yes
224       shared=yes;;
225     *)
226       MODLIST="$MODLIST ifelse($4,,$1,$4)"
227       if test "$1" = "so"; then
228           sharedobjs=yes
229       fi
230       shared="";;
231     esac
232     ifelse([$6],,:,[$6])
233     APACHE_MODPATH_ADD($1, $shared, $3)
234   fi
235 ])dnl
236 dnl
237 dnl APACHE_LAYOUT(configlayout, layoutname)
238 AC_DEFUN(APACHE_LAYOUT,[
239   if test ! -f $srcdir/config.layout; then
240     echo "** Error: Layout file $srcdir/config.layout not found"
241     echo "** Error: Cannot use undefined layout '$LAYOUT'"
242     exit 1
243   fi
244   pldconf=./config.pld
245   changequote({,})
246   sed -e "1,/[  ]*<[lL]ayout[   ]*$2[   ]*>[    ]*/d" \
247       -e '/[    ]*<\/Layout>[   ]*/,$d' \
248       -e "s/^[  ]*//g" \
249       -e "s/:[  ]*/=\'/g" \
250       -e "s/[   ]*$/'/g" \
251       $1 > $pldconf
252   layout_name=$2
253   . $pldconf
254   rm $pldconf
255   for var in prefix exec_prefix bindir sbindir libexecdir mandir \
256              sysconfdir datadir iconsdir htdocsdir cgidir includedir \
257              localstatedir runtimedir logfiledir proxycachedir; do
258     eval "val=\"\$$var\""
259     case $val in
260       *+)
261         val=`echo $val | sed -e 's;\+$;;'`
262         eval "$var=\"\$val\""
263         autosuffix=yes
264         ;;
265       *)
266         autosuffix=no
267         ;;
268     esac
269     val=`echo $val | sed -e 's:\(.\)/*$:\1:'`
270     val=`echo $val | sed -e 's:$\([a-z_]*\):$(\1):g'`
271     if test "$autosuffix" = "yes"; then
272       if echo $val | grep apache >/dev/null; then
273         addtarget=no
274       else
275         addtarget=yes
276       fi
277       if test "$addtarget" = "yes"; then
278         val="$val/apache"
279       fi
280     fi
281     eval "$var='$val'"
282   done
283   changequote([,])
284 ])dnl
285 dnl
286 dnl APACHE_ENABLE_LAYOUT
287 dnl
288 AC_DEFUN(APACHE_ENABLE_LAYOUT,[
289 AC_ARG_ENABLE(layout,
290 [  --enable-layout=LAYOUT],[
291   LAYOUT=$enableval
292 ])
293
294 if test -z "$LAYOUT"; then
295   # XXX FIXME: this isn't a complete list of things that have to be set to 
296   # create the Apache layout in config.layout, and it really should just
297   # use what is specified in config.layout instead of duping it.
298   htdocsdir='$(prefix)/htdocs'
299   iconsdir='$(prefix)/icons'
300   cgidir='$(prefix)/cgi-bin'
301   logfiledir='$(prefix)/logs'
302   sysconfdir='${prefix}/conf'
303   libexecdir='${prefix}/modules'
304   layout_name=Apache
305 else 
306   APACHE_LAYOUT($srcdir/config.layout, $LAYOUT)
307 fi
308
309 AC_MSG_CHECKING(for chosen layout)
310 AC_MSG_RESULT($layout_name)
311 ])
312
313 dnl
314 dnl APACHE_ENABLE_MODULES
315 dnl
316 AC_DEFUN(APACHE_ENABLE_MODULES,[
317   module_selection=default
318   module_default=yes
319
320   AC_ARG_ENABLE(modules,
321   [  --enable-modules=MODULE-LIST],[
322     for i in $enableval; do
323       if test "$i" = "all" -o "$i" = "most"; then
324         module_selection=$i
325       else
326         eval "enable_$i=yes"
327       fi
328     done
329   ])
330   
331   AC_ARG_ENABLE(mods-shared,
332   [  --enable-mods-shared=MODULE-LIST],[
333     for i in $enableval; do
334       if test "$i" = "all" -o "$i" = "most"; then
335         module_selection=$i
336         module_default=shared
337       else
338         i=`echo $i | sed 's/-/_/g'`
339         eval "enable_$i=shared"
340       fi
341     done
342   ])
343 ])
344
345 AC_DEFUN(APACHE_REQUIRE_CXX,[
346   if test -z "$apache_cxx_done"; then
347     AC_PROG_CXX
348     AC_PROG_CXXCPP
349     apache_cxx_done=yes
350   fi
351 ])