Gabriel L. Somlo 2dd29db
%global commit0 f1b1b355a988b78c746296e097691531d5baf554
Gabriel L. Somlo 19e1fa7
%global shortcommit0 %(c=%{commit0}; echo ${c:0:7})
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 19e1fa7
%global commit1 d0b219af41ae3da6150645fbc5cc5613b530603f
Gabriel L. Somlo 19e1fa7
%global shortcommit1 %(c=%{commit1}; echo ${c:0:7})
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 4737232
%global snapdate 20190327
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 19e1fa7
%global __python %{__python3}
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 19e1fa7
Name:          trellis
Gabriel L. Somlo 19e1fa7
Version:       1.0
Gabriel L. Somlo 2dd29db
Release:       0.2.%{snapdate}git%{shortcommit0}%{?dist}
Gabriel L. Somlo 19e1fa7
Summary:       Lattice ECP5 FPGA bitstream creation/analysis/programming tools
Gabriel L. Somlo 19e1fa7
License:       ISC
Gabriel L. Somlo 19e1fa7
URL:           https://github.com/SymbiFlow/prj%{name}
Gabriel L. Somlo 19e1fa7
Source0:       https://github.com/SymbiFlow/prj%{name}/archive/%{commit0}/prj%{name}-%{shortcommit0}.tar.gz
Gabriel L. Somlo 19e1fa7
Source1:       https://github.com/SymbiFlow/prj%{name}-db/archive/%{commit1}/prj%{name}-db-%{shortcommit1}.tar.gz
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 19e1fa7
# Patches:
Gabriel L. Somlo 19e1fa7
#Patch1:        some.patch
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 19e1fa7
BuildRequires: cmake gcc-c++
Gabriel L. Somlo 19e1fa7
BuildRequires: python3-devel
Gabriel L. Somlo 19e1fa7
BuildRequires: boost-python3-devel
Gabriel L. Somlo 19e1fa7
# for building docs:
Gabriel L. Somlo 19e1fa7
BuildRequires: python-sphinx-latex
Gabriel L. Somlo 19e1fa7
BuildRequires: python3-recommonmark
Gabriel L. Somlo 19e1fa7
BuildRequires: latexmk
Gabriel L. Somlo 19e1fa7
# for building manpages:
Gabriel L. Somlo 19e1fa7
BuildRequires: help2man
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 19e1fa7
Requires:      %{name}-data = %{version}-%{release}
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 19e1fa7
%description
Gabriel L. Somlo 19e1fa7
Project Trellis enables a fully open-source flow for ECP5 FPGAs using
Gabriel L. Somlo 19e1fa7
Yosys for Verilog synthesis and nextpnr for place and route. Project
Gabriel L. Somlo 19e1fa7
Trellis provides the device database and tools for bitstream creation.
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 19e1fa7
%package devel
Gabriel L. Somlo 19e1fa7
Summary:       Development files for Project Trellis
Gabriel L. Somlo 19e1fa7
Requires:      %{name}%{?_isa} = %{version}-%{release}
Gabriel L. Somlo 19e1fa7
Requires:      %{name}-data = %{version}-%{release}
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 19e1fa7
%description devel
Gabriel L. Somlo 19e1fa7
Development files to build packages using Project Trellis
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 19e1fa7
%package data
Gabriel L. Somlo 19e1fa7
Summary:       Project Trellis - Lattice ECP5 Bitstream Database
Gabriel L. Somlo 19e1fa7
BuildArch:     noarch
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 19e1fa7
%description data
Gabriel L. Somlo 19e1fa7
This package contains the bitstream documentation database for
Gabriel L. Somlo 19e1fa7
Lattice ECP5 FPGA devices.
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 19e1fa7
%prep
Gabriel L. Somlo 19e1fa7
%setup -q -n prj%{name}-%{commit0} -a 1
Gabriel L. Somlo 19e1fa7
rm -rf database
Gabriel L. Somlo 19e1fa7
mv prj%{name}-db-%{commit1} database
Gabriel L. Somlo 19e1fa7
#%%patch1 -p1
Gabriel L. Somlo 542b89f
# add "-fPIC -g1" to CMAKE_CXX_FLAGS:
Gabriel L. Somlo 542b89f
# (NOTE: "-g1" reduces debuginfo verbosity over "-g", which helps on armv7hl)
Gabriel L. Somlo 542b89f
sed -i '/CMAKE_CXX_FLAGS/s/-O3/-O3 -fPIC -g1/' libtrellis/CMakeLists.txt
Gabriel L. Somlo 542b89f
# prevent "lib64" false positive (e.g., on i386):
Gabriel L. Somlo 4737232
sed -i 's/"lib64"/"lib${LIB_SUFFIX}"/' libtrellis/CMakeLists.txt
Gabriel L. Somlo d432723
# fix shebang lines in Python scripts:
Gabriel L. Somlo 19e1fa7
find . -name \*.py -exec sed -i 's|/usr/bin/env python3|/usr/bin/python3|' {} \;
Gabriel L. Somlo d432723
# remove .gitignore files in examples:
Gabriel L. Somlo 19e1fa7
find . -name \.gitignore -delete
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 19e1fa7
%build
Gabriel L. Somlo 19e1fa7
%cmake libtrellis
Gabriel L. Somlo 19e1fa7
%make_build
Gabriel L. Somlo 19e1fa7
%make_build -C docs latexpdf
Gabriel L. Somlo 19e1fa7
# build manpages:
Gabriel L. Somlo 19e1fa7
mkdir man1
Gabriel L. Somlo 19e1fa7
for f in ecp*
Gabriel L. Somlo 19e1fa7
do
Gabriel L. Somlo 19e1fa7
  [ -x $f ] || continue
