
## configure should make the Makefile out of this file.

srcdir=@srcdir@
top_srcdir=@top_srcdir@
VPATH=@srcdir@
APXS=@APXS@
OS=@OS@
JAVA_HOME=@JAVA_HOME@
CP=@CP@
APACHE_DIR=@APACHE_DIR@
MKDIR=@MKDIR@
DESTDIR=@APACHE_DIR@
LIBTOOL=@LIBTOOL@
CP=@CP@
CC=@CC@

top_builddir=..

OEXT=.lo
libexecdir=${APACHE_DIR}/libexec
JK_DIR := ..
BUILD_DIR = ${JK_DIR}/../build/jk/apache13

APACHE_FILES = Makefile.tmpl Makefile.libdir libjk.module

JK=../common/
JK_INCL=-DUSE_APACHE_MD5 -I ${top_srcdir}/common
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
APACHE_CFLAGS=@apache_include@ @APXSCFLAGS@ @APXSCPPFLAGS@ -I${top_srcdir}/common

# Compile commands
JK_CFLAGS  = $(JK_INCL) $(JAVA_INCL) $(APACHE_CFLAGS)
COMPILE    = $(CC)
SH_COMPILE = $(LIBTOOL) --mode=compile $(COMPILE) $(JK_CFLAGS)
MOD_LINK   = $(LIBTOOL) --mode=link $(CC)

include ../common/list.mk

all: @LIB_JK_TYPE@

#
# install part
#
install: @INSTALL_TYPE@

install_static: mod_jk.a
	@echo ""
	@echo "Copying files to Apache Modules Directory..."
	-${MKDIR} ${APACHE_DIR}/src/modules/jk
	${LIBTOOL} --mode=install ${CP} $< ${APACHE_DIR}/src/modules/jk/mod_jk.a
	-${CP} Makefile.tmpl ${APACHE_DIR}/src/modules/jk
	-${CP} Makefile.libdir ${APACHE_DIR}/src/modules/jk
	-${CP} mod_jk.c ${APACHE_DIR}/src/modules/jk
	-${MKDIR} ${APACHE_DIR}/src/modules/jk/include
	-${CP} ../common/*.h ${APACHE_DIR}/src/modules/jk/include
	@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 "                --enable-module=dir \\"
	@echo "                --disable-shared=dir"
	@echo "make"
	@echo ""
install_dynamic: mod_jk.la
	@echo ""
	@echo "Copying files to Apache libexec Directory..."
	${LIBTOOL} --mode=install ${CP} $< ${libexecdir}/mod_jk.so

#
# Clean part.
#
clean:
	rm -f *.o *.lo *.a *.la *.so *.so.* *.slo
	rm -rf .libs

#
# Compile part.
#
mod_jk.la: mod_jk.lo $(APACHE_OBJECTS)
	 ${MOD_LINK} -o $@ -module -rpath ${libexecdir} $^
mod_jk.a: mod_jk.lo $(APACHE_OBJECTS)
	 ${MOD_LINK} -o $@ $^

mod_jk.so: mod_jk.la
	../scripts/build/instdso.sh SH_LIBTOOL='$(LIBTOOL)' mod_jk.la `pwd`

#
# Common part.
#
mod_jk.lo: mod_jk.c
	${SH_COMPILE} -c mod_jk.c -o $@

.c.lo:
	${SH_COMPILE} -c $< -o $@
