summaryrefslogtreecommitdiff
path: root/third_party
diff options
context:
space:
mode:
authorJason Parker <jparker@digium.com>2013-02-12 14:00:13 -0600
committerJason Parker <jparker@digium.com>2013-03-11 15:24:21 -0500
commit9e5b6c43b13a561b09908d2a57edb6c96e4fedaf (patch)
tree9a63bb6b422698f6cbf4a8bde776c7e457afb892 /third_party
parent74ce69c77a8ed993870e6cc22582a1dea8e918e6 (diff)
Add support for building and using shared libraries.
Diffstat (limited to 'third_party')
-rw-r--r--third_party/build/g7221/Makefile20
-rw-r--r--third_party/build/gsm/Makefile20
-rw-r--r--third_party/build/ilbc/Makefile20
-rw-r--r--third_party/build/milenage/Makefile20
-rw-r--r--third_party/build/portaudio/Makefile20
-rw-r--r--third_party/build/resample/Makefile40
-rw-r--r--third_party/build/speex/Makefile20
-rw-r--r--third_party/build/srtp/Makefile20
8 files changed, 123 insertions, 57 deletions
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 $@