You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by jf...@apache.org on 2001/06/05 12:27:59 UTC

cvs commit: jakarta-tomcat-connectors/jk/src/native/scripts/build rules.mk

jfclere     01/06/05 03:27:58

  Modified:    jk/src/native configure.in
  Added:       jk/src/native Makefile.am
               jk/src/native/apache-1.3 Makefile.am Makefile.apxs.in
                        Makefile.libdir Makefile.tmpl libjk.module list.mk
               jk/src/native/common Makefile.in
               jk/src/native/scripts/build rules.mk
  Log:
  Add support for staticly linked mod_jk for Apache-1.3.
  
  Revision  Changes    Path
  1.3       +149 -1    jakarta-tomcat-connectors/jk/src/native/configure.in
  
  Index: configure.in
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/src/native/configure.in,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- configure.in	2001/05/18 14:31:24	1.2
  +++ configure.in	2001/06/05 10:27:47	1.3
  @@ -1,19 +1,52 @@
   dnl
   dnl Process this file with autoconf to produce a configure script
   dnl
  +AC_REVISION($id$)dnl
   
   AC_PREREQ(2.13)
   AC_INIT(common/jk_ajp13.h)
  +AC_CONFIG_AUX_DIR(scripts/build/unix)
   
  +PACKAGE=mod_jk
  +VERSION=0.0.0
  +AC_SUBST(PACKAGE)
  +AC_SUBST(VERSION)
  +
  +AM_INIT_AUTOMAKE(${PACKAGE}, ${VERSION})
  +
  +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)
  +
   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
  @@ -61,6 +94,10 @@
               AC_MSG_RESULT([building connector for \"$WEBSERVER\"])
       
               AC_SUBST(APXS)
  +
  +            dnl apache_dir and apache_include are also needed.
  +	    apache_dir=`$APXS -q PREFIX`
  +	    apache_include="-I`$APXS -q INCLUDEDIR`"
           fi
       fi
   ],
  @@ -71,6 +108,107 @@
   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="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="apache-2.0"
  +              apache_dir=${withval}
  +              apache_dir_is_src="true"
  +              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)
  +
  +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)
  +
   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
  @@ -251,9 +389,19 @@
   	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")
  +
  +dnl automake needs the path it does not work with $WEBSERVER
  +dnl that why useless Makefiles are build.
   AC_OUTPUT([
   	Makefile
  -	$WEBSERVER/Makefile
  +	apache-1.3/Makefile
  +	apache-1.3/Makefile.apxs
  +	apache-2.0/Makefile
  +	common/Makefile
   	])
  
  
  
  1.1                  jakarta-tomcat-connectors/jk/src/native/Makefile.am
  
  Index: Makefile.am
  ===================================================================
  #
  # Tell automake what it should do
  AUTOMAKE_OPTIONS = foreign
  MAINTAINERCLEANFILES=config.cache config.status config.log \
  Makefile.in configure
  
  SUBDIRS = @WEBSERVER@
  
  all:
  	target="all"; \
  	list='$(SUBDIRS)'; \
  	for i in $$list; do \
  	    echo "Making $$target in $$i"; \
  	    if test "$$i" != "."; then \
  	       (cd $$i && $(MAKE) $$target) || exit 1; \
  	    fi; \
  	done;
  
  
  
  1.1                  jakarta-tomcat-connectors/jk/src/native/apache-1.3/Makefile.am
  
  Index: Makefile.am
  ===================================================================
  ## configure should make the Makefile out of this file.
  
  APXS=@APXS@
  OS=@OS@
  JAVA_HOME=@JAVA_HOME@
  CP=@CP@
  APACHE_DIR=@APACHE_DIR@
  MKDIR=@MKDIR@
  
  APACHE_FILES = Makefile.tmpl Makefile.libdir libjk.module
  
  JK=../common
  JK_INCL=-DUSE_APACHE_MD5 -I ${JK}
  JAVA_INCL=-I ${JAVA_HOME}/include -I ${JAVA_HOME}/include/${OS}
  JAVA_LIB=-L ${JAVA_HOME}/jre/lib/${ARCH} -L ${JAVA_HOME}/lib/${ARCH}/native_threads
  AM_CFLAGS=@apache_include@ -I../common
  
  include list.mk
  
  if MAKE_DYNAMIC_APACHE
  
  OEXT=.lo
  
  lib_LTLIBRARIES = libjk.la
  libjk_la_SOURCES = mod_jk.c
  libjk_la_LIBADD = $(APACHE_OBJECTS)
  
  else
  
  OEXT=.o
  
  noinst_LIBRARIES = libjk.a
  libjk_a_SOURCES = mod_jk.c
  libjk_a_LIBADD = $(APACHE_OBJECTS)
  
  install-data-local:
  	@echo ""
  	@echo "Copying files to Apache Modules Directory..."
  	-${MKDIR} ${APACHE_DIR}/src/modules/jk
  	${CP} ${APACHE_FILES} ${APACHE_DIR}/src/modules/jk
  	${CP} ${noinst_LIBRARIES} ${APACHE_DIR}/src/modules/jk
  	@echo ""
  	@echo "Please be sure to re-compile Apache..."
  	@echo ""
  	@echo "cd ${APACHE_DIR}"
  	@echo "./config-status --activate-module=src/modules/jk/libjk.a"
  	@echo "make"
  	@echo ""
  endif
  
  clean:
  	-rm *.o *.so *.a
  
  
  
  1.1                  jakarta-tomcat-connectors/jk/src/native/apache-1.3/Makefile.apxs.in
  
  Index: Makefile.apxs.in
  ===================================================================
  ## configure should make the Makefile out of this file.
  
  APXS=@APXS@
  OS=@OS@
  JAVA_HOME=@JAVA_HOME@
  APXSLDFLAGS=@APXSLDFLAGS@
  APXSCFLAGS=@APXSCFLAGS@
  
  JK=../common
  JK_INCL=-DUSE_APACHE_MD5 -I ${JK}
  JAVA_INCL=-I ${JAVA_HOME}/include -I ${JAVA_HOME}/include/${OS}
  JAVA_LIB=-L ${JAVA_HOME}/jre/lib/${ARCH} -L ${JAVA_HOME}/lib/${ARCH}/native_threads
  
  ## read the object (.c) from the list file.
  OEXT=.c
  include list.mk
  
  all: mod_jk.so
  
  mod_jk.so: 
  	$(APXS) -c -o $@ -Wc,"${APXSCFLAGS} ${JK_INCL}" ${JAVA_INCL} "${APXSLDFLAGS}" mod_jk.c ${APACHE_OBJECTS} 
  
  clean:
  	rm *.o *.so
  
  
  
  1.1                  jakarta-tomcat-connectors/jk/src/native/apache-1.3/Makefile.libdir
  
  Index: Makefile.libdir
  ===================================================================
  This is a place-holder which indicates to Configure that it shouldn't
  provide the default targets when building the Makefile in this directory.
  Instead it'll just prepend all the important variable definitions, and
  copy the Makefile.tmpl onto the end.
  
  
  
  1.1                  jakarta-tomcat-connectors/jk/src/native/apache-1.3/Makefile.tmpl
  
  Index: Makefile.tmpl
  ===================================================================
  LIB=libjk.a
  
  all: ${LIB}
  
  ${LIB}:
  	${RANLIB} $@
  
  clean:
  
  
  
  1.1                  jakarta-tomcat-connectors/jk/src/native/apache-1.3/libjk.module
  
  Index: libjk.module
  ===================================================================
  Name: jk_module
  ConfigStart
  	LIBS="-Lmodules/jk -L../modules/jk -L../../modules/jk -ljk $LIBS"
  	RULE_HIDE=yes
  ConfigEnd
  
  
  
  1.1                  jakarta-tomcat-connectors/jk/src/native/apache-1.3/list.mk
  
  Index: list.mk
  ===================================================================
  ## Object needed for mod_jk for Apache-1.3
  APACHE_OBJECTS= ${JK}/jk_ajp12_worker${OEXT} ${JK}/jk_connect${OEXT} \
                  ${JK}/jk_msg_buff${OEXT} ${JK}/jk_util${OEXT} \
                  ${JK}/jk_ajp13${OEXT} ${JK}/jk_pool${OEXT} \
                  ${JK}/jk_worker${OEXT} ${JK}/jk_ajp13_worker${OEXT} \
                  ${JK}/jk_lb_worker${OEXT} ${JK}/jk_sockbuf${OEXT} \
                  ${JK}/jk_map${OEXT} ${JK}/jk_uri_worker_map${OEXT} \
                  ${JK}/jk_ajp14${OEXT} ${JK}/jk_ajp14_worker${OEXT} \
                  ${JK}/jk_md5${OEXT} ${JK}/jk_jni_worker${OEXT}
  
  
  
  1.1                  jakarta-tomcat-connectors/jk/src/native/common/Makefile.in
  
  Index: Makefile.in
  ===================================================================
  OEXT=.lo
  include ../apache-1.3/list.mk
  
  JAVA_INCL=-I @JAVA_HOME@/include -I @JAVA_HOME@/include/@OS@
  CFLAGS=@apache_include@ @CFLAGS@ ${JAVA_INCL}
  
  include ../scripts/build/rules.mk
  
  JK=.
  
  all: ${APACHE_OBJECTS}
  
  install:
  
  clean:
  	-rm *.o *.slo *.lo
  
  
  
  1.1                  jakarta-tomcat-connectors/jk/src/native/scripts/build/rules.mk
  
  Index: rules.mk
  ===================================================================
  # That an extract of what is in APR.
  #
  
  # may be libtool as to be the one of APR (that just not to forget it).
  LIBTOOL      = libtool
  
  # Compile commands
  
  COMPILE      = $(CC) $(CFLAGS)
  LT_COMPILE   = $(LIBTOOL) --mode=compile $(COMPILE) -c $< && touch $@
  
  # Implicit rules for creating outputs from input files
  
  .SUFFIXES:
  .SUFFIXES: .c .lo .o .slo .s
  
  .c.o:
  	$(COMPILE) -c $<
  
  .s.o:
  	$(COMPILE) -c $<
  
  .c.lo:
  	$(LT_COMPILE)
  
  .s.lo:
  	$(LT_COMPILE)
  
  .c.slo:
  	$(SH_COMPILE)