From f0c2e61eb1c3ee704503be5e0703aa05fac73903 Mon Sep 17 00:00:00 2001 From: Liong Sauw Ming Date: Thu, 23 Jan 2014 02:28:41 +0000 Subject: 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 --- build.mak.in | 37 ++++++++++++++++++------------------- pjsip-apps/build/Makefile | 12 ++---------- pjsip-apps/build/Samples.mak | 13 ++++++++++--- pjsip-apps/src/swig/java/Makefile | 10 ++++------ pjsip/build/Makefile | 2 +- 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 -- cgit v1.2.3