Name: undertaker Version: 1.2 Release: 1%{?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 BuildRequires: boost-devel BuildRequires: emacs-nox BuildRequires: emacs-el BuildRequires: ncurses-devel BuildRequires: picosat-devel BuildRequires: python2-devel BuildRequires: xemacs-devel 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} # Fix up one include path sed -i 's|picosat/picosat.h|picosat.h|' undertaker/SatChecker.h # Fix a python path sed -i "s|^PYTHONPATH=.*|PYTHONPATH=\""%{_python_sitelib}"\"|" \ rsf2model/undertaker-kconfigdump.in # 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}" # Relink one binary to eliminate an unused shared library dependency gcc $RPM_OPT_FLAGS -o scripts/kconfig/dumpconf scripts/kconfig/dumpconf.o \ scripts/kconfig/zconf.tab.o %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 * Tue Sep 20 2011 Jerry James <loganjerry@gmail.com> - 1.2-1 - Initial RPM