app-arch/lz4: add support for USE=static-libs
authorMike Frysinger <vapier@gentoo.org>
Thu, 10 Nov 2016 05:16:10 +0000 (00:16 -0500)
committerMike Frysinger <vapier@gentoo.org>
Thu, 10 Nov 2016 05:16:10 +0000 (00:16 -0500)
app-arch/lz4/files/lz4-0_p131-static-libs.patch [new file with mode: 0644]
app-arch/lz4/lz4-0_p131-r1.ebuild
app-arch/lz4/lz4-9999.ebuild

diff --git a/app-arch/lz4/files/lz4-0_p131-static-libs.patch b/app-arch/lz4/files/lz4-0_p131-static-libs.patch
new file mode 100644 (file)
index 0000000..f8c5c2d
--- /dev/null
@@ -0,0 +1,49 @@
+fix from upstream
+
+From 43b631223b2d0425a0970876974074934f89c450 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Thu, 22 Sep 2016 23:59:02 -0400
+Subject: [PATCH] add a flag to disable static libs
+
+---
+ lib/Makefile | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/lib/Makefile b/lib/Makefile
+index b5352a0cb372..27b35c41b693 100644
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -40,6 +40,8 @@
+ LIBVER_PATCH=`sed -n '/define LZ4_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lz4.h`
+ LIBVER=$(LIBVER_MAJOR).$(LIBVER_MINOR).$(LIBVER_PATCH)
+ 
++BUILD_STATIC:= yes
++
+ DESTDIR?=
+ PREFIX ?= /usr/local
+ CFLAGS ?= -O3
+@@ -71,9 +72,11 @@
+ all: liblz4
+ 
+ liblz4: lz4.c lz4hc.c lz4frame.c xxhash.c
++ifeq ($(BUILD_STATIC),yes)
+       @echo compiling static library
+       @$(CC) $(CPPFLAGS) $(CFLAGS) -c $^
+       @$(AR) rcs liblz4.a lz4.o lz4hc.o lz4frame.o xxhash.o
++endif
+       @echo compiling dynamic library $(LIBVER)
+       @$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -shared $^ -fPIC $(SONAME_FLAGS) -o $@.$(SHARED_EXT_VER)
+       @echo creating versioned links
+@@ -104,7 +107,9 @@
+       @cp -a liblz4.$(SHARED_EXT_MAJOR) $(DESTDIR)$(LIBDIR)
+       @cp -a liblz4.$(SHARED_EXT) $(DESTDIR)$(LIBDIR)
+       @cp -a liblz4.pc $(DESTDIR)$(LIBDIR)/pkgconfig/
++ifeq ($(BUILD_STATIC),yes)
+       @install -m 644 liblz4.a $(DESTDIR)$(LIBDIR)/liblz4.a
++endif
+       @install -m 644 lz4.h $(DESTDIR)$(INCLUDEDIR)/lz4.h
+       @install -m 644 lz4hc.h $(DESTDIR)$(INCLUDEDIR)/lz4hc.h
+       @install -m 644 lz4frame.h $(DESTDIR)$(INCLUDEDIR)/lz4frame.h
+-- 
+2.9.0
+
index 8e7767efc8661923a8792ccbb0ce4179b1d9a884..21dc5de4ab78000f058e349b292da104d467eb8b 100644 (file)
@@ -26,7 +26,7 @@ LICENSE="BSD-2 GPL-2"
 # with abi-compliance-checker and update the subslot every time ABI
 # changes. This is the least we can do to keep things sane.
 SLOT="0/r131"
-IUSE="test valgrind"
+IUSE="static-libs test valgrind"
 
 DEPEND="test? ( valgrind? ( dev-util/valgrind ) )"
 
@@ -34,27 +34,32 @@ src_prepare() {
        if ! use valgrind; then
                sed -i -e '/^test:/s|test-mem||g' programs/Makefile || die
        fi
+       epatch "${FILESDIR}"/${PN}-0_p131-static-libs.patch
        multilib_copy_sources
 }
 
+lmake() {
+       emake \
+               BUILD_STATIC=$(usex static-libs) \
+               PREFIX="${EPREFIX}/usr" \
+               LIBDIR="${EPREFIX}"/usr/$(get_libdir) \
+               "$@"
+}
+
 multilib_src_compile() {
        tc-export CC AR
        # we must not use the 'all' target since it builds test programs
        # & extra -m32 executables
-       emake -C lib liblz4 liblz4.pc \
-               PREFIX="${EPREFIX}/usr" \
-               LIBDIR="${EPREFIX}"/usr/$(get_libdir)
-       emake -C programs lz4 lz4c
+       lmake -C lib liblz4 liblz4.pc
+       lmake -C programs lz4 lz4c
        # work around lack of proper target dependencies
        touch lib/liblz4
 }
 
 multilib_src_test() {
-       emake -j1 test
+       lmake -j1 test
 }
 
 multilib_src_install() {
-       emake install DESTDIR="${D}" \
-               PREFIX="${EPREFIX}/usr" \
-               LIBDIR="${EPREFIX}"/usr/$(get_libdir)
+       lmake install DESTDIR="${D}"
 }
index 8e7767efc8661923a8792ccbb0ce4179b1d9a884..21dc5de4ab78000f058e349b292da104d467eb8b 100644 (file)
@@ -26,7 +26,7 @@ LICENSE="BSD-2 GPL-2"
 # with abi-compliance-checker and update the subslot every time ABI
 # changes. This is the least we can do to keep things sane.
 SLOT="0/r131"
-IUSE="test valgrind"
+IUSE="static-libs test valgrind"
 
 DEPEND="test? ( valgrind? ( dev-util/valgrind ) )"
 
@@ -34,27 +34,32 @@ src_prepare() {
        if ! use valgrind; then
                sed -i -e '/^test:/s|test-mem||g' programs/Makefile || die
        fi
+       epatch "${FILESDIR}"/${PN}-0_p131-static-libs.patch
        multilib_copy_sources
 }
 
+lmake() {
+       emake \
+               BUILD_STATIC=$(usex static-libs) \
+               PREFIX="${EPREFIX}/usr" \
+               LIBDIR="${EPREFIX}"/usr/$(get_libdir) \
+               "$@"
+}
+
 multilib_src_compile() {
        tc-export CC AR
        # we must not use the 'all' target since it builds test programs
        # & extra -m32 executables
-       emake -C lib liblz4 liblz4.pc \
-               PREFIX="${EPREFIX}/usr" \
-               LIBDIR="${EPREFIX}"/usr/$(get_libdir)
-       emake -C programs lz4 lz4c
+       lmake -C lib liblz4 liblz4.pc
+       lmake -C programs lz4 lz4c
        # work around lack of proper target dependencies
        touch lib/liblz4
 }
 
 multilib_src_test() {
-       emake -j1 test
+       lmake -j1 test
 }
 
 multilib_src_install() {
-       emake install DESTDIR="${D}" \
-               PREFIX="${EPREFIX}/usr" \
-               LIBDIR="${EPREFIX}"/usr/$(get_libdir)
+       lmake install DESTDIR="${D}"
 }