- Timestamp:
- Jul 26, 2013 9:16:37 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/branches/projects/jni/pjsip-apps/src/jni/Makefile
r4574 r4575 1 include jni/Android.mk 1 # $Id: Makefile 4563 2013-07-15 05:34:14Z bennylp $ 2 3 # Get PJ build settings 4 include ../../../build.mak 5 include $(PJDIR)/build/common.mak 6 7 # Get JDK location 8 ifeq ("$(JAVA_HOME)","") 9 # Get javac location to determine JDK location 10 JAVAC_PATH = $(shell which javac) 11 ifeq ("$(JAVAC_PATH)","") 12 $(error Cannot determine JDK location using 'which' command. Please define JAVA_HOME envvar) 13 endif 14 15 JAVAC_PATH := $(realpath $(JAVAC_PATH)) 16 JAVA_BIN := $(dir $(JAVAC_PATH)) 17 JAVA_HOME := $(patsubst %/bin/,%,$(JAVA_BIN)) 18 endif 19 20 # OS specific 21 ifeq ($(OS),Windows_NT) 22 MY_JNI_LDFLAGS = -L$(MY_JDK)/lib -Wl,--kill-at 23 MY_JNI_LIB = $(MY_PACKAGE_BIN)/pjsua.dll 24 else 25 MY_JNI_LDFLAGS = -L$(MY_JDK)/lib -Wl,-soname,pjsua.so 26 MY_JNI_LIB = $(MY_PACKAGE_BIN)/libpjsua.so 27 MY_JNI_CFLAGS := -fPIC 28 endif 29 30 # Env settings, e.g: path to SWIG, JDK, java(.exe), javac(.exe) 31 MY_SWIG = swig 32 MY_JDK = $(JAVA_HOME) 33 MY_JAVA = $(MY_JDK)/bin/java 34 MY_JAVAC = $(MY_JDK)/bin/javac 35 MY_JNI_CFLAGS := $(MY_JNI_CFLAGS) -I$(MY_JDK)/include -I$(MY_JDK)/include/win32 \ 36 -I$(MY_JDK)/include/linux -I. 37 38 # Build settings 39 MY_CFLAGS = $(PJ_CFLAGS) $(MY_JNI_CFLAGS) 40 MY_LDFLAGS = $(PJ_LDFLAGS) $(PJ_LDLIBS) $(MY_JNI_LDFLAGS) -static-libstdc++ 41 42 # Output/intermediate path settings 43 MY_PACKAGE = org.pjsip.pjsua 44 MY_OUT_DIR = jni/output 45 MY_SWIG_IF = $(MY_OUT_DIR)/pjsua.i 46 MY_SWIG_FLAG = -c++ -I$(MY_OUT_DIR) # -debug-tmsearch -debug-tmused # -Wall 47 MY_SWIG_WRAPPER = $(MY_OUT_DIR)/pjsua_wrap 48 MY_PACKAGE_SRC = src/$(subst .,/,$(MY_PACKAGE)) 49 MY_PACKAGE_BIN = $(MY_OUT_DIR)/bin 50 51 TEST_PACKAGE = org.pjsip.hello 52 TEST_SRC = src/$(subst .,/,$(TEST_PACKAGE)) 53 54 jni: $(MY_JNI_LIB) java 55 56 clean: 57 rm -f $(MY_OUT_DIR)/*.* 58 rm -rf $(MY_PACKAGE_SRC) 59 60 $(MY_SWIG_IF).tmp: jni/swig_gen.py 61 @mkdir -p $(MY_OUT_DIR) 62 python jni/swig_gen.py > $(MY_SWIG_IF).tmp 63 64 $(MY_SWIG_IF): jni/header.i $(MY_SWIG_IF).tmp 65 cat jni/header.i > $(MY_SWIG_IF) 66 cat $(MY_SWIG_IF).tmp >> $(MY_SWIG_IF) 67 68 $(MY_SWIG_WRAPPER).cpp: $(MY_SWIG_IF) jni/callbacks.i jni/my_typemaps.i 69 @# Cleanup java outdir first, to remove any old/deprecated java files 70 rm -rf $(MY_PACKAGE_SRC) 71 @mkdir -p $(MY_PACKAGE_SRC) 72 $(MY_SWIG) $(MY_SWIG_FLAG) -o $(MY_SWIG_WRAPPER).cpp -package $(MY_PACKAGE) \ 73 -outdir $(MY_PACKAGE_SRC) -java $(MY_SWIG_IF) > $(MY_SWIG_WRAPPER)-tm.log 74 75 $(MY_JNI_LIB): $(MY_SWIG_WRAPPER).cpp 76 @mkdir -p $(MY_PACKAGE_BIN) 77 $(PJ_CXX) -shared -o $(MY_JNI_LIB) $(MY_SWIG_WRAPPER).cpp $(MY_OUT_DIR)/callbacks.cpp \ 78 $(MY_CFLAGS) $(MY_LDFLAGS) 79 80 java: $(TEST_SRC)/hello.java 81 @mkdir -p $(MY_PACKAGE_BIN) 82 $(MY_JAVAC) -d $(MY_PACKAGE_BIN) $(MY_PACKAGE_SRC)/*.java 83 $(MY_JAVAC) -d $(MY_PACKAGE_BIN) -classpath "$(MY_PACKAGE_BIN)" $(TEST_SRC)/hello.java 84 85 test: $(MY_PACKAGE_BIN)/hello.class 86 @# Need to specify classpath and library path, alternatively, they can be set via 87 @# CLASSPATH and java.library.path env settings 88 $(MY_JAVA) -cp $(MY_PACKAGE_BIN) -Djava.library.path="$(MY_PACKAGE_BIN)" hello
Note: See TracChangeset
for help on using the changeset viewer.