## configure should make the Makefile out of this file.
prefix=@prefix@
exec_prefix=@prefix@

APXS=@APXS2@
OS=@OS@
JAVA_HOME=@JAVA_HOME@
JK_DIR := ../..
APXS_LDFLAGS=@APXS2_LDFLAGS@
APXS_CFLAGS=@APXS2_CFLAGS@

ifneq ($(strip $(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
endif

INCLUDES= -I${JK_DIR}/include \
          ${JAVA_INCL}

JK_CFLAGS=-DCHUNK_SIZE=4096 -DUSE_APACHE_MD5 @HAVE_JNI@ @HAS_PCRE@

COMMON_C_FILES := $(wildcard ${JK_DIR}/common/*.c )
JNI_C_FILES := $(wildcard ${JK_DIR}/jni/*.c )
A2_C_FILES := $(wildcard *.c )

all: mod_jk2.la

mod_jk2.la: 
	$(APXS) -c -o $@ -Wc,"${INCLUDES} ${JK_CFLAGS}" ${JAVA_LIB} @PCRE_LIBS@ \
		${A2_C_FILES} ${COMMON_C_FILES} ${JNI_C_FILES}

install: mod_jk2.la
	$(APXS) -i mod_jk2.la
 
clean:
	rm -f *.o *.so *.lo *.la *.slo ${JK_DIR}/common/*.o ${JK_DIR}/common/*.so \
		${JK_DIR}/common/*.lo ${JK_DIR}/common/*.la ${JK_DIR}/common/*.slo \
		${JK_DIR}/jni/*.o ${JK_DIR}/jni/*.so ${JK_DIR}/jni/*.lo \
		${JK_DIR}/jni/*.la ${JK_DIR}/jni/*.slo
	rm -rf .libs ${JK_DIR}/common/.libs ${JK_DIR}/jni/.libs
