~ubuntu-branches/ubuntu/wily/sflphone/wily

« back to all changes in this revision

Viewing changes to daemon/libs/pjproject-2.2.1/pjsip-apps/src/swig/java/Makefile

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell
  • Date: 2015-01-07 14:51:16 UTC
  • mfrom: (4.3.5 sid)
  • Revision ID: package-import@ubuntu.com-20150107145116-yxnafinf4lrdvrmx
Tags: 1.4.1-0.1ubuntu1
* Merge with Debian, remaining changes:
 - Drop soprano, nepomuk build-dep
* Drop ubuntu patches, now upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
include ../../../../build.mak
 
2
include ../../../../build/common.mak
 
3
 
 
4
ifneq ($(findstring android,$(TARGET_NAME)),)
 
5
 OS=android
 
6
 ifeq ("$(JAVA_HOME)","")
 
7
   # Set dummy JAVA_HOME as JNI is bundled in Android NDK, only need javac here
 
8
   JAVA_HOME := $(dir $(shell which javac))
 
9
 endif
 
10
else
 
11
 ifneq ($(findstring darwin,$(TARGET_NAME)),)
 
12
  OS=darwin
 
13
 endif
 
14
endif
 
15
 
 
16
OUT_DIR=output
 
17
ifeq ($(OS),Windows_NT)
 
18
  LIBPJSUA2_SO=$(OUT_DIR)/pjsua2.dll
 
19
else
 
20
  ifeq ($(OS),darwin)
 
21
    LIBPJSUA2_SO=$(OUT_DIR)/libpjsua2.jnilib
 
22
  else
 
23
    ifeq ($(OS),android)
 
24
      LIBPJSUA2_SO=android/libs/armeabi/libpjsua2.so
 
25
    else
 
26
      LIBPJSUA2_SO=$(OUT_DIR)/libpjsua2.so
 
27
    endif
 
28
  endif
 
29
endif
 
30
 
 
31
# Get JDK location
 
32
ifeq ("$(JAVA_HOME)","")
 
33
 
 
34
  verify_jdk  = $(shell test -d $(1)/include && test -d $(1)/lib && \
 
35
                        echo inclib1) \
 
36
                $(shell test -d $(1)/Headers && test -d $(1)/Libraries && \
 
37
                        echo inclib2) \
 
38
                $(shell test -x $(1)/bin/javac && echo bin1) \
 
39
                $(shell test -x $(1)/Commands/javac && echo bin2) \
 
40
                $(shell test -x $(1)/javac && echo bin3)
 
41
 
 
42
  get_java_inc = $(if $(findstring inclib1,$(1)),$(2)/include,\
 
43
                 $(if $(findstring inclib2,$(1)),$(2)/Headers,))
 
44
  get_java_lib = $(if $(findstring inclib1,$(1)),$(2)/lib,\
 
45
                 $(if $(findstring inclib2,$(1)),$(2)/Libraries,))
 
46
  get_java_bin = $(if $(findstring bin1,$(1)),$(2)/bin,\
 
47
                 $(if $(findstring bin2,$(1)),$(2)/Commands,\
 
48
                 $(if $(findstring bin3,$(1)),$(2),)))
 
49
 
 
50
 
 
51
  # Check with 'which javac'
 
52
  WHICH_JAVAC := $(shell which javac)
 
53
  ifneq ($(WHICH_JAVAC),)
 
54
    WHICH_JAVAC := $(dir $(realpath $(WHICH_JAVAC)))
 
55
    WHICH_JAVAC := $(patsubst %/bin/,%,$(WHICH_JAVAC))
 
56
    TMP_RES := $(call verify_jdk,$(WHICH_JAVAC))
 
57
    ifneq ($(findstring inclib,$(TMP_RES)),)
 
58
      JAVA_HOME := $(WHICH_JAVAC)
 
59
      JAVA_INC  := $(call get_java_inc,$(TMP_RES),$(JAVA_HOME))
 
60
      JAVA_LIB  := $(call get_java_lib,$(TMP_RES),$(JAVA_HOME))
 
61
    endif
 
62
  endif
 
63
 
 
64
  # MacOS specifics
 
65
  ifeq ($(OS)$(JAVA_HOME),darwin)
 
