From: Thomas Petazzoni Date: Thu, 1 Jan 2015 11:33:38 +0000 (+0100) Subject: libsrtp: add missing patch X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1b12b7e81898a974996aa1f89364327d850d4bfa;p=buildroot.git libsrtp: add missing patch This patch should have been part of the commit adding the libsrtp package, as it fixes a number of build issues. Signed-off-by: Thomas Petazzoni --- diff --git a/package/libsrtp/0001-Add-support-for-building-on-cross-compiling-the-shar.patch b/package/libsrtp/0001-Add-support-for-building-on-cross-compiling-the-shar.patch new file mode 100644 index 0000000000..a2df70b823 --- /dev/null +++ b/package/libsrtp/0001-Add-support-for-building-on-cross-compiling-the-shar.patch @@ -0,0 +1,139 @@ +From 8e1dadbcb7ec6be1c568550e97a9e3ce565758bf Mon Sep 17 00:00:00 2001 +From: Nirbheek Chauhan +Date: Wed, 5 Nov 2014 18:35:14 +0530 +Subject: [PATCH] Add support for building on/cross-compiling the shared + library for Windows and OS X + +Also ensure that the shared library is versioned, and an implib is created on +Windows. + +Commit backported from upstream. + +Signed-off-by: Thomas Petazzoni +--- + Makefile.in | 53 ++++++++++++++++++++++++++++++++++++++++------------- + 1 file changed, 40 insertions(+), 13 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 5a7fc21..5ca4453 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -17,7 +17,7 @@ + USE_OPENSSL = @USE_OPENSSL@ + HAVE_PKG_CONFIG = @HAVE_PKG_CONFIG@ + +-.PHONY: all test build_table_apps ++.PHONY: all shared_library test build_table_apps + + all: test + +@@ -43,10 +43,10 @@ endif + CC = @CC@ + INCDIR = -Icrypto/include -I$(srcdir)/include -I$(srcdir)/crypto/include + DEFS = @DEFS@ +-CPPFLAGS= @CPPFLAGS@ ++CPPFLAGS= -fPIC @CPPFLAGS@ + CFLAGS = @CFLAGS@ + LIBS = @LIBS@ +-LDFLAGS = @LDFLAGS@ -L. ++LDFLAGS = -L. @LDFLAGS@ + COMPILE = $(CC) $(DEFS) $(INCDIR) $(CPPFLAGS) $(CFLAGS) + SRTPLIB = -lsrtp + +@@ -75,12 +75,33 @@ prefix = @prefix@ + exec_prefix = @exec_prefix@ + includedir = @includedir@ + libdir = @libdir@ ++bindir = @bindir@ + + ifeq (1, $(HAVE_PKG_CONFIG)) + pkgconfigdir = $(libdir)/pkgconfig + pkgconfig_DATA = libsrtp.pc + endif + ++SHAREDLIBVERSION = 1 ++ifeq (linux,$(findstring linux,@host@)) ++SHAREDLIB_DIR = $(libdir) ++SHAREDLIB_LDFLAGS = -shared -Wl,-soname,$@ ++SHAREDLIBSUFFIXNOVER = so ++SHAREDLIBSUFFIX = $(SHAREDLIBSUFFIXNOVER).$(SHAREDLIBVERSION) ++else ifeq (mingw,$(findstring mingw,@host@)) ++SHAREDLIB_DIR = $(bindir) ++SHAREDLIB_LDFLAGS = -shared -Wl,--out-implib,libsrtp.dll.a ++SHAREDLIBVERSION = ++SHAREDLIBSUFFIXNOVER = dll ++SHAREDLIBSUFFIX = $(SHAREDLIBSUFFIXNOVER) ++else ifeq (darwin,$(findstring darwin,@host@)) ++SHAREDLIB_DIR = $(libdir) ++SHAREDLIB_LDFLAGS = -dynamiclib -twolevel_namespace -undefined dynamic_lookup \ ++ -fno-common -headerpad_max_install_names -install_name $(libdir)/$@ ++SHAREDLIBSUFFIXNOVER = dylib ++SHAREDLIBSUFFIX = $(SHAREDLIBVERSION).$(SHAREDLIBSUFFIXNOVER) ++endif ++ + # implicit rules for object files and test apps + + %.o: %.c +@@ -121,9 +142,14 @@ libsrtp.a: $(srtpobj) $(cryptobj) $(gdoi) + ar cr libsrtp.a $^ + $(RANLIB) libsrtp.a + +-libsrtp.so: $(srtpobj) $(cryptobj) $(gdoi) +- $(CC) -shared -Wl,-soname,libsrtp.so \ +- -o libsrtp.so $^ $(LDFLAGS) ++libsrtp.$(SHAREDLIBSUFFIX): $(srtpobj) $(cryptobj) $(gdoi) ++ $(CC) -shared -o $@ $(SHAREDLIB_LDFLAGS) \ ++ $^ $(LDFLAGS) $(LIBS) ++ if [ -n "$(SHAREDLIBVERSION)" ]; then \ ++ ln -sfn $@ libsrtp.$(SHAREDLIBSUFFIXNOVER); \ ++ fi ++ ++shared_library: libsrtp.$(SHAREDLIBSUFFIX) + + # libcryptomath.a contains general-purpose routines that are used to + # generate tables and verify cryptoalgorithm implementations - this +@@ -212,16 +238,18 @@ libsrtpdoc: + .PHONY: clean superclean distclean install + + install: +- @if [ -r $(DESTDIR)$(includedir)/srtp/srtp.h ]; then \ +- echo "you should run 'make uninstall' first"; exit 1; \ +- fi + $(INSTALL) -d $(DESTDIR)$(includedir)/srtp + $(INSTALL) -d $(DESTDIR)$(libdir) ++ $(INSTALL) -d $(DESTDIR)$(bindir) + cp $(srcdir)/include/*.h $(DESTDIR)$(includedir)/srtp + cp $(srcdir)/crypto/include/*.h $(DESTDIR)$(includedir)/srtp + if [ "$(srcdir)" != "." ]; then cp crypto/include/*.h $(DESTDIR)$(includedir)/srtp; fi + if [ -f libsrtp.a ]; then cp libsrtp.a $(DESTDIR)$(libdir)/; fi +- if [ -f libsrtp.so ]; then cp libsrtp.so $(DESTDIR)$(libdir)/; fi ++ if [ -f libsrtp.dll.a ]; then cp libsrtp.dll.a $(DESTDIR)$(libdir)/; fi ++ if [ -f libsrtp.$(SHAREDLIBSUFFIX) ]; then \ ++ cp libsrtp.$(SHAREDLIBSUFFIX) $(DESTDIR)$(SHAREDLIB_DIR)/; \ ++ cp libsrtp.$(SHAREDLIBSUFFIXNOVER) $(DESTDIR)$(SHAREDLIB_DIR)/; \ ++ fi + if [ "$(pkgconfig_DATA)" != "" ]; then \ + $(INSTALL) -d $(DESTDIR)$(pkgconfigdir); \ + cp $(srcdir)/$(pkgconfig_DATA) $(DESTDIR)$(pkgconfigdir)/; \ +@@ -229,8 +257,7 @@ install: + + uninstall: + rm -f $(DESTDIR)$(includedir)/srtp/*.h +- rm -f $(DESTDIR)$(libdir)/libsrtp.a +- rm -f $(DESTDIR)$(libdir)/libsrtp.so ++ rm -f $(DESTDIR)$(libdir)/libsrtp.* + -rmdir $(DESTDIR)$(includedir)/srtp + if [ "$(pkgconfig_DATA)" != "" ]; then \ + rm -f $(DESTDIR)$(pkgconfigdir)/$(pkgconfig_DATA); \ +@@ -238,7 +265,7 @@ uninstall: + + clean: + rm -rf $(cryptobj) $(srtpobj) $(cryptomath) TAGS \ +- libcryptomath.a libsrtp.a libsrtp.so core *.core test/core ++ libcryptomath.a libsrtp.* core *.core test/core + for a in * */* */*/*; do \ + if [ -f "$$a~" ] ; then rm -f $$a~; fi; \ + done; +-- +2.1.0 +