Gabriel L. Somlo 19e1fa7
  LD_PRELOAD=./libtrellis.so \
Gabriel L. Somlo 19e1fa7
    help2man --no-discard-stderr --version-string %{version} -N \
Gabriel L. Somlo 19e1fa7
             -o man1/$f.1 ./$f
Gabriel L. Somlo 19e1fa7
  sed -i '/required but missing/d' man1/$f.1
Gabriel L. Somlo 19e1fa7
done
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 19e1fa7
%install
Gabriel L. Somlo 19e1fa7
%make_install PREFIX="%{_prefix}"
Gabriel L. Somlo 19e1fa7
install -Dpm644 -t %{buildroot}%{_mandir}/man1 man1/*
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 19e1fa7
%check
Gabriel L. Somlo 19e1fa7
# nothing to do for now.
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 19e1fa7
%files
Gabriel L. Somlo 19e1fa7
%license COPYING
Gabriel L. Somlo 19e1fa7
%doc README.md docs/_build/latex/ProjectTrellis.pdf
Gabriel L. Somlo 19e1fa7
%doc examples
Gabriel L. Somlo 19e1fa7
%{_bindir}/*
Gabriel L. Somlo 19e1fa7
%dir %{_libdir}/%{name}
Gabriel L. Somlo 19e1fa7
%{_libdir}/%{name}/libtrellis.so
Gabriel L. Somlo 19e1fa7
%{_datadir}/%{name}/misc
Gabriel L. Somlo 19e1fa7
%{_mandir}/man1/ecp*.1*
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 19e1fa7
%files devel
Gabriel L. Somlo 19e1fa7
%doc libtrellis/examples
Gabriel L. Somlo 19e1fa7
%{_libdir}/%{name}/pytrellis.so
Gabriel L. Somlo 19e1fa7
%{_datadir}/%{name}/timing
Gabriel L. Somlo 19e1fa7
%{_datadir}/%{name}/util
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 19e1fa7
%files data
Gabriel L. Somlo 19e1fa7
%dir %{_datadir}/%{name}
Gabriel L. Somlo 19e1fa7
%{_datadir}/%{name}/database
Gabriel L. Somlo 19e1fa7
Gabriel L. Somlo 19e1fa7
%changelog
Gabriel L. Somlo 4737232
* Wed Mar 27 2019 Gabriel Somlo <gsomlo@gmail.com> - 1.0-0.2.20190327gitf1b1b35
Gabriel L. Somlo 2dd29db
- Update to latest upstream snapshot.
Gabriel L. Somlo 4737232
- Fix library suffix mis-detection on i686.
Gabriel L. Somlo 542b89f
* Wed Mar 20 2019 Gabriel Somlo <gsomlo@gmail.com> - 1.0-0.1.20190320git26d6667
Gabriel L. Somlo 19e1fa7
- Initial version.