qepcad-B/qepcad-B.spec

126 lines
4.0 KiB
RPMSpec
Raw Normal View History

2014-02-14 19:17:12 +00:00
Name: qepcad-B
Version: 1.69
Release: 3%{?dist}
2014-02-14 19:17:12 +00:00
Summary: Quantifier elimination tool
License: MIT
URL: http://www.usna.edu/CS/~qepcad/B/QEPCAD.html
Source0: http://www.usna.edu/CS/~qepcad/INSTALL/%{name}.%{version}.tar.gz
# Don't require users to set the "qe" environment variable. Not for upstream.
Patch0: %{name}-env.patch
# Add gcc attributes for better efficiency and warnings. Upstream: 20 Nov 2013.
Patch1: %{name}-attr.patch
# Fix use of uninitialized variables. Upstream: 20 Nov 2013.
Patch2: %{name}-uninit.patch
# Fix a non-void function where control can fall off the end. Upstream:
# 20 Nov 2013.
Patch3: %{name}-return.patch
# Fix abstract base classes with non-virtual destructors. Upstream:
# 20 Nov 2013.
Patch4: %{name}-destructor.patch
# Add parentheses to disambiguate mixed boolean operators. Upstream:
# 20 Nov 2013.
Patch5: %{name}-parens.patch
# Fix some mixed signed/unsigned operations. Upstream: 20 Nov 2013.
Patch6: %{name}-signed.patch
# Fix syntactically incorrect expressions. Upstream: 20 Nov 2013.
Patch7: %{name}-syntax.patch
# Remove unused variables and static functions.
Patch8: %{name}-unused.patch
BuildRequires: freeglut-devel
BuildRequires: readline-devel
BuildRequires: saclib-devel
Requires: bash
%ifarch %{ix86} x86_64
2014-02-14 19:17:12 +00:00
Requires: Singular
%endif
2014-02-14 19:17:12 +00:00
%description
QEPCAD is an implementation of quantifier elimination by partial
cylindrical algebraic decomposition due originally to Hoon Hong, and
subsequently added on to by many others. It is an interactive
command-line program written in C/C++, and based on the SACLIB library.
This is QEPCAD B version 1.x, the "B" designating a substantial
departure from the original QEPCAD and distinguishing it from any
development of the original that may proceed in a different direction.
%prep
%setup -q -n qesource
%patch0
%patch1
%patch2
%patch3
%patch4
%patch5
%patch6
%patch7
%patch8
# Adapt to the Fedora saclib package
sed -i 's,\${saclib}/lib/saclib.\.a,-lsaclib,' source/Makefile cad2d/Makefile
# Use the right build flags
sed -i "s/-O4/%{optflags} -Wno-unused-label $RPM_LD_FLAGS/" plot2d/Makefile
%build
# FIXME: %%{?_smp_mflags} doesn't work
export saclib=%{_prefix}
export qe=$PWD
export CC=g++
export CCo=g++
export FLAGS="%{optflags} -I%{_includedir}/saclib -Wno-unused-label"
export FLAGSo="$FLAGS"
export SPECIFLAGS="-I%{_includedir}/saclib"
export SPECLFLAGS="$RPM_LD_FLAGS"
make -C extensions/sfext
make -C extensions/adj2d
make -C extensions/rend
make -C extensions/newadj
make -C extensions/lift2D
make -C source opt FLAGSo="$FLAGS"
make -C plot2d
make -C cad2d opt FLAGSo="$FLAGS"
%install
#Install the binaries
mkdir -p %{buildroot}%{_bindir}
install -p -m 0755 source/qepcad %{buildroot}%{_bindir}
install -p -m 0755 plot2d/ADJ2D_plot %{buildroot}%{_bindir}
install -p -m 0755 cad2d/cad2d %{buildroot}%{_bindir}
# Install the default settings file
mkdir -p %{buildroot}%{_datadir}/qepcad
%ifarch %{ix86} x86_64
2014-02-14 19:17:12 +00:00
sed 's/^#S/S/' default.qepcadrc > \
%{buildroot}%{_datadir}/qepcad/default.qepcadrc
%else
cp -p default.qepcadrc %{buildroot}%{_datadir}/qepcad/default.qepcadrc
%endif
2014-02-14 19:17:12 +00:00
touch -r default.qepcadrc %{buildroot}%{_datadir}/qepcad/default.qepcadrc
# Install qepcad.help and the expected symbolic links
mkdir -p %{buildroot}%{_datadir}/qepcad/bin
cp -p source/qepcad.help %{buildroot}%{_datadir}/qepcad/bin
ln -s %{_bindir}/ADJ2D_plot %{buildroot}%{_datadir}/qepcad/bin
ln -s %{_bindir}/cad2d %{buildroot}%{_datadir}/qepcad/bin
ln -s %{_bindir}/qepcad %{buildroot}%{_datadir}/qepcad/bin
%files
%doc LICENSE LOG
%{_bindir}/qepcad
%{_bindir}/ADJ2D_plot
%{_bindir}/cad2d
%{_datadir}/qepcad/
%changelog
* Sat Feb 15 2014 Jerry James <loganjerry@gmail.com> - 1.69-3
- Singular is currently available for x86 architectures only
2014-02-14 19:17:12 +00:00
* Thu Feb 13 2014 Jerry James <loganjerry@gmail.com> - 1.69-2
- Install qepcad.help
* Thu Nov 21 2013 Jerry James <loganjerry@gmail.com> - 1.69-1
- Initial RPM