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 --- pjlib-util/build/Makefile | 56 ++++++++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 23 deletions(-) (limited to 'pjlib-util') diff --git a/pjlib-util/build/Makefile b/pjlib-util/build/Makefile index b89cae15..33c82879 100644 --- a/pjlib-util/build/Makefile +++ b/pjlib-util/build/Makefile @@ -6,10 +6,20 @@ 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:=$(PJDIR)/pjlib/lib/libpj-$(TARGET_NAME)$(LIBEXT) -export PJLIB_UTIL_LIB:=../lib/libpjlib-util-$(TARGET_NAME)$(LIBEXT) + +export PJLIB_UTIL_LIB := libpjlib-util-$(TARGET_NAME)$(LIBEXT) + +ifeq ($(PJ_SHARED_LIBRARIES),) +else +export PJLIB_UTIL_SONAME := libpjlib-util.$(SHLIB_SUFFIX) +export PJLIB_UTIL_SHLIB := $(PJLIB_UTIL_SONAME).$(PJ_VERSION_MAJOR) +endif ############################################################################### # Gather all flags. @@ -18,10 +28,8 @@ export _CFLAGS := $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \ $(CFLAGS) $(CC_INC)../include $(CC_INC)../../pjlib/include export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \ $(HOST_CXXFLAGS) $(CXXFLAGS) -export _LDFLAGS := $(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 PJLIB-UTIL library @@ -35,6 +43,7 @@ export PJLIB_UTIL_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ stun_simple_client.o xml.o export PJLIB_UTIL_CFLAGS += $(_CFLAGS) export PJLIB_UTIL_CXXFLAGS += $(_CXXFLAGS) +export PJLIB_UTIL_LDFLAGS += $(PJLIB_LDLIB) $(_LDFLAGS) ############################################################################### # Defines for building test application @@ -44,8 +53,8 @@ export UTIL_TEST_OBJS += xml.o encryption.o stun.o resolver_test.o test.o \ http_client.o export UTIL_TEST_CFLAGS += $(_CFLAGS) export UTIL_TEST_CXXFLAGS += $(_CXXFLAGS) -export UTIL_TEST_LDFLAGS += $(_LDFLAGS) -export UTIL_TEST_EXE:=../bin/pjlib-util-test-$(TARGET_NAME)$(HOST_EXE) +export UTIL_TEST_LDFLAGS += $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS) +export UTIL_TEST_EXE:=pjlib-util-test-$(TARGET_NAME)$(HOST_EXE) export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT @@ -54,7 +63,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 := pjlib-util pjlib-util-test +TARGETS := $(PJLIB_UTIL_LIB) $(PJLIB_UTIL_SONAME) $(UTIL_TEST_EXE) all: $(TARGETS) @@ -72,26 +81,28 @@ doc: dep: depend distclean: realclean -.PHONY: dep depend clean realclean distclean +.PHONY: all dep depend clean realclean distclean .PHONY: $(TARGETS) -.PHONY: $(PJLIB_UTIL_LIB) $(UTIL_TEST_EXE) +.PHONY: $(PJLIB_UTIL_LIB) $(PJLIB_UTIL_SONAME) +.PHONY: $(UTIL_TEST_EXE) -pjlib-util: $(PJLIB_UTIL_LIB) -$(PJLIB_UTIL_LIB): - $(MAKE) -f $(RULES_MAK) APP=PJLIB_UTIL app=pjlib-util $(PJLIB_UTIL_LIB) +pjlib-util: $(PJLIB_UTIL_LIB) $(PJLIB_UTIL_SONAME) +$(PJLIB_UTIL_SONAME): $(PJLIB_UTIL_LIB) +$(PJLIB_UTIL_LIB) $(PJLIB_UTIL_SONAME): $(PJLIB_LIB) $(PJLIB_SONAME) + $(MAKE) -f $(RULES_MAK) APP=PJLIB_UTIL app=pjlib-util $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) pjlib-util-test: $(UTIL_TEST_EXE) -$(UTIL_TEST_EXE): $(PJLIB_UTIL_LIB) - $(MAKE) -f $(RULES_MAK) APP=UTIL_TEST app=pjlib-util-test $(UTIL_TEST_EXE) +$(UTIL_TEST_EXE): $(PJLIB_UTIL_LIB) $(PJLIB_UTIL_SONAME) + $(MAKE) -f $(RULES_MAK) APP=UTIL_TEST app=pjlib-util-test $(subst /,$(HOST_PSEP),$(BINDIR)/$@) -.PHONY: ../lib/pjlib-util.ko -../lib/pjlib-util.ko: +.PHONY: pjlib-util.ko +pjlib-util.ko: echo Making $@ - $(MAKE) -f $(RULES_MAK) APP=PJLIB_UTIL app=pjlib-util $@ + $(MAKE) -f $(RULES_MAK) APP=PJLIB_UTIL app=pjlib-util $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) -.PHONY: ../lib/pjlib-util-test.ko -../lib/pjlib-util-test.ko: - $(MAKE) -f $(RULES_MAK) APP=UTIL_TEST app=pjlib-util-test $@ +.PHONY: pjlib-util-test.ko +pjlib-util-test.ko: + $(MAKE) -f $(RULES_MAK) APP=UTIL_TEST app=pjlib-util-test $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) clean: $(MAKE) -f $(RULES_MAK) APP=PJLIB_UTIL app=pjlib-util $@ @@ -106,6 +117,5 @@ realclean: depend: $(MAKE) -f $(RULES_MAK) APP=PJLIB_UTIL app=pjlib-util $@ $(MAKE) -f $(RULES_MAK) APP=UTIL_TEST app=pjlib-util-test $@ - echo '$(UTIL_TEST_EXE): $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjlib-util-test-$(TARGET_NAME).depend; \ - + echo '$(BINDIR)/$(UTIL_TEST_EXE): $(LIBDIR)/$(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjlib-util-test-$(TARGET_NAME).depend; \ -- cgit v1.2.3