2014-02-14 19:17:12 +00:00
|
|
|
Name: qepcad-B
|
|
|
|
Version: 1.69
|
2014-02-15 18:16:39 +00:00
|
|
|
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
|
2014-02-15 18:16:39 +00:00
|
|
|
%ifarch %{ix86} x86_64
|
2014-02-14 19:17:12 +00:00
|
|
|
Requires: Singular
|
2014-02-15 18:16:39 +00:00
|
|
|
%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
|
2014-02-15 18:16:39 +00:00
|
|
|
%ifarch %{ix86} x86_64
|
2014-02-14 19:17:12 +00:00
|
|
|
sed 's/^#S/S/' default.qepcadrc > \
|
|
|
|
%{buildroot}%{_datadir}/qepcad/default.qepcadrc
|
2014-02-15 18:16:39 +00:00
|
|
|
%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
|
2014-02-15 18:16:39 +00:00
|
|
|
* 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
|