66
 
 
67
    # Check with '/usr/libexec/java_home'
 
68
    # (see https://developer.apple.com/library/mac/qa/qa1170/_index.html)
 
69
    TMP_PATH := $(shell /usr/libexec/java_home)
 
70
    ifneq ("$(TMP_PATH)","")
 
71
      TMP_RES := $(call verify_jdk,$(TMP_PATH))
 
72
      ifneq ($(findstring inclib,$(TMP_RES)),)
 
73
        JAVA_HOME := $(TMP_PATH)
 
74
        JAVA_INC  := $(call get_java_inc,$(TMP_RES),$(JAVA_HOME))
 
75
        JAVA_LIB  := $(call get_java_lib,$(TMP_RES),$(JAVA_HOME))
 
76
      endif
 
77
    endif
 
78
 
 
79
    ifeq ($(JAVA_HOME),)
 
80
      # Check '/System/Library/Frameworks/JavaVM.framework'
 
81
      FIXED_PATH := /System/Library/Frameworks/JavaVM.framework
 
82
      TMP_RES := $(call verify_jdk,$(FIXED_PATH))
 
83
      ifneq ($(findstring inclib,$(TMP_RES)),)
 
84
        JAVA_HOME := $(FIXED_PATH)
 
85
        JAVA_INC  := $(call get_java_inc,$(TMP_RES),$(JAVA_HOME))
 
86
        JAVA_LIB  := $(call get_java_lib,$(TMP_RES),$(JAVA_HOME))
 
87
      endif
 
88
    endif
 
89
 
 
90
  endif
 
91
 
 
92
  ifneq ($(findstring bin,$(TMP_RES)),)
 
93
    JAVA_BIN := $(call get_java_bin,$(TMP_RES),$(JAVA_HOME))
 
94
  endif
 
95
 
 
96
#  $(info TMP_RES = $(TMP_RES))
 
97
#  $(info JAVA_HOME = $(JAVA_HOME))
 
98
#  $(info JAVA_INC  = $(JAVA_INC))
 
99
#  $(info JAVA_LIB  = $(JAVA_LIB))
 
100
#  $(info JAVA_BIN  = $(JAVA_BIN))
 
101
#  $(error done)
 
102
 
 
103
  ifeq ("$(JAVA_HOME)","")
 
104
    $(error Cannot determine JDK include/library path. \
 
105
            Please define JAVA_HOME envvar)
 
106
  endif
 
107
 
 
108
  ifeq ("$(JAVA_BIN)","")
 
109
    JAVA_BIN := $(JAVA_HOME)/bin
 
110
    $(warning Cannot determine JDK binary path. Set to $(JAVA_BIN))
 
111
  endif
 
112
 
 
113
else
 
114
 
 
115
  JAVA_INC := $(JAVA_HOME)/include
 
116
  JAVA_LIB := $(JAVA_HOME)/lib
 
117
  ifeq (exists,$(shell test -d "$(JAVA_HOME)/bin" && echo exists))
 
118
    JAVA_BIN := $(JAVA_HOME)/bin
 
119
  else
 
120
    JAVA_BIN := $(JAVA_HOME)
 
121
  endif
 
122
 
 
123
endif
 
124
 
 
125
# Env settings, e.g: path to SWIG, JDK, java(.exe), javac(.exe)
 
126
MY_SWIG          := swig
 
127
MY_JAVA          := "$(JAVA_BIN)/java"
 
128
MY_JAVAC         := "$(JAVA_BIN)/javac"
 
129
MY_JNI_CFLAGS    := -I"$(JAVA_INC)" -I"$(JAVA_INC)/win32" \
 
130
                    -I"$(JAVA_INC)/linux" -I"$(JAVA_INC)/darwin" -I.
 
131
MY_JNI_LDFLAGS   := -L"$(JAVA_LIB)"
 
132
 
 
133
# OS specific
 
134
ifeq ($(OS),Windows_NT)
 
135
  MY_JNI_LDFLAGS += -Wl,--kill-at
 
136
else
 
137
  MY_JNI_CFLAGS  += -fPIC
 
138
  ifeq ($(OS),android)
 
139
    MY_JNI_CFLAGS+= -D__ANDROID__
 
