Ignore:
Timestamp:
Dec 13, 2013 9:07:53 AM (10 years ago)
Author:
nanang
Message:

Re #1716: Initial implementation of new Android app based on pjsua2+SWIG API.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/branches/projects/pjsua2/pjsip-apps/src/swig/java/Makefile

    r4670 r4691  
    11include ../../../../build.mak 
    22 
    3 ifneq ($(findstring "$(TARGET_NAME)","darwin"),"") 
     3ifneq ($(findstring android,$(TARGET_NAME)),) 
     4 OS=android 
     5else 
     6 ifneq ($(findstring darwin,$(TARGET_NAME)),) 
    47  OS=darwin 
     8 endif 
    59endif 
    610 
    711OUT_DIR=output 
    812ifeq ($(OS),Windows_NT) 
    9 LIBPJSUA2_SO=$(OUT_DIR)/pjsua2.dll 
     13  LIBPJSUA2_SO=$(OUT_DIR)/pjsua2.dll 
    1014else 
    1115  ifeq ($(OS),darwin) 
    1216    LIBPJSUA2_SO=$(OUT_DIR)/libpjsua2.jnilib 
    1317  else 
    14     LIBPJSUA2_SO=$(OUT_DIR)/libpjsua2.so 
     18    ifeq ($(OS),android) 
     19      LIBPJSUA2_SO=android/libs/armeabi/libpjsua2.so 
     20    else 
     21      LIBPJSUA2_SO=$(OUT_DIR)/libpjsua2.so 
     22    endif 
    1523  endif 
    1624endif 
     
    3341    JAVA_BIN := $(JAVA_HOME) 
    3442  endif 
    35   #$(error $(JAVA_BIN)) 
    3643endif 
    3744 
    3845# OS specific 
    3946ifeq ($(OS),Windows_NT) 
    40   MY_JNI_LDFLAGS         = -L$(MY_JDK)/lib -Wl,--kill-at 
    41   MY_JNI_LIB       = $(OUT_DIR)/pjsua2.dll 
     47  MY_JNI_LDFLAGS        = -L$(MY_JDK)/lib -Wl,--kill-at 
    4248else 
    43   MY_JNI_LDFLAGS         = -L$(MY_JDK)/lib 
    44   ifneq ($(OS),darwin) 
    45     MY_JNI_LDFLAGS := $(MY_JNI_LDFLAGS) -Wl,-soname,pjsua2.so 
     49  MY_JNI_CFLAGS         = -fPIC 
     50  MY_JNI_LDFLAGS        = -L$(MY_JDK)/lib 
     51  ifeq ($(OS),darwin) 
     52    MY_JNI_LDFLAGS      := $(MY_JNI_LDFLAGS) -Wl,-soname,pjsua2.so 
    4653  endif 
    47   MY_JNI_LIB       = $(OUT_DIR)/libpjsua2.so 
    48   MY_JNI_CFLAGS  := -fPIC $(MY_JNI_CFLAGS) 
     54  ifeq ($(OS),android) 
     55    MY_JNI_CFLAGS       := $(MY_JNI_CFLAGS) -D__ANDROID__ 
     56  endif 
    4957endif 
    5058 
     
    6068endif 
    6169MY_JNI_CFLAGS    := $(MY_JNI_CFLAGS) -I$(MY_JDK)/include -I$(MY_JDK)/include/win32 \ 
    62                    -I$(MY_JDK)/include/linux -I. 
     70                    -I$(MY_JDK)/include/linux -I. 
    6371 
    6472# Build settings 
    6573MY_CFLAGS        = $(PJ_CFLAGS) $(MY_JNI_CFLAGS) 
    66 MY_LDFLAGS       = $(PJ_LDFLAGS) -lpjsua2-$(TARGET_NAME) $(PJ_LDLIBS) $(MY_JNI_LDFLAGS) -static-libstdc++ 
     74MY_LDFLAGS       = $(PJ_LDFLAGS) -lpjsua2-$(TARGET_NAME) $(PJ_LDLIBS) $(MY_JNI_LDFLAGS) 
     75MY_PACKAGE_NAME  = org.pjsip.pjsua2 
     76ifeq ($(OS),android) 
     77  MY_PACKAGE_PATH  = android/src/$(subst .,/,$(MY_PACKAGE_NAME)) 
     78else 
     79  MY_PACKAGE_PATH  = $(OUT_DIR)/$(subst .,/,$(MY_PACKAGE_NAME)) 
     80endif 
    6781 
    6882.PHONY: all java install uninstall 
     
    7185 
    7286$(LIBPJSUA2_SO): $(OUT_DIR)/pjsua2_wrap.o 
    73         g++ -shared -o $(LIBPJSUA2_SO) $(OUT_DIR)/pjsua2_wrap.o $(MY_CFLAGS) $(MY_LDFLAGS) 
     87        $(PJ_CXX) -shared -o $(LIBPJSUA2_SO) $(OUT_DIR)/pjsua2_wrap.o $(MY_CFLAGS) $(MY_LDFLAGS) 
    7488 
    7589$(OUT_DIR)/pjsua2_wrap.o: $(OUT_DIR)/pjsua2_wrap.cpp Makefile 
    76         g++ -c $(OUT_DIR)/pjsua2_wrap.cpp -o $(OUT_DIR)/pjsua2_wrap.o $(MY_CFLAGS) $(MY_LDFLAGS) 
     90        $(PJ_CXX) -c $(OUT_DIR)/pjsua2_wrap.cpp -o $(OUT_DIR)/pjsua2_wrap.o $(MY_CFLAGS) $(MY_LDFLAGS) 
    7791 
    7892$(OUT_DIR)/pjsua2_wrap.cpp: ../pjsua2.i ../symbols.i $(SRCS) 
    79         swig $(SWIG_FLAGS) -java  -o $(OUT_DIR)/pjsua2_wrap.cpp ../pjsua2.i 
     93        mkdir -p $(MY_PACKAGE_PATH) 
     94        swig $(SWIG_FLAGS) -java  -package $(MY_PACKAGE_NAME) -outdir $(MY_PACKAGE_PATH) -o $(OUT_DIR)/pjsua2_wrap.cpp ../pjsua2.i 
    8095 
    8196clean distclean realclean: 
    82         rm -rf $(OUT_DIR)/pjsua2_wrap.cpp $(OUT_DIR)/pjsua2_wrap.o $(LIBPJSUA2_SO) $(OUT_DIR)/*.java $(OUT_DIR)/*.class 
     97        rm -rf $(LIBPJSUA2_SO) $(OUT_DIR)/* $(MY_PACKAGE_PATH)/*.java $(MY_PACKAGE_PATH)/*.class 
    8398 
    84 java: output/Error.class output/test.class 
     99java: $(MY_PACKAGE_PATH)/Error.class $(MY_PACKAGE_PATH)/test.class 
    85100 
    86 output/Error.class: output/Error.java 
    87         $(MY_JAVAC) -d $(OUT_DIR) $(OUT_DIR)/*.java 
     101$(MY_PACKAGE_PATH)/Error.class: $(MY_PACKAGE_PATH)/Error.java 
     102        $(MY_JAVAC) -d $(OUT_DIR) $(MY_PACKAGE_PATH)/*.java 
    88103 
    89 output/test.class: test.java 
     104$(MY_PACKAGE_PATH)/test.class: test.java 
    90105        $(MY_JAVAC) -d $(OUT_DIR) -classpath "$(OUT_DIR)" test.java 
    91106 
     
    93108        @# Need to specify classpath and library path, alternatively, they can be set via 
    94109        @# CLASSPATH and java.library.path env settings 
    95         $(MY_JAVA) -cp $(OUT_DIR) -Djava.library.path="$(OUT_DIR)" test 
     110        $(MY_JAVA) -cp "$(OUT_DIR);$(MY_PACKAGE_PATH)" -Djava.library.path="$(OUT_DIR)" test 
    96111 
    97112install: 
Note: See TracChangeset for help on using the changeset viewer.