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
openSUSE Build Service is sponsored by