acinclude.m4 revision 0f47ee3ae8ede113e11f21bf34f3b11161d3e61d
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanojdnl APACHE_MODULE(modname [, shared])
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanojdnl Includes an extension in the build.
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanojdnl "modname" is the name of the modules/ subdir where the extension resides
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanojdnl "shared" can be set to "shared" or "yes" to build the extension as
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanojdnl a dynamically loadable library.
7abe86bacd7821fb83a784398037defc64060a2emanojdnl XXX - for now, all modules using this function are in modules/standard
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanojAC_DEFUN(APACHE_MODULE,[
7abe86bacd7821fb83a784398037defc64060a2emanoj if test -d "$cwd/$srcdir/modules/standard" ; then
7abe86bacd7821fb83a784398037defc64060a2emanojdnl MOD_SUBDIRS="$MOD_SUBDIRS $1"
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanoj if test "$2" != "shared" -a "$2" != "yes"; then
0f47ee3ae8ede113e11f21bf34f3b11161d3e61drasmus libname="`basename $1`"
d0d2b68569112607968abda07d2d8b8a95e6a40amanoj _extlib="libapachemod_${libname}.a"
7abe86bacd7821fb83a784398037defc64060a2emanoj MOD_LTLIBS="$MOD_LTLIBS modules/standard/libapachemod_${libname}.la"
7abe86bacd7821fb83a784398037defc64060a2emanoj MOD_LIBS="$MOD_LIBS standard/$_extlib"
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanoj MOD_STATIC="$MOD_STATIC $1"
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanoj MOD_SHARED="$MOD_SHARED $1"
7abe86bacd7821fb83a784398037defc64060a2emanojdnl APACHE_OUTPUT(modules/$1/Makefile)
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanojAC_SUBST(MOD_LTLIBS)
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanojdnl ## APACHE_OUTPUT(file)
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanojdnl ## adds "file" to the list of files generated by AC_OUTPUT
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanojdnl ## This macro can be used several times.
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanojAC_DEFUN(APACHE_OUTPUT, [
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanoj APACHE_OUTPUT_FILES="$APACHE_OUTPUT_FILES $1"
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanojdnl AC_ADD_LIBRARY(library)
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanojdnl add a library to the link line
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanojAC_DEFUN(AC_ADD_LIBRARY,[
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanoj APACHE_ONCE(LIBRARY, $1, [
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanoj EXTRA_LIBS="$EXTRA_LIBS -l$1"
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manojdnl AC_CHECK_DEFINE(macro, headerfile)
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manojdnl checks for the macro in the header file
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manojAC_DEFUN(AC_CHECK_DEFINE,[
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manoj AC_CACHE_CHECK(for $1 in $2, ac_cv_define_$1,
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manoj AC_EGREP_CPP([YES_IS_DEFINED], [
5e02b58f37d5dcea1e75f35ed6b14cbb9af31a9amanoj#include <$2>
5e02b58f37d5dcea1e75f35ed6b14cbb9af31a9amanojYES_IS_DEFINED
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manoj ], ac_cv_define_$1=yes, ac_cv_define_$1=no))
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manoj if test "$ac_cv_define_$1" = "yes" ; then
b9e4a86f22b3e8666186b9fe08e9241cdaf50d26manoj AC_DEFINE(HAVE_$1,,
b9e4a86f22b3e8666186b9fe08e9241cdaf50d26manoj [Define if the macro "$1" is defined on this system])
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manojdnl AC_TYPE_RLIM_T
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manojdnl If rlim_t is not defined, define it to int
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manojAC_DEFUN(AC_TYPE_RLIM_T, [
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manoj AC_CACHE_CHECK([for rlim_t], ac_cv_type_rlim_t, [
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manoj AC_TRY_COMPILE([#include <sys/resource.h>], [rlim_t spoon;], [
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manoj ac_cv_type_rlim_t=yes
aa811cad2eb3fc01d17a5c8eba274b915ab8cd20manoj ],[ac_cv_type_rlim_t=no
d6baa4df51dd4759e4a7d26d3c864d7ef20e08bcmanoj if test "$ac_ac_type_rlim_t" = "no" ; then
b9e4a86f22b3e8666186b9fe08e9241cdaf50d26manoj AC_DEFINE(rlim_t, int,
b9e4a86f22b3e8666186b9fe08e9241cdaf50d26manoj [Define to 'int' if <sys/resource.h> doesn't define it for us])
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanojdnl APACHE_ONCE(namespace, variable, code)
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanojdnl execute code, if variable is not set in namespace
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanojAC_DEFUN(APACHE_ONCE,[
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanoj unique=`echo $ac_n "$2$ac_c" | tr -c -d a-zA-Z0-9`
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanoj cmd="echo $ac_n \"\$$1$unique$ac_c\""
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanoj if test -n "$unique" && test "`eval $cmd`" = "" ; then
22ad84685642948ad15cc1e881ecbc4ac8cbf98cmanoj eval "$1$unique=set"
999427a131afb3fc1c14ab092119bdae541a6d55rbbdnl APACHE_CHECK_THREADS()
999427a131afb3fc1c14ab092119bdae541a6d55rbbdnl Determine the best flags for linking against a threading library.
999427a131afb3fc1c14ab092119bdae541a6d55rbbAC_DEFUN(THREAD_TEST, [
999427a131afb3fc1c14ab092119bdae541a6d55rbbAC_TRY_RUN( [
999427a131afb3fc1c14ab092119bdae541a6d55rbbvoid *thread_routine(void *data) {
999427a131afb3fc1c14ab092119bdae541a6d55rbb return data;
999427a131afb3fc1c14ab092119bdae541a6d55rbbint main() {
999427a131afb3fc1c14ab092119bdae541a6d55rbb pthread_t thd;
999427a131afb3fc1c14ab092119bdae541a6d55rbb int data = 1;
999427a131afb3fc1c14ab092119bdae541a6d55rbb return pthread_create(&thd, NULL, thread_routine, &data);
572157c17a74e41b43712abda7a7e3c8f1bbd4b1rbb apache_threads_working="yes"
572157c17a74e41b43712abda7a7e3c8f1bbd4b1rbb apache_threads_working="no"
572157c17a74e41b43712abda7a7e3c8f1bbd4b1rbb ], apache_threads_working="no" ) ] )
999427a131afb3fc1c14ab092119bdae541a6d55rbbdefine(APACHE_CHECK_THREADS, [dnl
999427a131afb3fc1c14ab092119bdae541a6d55rbb cflags_orig="$CFLAGS"
999427a131afb3fc1c14ab092119bdae541a6d55rbb ldflags_orig="$LDFLAGS"
999427a131afb3fc1c14ab092119bdae541a6d55rbb for test_cflag in $1; do
999427a131afb3fc1c14ab092119bdae541a6d55rbb for test_ldflag in $2; do
999427a131afb3fc1c14ab092119bdae541a6d55rbb CFLAGS="$test_cflag $cflags_orig"
999427a131afb3fc1c14ab092119bdae541a6d55rbb LDFLAGS="$test_ldflag $ldflags_orig"
999427a131afb3fc1c14ab092119bdae541a6d55rbb THREAD_TEST()
572157c17a74e41b43712abda7a7e3c8f1bbd4b1rbb if test "$apache_threads_working" = "yes"; then
572157c17a74e41b43712abda7a7e3c8f1bbd4b1rbb if test "$apache_threads_working" = "yes"; then
999427a131afb3fc1c14ab092119bdae541a6d55rbb threads_result="Updating CFLAGS and LDFLAGS"
999427a131afb3fc1c14ab092119bdae541a6d55rbb threads_result="Threads not found"
0f47ee3ae8ede113e11f21bf34f3b11161d3e61drasmusdnl APACHE_INADDR_NONE
0f47ee3ae8ede113e11f21bf34f3b11161d3e61drasmusdnl checks for missing INADDR_NONE macro
0f47ee3ae8ede113e11f21bf34f3b11161d3e61drasmusAC_DEFUN(APACHE_INADDR_NONE,[
0f47ee3ae8ede113e11f21bf34f3b11161d3e61drasmus AC_TRY_COMPILE([
0f47ee3ae8ede113e11f21bf34f3b11161d3e61drasmusunsigned long foo = INADDR_NONE;
0f47ee3ae8ede113e11f21bf34f3b11161d3e61drasmus HAVE_INADDR_NONE=yes
0f47ee3ae8ede113e11f21bf34f3b11161d3e61drasmus HAVE_INADDR_NONE=no
0f47ee3ae8ede113e11f21bf34f3b11161d3e61drasmus AC_DEFINE(INADDR_NONE, ((unsigned int) 0xffffffff), [ ])
0f47ee3ae8ede113e11f21bf34f3b11161d3e61drasmus AC_MSG_CHECKING(whether system defines INADDR_NONE)
0f47ee3ae8ede113e11f21bf34f3b11161d3e61drasmus AC_MSG_RESULT($HAVE_INADDR_NONE)