|
Jerry James |
575c8c7 |
# Python packaging notes:
|
|
Jerry James |
575c8c7 |
# 1. Upstream does not yet support python 3, so we build for python 2 only.
|
|
Jerry James |
575c8c7 |
# 2. The python build does not link against the library stored in _libdir,
|
|
Jerry James |
575c8c7 |
# because it has to be built differently. Look for instances of
|
|
Jerry James |
575c8c7 |
# "#ifdef ABC_PYTHON_EMBED ... #endif" in the source code. Hence, the
|
|
Jerry James |
575c8c7 |
# python2 subpackage is indepedent of the -libs subpackage.
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
# Upstream doesn't make releases. We have to check the code out of Mercurial.
|
|
Jerry James |
575c8c7 |
%global owner alanmi
|
|
|
0adf615 |
%global commit 13cb576b8538
|
|
|
0adf615 |
%global hgdate 20150306
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
Name: abc
|
|
Jerry James |
575c8c7 |
Version: 1.01
|
|
|
0adf615 |
Release: 4.hg%{hgdate}%{?dist}
|
|
Jerry James |
575c8c7 |
Summary: Sequential logic synthesis and formal verification
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
# This would be MIT, but we link with readline
|
|
Jerry James |
575c8c7 |
License: GPLv3+
|
|
Jerry James |
575c8c7 |
URL: http://www.eecs.berkeley.edu/~alanmi/abc/abc.htm
|
|
Jerry James |
575c8c7 |
Source0: https://bitbucket.org/%{owner}/%{name}/get/%{commit}.zip
|
|
Jerry James |
575c8c7 |
# Man page created by Jerry James using upstream text; hence, it is covered by
|
|
Jerry James |
575c8c7 |
# the same copyright and license as the code.
|
|
Jerry James |
575c8c7 |
Source1: %{name}.1
|
|
Jerry James |
575c8c7 |
# Fedora-specific patch: do not use the bundled libraries
|
|
Jerry James |
575c8c7 |
Patch0: %{name}-bundlelib.patch
|
|
Jerry James |
575c8c7 |
# Fedora-specific patch: build a shared library instead of a static library
|
|
Jerry James |
575c8c7 |
Patch1: %{name}-sharedlib.patch
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
BuildRequires: bzip2-devel
|
|
Jerry James |
575c8c7 |
BuildRequires: python2-devel
|
|
Jerry James |
575c8c7 |
BuildRequires: readline-devel
|
|
Jerry James |
575c8c7 |
BuildRequires: swig
|
|
Jerry James |
575c8c7 |
BuildRequires: zlib-devel
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
%description
|
|
Jerry James |
575c8c7 |
ABC is a growing software system for synthesis and verification of
|
|
Jerry James |
575c8c7 |
binary sequential logic circuits appearing in synchronous hardware
|
|
Jerry James |
575c8c7 |
designs. ABC combines scalable logic optimization based on And-Inverter
|
|
Jerry James |
575c8c7 |
Graphs (AIGs), optimal-delay DAG-based technology mapping for look-up
|
|
Jerry James |
575c8c7 |
tables and standard cells, and innovative algorithms for sequential
|
|
Jerry James |
575c8c7 |
synthesis and verification.
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
ABC provides an experimental implementation of these algorithms and a
|
|
Jerry James |
575c8c7 |
programming environment for building similar applications. Future
|
|
Jerry James |
575c8c7 |
development will focus on improving the algorithms and making most of
|
|
Jerry James |
575c8c7 |
the packages stand-alone. This will allow the user to customize ABC for
|
|
Jerry James |
575c8c7 |
their needs as if it were a toolbox rather than a complete tool.
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
%package libs
|
|
Jerry James |
575c8c7 |
Summary: Library for sequential synthesis and verification
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
%description libs
|
|
Jerry James |
575c8c7 |
This package contains the core functionality of ABC as a shared library.
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
%package devel
|
|
Jerry James |
575c8c7 |
Summary: Headers and libraries for developing with ABC
|
|
Jerry James |
575c8c7 |
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
%description devel
|
|
Jerry James |
575c8c7 |
Headers and libraries for developing applications that use ABC.
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
%package python2
|
|
Jerry James |
575c8c7 |
Summary: Python 2 interface to ABC
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
%description python2
|
|
Jerry James |
575c8c7 |
Python 2 interface to ABC
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
%prep
|
|
Jerry James |
575c8c7 |
%setup -q -c
|
|
Jerry James |
575c8c7 |
pushd %{owner}-%{name}-%{commit}
|
|
Jerry James |
575c8c7 |
%patch0
|
|
Jerry James |
575c8c7 |
%patch1
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
# Do not use the bundled libraries
|
|
Jerry James |
575c8c7 |
rm -fr lib src/misc/{bzlib,zlib} src/sat/bsat2
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
# Fix end of line encodings
|
|
Jerry James |
575c8c7 |
for fil in readme.md readmeaig; do
|
|
Jerry James |
575c8c7 |
sed -i.orig 's/\r//' ${fil}
|
|
Jerry James |
575c8c7 |
touch -r ${fil}.orig ${fil}
|
|
Jerry James |
575c8c7 |
rm -f ${fil}.orig
|
|
Jerry James |
575c8c7 |
done
|
|
Jerry James |
575c8c7 |
popd
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
# Prepare for the python 2 build
|
|
Jerry James |
575c8c7 |
cp -a %{owner}-%{name}-%{commit} %{name}-python2
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
# Set the version number in the man page
|
|
Jerry James |
575c8c7 |
sed 's/@VERSION@/%{version} (%{hgdate})/' %{SOURCE1} > %{name}.1
|
|
Jerry James |
575c8c7 |
touch -r %{SOURCE1} %{name}.1
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
%build
|
|
Jerry James |
575c8c7 |
# Build the library and binary
|
|
Jerry James |
575c8c7 |
pushd %{owner}-%{name}-%{commit}
|
|
Jerry James |
575c8c7 |
make %{?_smp_mflags} libabc.so OPTFLAGS="%{optflags} -fPIC -DNDEBUG" \
|
|
Jerry James |
575c8c7 |
LD="g++ $RPM_LD_FLAGS"
|
|
Jerry James |
575c8c7 |
g++ src/base/main/main.o -o %{name} -L. -labc
|
|
Jerry James |
575c8c7 |
popd
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
# Build for python 2
|
|
Jerry James |
575c8c7 |
pushd %{name}-python2
|
|
Jerry James |
575c8c7 |
make libabc.a %{?_smp_mflags} OPTFLAGS="%{optflags} -fPIC -DNDEBUG" \
|
|
Jerry James |
575c8c7 |
LD="g++ $RPM_LD_FLAGS" ABC_PYTHON="%{__python2}"
|
|
Jerry James |
575c8c7 |
cd src/python
|
|
Jerry James |
575c8c7 |
%{__python2} setup.py build
|
|
Jerry James |
575c8c7 |
popd
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
%install
|
|
Jerry James |
575c8c7 |
pushd %{owner}-%{name}-%{commit}
|
|
Jerry James |
575c8c7 |
# Install the library
|
|
Jerry James |
575c8c7 |
mkdir -p %{buildroot}%{_libdir}
|
|
Jerry James |
575c8c7 |
install -p -m 0755 lib%{name}.so.0.0.0 %{buildroot}%{_libdir}
|
|
Jerry James |
575c8c7 |
ln -s lib%{name}.so.0.0.0 %{buildroot}%{_libdir}/lib%{name}.so.0
|
|
Jerry James |
575c8c7 |
ln -s lib%{name}.so.0 %{buildroot}%{_libdir}/lib%{name}.so
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
# Install the header files
|
|
|
270dae4 |
pushd src
|
|
Jerry James |
575c8c7 |
mkdir -p %{buildroot}%{_includedir}/%{name}
|
|
|
270dae4 |
tar -cBf - $(find -O3 . -name \*.h) | \
|
|
|
270dae4 |
(cd %{buildroot}%{_includedir}/%{name}; tar -xBf -)
|
|
|
270dae4 |
popd
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
# Install the binary
|
|
Jerry James |
575c8c7 |
mkdir -p %{buildroot}%{_bindir}
|
|
Jerry James |
575c8c7 |
install -p -m 0755 %{name} %{buildroot}%{_bindir}
|
|
Jerry James |
575c8c7 |
popd
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
# Install the man page
|
|
Jerry James |
575c8c7 |
mkdir -p %{buildroot}%{_mandir}/man1
|
|
Jerry James |
575c8c7 |
install -p -m 0644 %{name}.1 %{buildroot}%{_mandir}/man1
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
# Install the python2 interface
|
|
Jerry James |
575c8c7 |
pushd %{name}-python2
|
|
Jerry James |
575c8c7 |
cd src/python
|
|
Jerry James |
575c8c7 |
%{__python2} setup.py install -O1 --skip-build --root %{buildroot}
|
|
Jerry James |
575c8c7 |
mkdir %{buildroot}%{python2_sitearch}/%{name}
|
|
Jerry James |
575c8c7 |
mv %{buildroot}%{python2_sitearch}/*.py* %{buildroot}%{python2_sitearch}/*.so \
|
|
Jerry James |
575c8c7 |
%{buildroot}%{python2_sitearch}/%{name}
|
|
Jerry James |
575c8c7 |
chmod 0755 %{buildroot}%{python2_sitearch}/%{name}/*.so
|
|
Jerry James |
575c8c7 |
popd
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
%post libs -p /sbin/ldconfig
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
%postun libs -p /sbin/ldconfig
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
%files
|
|
Jerry James |
575c8c7 |
%doc %{owner}-%{name}-%{commit}/readme.md %{owner}-%{name}-%{commit}/readmeaig
|
|
Jerry James |
575c8c7 |
%{_bindir}/%{name}
|
|
Jerry James |
575c8c7 |
%{_mandir}/man1/%{name}*
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
%files libs
|
|
Jerry James |
575c8c7 |
%license %{owner}-%{name}-%{commit}/copyright.txt
|
|
Jerry James |
575c8c7 |
%{_libdir}/lib%{name}.so.*
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
%files devel
|
|
Jerry James |
575c8c7 |
%{_includedir}/%{name}/
|
|
Jerry James |
575c8c7 |
%{_libdir}/lib%{name}.so
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
%files python2
|
|
Jerry James |
575c8c7 |
%license %{owner}-%{name}-%{commit}/copyright.txt
|
|
Jerry James |
575c8c7 |
%{python2_sitearch}/*
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
%changelog
|
|
|
0adf615 |
* Sat Mar 7 2015 Jerry James <loganjerry@gmail.com> - 1.01-4.hg20150306
|
|
|
0adf615 |
- Update to latest mercurial snapshot
|
|
|
0adf615 |
|
|
|
270dae4 |
* Thu Jan 1 2015 Jerry James <loganjerry@gmail.com> - 1.01-3.hg20150101
|
|
|
270dae4 |
- Update to latest mercurial snapshot
|
|
|
270dae4 |
- Fix installation of header files
|
|
|
270dae4 |
|
|
Jerry James |
575c8c7 |
* Wed Dec 3 2014 Jerry James <loganjerry@gmail.com> - 1.01-2.hg20141130
|
|
Jerry James |
575c8c7 |
- Drop unnecessary jquery Provides
|
|
Jerry James |
575c8c7 |
- Fix file permissions
|
|
Jerry James |
575c8c7 |
|
|
Jerry James |
575c8c7 |
* Mon Dec 1 2014 Jerry James <loganjerry@gmail.com> - 1.01-1.hg20141130
|
|
Jerry James |
575c8c7 |
- Initial RPM
|