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 --- third_party/build/g7221/Makefile | 20 +++++++++++++----- third_party/build/gsm/Makefile | 20 +++++++++++++----- third_party/build/ilbc/Makefile | 20 +++++++++++++----- third_party/build/milenage/Makefile | 20 +++++++++++++----- third_party/build/portaudio/Makefile | 20 +++++++++++++----- third_party/build/resample/Makefile | 41 +++++++++++++++++------------------- third_party/build/speex/Makefile | 20 +++++++++++++----- third_party/build/srtp/Makefile | 20 +++++++++++++----- 8 files changed, 124 insertions(+), 57 deletions(-) (limited to 'third_party') diff --git a/third_party/build/g7221/Makefile b/third_party/build/g7221/Makefile index 60590307..d0e75964 100644 --- a/third_party/build/g7221/Makefile +++ b/third_party/build/g7221/Makefile @@ -5,7 +5,13 @@ export LIBDIR := ../../lib RULES_MAK := $(PJDIR)/build/rules.mak -export G7221_CODEC_LIB := ../../lib/libg7221codec-$(TARGET_NAME)$(LIBEXT) +export G7221_CODEC_LIB := libg7221codec-$(TARGET_NAME)$(LIBEXT) + +ifeq ($(PJ_SHARED_LIBRARIES),) +else +export G7221_CODEC_SONAME := libg7221codec.$(SHLIB_SUFFIX) +export G7221_CODEC_SHLIB := $(G7221_CODEC_SONAME).$(PJ_VERSION_MAJOR) +endif ############################################################################### # Gather all flags. @@ -34,7 +40,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 := libg7221codec +TARGETS := $(G7221_CODEC_LIB) $(G7221_CODEC_SONAME) all: $(TARGETS) @@ -44,10 +50,14 @@ doc: dep: depend distclean: realclean -.PHONY: dep depend libg7221codec clean realclean distclean +.PHONY: all dep depend clean realclean distclean +.PHONY: $(TARGETS) +.PHONY: $(G7221_CODEC_LIB) $(G7221_CODEC_SONAME) -libg7221codec: - $(MAKE) -f $(RULES_MAK) APP=G7221_CODEC app=libg7221codec $(G7221_CODEC_LIB) +libg7221codec: $(G7221_CODEC_LIB) +$(G7221_CODEC_SONAME): $(G7221_CODEC_LIB) +$(G7221_CODEC_LIB) $(G7221_CODEC_SONAME): + $(MAKE) -f $(RULES_MAK) APP=G7221_CODEC app=libg7221codec $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) clean print_lib: $(MAKE) -f $(RULES_MAK) APP=G7221_CODEC app=libg7221codec $@ diff --git a/third_party/build/gsm/Makefile b/third_party/build/gsm/Makefile index a265076e..0b949982 100644 --- a/third_party/build/gsm/Makefile +++ b/third_party/build/gsm/Makefile @@ -5,7 +5,13 @@ export LIBDIR := ../../lib RULES_MAK := $(PJDIR)/build/rules.mak -export GSM_CODEC_LIB := ../../lib/libgsmcodec-$(TARGET_NAME)$(LIBEXT) +export GSM_CODEC_LIB := libgsmcodec-$(TARGET_NAME)$(LIBEXT) + +ifeq ($(PJ_SHARED_LIBRARIES),) +else +export GSM_CODEC_SONAME := libgsmcodec.$(SHLIB_SUFFIX) +export GSM_CODEC_SHLIB := $(GSM_CODEC_SONAME).$(PJ_VERSION_MAJOR) +endif ############################################################################### # Gather all flags. @@ -35,7 +41,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 := libgsmcodec +TARGETS := $(GSM_CODEC_LIB) $(GSM_CODEC_SONAME) all: $(TARGETS) @@ -45,10 +51,14 @@ doc: dep: depend distclean: realclean -.PHONY: dep depend libgsmcodec clean realclean distclean +.PHONY: all dep depend clean realclean distclean +.PHONY: $(TARGETS) +.PHONE: $(GSM_CODEC_LIB) $(GSM_CODEC_SONAME) -libgsmcodec: - $(MAKE) -f $(RULES_MAK) APP=GSM_CODEC app=libgsmcodec $(GSM_CODEC_LIB) +libgsmcodec: $(GSM_CODEC_LIB) +$(GSM_CODEC_SONAME): $(GSM_CODEC_LIB) +$(GSM_CODEC_LIB) $(GSM_CODEC_SONAME): + $(MAKE) -f $(RULES_MAK) APP=GSM_CODEC app=libgsmcodec $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) clean print_lib: $(MAKE) -f $(RULES_MAK) APP=GSM_CODEC app=libgsmcodec $@ diff --git a/third_party/build/ilbc/Makefile b/third_party/build/ilbc/Makefile index 50b4ab7e..39ac6b2b 100644 --- a/third_party/build/ilbc/Makefile +++ b/third_party/build/ilbc/Makefile @@ -5,7 +5,13 @@ export LIBDIR := ../../lib RULES_MAK := $(PJDIR)/build/rules.mak -export ILBC_LIB := ../../lib/libilbccodec-$(TARGET_NAME)$(LIBEXT) +export ILBC_LIB := libilbccodec-$(TARGET_NAME)$(LIBEXT) + +ifeq ($(PJ_SHARED_LIBRARIES),) +else +export ILBC_SONAME := libilbccodec.$(SHLIB_SUFFIX) +export ILBC_SHLIB := $(ILBC_SONAME).$(PJ_VERSION_MAJOR) +endif ############################################################################### # Gather all flags. @@ -36,7 +42,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 := libilbccodec +TARGETS := $(ILBC_LIB) $(ILBC_SONAME) all: $(TARGETS) @@ -46,10 +52,14 @@ doc: dep: depend distclean: realclean -.PHONY: dep depend libilbccodec clean realclean distclean +.PHONY: all dep depend clean realclean distclean +.PHONY: $(TARGETS) +.PHONY: $(ILBC_LIB) $(ILBC_SONAME) -libilbccodec: - $(MAKE) -f $(RULES_MAK) APP=ILBC app=libilbccodec $(ILBC_LIB) +libilbccodec: $(ILBC_LIB) +$(ILBC_SONAME): $(ILBC_LIB) +$(ILBC_LIB) $(ILBC_SONAME): + $(MAKE) -f $(RULES_MAK) APP=ILBC app=libilbccodec $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) clean print_lib: $(MAKE) -f $(RULES_MAK) APP=ILBC app=libilbccodec $@ diff --git a/third_party/build/milenage/Makefile b/third_party/build/milenage/Makefile index 094ddeaa..18a48b91 100644 --- a/third_party/build/milenage/Makefile +++ b/third_party/build/milenage/Makefile @@ -5,7 +5,13 @@ export LIBDIR := ../../lib RULES_MAK := $(PJDIR)/build/rules.mak -export MILENAGE_LIB := ../../lib/libmilenage-$(TARGET_NAME)$(LIBEXT) +export MILENAGE_LIB := libmilenage-$(TARGET_NAME)$(LIBEXT) + +ifeq ($(PJ_SHARED_LIBRARIES),) +else +export MILENAGE_SONAME := libmilenage.$(SHLIB_SUFFIX) +export MILENAGE_SHLIB := $(MILENAGE_SONAME).$(PJ_VERSION_MAJOR) +endif ############################################################################### # Gather all flags. @@ -29,7 +35,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 := libmilenage +TARGETS := $(MILENAGE_LIB) $(MILENAGE_SONAME) all: $(TARGETS) @@ -39,10 +45,14 @@ doc: dep: depend distclean: realclean -.PHONY: dep depend libmilenage clean realclean distclean +.PHONY: all dep depend clean realclean distclean +.PHONY: $(TARGETS) +.PHONY: $(MILENAGE_LIB) $(MILENAGE_SONAME) -libmilenage: - $(MAKE) -f $(RULES_MAK) APP=MILENAGE app=libmilenage $(MILENAGE_LIB) +libmilenage: $(MILENAGE_LIB) +$(MILENAGE_SONAME): $(MILENAGE_LIB) +$(MILENAGE_LIB) $(MILENAGE_SONAME): + $(MAKE) -f $(RULES_MAK) APP=MILENAGE app=libmilenage $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) clean print_lib: $(MAKE) -f $(RULES_MAK) APP=MILENAGE app=libmilenage $@ diff --git a/third_party/build/portaudio/Makefile b/third_party/build/portaudio/Makefile index ad81571a..a5c2449e 100644 --- a/third_party/build/portaudio/Makefile +++ b/third_party/build/portaudio/Makefile @@ -6,7 +6,13 @@ export LIBDIR := ../../lib RULES_MAK := $(PJDIR)/build/rules.mak -export PORTAUDIO_LIB:=../../lib/libportaudio-$(TARGET_NAME)$(LIBEXT) +export PORTAUDIO_LIB:=libportaudio-$(TARGET_NAME)$(LIBEXT) + +ifeq ($(PJ_SHARED_LIBRARIES),) +else +export PORTAUDIO_SONAME := libportaudio.$(SHLIB_SUFFIX) +export PORTAUDIO_SHLIB := $(PORTAUDIO_SONAME).$(PJ_VERSION_MAJOR) +endif PORTAUDIO_OBJS += pa_allocation.o \ pa_converters.o \ @@ -43,17 +49,21 @@ 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 := libportaudio +TARGETS := $(PORTAUDIO_LIB) $(PORTAUDIO_SONAME) all: $(TARGETS) dep: depend distclean: realclean -.PHONY: dep depend libportaudio clean realclean distclean +.PHONY: all dep depend clean realclean distclean +.PHONY: $(TARGETS) +.PHONY: $(PORTAUDIO_LIB) $(PORTAUDIO_SONAME) -libportaudio: - $(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $(PORTAUDIO_LIB) +libportaudio: $(PORTAUDIO_LIB) +$(PORTAUDIO_SONAME): $(PORTAUDIO_LIB) +$(PORTAUDIO_LIB) $(PORTAUDIO_SONAME): + $(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) clean: $(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $@ diff --git a/third_party/build/resample/Makefile b/third_party/build/resample/Makefile index 2deb8732..72ba28a1 100644 --- a/third_party/build/resample/Makefile +++ b/third_party/build/resample/Makefile @@ -21,9 +21,13 @@ export RESAMPLE_SRCDIR = ../../resample/src export RESAMPLE_OBJS = resamplesubs.o export RESAMPLE_CFLAGS = $(_CFLAGS) -SHLIB_NAME := libresample.$(SHLIB_SUFFIX) -export RESAMPLE_SHLIB := ../../lib/$(SHLIB_NAME).$(PJ_VERSION_MAJOR) -export RESAMPLE_LIB := ../../lib/libresample-$(TARGET_NAME)$(LIBEXT) +export RESAMPLE_LIB := libresample-$(TARGET_NAME)$(LIBEXT) + +ifeq ($(PJ_SHARED_LIBRARIES),) +else +export RESAMPLE_SONAME := libresample.$(SHLIB_SUFFIX) +export RESAMPLE_SHLIB := $(RESAMPLE_SONAME).$(PJ_VERSION_MAJOR) +endif export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT ############################################################################### @@ -31,17 +35,12 @@ 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. # -ifeq ($(PJ_RESAMPLE_DLL),1) -TARGETS := ../../lib/$(SHLIB_NAME) -ifeq ($(SHLIB_SUFFIX),so) -SHLIB_OPT := -Wl,-soname,$(SHLIB_NAME).$(PJ_VERSION_MAJOR) +TARGETS := $(RESAMPLE_LIB) $(RESAMPLE_SONAME) +ifneq ($(PJ_SHARED_LIBRARIES),) else -SHLIB_OPT := -endif +ifneq ($(PJ_RESAMPLE_DLL),) export RESAMPLE_CFLAGS := -fPIC $(RESAMPLE_CFLAGS) -export RESAMPLE_LDFLAGS := -shared $(SHLIB_OPT) $(RESAMPLE_LDFLAGS) -else -TARGETS := libresample +endif endif all: $(TARGETS) @@ -52,23 +51,21 @@ doc: dep: depend distclean: realclean -.PHONY: dep depend libresample clean realclean distclean +.PHONY: all dep depend clean realclean distclean +.PHONY: $(TARGETS) +.PHONY: $(RESAMPLE_LIB) $(RESAMPLE_SONAME) -libresample: - $(MAKE) -f $(RULES_MAK) APP=RESAMPLE app=libresample $(RESAMPLE_LIB) +dep: depend -../../lib/$(SHLIB_NAME): $(RESAMPLE_SHLIB) - ln -s $(SHLIB_NAME).$(PJ_VERSION_MAJOR) $@ +libresample: $(RESAMPLE_LIB) +$(RESAMPLE_SONAME): $(RESAMPLE_LIB) +$(RESAMPLE_LIB) $(RESAMPLE_SONAME): + $(MAKE) -f $(RULES_MAK) APP=RESAMPLE app=libresample $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) -$(RESAMPLE_SHLIB): - $(MAKE) -f $(RULES_MAK) APP=RESAMPLE app=libresample $(RESAMPLE_SHLIB) - clean print_lib: $(MAKE) -f $(RULES_MAK) APP=RESAMPLE app=libresample $@ realclean: - $(subst @@,$(subst /,$(HOST_PSEP),../../lib/$(SHLIB_NAME)),$(HOST_RMR)) - $(subst @@,$(subst /,$(HOST_PSEP),$(RESAMPLE_SHLIB)),$(HOST_RMR)) $(MAKE) -f $(RULES_MAK) APP=RESAMPLE app=libresample $@ depend: diff --git a/third_party/build/speex/Makefile b/third_party/build/speex/Makefile index d31166ea..7e5e6fd6 100644 --- a/third_party/build/speex/Makefile +++ b/third_party/build/speex/Makefile @@ -5,7 +5,13 @@ export LIBDIR := ../../lib RULES_MAK := $(PJDIR)/build/rules.mak -export SPEEX_LIB := ../../lib/libspeex-$(TARGET_NAME)$(LIBEXT) +export SPEEX_LIB := libspeex-$(TARGET_NAME)$(LIBEXT) + +ifeq ($(PJ_SHARED_LIBRARIES),) +else +export SPEEX_SONAME := libspeex.$(SHLIB_SUFFIX) +export SPEEX_SHLIB := $(SPEEX_SONAME).$(PJ_VERSION_MAJOR) +endif ############################################################################### # Gather all flags. @@ -44,7 +50,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 := libspeex +TARGETS := $(SPEEX_LIB) $(SPEEX_SONAME) all: $(TARGETS) @@ -54,10 +60,14 @@ doc: dep: depend distclean: realclean -.PHONY: dep depend libspeex clean realclean distclean +.PHONY: all dep depend clean realclean distclean +.PHONY: $(TARGETS) +.PHONY: $(SPEEX_LIB) $(SPEEX_SONAME) -libspeex: - $(MAKE) -f $(RULES_MAK) APP=SPEEX app=libspeex $(SPEEX_LIB) +libspeex: $(SPEEX_LIB) +$(SPEEX_SONAME): $(SPEEX_LIB) +$(SPEEX_LIB) $(SPEEX_SONAME): + $(MAKE) -f $(RULES_MAK) APP=SPEEX app=libspeex $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) clean print_lib: $(MAKE) -f $(RULES_MAK) APP=SPEEX app=libspeex $@ diff --git a/third_party/build/srtp/Makefile b/third_party/build/srtp/Makefile index 17cb4217..9538f0bb 100644 --- a/third_party/build/srtp/Makefile +++ b/third_party/build/srtp/Makefile @@ -5,7 +5,13 @@ export LIBDIR := ../../lib RULES_MAK := $(PJDIR)/build/rules.mak -export SRTP_LIB := ../../lib/libsrtp-$(TARGET_NAME)$(LIBEXT) +export SRTP_LIB := libsrtp-$(TARGET_NAME)$(LIBEXT) + +ifeq ($(PJ_SHARED_LIBRARIES),) +else +export SRTP_SONAME := libsrtp.$(SHLIB_SUFFIX) +export SRTP_SHLIB := $(SRTP_SONAME).$(PJ_VERSION_MAJOR) +endif ############################################################################### # Gather all flags. @@ -57,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 := libsrtp +TARGETS := $(SRTP_LIB) $(SRTP_SONAME) all: $(TARGETS) @@ -67,10 +73,14 @@ doc: dep: depend distclean: realclean -.PHONY: dep depend libsrtp clean realclean distclean +.PHONY: all dep depend clean realclean distclean +.PHONY: $(TARGETS) +.PHONY: $(SRTP_LIB) $(SRTP_SONAME) -libsrtp: - $(MAKE) -f $(RULES_MAK) APP=SRTP app=libsrtp $(SRTP_LIB) +libsrtp: $(SRTP_LIB) +$(SRTP_SONAME): $(SRTP_LIB) +$(SRTP_LIB) $(SRTP_SONAME): + $(MAKE) -f $(RULES_MAK) APP=SRTP app=libsrtp $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) clean print_lib: $(MAKE) -f $(RULES_MAK) APP=SRTP app=libsrtp $@ -- cgit v1.2.3