## 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 ../common/list.mk

all: mod_jk.la

mod_jk.la: 
	$(APXS)  -c -o $@ -Wc,"${APXSCFLAGS} ${JK_INCL}" "${JAVA_INCL}" "${APXSLDFLAGS}" mod_jk.c ${APACHE_OBJECTS} 

install: mod_jk.la
	$(APXS) -i mod_jk.la
 
clean:
	rm -f *.o *.lo *.a *.la *.so *.so.* *.slo
	rm -rf .libs
