summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiong Sauw Ming <ming@teluu.com>2014-01-23 02:28:41 +0000
committerLiong Sauw Ming <ming@teluu.com>2014-01-23 02:28:41 +0000
commitf0c2e61eb1c3ee704503be5e0703aa05fac73903 (patch)
tree577225148541d11dbd58ec67a7197e8da81a85bc
parent355080c169d40ff20866a18bb83b53b3b3e3f9c0 (diff)
Re #1723: Modified build system to link with C++ library only for pjsua2 lib or app
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4711 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--build.mak.in37
-rw-r--r--pjsip-apps/build/Makefile12
-rw-r--r--pjsip-apps/build/Samples.mak13
-rw-r--r--pjsip-apps/src/swig/java/Makefile10
-rw-r--r--pjsip/build/Makefile2
5 files changed, 35 insertions, 39 deletions
diff --git a/build.mak.in b/build.mak.in
index f7f01a02..1db1dd61 100644
--- a/build.mak.in
+++ b/build.mak.in
@@ -172,13 +172,6 @@ export APP_CFLAGS := -DPJ_AUTOCONF=1\
-I$(PJDIR)/pjmedia/include\
-I$(PJDIR)/pjsip/include
export APP_CXXFLAGS := $(APP_CFLAGS)
-# x x x x x x x x x x x x x x x x x x x x x x x x
-#
-# FIX THIS
-#
-# pjsua2 is c++ library hence maybe needs to be put in separate
-# variables. it will also require -lstdc++ or -static-libstdc++
-# x x x x x x x x x x x x x x x x x x x x x x x x
export APP_LDFLAGS := -L$(PJDIR)/pjlib/lib\
-L$(PJDIR)/pjlib-util/lib\
-L$(PJDIR)/pjnath/lib\
@@ -186,18 +179,11 @@ export APP_LDFLAGS := -L$(PJDIR)/pjlib/lib\
-L$(PJDIR)/pjsip/lib\
-L$(PJDIR)/third_party/lib\
$(PJ_VIDEO_LDFLAGS) \
- -static-libstdc++ \
@LDFLAGS@
+export APP_LDXXFLAGS := $(APP_LDFLAGS) \
+ -static-libstdc++
-# x x x x x x x x x x x x x x x x x x x x x x x x
-#
-# FIX THIS
-#
-# pjsua2 is c++ library hence maybe needs to be put in separate
-# variables. it will also require -lstdc++
-# x x x x x x x x x x x x x x x x x x x x x x x x
export APP_LIB_FILES = \
- $(PJ_DIR)/pjsip/lib/libpjsua2-$(LIB_SUFFIX) \
$(PJ_DIR)/pjsip/lib/libpjsua-$(LIB_SUFFIX) \
$(PJ_DIR)/pjsip/lib/libpjsip-ua-$(LIB_SUFFIX) \
$(PJ_DIR)/pjsip/lib/libpjsip-simple-$(LIB_SUFFIX) \
@@ -210,6 +196,9 @@ export APP_LIB_FILES = \
$(PJ_DIR)/pjlib-util/lib/libpjlib-util-$(LIB_SUFFIX) \
$(APP_THIRD_PARTY_LIB_FILES) \
$(PJ_DIR)/pjlib/lib/libpj-$(LIB_SUFFIX)
+export APP_LIBXX_FILES = \
+ $(PJ_DIR)/pjsip/lib/libpjsua2-$(LIB_SUFFIX) \
+ $(APP_LIB_FILES)
ifeq ($(PJ_SHARED_LIBRARIES),)
export PJLIB_LDLIB := -lpj-$(TARGET_NAME)
@@ -238,7 +227,7 @@ export PJSIP_UA_LDLIB := -lpjsip-ua
export PJSUA_LIB_LDLIB := -lpjsua
export PJSUA2_LIB_LDLIB := -lpjsua2
-APP_LIB_FILES += $(PJ_DIR)/pjsip/lib/libpjsua.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsua.$(SHLIB_SUFFIX) \
+export ADD_LIB_FILES := $(PJ_DIR)/pjsip/lib/libpjsua.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsua.$(SHLIB_SUFFIX) \
$(PJ_DIR)/pjsip/lib/libpjsip-ua.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsip-ua.$(SHLIB_SUFFIX) \
$(PJ_DIR)/pjsip/lib/libpjsip-simple.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsip-simple.$(SHLIB_SUFFIX) \
$(PJ_DIR)/pjsip/lib/libpjsip.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsip.$(SHLIB_SUFFIX) \
@@ -249,10 +238,14 @@ APP_LIB_FILES += $(PJ_DIR)/pjsip/lib/libpjsua.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR
$(PJ_DIR)/pjnath/lib/libpjnath.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjnath/lib/libpjnath.$(SHLIB_SUFFIX) \
$(PJ_DIR)/pjlib-util/lib/libpjlib-util.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjlib-util/lib/libpjlib-util.$(SHLIB_SUFFIX) \
$(PJ_DIR)/pjlib/lib/libpj.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjlib/lib/libpj.$(SHLIB_SUFFIX)
+
+APP_LIB_FILES += $(ADD_LIB_FILES)
+
+APP_LIBXX_FILES += $(PJ_DIR)/pjsip/lib/libpjsua2.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsua2.$(SHLIB_SUFFIX) \
+ $(ADD_LIB_FILES)
endif
-export APP_LDLIBS := $(PJSUA2_LIB_LDLIB) \
- $(PJSUA_LIB_LDLIB) \
+export APP_LDLIBS := $(PJSUA_LIB_LDLIB) \
$(PJSIP_UA_LDLIB) \
$(PJSIP_SIMPLE_LDLIB) \
$(PJSIP_LDLIB) \
@@ -266,6 +259,9 @@ export APP_LDLIBS := $(PJSUA2_LIB_LDLIB) \
$(APP_THIRD_PARTY_EXT)\
$(PJLIB_LDLIB) \
@LIBS@
+export APP_LDXXLIBS := $(PJSUA2_LIB_LDLIB) \
+ -lstdc++ \
+ $(APP_LDLIBS)
# Here are the variabels to use if application is using the library
# from within the source distribution
@@ -274,8 +270,11 @@ export PJ_CXX := $(APP_CXX)
export PJ_CFLAGS := $(APP_CFLAGS)
export PJ_CXXFLAGS := $(APP_CXXFLAGS)
export PJ_LDFLAGS := $(APP_LDFLAGS)
+export PJ_LDXXFLAGS := $(APP_LDXXFLAGS)
export PJ_LDLIBS := $(APP_LDLIBS)
+export PJ_LDXXLIBS := $(APP_LDXXLIBS)
export PJ_LIB_FILES := $(APP_LIB_FILES)
+export PJ_LIBXX_FILES := $(APP_LIBXX_FILES)
# And here are the variables to use if application is using the
# library from the install location (i.e. --prefix)
diff --git a/pjsip-apps/build/Makefile b/pjsip-apps/build/Makefile
index c776de10..62471e57 100644
--- a/pjsip-apps/build/Makefile
+++ b/pjsip-apps/build/Makefile
@@ -58,16 +58,8 @@ export PJSYSTEST_EXE:=pjsystest-$(TARGET_NAME)$(HOST_EXE)
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
-###############################################################################
-# Main entry
-#
-#
-# x x x x x x x x x x x x x x x x x x x x x x x x
-#
-# FIX THIS
-#
-# x x x x x x x x x x x x x x x x x x x x x x x x
-TARGETS := $(BINDIR)/$(PJSUA_EXE) $(BINDIR)/$(PJSYSTEST_EXE) samples
+
+TARGETS := $(PJSUA_EXE) $(PJSYSTEST_EXE) samples
all: $(TARGETS)
diff --git a/pjsip-apps/build/Samples.mak b/pjsip-apps/build/Samples.mak
index 65d25b9f..502f92c4 100644
--- a/pjsip-apps/build/Samples.mak
+++ b/pjsip-apps/build/Samples.mak
@@ -10,6 +10,7 @@ RULES_MAK := $(PJDIR)/build/rules.mak
export _CFLAGS := $(PJ_CFLAGS) $(CFLAGS)
export _CXXFLAGS:= $(PJ_CXXFLAGS)
export _LDFLAGS := $(PJ_LDFLAGS) $(PJ_LDLIBS) $(LDFLAGS)
+export _LDXXFLAGS := $(PJ_LDXXFLAGS) $(PJ_LDXXLIBS) $(LDFLAGS)
SRCDIR := ../src/samples
OBJDIR := ./output/samples-$(TARGET_NAME)
@@ -29,7 +30,6 @@ SAMPLES := auddemo \
mix \
pjsip-perf \
pcaputil \
- pjsua2_demo \
playfile \
playsine \
recfile \
@@ -47,14 +47,21 @@ SAMPLES := auddemo \
tonegen \
vid_streamutil
+PJSUA2_SAMPLES := pjsua2_demo
+
EXES := $(foreach file, $(SAMPLES), $(file)$(HOST_EXE))
+PJSUA2_EXES := $(foreach file, $(PJSUA2_SAMPLES), $(file)$(HOST_EXE))
.PHONY: $(EXES)
+.PHONY: $(PJSUA2_EXES)
-all: $(EXES)
+all: $(EXES) $(PJSUA2_EXES)
$(EXES):
- $(MAKE) --no-print-directory -f $(RULES_MAK) SAMPLE_SRCDIR=$(SRCDIR) SAMPLE_OBJS=$@.o SAMPLE_CFLAGS="$(_CFLAGS)" SAMPLE_CXXFLAGS="$(_CXXFLAGS)" SAMPLE_LDFLAGS="$(_LDFLAGS) -lstdc++" SAMPLE_EXE=$@ APP=SAMPLE app=sample $(subst /,$(HOST_PSEP),$(BINDIR)/$@)
+ $(MAKE) --no-print-directory -f $(RULES_MAK) SAMPLE_SRCDIR=$(SRCDIR) SAMPLE_OBJS=$@.o SAMPLE_CFLAGS="$(_CFLAGS)" SAMPLE_CXXFLAGS="$(_CXXFLAGS)" SAMPLE_LDFLAGS="$(_LDFLAGS)" SAMPLE_EXE=$@ APP=SAMPLE app=sample $(subst /,$(HOST_PSEP),$(BINDIR)/$@)
+
+$(PJSUA2_EXES):
+ $(MAKE) --no-print-directory -f $(RULES_MAK) PJSUA2_SAMPLE_SRCDIR=$(SRCDIR) PJSUA2_SAMPLE_OBJS=$@.o PJSUA2_SAMPLE_CFLAGS="$(_CFLAGS)" PJSUA2_SAMPLE_CXXFLAGS="$(_CXXFLAGS)" PJSUA2_SAMPLE_LDFLAGS="$(_LDXXFLAGS)" PJSUA2_SAMPLE_EXE=$@ APP=PJSUA2_SAMPLE app=pjsua2_sample $(subst /,$(HOST_PSEP),$(BINDIR)/$@)
depend:
diff --git a/pjsip-apps/src/swig/java/Makefile b/pjsip-apps/src/swig/java/Makefile
index 1946891f..58350b11 100644
--- a/pjsip-apps/src/swig/java/Makefile
+++ b/pjsip-apps/src/swig/java/Makefile
@@ -1,4 +1,5 @@
include ../../../../build.mak
+include ../../../../build/common.mak
ifneq ($(findstring android,$(TARGET_NAME)),)
OS=android
@@ -48,9 +49,6 @@ ifeq ($(OS),Windows_NT)
else
MY_JNI_CFLAGS = -fPIC
MY_JNI_LDFLAGS = -L$(MY_JDK)/lib
- ifeq ($(OS),darwin)
- MY_JNI_LDFLAGS := $(MY_JNI_LDFLAGS) -Wl,-soname,pjsua2.so
- endif
ifeq ($(OS),android)
MY_JNI_CFLAGS := $(MY_JNI_CFLAGS) -D__ANDROID__
endif
@@ -67,11 +65,11 @@ else
MY_JAVAC = $(MY_JDK)/javac
endif
MY_JNI_CFLAGS := $(MY_JNI_CFLAGS) -I$(MY_JDK)/include -I$(MY_JDK)/include/win32 \
- -I$(MY_JDK)/include/linux -I.
+ -I$(MY_JDK)/include/linux -I$(MY_JDK)/include/darwin -I.
# Build settings
-MY_CFLAGS = $(PJ_CFLAGS) $(MY_JNI_CFLAGS)
-MY_LDFLAGS = $(PJ_LDFLAGS) -lpjsua2-$(TARGET_NAME) $(PJ_LDLIBS) $(MY_JNI_LDFLAGS)
+MY_CFLAGS = $(PJ_CXXFLAGS) $(MY_JNI_CFLAGS) $(CFLAGS)
+MY_LDFLAGS = $(PJ_LDXXFLAGS) $(PJ_LDXXLIBS) $(MY_JNI_LDFLAGS) $(LDFLAGS)
MY_PACKAGE_NAME = org.pjsip.pjsua2
ifeq ($(OS),android)
MY_PACKAGE_PATH = android/src/$(subst .,/,$(MY_PACKAGE_NAME))
diff --git a/pjsip/build/Makefile b/pjsip/build/Makefile
index 6b4cd57d..eeafad3f 100644
--- a/pjsip/build/Makefile
+++ b/pjsip/build/Makefile
@@ -151,7 +151,7 @@ export PJSUA2_TEST_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
main.o
export PJSUA2_TEST_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS)
export PJSUA2_TEST_CXXFLAGS = $(PJSUA2_LIB_CFLAGS)
-export PJSUA2_TEST_LDFLAGS += -lpjsua2-$(TARGET_NAME) -lstdc++ $(PJ_LDFLAGS) $(PJ_LDLIBS) $(LDFLAGS)
+export PJSUA2_TEST_LDFLAGS += $(PJ_LDXXFLAGS) $(PJ_LDXXLIBS) $(LDFLAGS)
export PJSUA2_TEST_EXE := pjsua2-test-$(TARGET_NAME)$(HOST_EXE)
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT