[packages/libbpg] - added shared patch, build dynamic library

qboosh qboosh at pld-linux.org
Tue Jan 13 22:22:18 CET 2015


commit 511242b5d1931f763f9688ed65d74c2074f1558f
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Tue Jan 13 22:23:49 2015 +0100

    - added shared patch, build dynamic library

 libbpg-shared.patch | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 libbpg.spec         | 66 +++++++++++++++++++++++++++++-------
 2 files changed, 150 insertions(+), 12 deletions(-)
---
diff --git a/libbpg.spec b/libbpg.spec
index 4767829..f42e411 100644
--- a/libbpg.spec
+++ b/libbpg.spec
@@ -1,5 +1,3 @@
-# TODO
-# - dynamic lib
 Summary:	A library of functions for manipulating BPG image format files
 Summary(pl.UTF-8):	Biblioteka funkcji do operacji na plikach obrazów w formacie BPG
 Name:		libbpg
@@ -10,10 +8,12 @@ License:	LGPL v2.1 and BSD
 Group:		Libraries
 Source0:	http://bellard.org/bpg/%{name}-%{version}.tar.gz
 # Source0-md5:	30d1619656955fb3fbba5fe9f9f27f67
+Patch0:		%{name}-shared.patch
 URL:		http://bellard.org/bpg/
 BuildRequires:	libjpeg-turbo-devel
 BuildRequires:	libpng-devel
 BuildRequires:	libstdc++-devel
+BuildRequires:	libtool >= 2:1.5
 ExclusiveArch:	%{ix86} %{x8664}
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
@@ -61,15 +61,40 @@ Group:		Development/Libraries
 Requires:	%{name} = %{version}-%{release}
 
 %description devel
-This package contains the library and header files for developing
-applications that use libbpg.
+This package contains the header files for developing applications
+that use libbpg.
 
 %description devel -l pl.UTF-8
-Ten pakiet zawiera bibliotekę i pliki nagłówkowe do tworzenia
-aplikacji wykorzystujących libbpg.
+Ten pakiet zawiera pliki nagłówkowe do tworzenia aplikacji
+wykorzystujących libbpg.
+
+%package static
+Summary:	Static libbpg library
+Summary(pl.UTF-8):	Statyczna biblioteka libbpg
+Group:		Development/Libraries
+Requires:	%{name}-devel = %{version}-%{release}
+
+%description static
+Static libbpg library.
+
+%description static -l pl.UTF-8
+Statyczna biblioteka libbpg.
+
+%package tools
+Summary:	Tools to encode and decode BPG files
+Summary(pl.UTF-8):	Narzędzia do kodowania i dekodowania plików BPG
+Group:		Applications/Graphics
+Requires:	%{name} = %{version}-%{release}
+
+%description tools
+Tools to encode and decode BPG files.
+
+%description tools -l pl.UTF-8
+Narzędzia do kodowania i dekodowania plików BPG.
 
 %prep
 %setup -q
+%patch0 -p1
 
 %{__sed} -i -e 's,-Os,$(OPTFLAGS),' Makefile
 %{__sed} -i -e 's#LDFLAGS=-g#LDFLAGS=%{rpmldflags}#' Makefile
@@ -79,25 +104,42 @@ aplikacji wykorzystujących libbpg.
 	CC="%{__cc}" \
 	CXX="%{__cxx}" \
 	OPTFLAGS="%{rpmcflags}" \
+	libdir=%{_libdir}
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_bindir},%{_includedir},%{_libdir}}
-install -p bpgdec bpgenc $RPM_BUILD_ROOT%{_bindir}
-cp -p bpgenc.h libbpg.h $RPM_BUILD_ROOT%{_includedir}
-cp -p libbpg.a $RPM_BUILD_ROOT%{_libdir}
+
+%{__make} install install-lib \
+	DESTDIR=$RPM_BUILD_ROOT \
+	prefix=%{_prefix} \
+	libdir=%{_libdir}
+
+# no external dependencies
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libbpg.la
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
+%post	-p /sbin/ldconfig
+%postun	-p /sbin/ldconfig
+
 %files
 %defattr(644,root,root,755)
 %doc ChangeLog README doc html post.js
-%attr(755,root,root) %{_bindir}/bpgdec
-%attr(755,root,root) %{_bindir}/bpgenc
+%attr(755,root,root) %{_libdir}/libbpg.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libbpg.so.0
 
 %files devel
 %defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libbpg.so
 %{_includedir}/bpgenc.h
 %{_includedir}/libbpg.h
+
+%files static
+%defattr(644,root,root,755)
 %{_libdir}/libbpg.a
