From 831823773e16aff2a237335145effd426d5ebf87 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Sat, 23 Nov 2013 07:13:40 +0000 Subject: Fixed #1713: Enable building the libraries as shared libraries/DLLs for GNU targets git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4656 74dad513-b988-da41-8d7b-12977e46ad98 --- pjnath/build/Makefile | 74 +++++++++++++++++++++++++++++---------------------- 1 file changed, 42 insertions(+), 32 deletions(-) (limited to 'pjnath') diff --git a/pjnath/build/Makefile b/pjnath/build/Makefile index 24ddfd5d..d00ccb66 100644 --- a/pjnath/build/Makefile +++ b/pjnath/build/Makefile @@ -6,11 +6,21 @@ include ../../build.mak include ../../version.mak include $(PJDIR)/build/common.mak +export LIBDIR := ../lib +export BINDIR := ../bin + RULES_MAK := $(PJDIR)/build/rules.mak PJLIB_LIB:=../../pjlib/lib/libpj-$(TARGET_NAME)$(LIBEXT) PJLIB_UTIL_LIB:=../../pjlib-util/lib/libpjlib-util-$(TARGET_NAME)$(LIBEXT) -export PJNATH_LIB:=../lib/libpjnath-$(TARGET_NAME)$(LIBEXT) + +export PJNATH_LIB:=libpjnath-$(TARGET_NAME)$(LIBEXT) + +ifeq ($(PJ_SHARED_LIBRARIES),) +else +export PJNATH_SONAME := libpjnath.$(SHLIB_SUFFIX) +export PJNATH_SHLIB := $(PJNATH_SONAME).$(PJ_VERSION_MAJOR) +endif ############################################################################### # Gather all flags. @@ -20,11 +30,8 @@ export _CFLAGS := $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \ $(CC_INC)../../pjlib-util/include export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \ $(HOST_CXXFLAGS) $(CXXFLAGS) -export _LDFLAGS := $(subst /,$(HOST_PSEP),$(PJNATH_LIB)) \ - $(subst /,$(HOST_PSEP),$(PJLIB_UTIL_LIB)) \ - $(subst /,$(HOST_PSEP),$(PJLIB_LIB)) \ - $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \ - $(LDFLAGS) +export _LDFLAGS := $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \ + $(APP_LDFLAGS) $(LDFLAGS) ############################################################################### # Defines for building PJNATH library @@ -36,6 +43,7 @@ export PJNATH_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ stun_transaction.o turn_session.o turn_sock.o export PJNATH_CFLAGS += $(_CFLAGS) export PJNATH_CXXFLAGS += $(_CXXFLAGS) +export PJNATH_LDFLAGS += $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS) ############################################################################### # Defines for building test application @@ -45,8 +53,8 @@ export PJNATH_TEST_OBJS += ice_test.o stun.o sess_auth.o server.o concur_test.o stun_sock_test.o turn_sock_test.o test.o export PJNATH_TEST_CFLAGS += $(_CFLAGS) export PJNATH_TEST_CXXFLAGS += $(_CXXFLAGS) -export PJNATH_TEST_LDFLAGS += $(_LDFLAGS) -export PJNATH_TEST_EXE:=../bin/pjnath-test-$(TARGET_NAME)$(HOST_EXE) +export PJNATH_TEST_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS) +export PJNATH_TEST_EXE:=pjnath-test-$(TARGET_NAME)$(HOST_EXE) ############################################################################### @@ -56,8 +64,8 @@ export PJTURN_CLIENT_SRCDIR = ../src/pjturn-client export PJTURN_CLIENT_OBJS += client_main.o export PJTURN_CLIENT_CFLAGS += $(_CFLAGS) export PJTURN_CLIENT_CXXFLAGS += $(_CXXFLAGS) -export PJTURN_CLIENT_LDFLAGS += $(_LDFLAGS) -export PJTURN_CLIENT_EXE:=../bin/pjturn-client-$(TARGET_NAME)$(HOST_EXE) +export PJTURN_CLIENT_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS) +export PJTURN_CLIENT_EXE:=pjturn-client-$(TARGET_NAME)$(HOST_EXE) ############################################################################### # Defines for building TURN server application @@ -67,8 +75,8 @@ export PJTURN_SRV_OBJS += allocation.o auth.o listener_udp.o \ listener_tcp.o server.o main.o export PJTURN_SRV_CFLAGS += $(_CFLAGS) export PJTURN_SRV_CXXFLAGS += $(_CXXFLAGS) -export PJTURN_SRV_LDFLAGS += $(_LDFLAGS) -export PJTURN_SRV_EXE:=../bin/pjturn-srv-$(TARGET_NAME)$(HOST_EXE) +export PJTURN_SRV_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS) +export PJTURN_SRV_EXE:=pjturn-srv-$(TARGET_NAME)$(HOST_EXE) @@ -78,7 +86,7 @@ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT # # $(TARGET) is defined in os-$(OS_NAME).mak file in current directory. # -TARGETS := pjnath pjnath-test pjturn-client pjturn-srv +TARGETS := $(PJNATH_LIB) $(PJNATH_SONAME) $(PJNATH_TEST_EXE) $(PJTURN_CLIENT_EXE) $(PJTURN_SRV_EXE) all: $(TARGETS) @@ -96,34 +104,36 @@ doc: dep: depend distclean: realclean -.PHONY: dep depend clean realclean distclean +.PHONY: all dep depend clean realclean distclean .PHONY: $(TARGETS) -.PHONY: $(PJNATH_LIB) $(PJNATH_TEST_EXE) $(PJTURN_CLIENT_EXE) $(PJTURN_SRV_EXE) +.PHONY: $(PJNATH_LIB) $(PJNATH_SONAME) +.PHONY: $(PJNATH_TEST_EXE) $(PJTURN_CLIENT_EXE) $(PJTURN_SRV_EXE) pjnath: $(PJNATH_LIB) -$(PJNATH_LIB): - $(MAKE) -f $(RULES_MAK) APP=PJNATH app=pjnath $(PJNATH_LIB) +$(PJNATH_SONAME): $(PJNATH_LIB) +$(PJNATH_LIB) $(PJNATH_SONAME): $(PJLIB_LIB) $(PJLIB_SONAME) $(PJLIB_UTIL_LIB) $(PJLIB_UTIL_SONAME) + $(MAKE) -f $(RULES_MAK) APP=PJNATH app=pjnath $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) pjnath-test: $(PJNATH_TEST_EXE) -$(PJNATH_TEST_EXE): $(PJNATH_LIB) - $(MAKE) -f $(RULES_MAK) APP=PJNATH_TEST app=pjnath-test $(PJNATH_TEST_EXE) +$(PJNATH_TEST_EXE): $(PJNATH_LIB) $(PJNATH_SONAME) + $(MAKE) -f $(RULES_MAK) APP=PJNATH_TEST app=pjnath-test $(subst /,$(HOST_PSEP),$(BINDIR)/$@) pjturn-client: $(PJTURN_CLIENT_EXE) -$(PJTURN_CLIENT_EXE): $(PJNATH_LIB) - $(MAKE) -f $(RULES_MAK) APP=PJTURN_CLIENT app=pjturn-client $(PJTURN_CLIENT_EXE) +$(PJTURN_CLIENT_EXE): $(PJNATH_LIB) $(PJNATH_SONAME) + $(MAKE) -f $(RULES_MAK) APP=PJTURN_CLIENT app=pjturn-client $(subst /,$(HOST_PSEP),$(BINDIR)/$@) pjturn-srv: $(PJTURN_SRV_EXE) -$(PJTURN_SRV_EXE): $(PJNATH_LIB) - $(MAKE) -f $(RULES_MAK) APP=PJTURN_SRV app=pjturn-srv $(PJTURN_SRV_EXE) +$(PJTURN_SRV_EXE): $(PJNATH_LIB) $(PJNATH_SONAME) + $(MAKE) -f $(RULES_MAK) APP=PJTURN_SRV app=pjturn-srv $(subst /,$(HOST_PSEP),$(BINDIR)/$@) -.PHONY: ../lib/pjnath.ko -../lib/pjnath.ko: +.PHONY: pjnath.ko +pjnath.ko: echo Making $@ - $(MAKE) -f $(RULES_MAK) APP=PJNATH app=pjnath $@ + $(MAKE) -f $(RULES_MAK) APP=PJNATH app=pjnath $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) -.PHONY: ../lib/pjnath-test.ko -../lib/pjnath-test.ko: - $(MAKE) -f $(RULES_MAK) APP=PJNATH_TEST app=pjnath-test $@ +.PHONY: pjnath-test.ko +pjnath-test.ko: + $(MAKE) -f $(RULES_MAK) APP=PJNATH_TEST app=pjnath-test $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) clean: $(MAKE) -f $(RULES_MAK) APP=PJNATH app=pjnath $@ @@ -146,8 +156,8 @@ depend: $(MAKE) -f $(RULES_MAK) APP=PJNATH_TEST app=pjnath-test $@ $(MAKE) -f $(RULES_MAK) APP=PJTURN_CLIENT app=pjturn-client $@ $(MAKE) -f $(RULES_MAK) APP=PJTURN_SRV app=pjturn-srv $@ - echo '$(PJNATH_TEST_EXE): $(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjnath-test-$(TARGET_NAME).depend - echo '$(PJTURN_CLIENT_EXE): $(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjturn-client-$(TARGET_NAME).depend - echo '$(PJTURN_SRV_EXE): $(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjturn-srv-$(TARGET_NAME).depend + echo '$(BINDIR)/$(PJNATH_TEST_EXE): $(LIBDIR)/$(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjnath-test-$(TARGET_NAME).depend + echo '$(BINDIR)/$(PJTURN_CLIENT_EXE): $(LIBDIR)/$(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjturn-client-$(TARGET_NAME).depend + echo '$(BINDIR)/$(PJTURN_SRV_EXE): $(LIBDIR)/$(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjturn-srv-$(TARGET_NAME).depend -- cgit v1.2.3