[Buildroot] [git commit] libsrtp: add missing patch

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Thu Jan 1 11:33:38 UTC 2015


commit: http://git.buildroot.net/buildroot/commit/?id=1b12b7e81898a974996aa1f89364327d850d4bfa
branch: http://git.buildroot.net/buildroot/commit/?id=refs/heads/master

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 <thomas.petazzoni at free-electrons.com>
---
 ...-for-building-on-cross-compiling-the-shar.patch |  139 ++++++++++++++++++++
 1 files changed, 139 insertions(+), 0 deletions(-)

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 0000000..a2df70b
--- /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 <nirbheek at centricular.com>
+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 <thomas.petazzoni at free-electrons.com>
+---
+ 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, at host@))
++SHAREDLIB_DIR = $(libdir)
++SHAREDLIB_LDFLAGS = -shared -Wl,-soname,$@
++SHAREDLIBSUFFIXNOVER = so
++SHAREDLIBSUFFIX = $(SHAREDLIBSUFFIXNOVER).$(SHAREDLIBVERSION)
++else ifeq (mingw,$(findstring mingw, at host@))
++SHAREDLIB_DIR = $(bindir)
++SHAREDLIB_LDFLAGS = -shared -Wl,--out-implib,libsrtp.dll.a
++SHAREDLIBVERSION =
++SHAREDLIBSUFFIXNOVER = dll
++SHAREDLIBSUFFIX = $(SHAREDLIBSUFFIXNOVER)
++else ifeq (darwin,$(findstring darwin, at 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
+


More information about the buildroot mailing list