Blob Blame History Raw
Summary: Crystallographic Binary File and Image Library
Name: CBFlib
Version: 0.9.2.3
Release: 2%{?dist}
# library files (*.so*) are LGPLv2+, all else is GPLv2+
License: GPLv2+ and (GPLv2+ or LGPLv2+)
Group: System Environment/Libraries
URL: http://www.bernstein-plus-sons.com/software/CBF
Source0: http://downloads.sourceforge.net/cbflib/%{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: gcc-gfortran

%description
CBFlib (Crystallographic Binary File library) is a library of ANSI-C
functions providing a simple mechanism for accessing Crystallographic
Binary Files (CBF files) and Image-supporting CIF (imgCIF) files. The
CBFlib API is loosely based on the CIFPARSE API for mmCIF files. Like
CIFPARSE, CBFlib does not perform any semantic integrity checks;
rather it simply provides functions to create, read, modify and write
CBF binary data files and imgCIF ASCII data files.

%package devel
Summary: Header files and library for developing programs with cbf
Requires: %{name}%{?_isa} = %{version}-%{release}
Group: Development/Libraries

%description devel

This package contains libraries and header files needed for program
development using the crystallographic binary file and image library.

%prep
%setup -q -n %{name}-%{version}

# various cleanups
iconv -f iso8859-15 -t utf-8 doc/cif_img_1.5.3_8Jul07.dic > doc/cif_img_1.5.3_8Jul07.dic.conv && mv -f doc/cif_img_1.5.3_8Jul07.dic.conv doc/cif_img_1.5.3_8Jul07.dic 
rm doc/.symlinks
rm doc/.undosymlinks
chmod 644 examples/*.c

%build
# make %{?_smp_mflags}
cd src
gcc -fPIC -DCBF_DONT_USE_LONG_LONG -D_USE_XOPEN_EXTENDED %{optflags} -c *.c ../examples/img.c -I../include/ -I../examples/
gcc -shared -Wl,-soname,libcbf.so.0 -o libcbf.so.0.0.0 *.o -lm
rm *.o
gfortran -fPIC -fno-range-check %{optflags} -c *.f90 -I../include/
gfortran -shared -Wl,-soname,libfcb.so.0 -o libfcb.so.0.0.0 *.o

cd ../examples
utilsublist="adscimg2cbf
cbf2adscimg
adscimg2cbf"
for i in $utilsublist; do
  gcc %{optflags} ${i}.c ${i}_sub.c -I../include ../src/libcbf.so.0.0.0 -o ${i}
done
utillist="convert_image
convert_minicbf
makecbf
img2cif
cif2cbf
cif2c"
for i in $utillist; do
  gcc %{optflags} ${i}.c -I../include ../src/libcbf.so.0.0.0 -o ${i} -lm
done

%install
rm -rf %{buildroot}
# make install DESTDIR=%{buildroot} INSTALL='install -p'

mkdir -p %{buildroot}%{_libdir}
install -p -m 644 src/*.so* %{buildroot}%{_libdir}/
pushd %{buildroot}%{_libdir}
chmod +x libcbf.so.0.0.0
ln -sf libcbf.so.0.0.0 libcbf.so.0
ln -sf libcbf.so.0.0.0 libcbf.so
chmod +x libfcb.so.0.0.0
ln -sf libfcb.so.0.0.0 libfcb.so.0
ln -sf libfcb.so.0.0.0 libfcb.so
popd

mkdir -p %{buildroot}%{_bindir}
utilsublist="adscimg2cbf
cbf2adscimg
adscimg2cbf"
for i in $utilsublist; do
  install -p -m 755 examples/${i} %{buildroot}%{_bindir}/
done
utillist="convert_image
convert_minicbf
makecbf
img2cif
cif2cbf
cif2c"
for i in $utillist; do
  install -p -m 755 examples/${i} %{buildroot}%{_bindir}/
done

mkdir -p %{buildroot}%{_includedir}/cbf
install -p -m 644 include/* %{buildroot}%{_includedir}/cbf/
install -p -m 644 examples/img.h %{buildroot}%{_includedir}/cbf/

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root,-)
%doc README doc/gpl.txt
# GPLv2+
%{_bindir}/adscimg2cbf
%{_bindir}/cbf2adscimg
%{_bindir}/convert_image
%{_bindir}/convert_minicbf
%{_bindir}/makecbf
%{_bindir}/img2cif
%{_bindir}/cif2cbf
%{_bindir}/cif2c
# LGPLv2+
%{_libdir}/libcbf.so.0.0.0
%{_libdir}/libcbf.so.0
%{_libdir}/libfcb.so.0.0.0
%{_libdir}/libfcb.so.0

%files devel
%defattr(-,root,root,-)
# GPLv2+
%doc doc
# LGPLv2+
%{_libdir}/libcbf.so
%{_libdir}/libfcb.so
# GPLv2+
%{_includedir}/cbf

%changelog
* Sun Jan 29 2012 Tim Fenn <tim.fenn@gmail.com> - 0.9.2.3-2
- update requires
- fix permissions of .c files in examples directory

* Fri Dec 30 2011 Tim Fenn <tim.fenn@gmail.com> - 0.9.2.3-1
- update to 0.9.2.3
- remove duplicate adscimg2cbf
- fix typo
- use optflags and buildroot instead of RPM_OPT_FLAGS and RPM_BUILD_ROOT
- keep gpl.txt in doc dir

* Fri Jul 01 2011 Tim Fenn <fenn@stanford.edu> - 0.9.2.2-1
- update to 0.9.2.2 (removes pycifrw dependency)

* Mon Nov 15 2010 Tim Fenn <fenn@stanford.edu> - 0.9.1-1
- update to 0.9.1rc2
- add lm to linker for utils

* Mon Mar 08 2010 Tim Fenn <fenn@stanford.edu> - 0.9.0-1
- update to 0.9.0
- include examples

* Wed Dec 09 2009 Tim Fenn <fenn@stanford.edu> - 0.8.1-2
- add a define to cflags
- fix up doc
- license update

* Wed Sep 16 2009 Tim Fenn <fenn@stanford.edu> - 0.8.1-1
- initial build