diff options
Diffstat (limited to 'rubbos/app/tomcat-connectors-1.2.32-src/native/configure.in')
-rw-r--r-- | rubbos/app/tomcat-connectors-1.2.32-src/native/configure.in | 852 |
1 files changed, 852 insertions, 0 deletions
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/native/configure.in b/rubbos/app/tomcat-connectors-1.2.32-src/native/configure.in new file mode 100644 index 00000000..7cbe5e3f --- /dev/null +++ b/rubbos/app/tomcat-connectors-1.2.32-src/native/configure.in @@ -0,0 +1,852 @@ +dnl Licensed to the Apache Software Foundation (ASF) under one or more +dnl contributor license agreements. See the NOTICE file distributed with +dnl this work for additional information regarding copyright ownership. +dnl The ASF licenses this file to You under the Apache License, Version 2.0 +dnl (the "License"); you may not use this file except in compliance with +dnl the License. You may obtain a copy of the License at +dnl +dnl http://www.apache.org/licenses/LICENSE-2.0 +dnl +dnl Unless required by applicable law or agreed to in writing, software +dnl distributed under the License is distributed on an "AS IS" BASIS, +dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +dnl See the License for the specific language governing permissions and +dnl limitations under the License. + +dnl +dnl Process this file with autoconf to produce a configure script +dnl +AC_REVISION($Id: configure.in 1054607 2011-01-03 13:13:49Z rjung $)dnl + +AC_PREREQ(2.13) +AC_INIT(common/jk_worker.h) +AC_CONFIG_HEADER(common/config.h) +AC_CONFIG_AUX_DIR(scripts/build/unix) +AC_CANONICAL_SYSTEM + +dnl package and version. (synchronization with common/jk_version.h ?) +PACKAGE=mod_jk +VERSION=1.2.32 + +AM_INIT_AUTOMAKE(${PACKAGE}, ${VERSION}) + +dnl +dnl Include our own M4 macros +dnl +sinclude(scripts/build/jk_common.m4) + +dnl Generate ./config.nice for reproducing runs of configure +dnl +JK_CONFIG_NICE(config.nice) + +AC_PATH_PROG(TEST,test,$PATH)dnl +AC_SUBST(TEST) + +AC_PATH_PROG(RM,rm,$PATH)dnl +AC_SUBST(RM) + +AC_PATH_PROG(GREP,grep,$PATH)dnl +AC_SUBST(GREP) + +AC_PATH_PROG(ECHO,echo,echo,$PATH)dnl +AC_SUBST(ECHO) + +AC_PATH_PROG(SED,sed,$PATH)dnl +AC_SUBST(SED) + +AC_PATH_PROG(CP,cp,$PATH)dnl +AC_SUBST(CP) + +AC_PATH_PROG(MKDIR,mkdir,$PATH)dnl +AC_SUBST(MKDIR) + +dnl Mark that we have generated config.h +CFLAGS="${CFLAGS} -DHAVE_CONFIG_H" +AC_SUBST(CFLAGS) + +APACHE_CONFIG_VARS=`pwd`/scripts/build/config_vars.mk +WEBSERVER="" +apache_dir="" +apache_include="" +APXS="apxs" +AC_ARG_WITH(apxs, +[[ --with-apxs[=FILE] Build shared Apache module. + FILE is the optional pathname to the apxs tool; + defaults to finding apxs in your PATH.]], +[ + case "${withval}" in + y | yes | true) find_apxs=true ;; + n | no | false) find_apxs= ;; + *) find_apxs=${withval} ;; + esac + + if ${TEST} ${find_apxs} ; then + AC_MSG_RESULT([need to check for Perl first, apxs depends on it...]) + AC_PATH_PROG(PERL,perl,$PATH)dnl + + if ${TEST} ${find_apxs} = true ; then + AC_PATH_PROG(APXS,apxs,$PATH)dnl + else + APXS=${find_apxs} + fi + + if ${TEST} -n "${APXS}" ; then + dnl Seems that we have it, but have to check if it is OK first + if ${TEST} ! -x "${APXS}" ; then + AC_MSG_ERROR(Invalid location for apxs: '${APXS}') + fi + + ${APXS} -q PREFIX >/dev/null 2>/dev/null || apxs_support=false + + if ${TEST} "${apxs_support}" = "false" ; then + AC_MSG_RESULT(could not find ${APXS}) + AC_MSG_ERROR(You must specify a valid --with-apxs path) + fi + + dnl apache_dir and apache_include are also needed. + apache_dir=`$APXS -q PREFIX` + apache_include="-I`$APXS -q INCLUDEDIR`" + + dnl test apache version + APA=`${GREP} STANDARD20 ${APXS}` + if ${TEST} -z "$APA" ; then + WEBSERVER="apache-1.3" + APXSCC="`$APXS -q CC`" + APXSCFLAGS="`$APXS -q CFLAGS` -DJK_PREFORK" + APXSCPPFLAGS="" + APXSLDFLAGS="`$APXS -q LDFLAGS_SHLIB`" + else + WEBSERVER="apache-2.0" + APRINCLUDEDIR="" + INCTEMP="`$APXS -q APR_INCLUDEDIR` `$APXS -q APU_INCLUDEDIR`" + for INC in ${INCTEMP}; do + APRINCLUDEDIR="${APRINCLUDEDIR} -I${INC}" + done + AC_MSG_RESULT([APRINCLUDEDIR is $APRINCLUDEDIR]) + APXSCC="`$APXS -q CC`" + APXSCFLAGS="`${APXS} -q CFLAGS` `${APXS} -q EXTRA_CFLAGS` -DHAVE_APR ${APRINCLUDEDIR}" + APXSCPPFLAGS="`${APXS} -q EXTRA_CPPFLAGS`" + APXSLDFLAGS="`$APXS -q LDFLAGS`" + APACHE_CONFIG_VARS="`${APXS} -q exp_installbuilddir`/config_vars.mk" + LIBTOOL=`$APXS -q LIBTOOL` + fi + AC_MSG_RESULT([building connector for \"$WEBSERVER\"]) + if ${TEST} -z "${CC}" ; then + CC="${APXSCC}" + else + if ${TEST} "${CC}" != "$APXSCC" ; then + WARN_CC=1 + fi + fi + + AC_SUBST(APXS) + fi + fi +], +[ + AC_MSG_RESULT(no apxs given) +]) + +AC_SUBST(APACHE_CONFIG_VARS) + +AC_PROG_CC +AC_PROG_LD + +SAVE_LIBTOOL="$LIBTOOL" + +dnl Not sure what it does, but the libtool manual seems to require this +dnl It should use the native platform dlopen ( if available ) +AC_LIBTOOL_DLOPEN + +dnl AM_PROG_LIBTOOL often causes problems. +dnl I have solved them once using aclocal --acdir=/usr/local/share/aclocal/ +AM_PROG_LIBTOOL + +if ${TEST} -n "${SAVE_LIBTOOL}" ; then + LIBTOOL="$SAVE_LIBTOOL" +fi +AC_MSG_RESULT([LIBTOOL="$LIBTOOL"]) + +AC_SUBST(LIBTOOL) + +dnl ----------------------------- Checks for standard typedefs + +dnl Checks for integer size +AC_CHECK_SIZEOF(char, 1) +AC_CHECK_SIZEOF(int, 4) +AC_CHECK_SIZEOF(long, 4) +AC_CHECK_SIZEOF(short, 2) +AC_CHECK_SIZEOF(long double, 12) +AC_CHECK_SIZEOF(long long, 8) +AC_CHECK_SIZEOF(longlong, 8) + +# Now we need to find what jk_uint32_t (sizeof == 4) will be. +# The first match is our preference. +if test "$ac_cv_sizeof_int" = "4"; then + int32_t_fmt='#define JK_INT32_T_FMT "d"' + uint32_t_fmt='#define JK_UINT32_T_FMT "u"' + uint32_t_hex_fmt='#define JK_UINT32_T_HEX_FMT "x"' + int32_value="int" +elif test "$ac_cv_sizeof_long" = "4"; then + int32_t_fmt='#define JK_INT32_T_FMT "ld"' + uint32_t_fmt='#define JK_UINT32_T_FMT "lu"' + uint32_t_hex_fmt='#define JK_UINT32_T_HEX_FMT "lx"' + int32_value="long" +else + int32_t_fmt='#error could not detect a 32-bit integer type' + uint32_t_fmt='#error could not detect a 32-bit integer type' + uint32_t_hex_fmt='#error could not detect a 32-bit integer type' + AC_ERROR([could not detect a 32-bit integer type]) +fi + +# Now we need to find what jk_uint64_t (sizeof == 8) will be. +# The first match is our preference. +if test "$ac_cv_sizeof_int" = "8"; then + int64_t_fmt='#define JK_INT64_T_FMT "d"' + uint64_t_fmt='#define JK_UINT64_T_FMT "u"' + uint64_t_hex_fmt='#define JK_UINT64_T_HEX_FMT "x"' + int64_value="int" +elif test "$ac_cv_sizeof_long" = "8"; then + int64_t_fmt='#define JK_INT64_T_FMT "ld"' + uint64_t_fmt='#define JK_UINT64_T_FMT "lu"' + uint64_t_hex_fmt='#define JK_UINT64_T_HEX_FMT "lx"' + int64_value="long" +elif test "$ac_cv_sizeof_long_long" = "8"; then + # Linux, Solaris, FreeBSD all support ll with printf. + # BSD 4.4 originated 'q'. Solaris is more popular and + # doesn't support 'q'. Solaris wins. Exceptions can + # go to the OS-dependent section. + int64_t_fmt='#define JK_INT64_T_FMT "lld"' + uint64_t_fmt='#define JK_UINT64_T_FMT "llu"' + uint64_t_hex_fmt='#define JK_UINT64_T_HEX_FMT "llx"' + int64_value="long long" +elif test "$ac_cv_sizeof_long_double" = "8"; then + int64_t_fmt='#define JK_INT64_T_FMT "Ld"' + uint64_t_fmt='#define JK_UINT64_T_FMT "Lu"' + uint64_t_hex_fmt='#define JK_UINT64_T_HEX_FMT "Lx"' + int64_value="long double" +elif test "$ac_cv_sizeof_longlong" = "8"; then + int64_t_fmt='#define JK_INT64_T_FMT "qd"' + uint64_t_fmt='#define JK_UINT64_T_FMT "qu"' + uint64_t_hex_fmt='#define JK_UINT64_T_HEX_FMT "qx"' + int64_value="__int64" +else + int64_t_fmt='#error could not detect a 64-bit integer type' + uint64_t_fmt='#error could not detect a 64-bit integer type' + uint64_t_hex_fmt='#error could not detect a 64-bit integer type' + AC_ERROR([could not detect a 64-bit integer type]) +fi + +JK_CHECK_SIZEOF_EXTENDED([#include <sys/types.h>], pid_t, 8) + +if test "$ac_cv_sizeof_pid_t" = "$ac_cv_sizeof_short"; then + pid_t_fmt='#define JK_PID_T_FMT "hd"' +elif test "$ac_cv_sizeof_pid_t" = "$ac_cv_sizeof_int"; then + pid_t_fmt='#define JK_PID_T_FMT "d"' +elif test "$ac_cv_sizeof_pid_t" = "$ac_cv_sizeof_long"; then + pid_t_fmt='#define JK_PID_T_FMT "ld"' +elif test "$ac_cv_sizeof_pid_t" = "$ac_cv_sizeof_long_long"; then + pid_t_fmt='#define JK_PID_T_FMT JK_INT64_T_FMT' +else + pid_t_fmt='#error Can not determine the proper size for pid_t' +fi + +JK_CHECK_SIZEOF_EXTENDED([#include <pthread.h>], pthread_t, 8) + +if test "$ac_cv_sizeof_pthread_t" = "$ac_cv_sizeof_short"; then + pthread_t_fmt='#define JK_PTHREAD_T_FMT "hu"' + pthread_t_value="short" +elif test "$ac_cv_sizeof_pthread_t" = "$ac_cv_sizeof_int"; then + pthread_t_fmt='#define JK_PTHREAD_T_FMT "u"' + pthread_t_value="int" +elif test "$ac_cv_sizeof_pthread_t" = "$ac_cv_sizeof_long"; then + pthread_t_fmt='#define JK_PTHREAD_T_FMT "lu"' + pthread_t_value="long" +elif test "$ac_cv_sizeof_pthread_t" = "$ac_cv_sizeof_long_long"; then + pthread_t_fmt='#define JK_PTHREAD_T_FMT "llu"' + pthread_t_value="long long" +else + pthread_t_fmt='#error Can not determine the proper size for pthread_t' +fi + +# Basically, we have tried to figure out the correct format strings +# for pid_t which varies between platforms, but we don't always get +# it right. If you find that we don't get it right for your platform, +# you can override our decision below. +case $host in + *-solaris*) + if test "$ac_cv_sizeof_pid_t" = "$ac_cv_sizeof_long"; then + pid_t_fmt='#define JK_PID_T_FMT "ld"' + fi + ;; +esac + +AC_SUBST(int32_value) +AC_SUBST(int32_t_fmt) +AC_SUBST(uint32_t_fmt) +AC_SUBST(uint32_t_hex_fmt) +AC_SUBST(int64_value) +AC_SUBST(int64_t_fmt) +AC_SUBST(uint64_t_fmt) +AC_SUBST(uint64_t_hex_fmt) +AC_SUBST(pid_t_fmt) +AC_SUBST(pthread_t_fmt) +AC_SUBST(pthread_t_value) + +dnl check for snprintf and vsnprintf. +AC_CHECK_FUNC(snprintf, AC_DEFINE(HAVE_SNPRINTF,1,[Have snprintf()])) +AC_CHECK_FUNC(vsnprintf, AC_DEFINE(HAVE_VSNPRINTF,1,[Have vsnprintf()])) +dnl check for flock function. +AC_CHECK_FUNC(flock, AC_DEFINE(HAVE_FLOCK,1,[Have flock()])) + +dnl check for -lsocket library +AC_CHECK_LIB(socket, setsockopt, [LIBS="$LIBS -lsocket"]) + +dnl check for filio.h used on Solaris to define FIONREAD ioctl. +AC_CHECK_HEADERS(sys/filio.h) + +AC_DEFUN([JK_CHECK_SETSOCKOPT], [ +AC_MSG_CHECKING(whether to use $1 with setsockopt()) +AC_TRY_RUN([ +#include <sys/types.h> +#include <sys/socket.h> +#include <sys/time.h> + +int main(void) +{ + int s; + struct timeval tv; + tv.tv_sec = 3; + tv.tv_usec = 0; + +#ifndef $1 + exit(3); +#else + if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) + exit(2); + + /* fails on Solaris 2.6,8,9,10 and some Linuxes because + SO_RCVTIMEO|SO_SNDTIMEO are defined but not implemented */ + if (setsockopt(s, SOL_SOCKET, $1, (const void *)&tv, sizeof(tv)) == -1) + exit(1); + + exit(0); +#endif +} +] +, [ AC_MSG_RESULT([yes]) AC_DEFINE(USE_$1, 1, [Define to use $1 with setsockopt()]) ] +, [ AC_MSG_RESULT([no]) ] +) +])dnl + +dnl check for SO_RCVTIMEO and SO_SNDTIMEO +JK_CHECK_SETSOCKOPT(SO_RCVTIMEO) +JK_CHECK_SETSOCKOPT(SO_SNDTIMEO) + +AC_DEFUN([JK_CHECK_SOCKOPT], [ +AC_MSG_CHECKING(whether to use $1 with socket()) +AC_TRY_RUN([ +#include <sys/types.h> +#include <sys/socket.h> +#include <sys/time.h> + +int main(void) +{ + int s; + +#ifndef $1 + exit(3); +#else + if ((s = socket(AF_INET, SOCK_STREAM | $1, 0)) == -1) + exit(2); + + exit(0); +#endif +} +] +, [ AC_MSG_RESULT([yes]) AC_DEFINE(USE_$1, 1, [Define to use $1 with socket()]) ] +, [ AC_MSG_RESULT([no]) ] +) +])dnl + +dnl check for SOCK_CLOEXEC +JK_CHECK_SOCKOPT(SOCK_CLOEXEC) + +dnl check for poll.h header +AC_CHECK_HEADERS(poll.h) +dnl check for poll function +AC_CHECK_FUNC(poll, AC_DEFINE(HAVE_POLL,1,[Have poll()])) + +dnl Apache-2.0 needs the os subdirectory to include os.h +dnl this include is copy from os/config.m4 +sinclude(../support/os_apache.m4) + +dnl it is copied from the configure of JServ ;=) +dnl and adapted. + +apache_dir_is_src="false" +AC_ARG_WITH(apache, +[AS_HELP_STRING([--with-apache=DIR], +[Build static Apache module. DIR is the pathname +to the Apache source directory.])], +[ + if ${TEST} ! -z "$WEBSERVER" ; then + AC_MSG_ERROR([Sorry cannot use --with-apxs=${APXS} and --with-apache=${withval} together, please choose one of both]) + fi + + AC_MSG_CHECKING([for Apache source directory (assume static build)]) + + if ${TEST} -n "${withval}" && ${TEST} -d "${withval}" ; then + if ${TEST} -d "${withval}/src" ; then + # handle the case where people use relative paths to + # the apache source directory by pre-pending the current + # build directory to the path. there are probably + # errors with this if configure is run while in a + # different directory than what you are in at the time + if ${TEST} -n "`${ECHO} ${withval}|${GREP} \"^\.\.\"`" ; then + withval=`pwd`/${withval} + fi + + apache_dir=${withval} + apache_dir_is_src="true" + AC_MSG_RESULT(${apache_dir}) + + AC_MSG_CHECKING(for Apache include directory) + + if ${TEST} -d "${withval}/src/include" ; then + # read osdir from the existing apache. + osdir=`${GREP} '^OSDIR=' ${withval}/src/Makefile.config | ${SED} -e 's:^OSDIR=.*/os:os:'` + if ${TEST} -z "${osdir}" ; then + osdir=os/unix + fi + apache_include="-I${withval}/src/include \ + -I${withval}/src/${osdir}" + WEBSERVER="apache-1.3" + LIB_JK_TYPE=mod_jk.a + CFLAGS="${CFLAGS} -DJK_PREFORK" + AC_MSG_RESULT([${apache_include}, version 1.3]) + else + AC_MSG_ERROR([Sorry Apache 1.2.x is no longer supported.]) + fi + else + if ${TEST} -d "${withval}/include" ; then + # osdir for Apache20. + WEBSERVER="apache-2.0" + apache_dir=${withval} + apache_dir_is_src="true" + LIB_JK_TYPE=lib_jk.la + apache_include="-I${withval}/include -I${withval}/srclib/apr/include -I${withval}/os/${OS_APACHE_DIR} -I${withval}/srclib/apr-util/include" + AC_MSG_RESULT(${apache_dir}) + fi + fi + fi + + dnl Make sure we have a result. + if ${TEST} -z "$WEBSERVER" ; then + AC_MSG_ERROR([Directory $apache_dir is not a valid Apache source distribution]) + fi + +# VT: Now, which one I'm supposed to use? Let's figure it out later + + configure_apache=true + configure_src=true + + AC_MSG_RESULT([building connector for \"$WEBSERVER\"]) +], +[ + AC_MSG_RESULT(no apache given) +]) + +AC_SUBST(apache_include) +APACHE_DIR=${apache_dir} +AC_SUBST(APACHE_DIR) + +AC_ARG_ENABLE(netscape, +[AS_HELP_STRING([--enable-netscape=DIR],[Build Netscape/iPlanet/SunONE nsapi redirector plugin])], +[ + if ${TEST} ! -z "$WEBSERVER" ; then + AC_MSG_ERROR([Sorry cannot use --with-apxs=${APXS} or --with-apache=${withval} with --with-netscape, please choose one or the other.]) + fi + + WEBSERVER="netscape" + + AC_MSG_RESULT([building connector for \"$WEBSERVER\"]) +], +[ + AC_MSG_RESULT(no netscape given) +]) + +dnl Check for enable-jni +JK_JNI_WORKER="" +AC_ARG_ENABLE(jni, +[AS_HELP_STRING([--enable-jni],[DEPRECATED: Build jni_connect.so and enable jni_worker])], +[ + AC_MSG_RESULT(jni enable (need JDK)) + CFLAGS="${CFLAGS} -DHAVE_JNI" + JK_JNI_WORKER="\${JK}jk_jni_worker\${OEXT}" + WARN_JNI=1 +])dnl +AC_SUBST(JK_JNI_WORKER) + +dnl CFLAGS for EAPI mod_ssl (Apache 1.3) +dnl it also allows the CFLAGS environment variable. +CFLAGS="${CFLAGS}" +AC_ARG_ENABLE(EAPI, +[AS_HELP_STRING([--enable-EAPI],[Enable EAPI support (mod_ssl, Apache 1.3)])], +[ +case "${enableval}" in + y | Y | YES | yes | TRUE | true ) + CFLAGS="${CFLAGS} -DEAPI" + AC_MSG_RESULT([...Enabling EAPI Support...]) + ;; +esac +]) +AC_SUBST(CFLAGS) + +dnl CFLAGS for maintainer mode +dnl it also allows the CFLAGS environment variable. +CFLAGS="${CFLAGS}" +AC_ARG_ENABLE(maintainer-mode, +[AS_HELP_STRING([--enable-maintainer-mode],[Turn on debugging and compile time warnings])], +[ +case "${enableval}" in + y | Y | YES | yes | TRUE | true ) + CFLAGS="${CFLAGS} -DDEBUG -Wall" + AC_MSG_RESULT([...Enabling Maintainer mode...]) + ;; +esac +]) +AC_SUBST(CFLAGS) + +dnl CFLAGS for prefork mode +dnl it also allows the CFLAGS environment variable. +CFLAGS="${CFLAGS}" +AC_ARG_ENABLE(prefork, +[AS_HELP_STRING([--enable-prefork],[Turn on prefork web server mode (single-threaded)])], +[ +case "${enableval}" in + y | Y | YES | yes | TRUE | true ) + CFLAGS="${CFLAGS} -DJK_PREFORK" + AC_MSG_RESULT([...Enabling Prefork mode...]) + ;; +esac +]) +AC_SUBST(CFLAGS) + +dnl CFLAGS for stripping TRACE logs +dnl it also allows the CFLAGS environment variable. +CFLAGS="${CFLAGS}" +AC_ARG_ENABLE(trace, +[AS_HELP_STRING([--disable-trace],[Exclude trace log code from compilation])], +[ +case "${enableval}" in + no ) + CFLAGS="${CFLAGS} -DJK_PRODUCTION" + AC_MSG_RESULT([...Exclude trace log code...]) + ;; +esac +]) +AC_SUBST(CFLAGS) + +dnl CFLAGS for building against recent httpd but without +dnl using httpd API functions, which didn't exist in the first +dnl production releases. This ensures, that the resulting +dnl module binary is compatible with older httpd releases. +dnl Until now only relevant for httpd 2.2.x with x >= 4. +CFLAGS="${CFLAGS}" +AC_ARG_ENABLE(api-compatibility, +[AS_HELP_STRING([--enable-api-compatibility], +[Only use httpd API functions available in all production releases. +This improves binary compatibility of module builds with httpd releases +older than the release against we build (only between minor versions).])], +[ +case "${enableval}" in + y | Y | YES | yes | TRUE | true ) + CFLAGS="${CFLAGS} -DAPI_COMPATIBILITY" + AC_MSG_RESULT([...Only using compatible httpd API...]) + ;; +esac +]) +AC_SUBST(CFLAGS) + +dnl CFLAGS for shared memory lock mode +dnl it also allows the CFLAGS environment variable. +CFLAGS="${CFLAGS}" +AC_ARG_ENABLE(flock, +[AS_HELP_STRING([--enable-flock],[Turn on flock for shared locking if present])], +[ +case "${enableval}" in + y | Y | YES | yes | TRUE | true ) + CFLAGS="${CFLAGS} -DJK_USE_FLOCK" + AC_MSG_RESULT([...Enabling flock() shared memory locking...]) + ;; +esac +]) +AC_SUBST(CFLAGS) + +dnl the APXSCFLAGS is given by apxs to the C compiler +if ${TEST} -n "${CFLAGS}" ; then + APXSCFLAGS="${APXSCFLAGS} ${CFLAGS}" +fi +AC_SUBST(APXSCFLAGS) +AC_SUBST(APXSCPPFLAGS) + +dnl the APXSLDFLAGS is given to the linker (for APRVARS). +if ${TEST} -n "${LDFLAGS}" ; then + APXSLDFLAGS="${APXSLDFLAGS} ${LDFLAGS}" +fi + +dnl Prefix all LDFLAGS with "-Wl,", +dnl because we pass them to libtool +JK_PREFIX_IF_MISSING(APXSLDFLAGS, [-Wl,]) + +AC_SUBST(APXSLDFLAGS) + +if ${TEST} -n "${JK_JNI_WORKER}" ; then + +WEBSERVER="jni ${WEBSERVER}" + +dnl Find the JDK +dnl Results go in JAVA_HOME +dnl Also sets JAVA_PLATFORM to 1 for 1.1 and to 2 for 1.2 + +AC_MSG_CHECKING([for JDK location (please wait)]) + +dnl The order is: --with-java-home first, environment second, guessed value third. + +dnl This is a safe default. Could screw up on the security features, but +dnl oh well, this is what --with-java2 is for. + +if ${TEST} -n "${JAVA_HOME}" ; then + JAVA_HOME_ENV="${JAVA_HOME}" +else + JAVA_HOME_ENV="" +fi +JAVA_HOME="" +JAVA_PLATFORM="1" + +AC_ARG_WITH(java-home, +[AS_HELP_STRING([--with-java-home=DIR],[DEPRECATED: Where is your JDK root directory])], +[ + + # This stuff works if the command line parameter --with-java-home was + # specified, so it takes priority rightfully. + + JAVA_HOME=${withval} + + if ${TEST} ! -d "${JAVA_HOME}" ; then + AC_MSG_ERROR(Not a directory: ${JAVA_HOME}) + fi + + AC_MSG_RESULT(${JAVA_HOME}) + +], +[ + # This works if the parameter was NOT specified, so it's a good time + # to see what the enviroment says. + + # Since Sun uses JAVA_HOME a lot, we check it first and ignore the + # JAVA_HOME, otherwise just use whatever JAVA_HOME was specified. + + if ${TEST} -n "${JAVA_HOME_ENV}" ; then + + JAVA_HOME=${JAVA_HOME_ENV} + AC_MSG_RESULT(${JAVA_HOME_ENV} from environment) + fi +]) + +if ${TEST} -z "${JAVA_HOME}" ; then + + # Oh well, nobody set neither JAVA_HOME nor JAVA_HOME, have to guess + + # The following code is based on the code submitted by Henner Zeller + # for ${srcdir}/src/scripts/package/rpm/ApacheJServ.spec + + # Two variables will be set as a result: + # + # JAVA_HOME + # JAVA_PLATFORM + AC_MSG_CHECKING([Try to guess JDK location]) + + + for JAVA_PREFIX in \ + /usr/local \ + /usr/local/lib \ + /usr \ + /usr/lib \ + /opt \ + / + do + for JAVA_PLATFORM in 3 2 1 ; + do + + for subversion in .9 .8 .7 .6 .5 .4 .3 .2 .1 "" ; + do + for VARIANT in IBMJava2- java java- jdk jdk-; + do + GUESS="${JAVA_PREFIX}/${VARIANT}1.${JAVA_PLATFORM}${subversion}" +dnl AC_MSG_CHECKING([${GUESS}]) + if ${TEST} -d "${GUESS}/bin" \ + && ${TEST} -d "${GUESS}/include" ; then + + JAVA_HOME="${GUESS}" + AC_MSG_RESULT([${GUESS}]) + break + fi + + done + + if ${TEST} -n "${JAVA_HOME}" ; then + break; + fi + + done + + if ${TEST} -n "${JAVA_HOME}" ; then + break; + fi + + done + + if ${TEST} -n "${JAVA_HOME}" ; then + break; + fi + + done + + if ${TEST} -n "${JAVA_HOME}" ; then + + dnl Just to have the messages looking uniformly + + AC_MSG_CHECKING(Java platform) + AC_MSG_RESULT([guess ${JAVA_PLATFORM}]) + fi + + +else + + AC_MSG_CHECKING(Java platform) + + AC_ARG_WITH(java-platform, + [AS_HELP_STRING([--with-java-platform=VAL], + [DEPRECATED: Force the Java platform + (value is 1 for 1.1.x or 2 for 1.2.x or greater)])], + [ + dnl This requires a bit of tweaking to be handled properly, but + dnl the default is good enough + + JAVA_PLATFORM="2" + ]) + + AC_MSG_RESULT(forced Java ${JAVA_PLATFORM}) + +fi +dnl end of JServ ;=) + +dnl test if --enable-jni give but not valid JAVA_HOME +if ${TEST} -z "${JAVA_HOME}" ; then + AC_MSG_ERROR([JDK home not found, please specify one with --with-java-home option (run ./configure --help for more options)]) +fi + +dnl guess OS = OS_TYPE for jni_md.h +OS="" +AC_ARG_WITH(os-type, +[AS_HELP_STRING([--with-os-type=SUBDIR],[DEPRECATED: Where is your JDK os-type subdirectory])], +[ + OS=${withval} + + if ${TEST} ! -d "${JAVA_HOME}/${OS}" ; then + AC_MSG_ERROR(Not a directory: ${JAVA_HOME}/${OS}) + fi +], +[ + AC_MSG_CHECKING(os_type directory) + if ${TEST} -f ${JAVA_HOME}/include/jni_md.h; then + OS="" + else + for f in ${JAVA_HOME}/include/*/jni_md.h; do + if ${TEST} -f $f; then + OS=`dirname ${f}` + OS=`basename ${OS}` + echo " ${OS}" + fi + done + if ${TEST} -z "${OS}"; then + AC_MSG_RESULT(Cannot find jni_md.h in ${JAVA_HOME}/${OS}) + AC_MSG_ERROR(You should retry --with-os-type=SUBDIR) + fi + fi +]) +fi +AC_SUBST(JAVA_HOME) +AC_SUBST(OS) + + +dnl Check that a WEBSERVER has been given +if ${TEST} -z "$WEBSERVER" ; then + AC_MSG_ERROR(Cannot find the WebServer) +fi + +dnl Add common to subdir list +WEBSERVER="common ${WEBSERVER}" + +AC_SUBST(WEBSERVER) + +AM_CONDITIONAL(MAKE_DYNAMIC_APACHE, ${TEST} "${apache_dir_is_src}" = "false") + +if ${TEST} "${apache_dir_is_src}" = "false" ; then + dnl normal apxs handling + APACHE20_OEXT=.c + LIB_JK_TYPE=mod_jk.so + INSTALL_TYPE=install_dynamic +else + dnl install static library in apache sources. + APACHE20_OEXT=.lo + INSTALL_TYPE=install_static +fi +AC_SUBST(APACHE20_OEXT) +AC_SUBST(LIB_JK_TYPE) +AC_SUBST(INSTALL_TYPE) + +dnl automake needs the path it does not work with $WEBSERVER +dnl that why useless Makefiles are build. +AC_OUTPUT([ + Makefile + apache-1.3/Makefile + apache-1.3/Makefile.apxs + apache-2.0/Makefile + apache-2.0/Makefile.apxs + common/Makefile + common/list.mk + common/jk_types.h + jni/Makefile +]) + +if ${TEST} -n "${WARN_JNI}" ; then + AC_MSG_WARN([===========================================]) + AC_MSG_WARN([You have used one of the following options:]) + AC_MSG_WARN([ --enable-jni]) + AC_MSG_WARN([ --with-java-home]) + AC_MSG_WARN([ --with-java-platform]) + AC_MSG_WARN([ --with-os-type]) + AC_MSG_WARN([These options are only necessary if]) + AC_MSG_WARN([you want to use a worker of type jni.]) + AC_MSG_WARN([These workers have been deprecated.]) + AC_MSG_WARN([They do not work and will be removed from]) + AC_MSG_WARN([a future release]) + AC_MSG_WARN([===========================================]) +fi + +if ${TEST} -n "${WARN_CC}" ; then + AC_MSG_WARN([===========================================]) + AC_MSG_WARN([Using CC from environment:]) + AC_MSG_WARN([ CC="$CC"]) + AC_MSG_WARN([instead of CC from apxs:]) + AC_MSG_WARN([ CC="$APXSCC"]) + AC_MSG_WARN([If "make" throws an error of the form]) + AC_MSG_WARN([ "libtool: compile: unable to infer tagged configuration"]) + AC_MSG_WARN([ "libtool: compile: specify a tag with `--tag'"]) + AC_MSG_WARN([try running configure without setting CC,]) + AC_MSG_WARN([or at least CC should start with "$APXSCC"]) + AC_MSG_WARN([===========================================]) +fi |