File simulavr.spec of Package simulavr
%define realname simulavr
%define srcext tar.bz2
%define prefix /opt/cross
%define _prefix %prefix
# Common info
Name: %{realname}
Version: 1.0.0
Release: wiz%{?extraver:0.}1%{?dist}
License: GPL-2.0
Group: Development/Tools/Debuggers
URL: http://www.nongnu.org/simulavr/
Summary: A simulator for the Atmel AVR family of 8-bit risc microcontrollers
# Install-time parameters
%if 0%{?suse_version}
Recommends: cross-avr-gdb
%endif
# Build-time parameters
BuildRequires: cmake >= 3.5
BuildRequires: gcc-c++
BuildRequires: binutils-devel ncurses-devel zlib-devel
BuildRequires: help2man
BuildRoot: %{_tmppath}/%{name}-root
Source: http://download.savannah.gnu.org/releases/simulavr/%{realname}-%{version}.%{srcext}
%description
Simulavr is a simulator for the Atmel AVR family of microcontrollers.
Simulavr can be used either standalone or as a remote target for gdb. When
used as a remote target for gdb, the simulator is used as a backend to gdb
such that gdb can be used as a source level debugger.
%package devel
Group: Development/Languages/C and C++
Summary: Development files for %{name}
Requires: %{name} = %{version}
%description devel
Development files for %{name}
# Preparation step (unpackung and patching if necessary)
%prep
%setup -q -n %{realname}-%{version}%{?extraver}
# Fix libdir and includedir
%{__sed} -ri \
-e 's|^(\s*install\(.+)lib(.+)$|\1%{_lib}\2|' \
-e 's|^(\s*install\(.+)include(.+)$|\1include/simulavr\2|' \
libsim/CMakeLists.txt
# Skip documentation install
%{__sed} -ri \
-e '/^\s*install\(.+share\/doc/ d' \
-e '/^\s*install\(.+share\/info/ d' \
doc/CMakeLists.txt \
app/CMakeLists.txt
# Replace git version script
echo 'echo ";;%{version};"' > cmake/get_git_version.sh
%build
_CFLAGS='%{optflags} %{?gcc_lto}'
_LDFLAGS='-Wl,--as-needed -Wl,--strip-all -Wl,--no-undefined -Wl,-z,now -Wl,-z,relro %{?gcc_lto}'
_CMAKE_ARGS=(
-DCMAKE_INSTALL_PREFIX=%{_prefix}
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_C_FLAGS_RELEASE="$_CFLAGS"
-DCMAKE_CXX_FLAGS_RELEASE="$_CFLAGS"
-DCMAKE_EXE_LINKER_FLAGS_RELEASE="$_LDFLAGS"
-DCMAKE_MODULE_LINKER_FLAGS_RELEASE="$_LDFLAGS"
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="$_LDFLAGS"
-DCMAKE_VERBOSE_MAKEFILE=YES
)
%{__mkdir} build
cd build
cmake .. \
"${_CMAKE_ARGS[@]}" \
-DAVR_CC=%{_bindir}/avr-gcc
%{__make} %{?_smp_mflags} all doc-man
%install
%{__make} -C build install DESTDIR=%{buildroot}
%clean
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
%files
%defattr(-,root,root)
%doc doc/AUTHORS doc/COPYING doc/README* doc/SUPPORT
%dir %{_prefix}
%dir %{_bindir}
%dir %{_libdir}
%{_bindir}/simulavr
%{_libdir}/libsim.so
%{_mandir}/man1/simulavr.1*
%files devel
%defattr(-,root,root)
%dir %{_includedir}/simulavr/
%dir %{_includedir}
%{_includedir}/simulavr/*
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%changelog