+
+%files tools
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/bpgdec
+%attr(755,root,root) %{_bindir}/bpgenc
diff --git a/libbpg-shared.patch b/libbpg-shared.patch
new file mode 100644
index 0000000..f8832ad
--- /dev/null
+++ b/libbpg-shared.patch
@@ -0,0 +1,96 @@
+--- libbpg-0.9.5/Makefile.orig	2015-01-11 17:17:07.000000000 +0100
++++ libbpg-0.9.5/Makefile	2015-01-13 21:41:19.791296623 +0100
+@@ -18,6 +18,9 @@
+ #CONFIG_APPLE=y
+ # Installation prefix
+ prefix=/usr/local
++bindir=$(prefix)/bin
++libdir=$(prefix)/lib
++includedir=$(prefix)/include
+ 
+ 
+ #################################
+@@ -38,7 +41,7 @@
+ 
+ PWD:=$(shell pwd)
+ 
+-CFLAGS:=-Os -Wall -MMD -fno-asynchronous-unwind-tables -fdata-sections -ffunction-sections -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -fomit-frame-pointer
++CFLAGS:=$(OPTFLAGS) -Wall -MMD -fno-asynchronous-unwind-tables -fdata-sections -ffunction-sections -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -fomit-frame-pointer
+ CFLAGS+=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_REENTRANT
+ CFLAGS+=-I.
+ CFLAGS+=-DCONFIG_BPG_VERSION=\"$(shell cat VERSION)\"
+@@ -53,7 +56,7 @@
+ EMLDFLAGS+=-O3 --memory-init-file 0 --closure 1 --post-js post.js
+ EMCFLAGS:=$(CFLAGS)
+ 
+-LDFLAGS=-g
++LDFLAGS=-Wl,--as-needed -Wl,--no-copy-dt-needed-entries -Wl,-z,relro -Wl,-z,combreloc 
+ ifdef CONFIG_APPLE
+ LDFLAGS+=-Wl,-dead_strip
+ else
+@@ -85,7 +88,7 @@
+ 
+ LIBBPG_JS8A_OBJS:=$(patsubst %.o, %.js8a.o, $(LIBBPG_OBJS)) tmalloc.js8a.o
+ 
+-$(LIBBPG_OBJS): CFLAGS+=-D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DHAVE_AV_CONFIG_H -std=c99 -D_GNU_SOURCE=1 -DUSE_VAR_BIT_DEPTH -DUSE_PRED
++$(LIBBPG_OBJS) $(LIBBPG_OBJS:.o=.lo): CFLAGS+=-D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DHAVE_AV_CONFIG_H -std=c99 -D_GNU_SOURCE=1 -DUSE_VAR_BIT_DEPTH -DUSE_PRED
+ 
+ $(LIBBPG_JS_OBJS): EMCFLAGS+=-D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DHAVE_AV_CONFIG_H -std=c99 -D_GNU_SOURCE=1 -DUSE_VAR_BIT_DEPTH
+ 
+@@ -155,17 +158,17 @@
+ 
+ bpgenc.o: CFLAGS+=-Wno-unused-but-set-variable
+ 
+-libbpg.a: $(LIBBPG_OBJS) 
+-	$(AR) rcs $@ $^
++libbpg.la: $(LIBBPG_OBJS:.o=.lo)
++	libtool --mode=link --tag=CC $(CC) $(LDFLAGS) -o $@ $^ -rpath $(libdir)
+ 
+-bpgdec$(EXE): bpgdec.o libbpg.a
+-	$(CC) $(LDFLAGS) -o $@ $^ $(BPGDEC_LIBS)
++bpgdec$(EXE): bpgdec.o libbpg.la
++	libtool --mode=link --tag=CC $(CC) $(LDFLAGS) -o $@ $^ $(BPGDEC_LIBS)
+ 
+ bpgenc$(EXE): $(BPGENC_OBJS)
+ 	$(CXX) $(LDFLAGS) -o $@ $^ $(BPGENC_LIBS)
+ 
+-bpgview$(EXE): bpgview.o libbpg.a
+-	$(CC) $(LDFLAGS) -o $@ $^ $(BPGVIEW_LIBS)
++bpgview$(EXE): bpgview.o libbpg.la
++	libtool --mode=link --tag=CC $(CC) $(LDFLAGS) -o $@ $^ $(BPGVIEW_LIBS)
+ 
+ bpgdec.js: $(LIBBPG_JS_OBJS) post.js
+ 	$(EMCC) $(EMLDFLAGS) -s TOTAL_MEMORY=33554432 -o $@ $(LIBBPG_JS_OBJS)
+@@ -177,12 +180,17 @@
+ 	$(EMCC) $(EMLDFLAGS) -s TOTAL_MEMORY=16777216 -o $@ $(LIBBPG_JS8A_OBJS)
+ 
+ size:
+-	strip bpgdec
+ 	size bpgdec libbpg.o libavcodec/*.o libavutil/*.o | sort -n
+ 	gzip < bpgdec | wc
+ 
++install-lib: libbpg.la
++	install -d $(DESTDIR)$(libdir) $(DESTDIR)$(includedir)
++	libtool --mode=install install libbpg.la $(DESTDIR)$(libdir)
++	install -m 644 bpgenc.h libbpg.h $(DESTDIR)$(includedir)
++
+ install: bpgenc bpgdec
+-	install -s -m 755 $^ $(prefix)/bin
++	install -d $(DESTDIR)$(bindir)
++	install -m 755 $^ $(DESTDIR)$(bindir)
+ 
+ CLEAN_DIRS=doc html libavcodec libavutil \
+      jctvc jctvc/TLibEncoder jctvc/TLibVideoIO jctvc/TLibCommon jctvc/libmd5
+@@ -198,6 +206,12 @@
+ %.o: %.cpp
+ 	$(CXX) $(CXXFLAGS) -c -o $@ $<
+ 
++%.lo: %.c
++	libtool --mode=compile --tag=CC $(CC) $(CFLAGS) -c -o $@ $<
++
++%.lo: %.cpp
++	libtool --mode=compile --tag=CXX $(CXX) $(CXXFLAGS) -c -o $@ $<
++
+ %.js.o: %.c
+ 	$(EMCC) $(EMCFLAGS) -c -o $@ $<
+ 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/libbpg.git/commitdiff/511242b5d1931f763f9688ed65d74c2074f1558f



More information about the pld-cvs-commit mailing list