From 3c3b8c6cf322ceacb451e0de8cac7b8338bbc297 Mon Sep 17 00:00:00 2001 From: Jason Parker Date: Tue, 12 Feb 2013 14:00:13 -0600 Subject: Add support for building and using shared libraries. --- 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 | 40 ++++++++++++++++-------------------- third_party/build/speex/Makefile | 20 +++++++++++++----- third_party/build/srtp/Makefile | 20 +++++++++++++----- 8 files changed, 123 insertions(+), 57 deletions(-) (limited to 'third_party') diff --git a/third_party/build/g7221/Makefile b/third_party/build/g7221/Makefile index 6059030..59d8160 100644 --- a/third_party/build/g7221/Makefile +++ b/third_party/build/g7221/Makefile @@ -5,7 +5,9 @@ export LIBDIR := ../../lib RULES_MAK := $(PJDIR)/build/rules.mak -export G7221_CODEC_LIB := ../../lib/libg7221codec-$(TARGET_NAME)$(LIBEXT) +export G7221_CODEC_SONAME := libg7221codec.$(SHLIB_SUFFIX) +export G7221_CODEC_SHLIB := $(G7221_CODEC_SONAME).$(PJ_VERSION_MAJOR) +export G7221_CODEC_LIB := libg7221codec-$(TARGET_NAME)$(LIBEXT) ############################################################################### # Gather all flags. @@ -34,7 +36,10 @@ 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) +ifneq ($(PJ_SHARED_LIBRARIES),) +TARGETS += $(G7221_CODEC_SONAME) +endif all: $(TARGETS) @@ -44,10 +49,15 @@ 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_SHLIB) $(G7221_CODEC_SONAME) -libg7221codec: - $(MAKE) -f $(RULES_MAK) APP=G7221_CODEC app=libg7221codec $(G7221_CODEC_LIB) +libg7221codec: $(G7221_CODEC_LIB) +$(G7221_CODEC_SHLIB): $(G7221_CODEC_SONAME) +$(G7221_CODEC_SONAME): $(G7221_CODEC_LIB) +$(G7221_CODEC_LIB) $(G7221_CODEC_SHLIB) $(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 a265076..1fba80e 100644 --- a/third_party/build/gsm/Makefile +++ b/third_party/build/gsm/Makefile @@ -5,7 +5,9 @@ export LIBDIR := ../../lib RULES_MAK := $(PJDIR)/build/rules.mak -export GSM_CODEC_LIB := ../../lib/libgsmcodec-$(TARGET_NAME)$(LIBEXT) +export GSM_CODEC_SONAME := libgsmcodec.$(SHLIB_SUFFIX) +export GSM_CODEC_SHLIB := $(GSM_CODEC_SONAME).$(PJ_VERSION_MAJOR) +export GSM_CODEC_LIB := libgsmcodec-$(TARGET_NAME)$(LIBEXT) ############################################################################### # Gather all flags. @@ -35,7 +37,10 @@ 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) +ifneq ($(PJ_SHARED_LIBRARIES),) +TARGETS += $(GSM_CODEC_SONAME) +endif all: $(TARGETS) @@ -45,10 +50,15 @@ 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_SHLIB) $(GSM_CODEC_SONAME) -libgsmcodec: - $(MAKE) -f $(RULES_MAK) APP=GSM_CODEC app=libgsmcodec $(GSM_CODEC_LIB) +libgsmcodec: $(GSM_CODEC_LIB) +$(GSM_CODEC_SHLIB): $(GSM_CODEC_SONAME) +$(GSM_CODEC_SONAME): $(GSM_CODEC_LIB) +$(GSM_CODEC_LIB) $(GSM_CODEC_SHLIB) $(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 50b4ab7..1e75d07 100644 --- a/third_party/build/ilbc/Makefile +++ b/third_party/build/ilbc/Makefile @@ -5,7 +5,9 @@ export LIBDIR := ../../lib RULES_MAK := $(PJDIR)/build/rules.mak -export ILBC_LIB := ../../lib/libilbccodec-$(TARGET_NAME)$(LIBEXT) +export ILBC_SONAME := libilbccodec.$(SHLIB_SUFFIX) +export ILBC_SHLIB := $(ILBC_SONAME).$(PJ_VERSION_MAJOR) +export ILBC_LIB := libilbccodec-$(TARGET_NAME)$(LIBEXT) ############################################################################### # Gather all flags. @@ -36,7 +38,10 @@ 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) +ifneq ($(PJ_SHARED_LIBRARIES),) +TARGETS += $(ILBC_SONAME) +endif all: $(TARGETS) @@ -46,10 +51,15 @@ 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_SHLIB) $(ILBC_SONAME) -libilbccodec: - $(MAKE) -f $(RULES_MAK) APP=ILBC app=libilbccodec $(ILBC_LIB) +libilbccodec: $(ILBC_LIB) +$(ILBC_SHLIB): $(ILBC_SONAME) +$(ILBC_SONAME): $(ILBC_LIB) +$(ILBC_LIB) $(ILBC_SHLIB) $(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 094ddea..1948d03 100644 --- a/third_party/build/milenage/Makefile +++ b/third_party/build/milenage/Makefile @@ -5,7 +5,9 @@ export LIBDIR := ../../lib RULES_MAK := $(PJDIR)/build/rules.mak -export MILENAGE_LIB := ../../lib/libmilenage-$(TARGET_NAME)$(LIBEXT) +export MILENAGE_SONAME := libmilenage.$(SHLIB_SUFFIX) +export MILENAGE_SHLIB := $(MILENAGE_SONAME).$(PJ_VERSION_MAJOR) +export MILENAGE_LIB := libmilenage-$(TARGET_NAME)$(LIBEXT) ############################################################################### # Gather all flags. @@ -29,7 +31,10 @@ 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) +ifneq ($(PJ_SHARED_LIBRARIES),) +TARGETS += $(MILENAGE_SONAME) +endif all: $(TARGETS) @@ -39,10 +44,15 @@ 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_SHLIB) $(MILENAGE_SONAME) -libmilenage: - $(MAKE) -f $(RULES_MAK) APP=MILENAGE app=libmilenage $(MILENAGE_LIB) +libmilenage: $(MILENAGE_LIB) +$(MILENAGE_SHLIB): $(MILENAGE_SONAME) +$(MILENAGE_SONAME): $(MILENAGE_LIB) +$(MILENAGE_LIB) $(MILENAGE_SHLIB) $(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 ad81571..6c36747 100644 --- a/third_party/build/portaudio/Makefile +++ b/third_party/build/portaudio/Makefile @@ -6,7 +6,9 @@ export LIBDIR := ../../lib RULES_MAK := $(PJDIR)/build/rules.mak -export PORTAUDIO_LIB:=../../lib/libportaudio-$(TARGET_NAME)$(LIBEXT) +export PORTAUDIO_SONAME := libportaudio.$(SHLIB_SUFFIX) +export PORTAUDIO_SHLIB := $(PORTAUDIO_SONAME).$(PJ_VERSION_MAJOR) +export PORTAUDIO_LIB:=libportaudio-$(TARGET_NAME)$(LIBEXT) PORTAUDIO_OBJS += pa_allocation.o \ pa_converters.o \ @@ -43,17 +45,25 @@ 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) +ifneq ($(PJ_SHARED_LIBRARIES),) +TARGETS += $(PORTAUDIO_SONAME) +endif 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_SHLIB) $(PORTAUDIO_SONAME) -libportaudio: - $(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $(PORTAUDIO_LIB) +libportaudio: $(PORTAUDIO_LIB) +$(PORTAUDIO_SHLIB): $(PORTAUDIO_SONAME) +$(PORTAUDIO_SONAME): $(PORTAUDIO_LIB) +$(PORTAUDIO_LIB) $(PORTAUDIO_SHLIB) $(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 2deb873..8b0423e 100644 --- a/third_party/build/resample/Makefile +++ b/third_party/build/resample/Makefile @@ -21,9 +21,9 @@ 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_SONAME := libresample.$(SHLIB_SUFFIX) +export RESAMPLE_SHLIB := $(RESAMPLE_SONAME).$(PJ_VERSION_MAJOR) +export RESAMPLE_LIB := libresample-$(TARGET_NAME)$(LIBEXT) export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT ############################################################################### @@ -31,17 +31,14 @@ 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) +ifneq ($(PJ_SHARED_LIBRARIES),) +TARGETS += $(RESAMPLE_SONAME) else -SHLIB_OPT := -endif +ifneq ($(PJ_RESAMPLE_DLL),) +TARGETS += $(RESAMPLE_SONAME) export RESAMPLE_CFLAGS := -fPIC $(RESAMPLE_CFLAGS) -export RESAMPLE_LDFLAGS := -shared $(SHLIB_OPT) $(RESAMPLE_LDFLAGS) -else -TARGETS := libresample +endif endif all: $(TARGETS) @@ -52,23 +49,22 @@ 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_SHLIB) $(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_SHLIB): $(RESAMPLE_SONAME) +$(RESAMPLE_SONAME): $(RESAMPLE_LIB) +$(RESAMPLE_LIB) $(RESAMPLE_SHLIB) $(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 d31166e..49bf2ff 100644 --- a/third_party/build/speex/Makefile +++ b/third_party/build/speex/Makefile @@ -5,7 +5,9 @@ export LIBDIR := ../../lib RULES_MAK := $(PJDIR)/build/rules.mak -export SPEEX_LIB := ../../lib/libspeex-$(TARGET_NAME)$(LIBEXT) +export SPEEX_SONAME := libspeex.$(SHLIB_SUFFIX) +export SPEEX_SHLIB := $(SPEEX_SONAME).$(PJ_VERSION_MAJOR) +export SPEEX_LIB := libspeex-$(TARGET_NAME)$(LIBEXT) ############################################################################### # Gather all flags. @@ -44,7 +46,10 @@ 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) +ifneq ($(PJ_SHARED_LIBRARIES),) +TARGETS += $(SPEEX_SONAME) +endif all: $(TARGETS) @@ -54,10 +59,15 @@ 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_SHLIB) $(SPEEX_SONAME) -libspeex: - $(MAKE) -f $(RULES_MAK) APP=SPEEX app=libspeex $(SPEEX_LIB) +libspeex: $(SPEEX_LIB) +$(SPEEX_SHLIB): $(SPEEX_SONAME) +$(SPEEX_SONAME): $(SPEEX_LIB) +$(SPEEX_LIB) $(SPEEX_SHLIB) $(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 17cb421..4ed0121 100644 --- a/third_party/build/srtp/Makefile +++ b/third_party/build/srtp/Makefile @@ -5,7 +5,9 @@ export LIBDIR := ../../lib RULES_MAK := $(PJDIR)/build/rules.mak -export SRTP_LIB := ../../lib/libsrtp-$(TARGET_NAME)$(LIBEXT) +export SRTP_SONAME := libsrtp.$(SHLIB_SUFFIX) +export SRTP_SHLIB := $(SRTP_SONAME).$(PJ_VERSION_MAJOR) +export SRTP_LIB := libsrtp-$(TARGET_NAME)$(LIBEXT) ############################################################################### # Gather all flags. @@ -57,7 +59,10 @@ 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) +ifneq ($(PJ_SHARED_LIBRARIES),) +TARGETS += $(SRTP_SONAME) +endif all: $(TARGETS) @@ -67,10 +72,15 @@ 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_SHLIB) $(SRTP_SONAME) -libsrtp: - $(MAKE) -f $(RULES_MAK) APP=SRTP app=libsrtp $(SRTP_LIB) +libsrtp: $(SRTP_LIB) +$(SRTP_SHLIB): $(SRTP_SONAME) +$(SRTP_SONAME): $(SRTP_LIB) +$(SRTP_LIB) $(SRTP_SHLIB) $(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