Sophie

Sophie

distrib > Fedora > 16 > x86_64 > media > updates-src > by-pkgid > 8084bb5c8d7118fdf53f9b377ef0b994 > files > 2

undertaker-1.2-1.fc16.src.rpm

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