Sophie

Sophie

distrib > Arklinux > devel > x86_64 > media > main-src > by-pkgid > fa9fbf264c3899e2bb64f0e14c1fc29c > files > 1

crypto++-5.6.0-1ark.src.rpm

Name: crypto++
Version: 5.6.0
%define major %(echo %version |cut -d. -f1)
Release: 1ark
Source: http://www.cryptopp.com/cryptopp%(echo %version |sed -e 's,\.,,g').zip
Summary: Collection of cryptographic C++ classes
URL: http://cryptopp.com/
License: BSD-like
Group: System/Libraries
BuildRoot: %_tmppath/%name-root

%description
Crypto++ Library is a free C++ class library of cryptographic schemes.

%package devel
Summary: Development files for %name
Group: Development/Libraries
Requires: %name = %version-%release

%description devel
Development files (Headers etc.) for %name.

%package static
Summary: Static libraries for linking to %name
Group: Development/Libraries
Requires: %name-devel = %version-%release

%description static
Static libraries for linking to %name.

Install this package if you wish to develop or compile applications using
%name statically (users of the resulting binary won't need %name installed
with static linking).

%prep
%setup -q -c %name-%version%beta
sed -i -e "s%%-g -O2%%$RPM_OPT_FLAGS -fPIC%%g" GNUmakefile
# Harmful for package building...
sed -i -e 's,-mtune=native,,g;s,-march=native,,g' GNUmakefile
# And generate a proper shared library
cat >>GNUmakefile <<'EOF'
libcrypto++.so.%major: $(LIBOBJS)
	$(CXX) -shared -Wl,-shared -Wl,-soname=libcrypto++.so.%major -o $@ $(LIBOBJS)
EOF

%build
make %?_smp_mflags
make %?_smp_mflags libcrypto++.so.%major

%install
rm -rf $RPM_BUILD_ROOT
make %?_smp_mflags install PREFIX="$RPM_BUILD_ROOT%_prefix"
%if "%_lib" != "lib"
mv $RPM_BUILD_ROOT%_prefix/lib $RPM_BUILD_ROOT%_libdir
%endif
# Install the shared lib
%__install -c -m 755 libcrypto++.so.%major $RPM_BUILD_ROOT%_libdir/libcrypto++.so.%version
ln -s libcrypto++.so.%version $RPM_BUILD_ROOT%_libdir/libcrypto++.so.%major
ln -s libcrypto++.so.%version $RPM_BUILD_ROOT%_libdir/libcrypto++.so
# libcryptopp.* is what the Makefiles generate -- but Makefiles of some
# other projects (e.g. kvirc) want to link to libcrypto++.*, so that's probably
# what some other distros are calling it. Let's just provide both...
ln -s libcrypto++.so.%version $RPM_BUILD_ROOT%_libdir/libcryptopp.so.%version
ln -s libcrypto++.so.%version $RPM_BUILD_ROOT%_libdir/libcryptopp.so.%major
ln -s libcrypto++.so.%version $RPM_BUILD_ROOT%_libdir/libcryptopp.so
mv $RPM_BUILD_ROOT%_libdir/libcryptopp.a $RPM_BUILD_ROOT%_libdir/libcrypto++.a
ln -s libcrypto++.a $RPM_BUILD_ROOT%_libdir/libcryptopp.a
cd $RPM_BUILD_ROOT%_includedir
mv cryptopp crypto++
ln -s crypto++ cryptopp
# fix weirdo filenames
cd $RPM_BUILD_ROOT%_bindir
for i in *.exe; do
	mv $i ${i/.exe/}
done
# And generate a pkgconfig file to make kvirc happy
mkdir -p $RPM_BUILD_ROOT%_libdir/pkgconfig
cat >$RPM_BUILD_ROOT%_libdir/pkgconfig/libcrypto++.pc <<'EOF'
prefix=%_prefix
libdir=%_libdir
includedir=%_includedir/crypto++
Name: Libcrypto++
Description: Cryptographic C++ Class Library
Version: %version
Cfalgs: -I${includedir}
Libs: -lcrypto++
EOF

%files
%defattr(-,root,root)
%_libdir/*.so*

%files devel
%defattr(-,root,root)
%_includedir/*
%_bindir/*
%_libdir/pkgconfig/*

%files static
%defattr(-,root,root)
%_libdir/*.a

%clean
rm -rf $RPM_BUILD_ROOT $RPM_BUILD_DIR/%name-%version

%changelog
* Wed Jul 22 2009 Bernhard Rosenkraenzer <bero@arklinux.ch> 5.6.0-1ark
- initial RPM