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