You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by hg...@apache.org on 2002/05/07 17:55:19 UTC

cvs commit: jakarta-tomcat-connectors/jk/native2 buildconf.sh configure.in

hgomez      02/05/07 08:55:19

  Added:       jk/native2 buildconf.sh configure.in
  Log:
  First autoconf stuff, largely grabbed from the one
  in native
  
  Revision  Changes    Path
  1.1                  jakarta-tomcat-connectors/jk/native2/buildconf.sh
  
  Index: buildconf.sh
  ===================================================================
  #!/bin/sh
  
  echo "libtoolize --force --automake"
  libtoolize --force --automake
  echo "automake -a --foreign -i"
  automake -a --foreign -i
  echo "aclocal"
  #aclocal --acdir=`aclocal --print-ac-dir`
  #aclocal --acdir=/usr/local/share/aclocal
  aclocal
  echo "autoconf"
  autoconf
  
  
  
  1.1                  jakarta-tomcat-connectors/jk/native2/configure.in
  
  Index: configure.in
  ===================================================================
  dnl
  dnl Process this file with autoconf to produce a configure script
  dnl
  AC_REVISION($Id: configure.in,v 1.1 2002/05/07 15:55:18 hgomez Exp $)dnl
  
  AC_PREREQ(2.13)
  AC_INIT(common/jk_config.c)
  AC_CONFIG_AUX_DIR(scripts/build/unix)
  
  dnl package and version. (synchronization with common/jk_version.h ?)
  PACKAGE=mod_jk
  VERSION=1.2.0
  
  AM_INIT_AUTOMAKE(${PACKAGE}, ${VERSION})
  
  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
  
  AC_PROG_CC
  
  AC_PROG_LD
  
  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)
  
  JK_POOL_APR=""
  JK_CHANNEL_APR_SOCKET=""
  HAS_APR=""
  
  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=false ;;
          *) find_apxs=false ;;
      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} ; then
              APXS=${withval}
          else
              AC_PATH_PROG(APXS,apxs,$PATH)dnl
          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="server/apache13"
                  RWEBSERVER="apache-1.3"
              else
                  WEBSERVER="server/apache2"
                  RWEBSERVER="apache-2.0"
                  APACHE_CONFIG_VARS=${apache_dir}/build/config_vars.mk
                  JK_CHANNEL_APR_SOCKET="\${JK}jk_channel_apr_socket\${OEXT}"
                  JK_POOL_APR="\${JK}jk_pool_apr\${OEXT}"
                  HAS_APR="-DHAS_APR"
              fi
              AC_MSG_RESULT([building connector for \"$RWEBSERVER\"])
      
              AC_SUBST(APXS)
          fi
      fi
  ],
  [
  	AC_MSG_RESULT(no apxs given)
  ])
  AC_SUBST(APACHE_CONFIG_VARS)
  
  dnl Apache-2.0 needs the os subdirectory to include os.h
  dnl this include is copy from os/config.m4
  sinclude(../../common/build/os_apache.m4)
  
  dnl it is copied from the configure of JServ ;=)
  dnl and adapted. 
  
  apache_dir_is_src="false"
  AC_ARG_WITH(apache,
  [  --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} togother, 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="server/apache13"
                 RWEBSERVER="apache-1.3"
                 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="server/apache2"
                RWEBSERVER="apache-2.0"
                apache_dir=${withval}
                apache_dir_is_src="true"
                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})
                JK_CHANNEL_APR_SOCKET="\${JK}jk_channel_apr_socket\${OEXT}"
                JK_POOL_APR="\${JK}jk_pool_apr\${OEXT}"
                HAS_APR="-DHAS_APR"
             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)
  
  dnl Check for enable-jni
  JK_JNI_WORKER=""
  AC_ARG_ENABLE(jni,
  [  --enable-jni     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}"
  ])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,
  [  --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 the APXSCFLAGS is given by apxs to the C compiler
  dnl the APXSLDFLAGS is given to the linker (for APRVARS).
  APXSLDFLAGS=""
  APXSCFLAGS=""
  if ${TEST} -n "${CFLAGS}" ; then
  	APXSCFLAGS="${CFLAGS}"
  fi
  dnl the APXSLDFLAGS is normaly empty but APXSCFLAGS is not.
  if ${TEST} -n "${LDFLAGS}" ; then
  	APXSLDFLAGS="-Wl,${LDFLAGS}"
  fi
  AC_SUBST(APXSCFLAGS)
  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,
  [  --with-java-home=DIR     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,
          [  --with-java-platform=VAL Force the Java platorm
                            (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,
  [  --with-os-type[=SUBDIR]     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 ???? 
  	APACHE20_OEXT=.c
  	LIB_JK_TYPE=mod_jk.so
  	INSTALL_TYPE=install_dynamic
  else
  	APACHE20_OEXT=.lo
  	LIB_JK_TYPE=lib_jk.la
  	INSTALL_TYPE=install_static
  fi
  AC_SUBST(APACHE20_OEXT)
  AC_SUBST(LIB_JK_TYPE)
  AC_SUBST(INSTALL_TYPE)
  
  AC_SUBST(JK_CHANNEL_APR_SOCKET)
  AC_SUBST(JK_POOL_APR)
  AC_SUBST(HAS_APR)
  
  dnl automake needs the path it does not work with $WEBSERVER
  dnl that why useless Makefiles are build.
  AC_OUTPUT([
  	Makefile
  	server/apache13/Makefile
  	server/apache13/Makefile.apxs
  	server/apache2/Makefile
  	server/apache2/Makefile.apxs
  	common/Makefile
  	common/list.mk
  	jni/Makefile
  	])
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>