You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Brian P Millett <bp...@ec-group.com> on 2000/09/26 17:09:10 UTC
Makefiles for static compile of mod_jk & apache contrib
Well, Here are some items you all might be able to use for users like me who need a staticly
compiled Apache.
I am using Solaris 8 x86, Apache/1.3.12 (Unix) mod_perl/1.24 secured_by_Raven/1.5.2,
Java HotSpot(TM) Client VM (build 1.3.0, mixed mode),
gcc version 2.95.2 19991024 (release)
I did this with tomcat 3.2b5
1) created a dir <apache>/src/modules/jk
2) copied all files from jakarta-tomcat/src/native/jk to <apache>/src/modules/jk
3) copied mod_jk.* files from jakarta-tomcat/src/native/apache1.3 to <apache>/src/modules/jk
4) created the following files
Makefile.tmpl (I'm sure these can/should be cleaned up)
----BEGIN--
##
## Apache 1.3 Makefile template for Tomcat mod_jk
## [src/modules/jk/Makefile.tmpl]
##
## You need to edit this file - configure later :-)
JAVA_HOME=/usr/java
##APACHE_HOME=/home/bpm/compile_area/apache/src
OS_NAME=solaris
OS_TYPE=unix
# the parametrized target
LIB=jk.$(LIBEXT)
# objects for building the static library
OBJS_LIB=libmod_jk.a
# objects for building the shared object library
SHLIB_OBJS_LIB=libmod_jk.so
##A13_FLAGS=-I${APACHE_HOME}/include -I${APACHE_HOME}/os/${TYPE}
## I assume this one is set up already
# JAVA_HOME=
JAVA_INCL=-I${JAVA_HOME}/include -I${JAVA_HOME}/include/${OS_NAME}
JAVA_LIB=-L${JAVA_HOME}/jre/lib/${ARCH} -L${JAVA_HOME}/lib/${ARCH}/native_threads
JK_CFLAGS=-DHAVE_CONFIG_H -g -fpic -DSHARED_MODULE -O2 -D_REENTRANT -DSOLARIS
##JK=../jk/
SRCS=jk_ajp12_worker.c jk_connect.c jk_msg_buff.c jk_util.c jk_ajp13.c \
jk_jni_worker.c jk_pool.c jk_worker.c jk_ajp13_worker.c jk_lb_worker.c \
jk_sockbuf.c jk_map.c jk_uri_worker_map.c
OBJS=${patsubst %.c,%.o,${SRCS}}
%.o: %.c
${CC} -c ${CFLAGS} ${JK_CFLAGS} ${JAVA_INCL} ${INCLUDES} $< -o $@
.c.o:
${CC} -c ${CFLAGS} ${JK_CFLAGS} ${JAVA_INCL} ${INCLUDES} -I. $<
all: mod_jk.so libmod_jk.a lib
libmod_jk.a: ${OBJS} mod_jk.o
-rm -f libmod_jk.a
${AR} cru libmod_jk.a ${OBJS} mod_jk.o
${RANLIB} libmod_jk.a
mod_jk.so: ${OBJS} mod_jk.o
$(CC) -shared -o mod_jk.so ${OBJS} mod_jk.o
lib: $(LIB)
# static library
jk.a: $(OBJS_LIB)
cp $(OBJS_LIB) libjk.a
$(RANLIB) $@
# shared library
jk.so: $(SHLIB_OBJS_LIB)
cp $(SHLIB_OBJS_LIB) libjk.so
.SUFFIXES: .o .so
# nothing to clean from here
clean:
rm -f *.o *.so *.a
# no dependencies
depend:
true
#Dependencies
$(LIB): Makefile
# DO NOT REMOVE
--END--
jk.module
--BEGIN--
Name: jk_module
ConfigStart
CFLAGS="$CFLAGS -DMOD_JK"
ConfigEnd
--END--
5) Configured apache as follows (Yes, this is for modperl & raven, but you get the point)
CC="gcc" \
LIBS="-lrt" \
./configure \
"--prefix=/opt/apache" \
"--with-layout=GNU" \
"--activate-module=src/modules/perl/libperl.a" \
"--activate-module=src/modules/jk/libjk.a" \
"--activate-module=src/modules/raven_ssl/libraven_ssl.a" \
"--enable-module=most" \
"--enable-module=auth_dbm"
And so now I have an apache/tomcat/modperl/raven server
Also, here is a Makefile.solaris for the jakarta-tomcat/src/native/apache1.3 src. This worked just
fine to create the libraries
Makefile.solaris
--BEGIN--
## You need to edit this file - configure later :-)
JAVA_HOME=/usr/java
APACHE_HOME=/home/bpm/compile_area/apache/src
OS=solaris
TYPE=unix
RANLIB=/bin/true
A13_FLAGS=-I${APACHE_HOME}/include -I${APACHE_HOME}/os/${TYPE}
## I assume this one is set up already
# JAVA_HOME=
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
CFLAGS=-DHAVE_CONFIG_H -g -fpic -DSHARED_MODULE -O2 -D_REENTRANT -DSOLARIS
JK=../jk/
SRCS=jk_ajp12_worker.c jk_connect.c jk_msg_buff.c jk_util.c jk_ajp13.c \
jk_jni_worker.c jk_pool.c jk_worker.c jk_ajp13_worker.c jk_lb_worker.c \
jk_sockbuf.c jk_map.c jk_uri_worker_map.c
OBJS=${patsubst %.c,%.o,${SRCS}}
%.o: ../jk/%.c
${CC} -c ${CFLAGS} ${JAVA_INCL} ${A13_FLAGS} $< -o $@
.c.o:
${CC} -c ${CFLAGS} ${JAVA_INCL} ${A13_FLAGS} -I../jk $<
all: mod_jk.so libmod_jk.a
libmod_jk.a: ${OBJS} mod_jk.o
-rm -f libmod_jk.a
${AR} cru libmod_jk.a ${OBJS} mod_jk.o
${RANLIB} libmod_jk.a
mod_jk.so: ${OBJS} mod_jk.o
$(CC) -shared -o mod_jk.so ${OBJS} mod_jk.o
clean:
rm *.o *.so
--END--
--
Brian Millett
Enterprise Consulting Group "Shifts in paradigms
(314) 205-9030 often cause nose bleeds."
bpm@ec-group.com Greg Glenn