costin 02/04/02 11:03:12
Modified: jk/native2/server/apache2 Makefile
Log:
Fixed the makefile.
Now you can use gnumake to compile mod_jk.
We support 2 build methods: ant and gnumake.
We may add .dsp if needed ( I prefer to use ant ).
One thing I want to avoid is having 'special' makefiles for each
platform.
Revision Changes Path
1.2 +49 -19 jakarta-tomcat-connectors/jk/native2/server/apache2/Makefile
Index: Makefile
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/apache2/Makefile,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Makefile 31 Dec 2001 19:56:13 -0000 1.1
+++ Makefile 2 Apr 2002 19:03:12 -0000 1.2
@@ -1,37 +1,65 @@
-# Gnu makefile is required
+# Gnu makefile and libtool are required
# use -D options to overrides defaults
-
#ifndef APACHE2_HOME
APACHE2_HOME=/opt/apache2
#endif
+JK_DIR := ../..
+BUILD_DIR = ${JK_DIR}/../build/WEB-INF/jk2/apache2
+
+
+# Extract EXTRA_CFLAGS and EXTRA_CPPFLAGS - same flags used during apache2
+# compilation
include ${APACHE2_HOME}/build/config_vars.mk
-# Yes, we use the same properties as ant
+
+# Yes, we use the same properties file as ant
include ../../../build.properties
+LIBTOOL=${APACHE2_HOME}/build/libtool
+
+# It doesn't hurt if we include all
+INCLUDES= -I${JK_DIR}/include \
+ -I${APACHE2_HOME}/include \
+ -I${JAVA_HOME}/include \
+ -I${JAVA_HOME}/include\linux \
+ -I${JAVA_HOME}/include\hp-ux
+
+JK_CFLAGS=-DCHUNK_SIZE=4096 -DUSE_APACHE_MD5 -DHAS_APR -DHAVE_JNI
+
+###### Based on rules.mk ##########################################
+ALL_CFLAGS = $(EXTRA_CFLAGS) $(NOTEST_CFLAGS) $(CFLAGS)
+ALL_CPPFLAGS = $(DEFS) $(EXTRA_CPPFLAGS) $(NOTEST_CPPFLAGS) $(CPPFLAGS)
+ALL_LDFLAGS = $(EXTRA_LDFLAGS) $(NOTEST_LDFLAGS) $(LDFLAGS)
+ALL_LIBS = $(EXTRA_LIBS) $(NOTEST_LIBS) $(LIBS)
+ALL_INCLUDES = $(INCLUDES) $(EXTRA_INCLUDES)
+
+# Compile commands
+COMPILE = $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(ALL_INCLUDES)
+
+SH_COMPILE = $(LIBTOOL) --mode=compile $(COMPILE) -prefer-pic
+MOD_LINK = $(LIBTOOL) --mode=link $(CC) -module -shared $(LT_LDFLAGS)
$(ALL_LDFLAGS)
+
+#############################################################################
# ---------- File list creation --------------------
# Same behavior as ant - 'all files from a dir'.
# Excludes are not yet implemented.
-JK_DIR := ../..
-BUILD_DIR = ${JK_DIR}/../build/WEB-INF/jk2/apache2
COMMON_C_FILES := $(wildcard ${JK_DIR}/common/*.c )
+JNI_C_FILES := $(wildcard ${JK_DIR}/jni/*.c )
A2_C_FILES := $(wildcard ${JK_DIR}/server/apache2/*.c )
H_FILES := $(wildcard ${JK_DIR}/include/*.h )
COMMON_LO_FILES := $(patsubst ${JK_DIR}/common/%, ${BUILD_DIR}/%, \
$(patsubst %c, %lo, ${COMMON_C_FILES} ))
+JNI_LO_FILES := $(patsubst ${JK_DIR}/jni/%, ${BUILD_DIR}/%, \
+ $(patsubst %c, %lo, ${JNI_C_FILES} ))
A2_LO_FILES := $(patsubst ${JK_DIR}/server/apache2/%, ${BUILD_DIR}/%, \
$(patsubst %c, %lo, ${A2_C_FILES} ))
# ---------- Compile rules --------------------
-JK_CFLAGS=-I${JK_DIR}/include -I${JAVA_HOME}/include \
- ${EXTRA_CPPFLAGS} ${EXTRA_CFLAGS} \
- -I${APACHE2_HOME}/include
-
.PHONY: all
@@ -39,25 +67,27 @@
VPATH=.:../../common
.c.lo:
- ${LIBTOOL} --mode=compile ${CC} ${CFLAGS} -c $< -o $>
+ ${SH_COMPILE} -c $< -o $>
${BUILD_DIR}/%.lo: ${JK_DIR}/common/%.c
- ${LIBTOOL} --mode=compile ${CC} ${CFLAGS} ${JK_CFLAGS} -c $< -o $@
+ ${SH_COMPILE} -c $< -o $@
+
+${BUILD_DIR}/%.lo: ${JK_DIR}/jni/%.c
+ ${SH_COMPILE} -c $< -o $@
${BUILD_DIR}/%.lo: ${JK_DIR}/server/apache2/%.c
- ${LIBTOOL} --mode=compile ${CC} ${CFLAGS} ${JK_CFLAGS} -c $< -o $@
+ ${SH_COMPILE} -c $< -o $@
# ---------- Targets --------------------
-all: prepare ${APACHE2_HOME}/modules/mod_jk.so
+all: prepare ${BUILD_DIR}/mod_jk2.so ${BUILD_DIR}/jkjni.so
-${APACHE2_HOME}/modules/mod_jk.so: ${BUILD_DIR}/libjk.la
- ( cd ${BUILD_DIR} ; ${LIBTOOL} --mode=finish libjk.la )
- ( cd ${BUILD_DIR} ; ${LIBTOOL} --mode=install --debug cp libjk.la
${APACHE2_HOME}/modules )
+${BUILD_DIR}/jkjni.so: ${JNI_LO_FILES}
+ $(MOD_LINK) -o $@ $^
-${BUILD_DIR}/libjk.la: ${COMMON_LO_FILES} ${A2_LO_FILES}
- ${LIBTOOL} --mode=link ${CC} $< -o $@
+${BUILD_DIR}/mod_jk2.so: ${COMMON_LO_FILES} ${A2_LO_FILES}
+ ${MOD_LINK} -o $@ $^
${COMMON_C_FILES} ${A2_C_FILES}: ${H_FILES}
@@ -65,4 +95,4 @@
mkdir -p ${BUILD_DIR}
clean:
- rm ${BUILD_DIR}/*.lo ${BUILD_DIR}/*.la ${BUILD_DIR}/*.o
\ No newline at end of file
+ rm -rf ${BUILD_DIR}/*.lo ${BUILD_DIR}/*.la ${BUILD_DIR}/*.o ${BUILD_DIR}/.libs
${BUILD_DIR}/*.so
\ No newline at end of file
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>