140
  endif
 
141
endif
 
142
 
 
143
# Build settings
 
144
MY_CFLAGS        := $(PJ_CXXFLAGS) $(MY_JNI_CFLAGS) $(CFLAGS)
 
145
MY_LDFLAGS       := $(PJ_LDXXFLAGS) $(PJ_LDXXLIBS) $(MY_JNI_LDFLAGS) $(LDFLAGS)
 
146
MY_PACKAGE_NAME  := org.pjsip.pjsua2
 
147
ifeq ($(OS),android)
 
148
  MY_PACKAGE_PATH  := android/src/$(subst .,/,$(MY_PACKAGE_NAME))
 
149
else
 
150
  MY_PACKAGE_PATH  := $(OUT_DIR)/$(subst .,/,$(MY_PACKAGE_NAME))
 
151
endif
 
152
 
 
153
MY_APP_JAVA := android/src/$(subst .,/,$(MY_PACKAGE_NAME))/app/MyApp.java
 
154
 
 
155
.PHONY: all java install uninstall
 
156
 
 
157
all: $(LIBPJSUA2_SO) java
 
158
 
 
159
$(LIBPJSUA2_SO): $(OUT_DIR)/pjsua2_wrap.o
 
160
        $(PJ_CXX) -shared -o $(LIBPJSUA2_SO) $(OUT_DIR)/pjsua2_wrap.o \
 
161
                $(MY_CFLAGS) $(MY_LDFLAGS)
 
162
 
 
163
$(OUT_DIR)/pjsua2_wrap.o: $(OUT_DIR)/pjsua2_wrap.cpp Makefile
 
164
        $(PJ_CXX) -c $(OUT_DIR)/pjsua2_wrap.cpp -o $(OUT_DIR)/pjsua2_wrap.o \
 
165
                $(MY_CFLAGS)
 
166
 
 
167
$(OUT_DIR)/pjsua2_wrap.cpp: ../pjsua2.i ../symbols.i $(SRCS)
 
168
        mkdir -p $(MY_PACKAGE_PATH)
 
169
        swig $(SWIG_FLAGS) -java  -package $(MY_PACKAGE_NAME) \
 
170
                -outdir $(MY_PACKAGE_PATH) \
 
171
                -o $(OUT_DIR)/pjsua2_wrap.cpp ../pjsua2.i
 
172
 
 
173
clean distclean realclean:
 
174
        rm -rf $(LIBPJSUA2_SO) $(OUT_DIR)/* \
 
175
                $(MY_PACKAGE_PATH)/*.java $(MY_PACKAGE_PATH)/*.class
 
176
 
 
177
java: $(MY_PACKAGE_PATH)/Error.class $(MY_PACKAGE_PATH)/test.class $(MY_PACKAGE_PATH)/sample.class
 
178
 
 
179
$(MY_PACKAGE_PATH)/Error.class: $(MY_PACKAGE_PATH)/Error.java
 
180
        $(MY_JAVAC) -d $(OUT_DIR) $(MY_PACKAGE_PATH)/*.java $(MY_APP_JAVA)
 
181
 
 
182
$(MY_PACKAGE_PATH)/test.class: test.java
 
183
        $(MY_JAVAC) -d $(OUT_DIR) -classpath "$(OUT_DIR)" test.java
 
184
        
 
185
$(MY_PACKAGE_PATH)/sample.class: sample.java
 
186
        $(MY_JAVAC) -d $(OUT_DIR) -classpath "$(OUT_DIR)" sample.java
 
187
 
 
188
test:
 
189
        @# Need to specify classpath and library path, alternatively,
 
190
        @# they can be set via CLASSPATH and java.library.path env settings
 
191
        $(MY_JAVA) -cp "$(OUT_DIR)" -Djava.library.path="$(OUT_DIR)" test
 
192
        
 
193
sample:
 
194
        @# Need to specify classpath and library path, alternatively,
 
195
        @# they can be set via CLASSPATH and java.library.path env settings
 
196
        $(MY_JAVA) -cp "$(OUT_DIR)" -Djava.library.path="$(OUT_DIR)" \
 
197
                org.pjsip.pjsua2.app.sample     
 
198
 
 
199
install:
 
200
uninstall:
 
201