200 lines
6.1 KiB
RPMSpec
200 lines
6.1 KiB
RPMSpec
Name: undertaker
|
|
Version: 1.2
|
|
Release: 11%{?dist}
|
|
Summary: Find always-on and always-off conditional C code
|
|
|
|
Group: Development/Languages
|
|
License: GPLv2 and GPLv3+
|
|
URL: http://vamos.informatik.uni-erlangen.de/trac/undertaker
|
|
Source0: http://vamos.informatik.uni-erlangen.de/files/%{name}-%{version}.tar.gz
|
|
# As of F20, Boost doesn't ship -mt DSO's anymore.
|
|
Patch0: %{name}-boost_mt.patch
|
|
# Adapt to new picosat API
|
|
Patch1: %{name}-picosat.patch
|
|
|
|
BuildRequires: boost-devel
|
|
BuildRequires: emacs
|
|
BuildRequires: ncurses-devel
|
|
BuildRequires: picosat-devel
|
|
BuildRequires: python2-devel
|
|
BuildRequires: xemacs
|
|
BuildRequires: xemacs-packages-extra
|
|
|
|
# Needed for undertaker-calc-coverage
|
|
Requires: cpp
|
|
Requires: git
|
|
Requires: make
|
|
Requires: sparse
|
|
|
|
%description
|
|
The undertaker is an implementation of the Vamos project's preprocessor
|
|
and configuration analysis approaches. It can check the structure of
|
|
preprocessor directives against different configuration models to find
|
|
blocks that can't be selected or deselected.
|
|
|
|
%package emacs
|
|
Summary: Emacs support for %{name}
|
|
Group: Development/Languages
|
|
Requires: emacs(bin) >= %{_emacs_version}
|
|
Requires: %{name} = %{version}-%{release}
|
|
BuildArch: noarch
|
|
|
|
%description emacs
|
|
Emacs support for %{name}.
|
|
|
|
%package emacs-el
|
|
Summary: Source for Emacs support for %{name}
|
|
Group: Development/Languages
|
|
Requires: %{name}-emacs = %{version}-%{release}
|
|
BuildArch: noarch
|
|
|
|
%description emacs-el
|
|
Source Elisp code for Emacs support for %{name}.
|
|
|
|
%package xemacs
|
|
Summary: XEmacs support for %{name}
|
|
Group: Development/Languages
|
|
Requires: xemacs(bin) >= %{_xemacs_version}, xemacs-packages-extra
|
|
Requires: %{name} = %{version}-%{release}
|
|
BuildArch: noarch
|
|
|
|
%description xemacs
|
|
XEmacs support for %{name}.
|
|
|
|
%package xemacs-el
|
|
Summary: Source for XEmacs support for %{name}
|
|
Group: Development/Languages
|
|
Requires: %{name}-xemacs = %{version}-%{release}
|
|
BuildArch: noarch
|
|
|
|
%description xemacs-el
|
|
Source Elisp code for XEmacs support for %{name}.
|
|
|
|
%prep
|
|
%setup -q -n vamos-%{version}
|
|
%patch0
|
|
%patch1
|
|
|
|
# Fix a python path
|
|
sed -i "s|^PYTHONPATH=.*|PYTHONPATH=\""%{python2_sitelib}"\"|" \
|
|
rsf2model/undertaker-kconfigdump.in
|
|
|
|
# Fix a python dependency
|
|
sed 's|env python|python|' undertaker/undertaker-calc-coverage > foo
|
|
chmod a+x foo
|
|
touch -r undertaker/undertaker-calc-coverage foo
|
|
mv -f foo undertaker/undertaker-calc-coverage
|
|
|
|
# Use the right flags when building and linking
|
|
sed -e "s|-Wall -Wextra -O2|$RPM_OPT_FLAGS|" \
|
|
-e "s|^LDFLAGS =.*|LDFLAGS = $RPM_OPT_FLAGS|" \
|
|
-i undertaker/Makefile
|
|
sed -e "s|^LDXX=.*|LDXX=g++ \$(CXXFLAGS)|" \
|
|
-e "s|^DEBUG =.*|DEBUG=|" \
|
|
-e "s|-Wall -Wextra -O2|$RPM_OPT_FLAGS|" \
|
|
-i ziz/Makefile
|
|
|
|
# Fix the Makefile so we don't rebuild everything when installing
|
|
sed -e "s|^all:.*|all: \$(PROGS) \$(TEMPLATED) \$(MANPAGES)|" \
|
|
-e "s|^install: all.*|install:|" \
|
|
-e "s|check undertaker-lcov|check install undertaker-lcov|" \
|
|
-i Makefile
|
|
|
|
# Remove prebuilt objects
|
|
make clean
|
|
rm -f scripts/basic/docproc scripts/basic/fixdep scripts/basic/hash \
|
|
scripts/kconfig/dumpconf undertaker/test-ConditionalBlock \
|
|
undertaker/test-SatChecker undertaker/undertaker ziz/zizler
|
|
|
|
# Fix end-of-line encodings
|
|
for f in DeadAnalysis ElDocumentation Interactive ModelFiles Preconditions; do
|
|
sed -i.orig 's/\r//' doc/Undertaker$f
|
|
touch -r doc/Undertaker$f.orig doc/Undertaker$f
|
|
rm -f doc/Undertaker$f.orig
|
|
done
|
|
|
|
%build
|
|
# FIXME: building with %%{?_smp_mflags} sometimes fails
|
|
make PREFIX=%{_prefix} LIBDIR=%{_libdir} \
|
|
HOSTCFLAGS="${RPM_OPT_FLAGS}" HOSTCXXFLAGS="${RPM_OPT_FLAGS}" \
|
|
HOSTLDFLAGS="${RPM_LD_FLAGS} -Wl,--as-needed"
|
|
|
|
%install
|
|
make install DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} LIBDIR=%{_libdir}
|
|
|
|
# The rsf2model script is installed in two places. We only need one.
|
|
rm -f $RPM_BUILD_ROOT%{_bindir}/rsf2model
|
|
|
|
# Copy the Emacs support to the appropriate XEmacs dir and byte compile
|
|
mkdir -p $RPM_BUILD_ROOT%{_xemacs_sitelispdir}
|
|
cp -a $RPM_BUILD_ROOT%{_emacs_sitelispdir}/%{name} \
|
|
$RPM_BUILD_ROOT%{_xemacs_sitelispdir}
|
|
cd $RPM_BUILD_ROOT%{_xemacs_sitelispdir}/%{name}
|
|
%{_xemacs_bytecompile} *.el
|
|
|
|
# Byte compile the Emacs support file
|
|
cd $RPM_BUILD_ROOT%{_emacs_sitelispdir}/%{name}
|
|
%{_emacs_bytecompile} *.el
|
|
|
|
%files
|
|
%doc AUTHORS LICENSE README
|
|
%doc doc/UndertakerDeadAnalysis doc/UndertakerInteractive
|
|
%doc doc/UndertakerModelFiles doc/UndertakerPreconditions
|
|
%{_bindir}/*
|
|
%{_libdir}/undertaker
|
|
%{_mandir}/man1/*
|
|
%{python_sitelib}/undertaker*
|
|
|
|
%files emacs
|
|
%doc doc/UndertakerElDocumentation
|
|
%dir %{_emacs_sitelispdir}/%{name}
|
|
%{_emacs_sitelispdir}/%{name}/*.elc
|
|
|
|
%files emacs-el
|
|
%{_emacs_sitelispdir}/%{name}/*.el
|
|
|
|
%files xemacs
|
|
%doc doc/UndertakerElDocumentation
|
|
%dir %{_xemacs_sitelispdir}/%{name}
|
|
%{_xemacs_sitelispdir}/%{name}/*.elc
|
|
|
|
%files xemacs-el
|
|
%{_xemacs_sitelispdir}/%{name}/*.el
|
|
|
|
%changelog
|
|
* Wed Jul 31 2013 Jerry James <loganjerry@gmail.com> - 1.2-11
|
|
- Add -picosat patch to adapt to new reentrant picosat API
|
|
|
|
* Sat Jul 27 2013 Petr Machata <pmachata@redhat.com> - 1.2-10
|
|
- Rebuild for boost 1.54.0
|
|
- Boost.Wave and Boost.System DSO's do not include -mt suffix anymore
|
|
(undertaker-boost_mt.patch).
|
|
|
|
* Sat Feb 09 2013 Denis Arnaud <denis.arnaud_fedora@m4x.org> - 1.2-9
|
|
- Rebuild for Boost-1.53.0
|
|
|
|
* Mon Aug 20 2012 Jerry James <loganjerry@gmail.com> - 1.2-8
|
|
- Rebuild for new picosat
|
|
|
|
* Mon Aug 6 2012 Jerry James <loganjerry@gmail.com> - 1.2-7
|
|
- Rebuild for boost 1.50
|
|
|
|
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2-6
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
|
|
|
* Tue Feb 28 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2-5
|
|
- Rebuilt for c++ ABI breakage
|
|
|
|
* Tue Jan 10 2012 Jerry James <loganjerry@gmail.com> - 1.2-4
|
|
- Rebuild to fix python dependencies
|
|
- Drop unnecessary BRs
|
|
- Ensure correct LDFLAGS
|
|
|
|
* Mon Jan 9 2012 Jerry James <loganjerry@gmail.com> - 1.2-3
|
|
- Rebuild for GCC 4.7
|
|
|
|
* Sun Nov 20 2011 Jerry James <loganjerry@gmail.com> - 1.2-2
|
|
- Rebuild for new boost
|
|
|
|
* Tue Sep 20 2011 Jerry James <loganjerry@gmail.com> - 1.2-1
|
|
- Initial RPM
|