%global commit0 26d6667d7e72ee81c94b0ae2041fcecdcdc795ce %global shortcommit0 %(c=%{commit0}; echo ${c:0:7}) %global commit1 d0b219af41ae3da6150645fbc5cc5613b530603f %global shortcommit1 %(c=%{commit1}; echo ${c:0:7}) %global snapdate 20190315 %global __python %{__python3} Name: trellis Version: 1.0 Release: 0.1.%{snapdate}git%{shortcommit0}%{?dist} Summary: Lattice ECP5 FPGA bitstream creation/analysis/programming tools License: ISC URL: https://github.com/SymbiFlow/prj%{name} Source0: https://github.com/SymbiFlow/prj%{name}/archive/%{commit0}/prj%{name}-%{shortcommit0}.tar.gz Source1: https://github.com/SymbiFlow/prj%{name}-db/archive/%{commit1}/prj%{name}-db-%{shortcommit1}.tar.gz # Patches: #Patch1: some.patch BuildRequires: cmake gcc-c++ BuildRequires: python3-devel BuildRequires: boost-python3-devel # for building docs: BuildRequires: python-sphinx-latex BuildRequires: python3-recommonmark BuildRequires: latexmk # for building manpages: BuildRequires: help2man %description Project Trellis enables a fully open-source flow for ECP5 FPGAs using Yosys for Verilog synthesis and nextpnr for place and route. Project Trellis provides the device database and tools for bitstream creation. %package devel Summary: Development files for Project Trellis Requires: %{name}%{?_isa} = %{version}-%{release} %description devel Development files to build packages using Project Trellis %prep %setup -q -n prj%{name}-%{commit0} -a 1 %{__rm} -rf database %{__mv} prj%{name}-db-%{commit1} database #%%patch1 -p1 # add "-fPIC -g" to CMAKE_CXX_FLAGS: %{__sed} -i '/CMAKE_CXX_FLAGS/s/-O3/-O3 -fPIC -g/' libtrellis/CMakeLists.txt # fix shebang lines in Python scripts find . -name \*.py -exec sed -i 's|/usr/bin/env python3|/usr/bin/python3|' {} \; # remove .gitignore files in examples find . -name \.gitignore -delete %build %cmake libtrellis %make_build %make_build -C docs latexpdf # build manpages: %{__mkdir} man1 for f in ecp* do [ -x $f ] || continue LD_PRELOAD=./libtrellis.so \ help2man --no-discard-stderr --version-string %{version} -N \ -o man1/$f.1 ./$f %{__sed} -i '/required but missing/d' man1/$f.1 done %install %make_install PREFIX="%{_prefix}" %{__install} -Dm644 -t %{buildroot}%{_mandir}/man1 man1/* %check # nothing to do for now. %files %license COPYING %doc README.md docs/_build/latex/ProjectTrellis.pdf %doc examples %{_bindir}/* %dir %{_libdir}/%{name} %{_libdir}/%{name}/libtrellis.so %dir %{_datadir}/%{name} %{_datadir}/%{name}/database %{_datadir}/%{name}/misc %{_mandir}/man1/ecp*.1* %files devel %doc libtrellis/examples %{_libdir}/%{name}/pytrellis.so %{_datadir}/%{name}/timing %{_datadir}/%{name}/util %changelog * Fri Mar 15 2019 Gabriel Somlo - 1.0-0.1.20190315git26d6667 - Initial version.