File sparse.spec of Package sparse
#
# spec file for package sparse
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: sparse
Version: 20161117
Release: 0
Summary: A semantic parser of source files
License: MIT
Group: Development/Tools/Building
Url: https://sparse.wiki.kernel.org/index.php/Main_Page
Source: sparse-%{version}.tar.xz
Patch0: parse-add-support-for-no_sanitize_-attributes.patch
BuildRequires: gcc-c++
BuildRequires: ncurses-devel
BuildRequires: pkgconfig
BuildRequires: pkgconfig(gtk+-2.0)
BuildRequires: pkgconfig(libxml-2.0)
%if 0%{?suse_version} > 1320 || 0%{?is_opensuse}
BuildRequires: llvm-devel
%endif
%description
Sparse is a semantic parser of source files: it's neither a compiler
(although it could be used as a front-end for one) nor is it a
preprocessor (although it contains as a part of it a preprocessing
phase).
It is meant to be a small - and simple - library. Scanty and meager,
and partly because of that easy to use. It has one mission in life:
create a semantic parse tree for some arbitrary user for further
analysis. It's not a tokenizer, nor is it some generic context-free
parser. In fact, context (semantics) is what it's all about - figuring
out not just what the grouping of tokens are, but what the _types_ are
that the grouping implies.
Sparse is primarily used in the development and debugging of the Linux
kernel.
%package devel
Summary: Devel files for sparse
Group: Development/Libraries/C and C++
%description devel
Development headers and libraries for sparse.
%package inspect
Summary: Inspect binary from sparse
Group: Development/Libraries/C and C++
%description inspect
test-inspect is a gtk frontend for sparse.
%package llvm
Summary: LLVM backed sparse
Group: Development/Libraries/C and C++
%description llvm
LLVM backend for sparse, including sparsec
%prep
%setup -q
%patch0 -p1
%build
make \
%{?_smp_mflags} \
PREFIX=%{_prefix} \
LIBDIR=%{_libdir} \
MANDIR=%{_mandir} \
PKGCONFIGDIR=%{_datadir}/pkgconfig \
CFLAGS="%{optflags}" \
V=1
%install
make \
%{?_smp_mflags} \
DESTDIR=%{buildroot} \
PREFIX=%{_prefix} \
LIBDIR=%{_libdir} \
MANDIR=%{_mandir} \
PKGCONFIGDIR=%{_datadir}/pkgconfig \
install
%files
%defattr(-,root,root)
%doc LICENSE README FAQ
%{_bindir}/cgcc
%{_bindir}/c2xml
%{_bindir}/sparse
%{_mandir}/man1/cgcc.1%{ext_man}
%{_mandir}/man1/sparse.1%{ext_man}
%if 0%{?suse_version} > 1320 || 0%{?is_opensuse}
%files llvm
%defattr(-,root,root)
%{_bindir}/sparsec
%{_bindir}/sparse-llvm
%endif
%files inspect
%defattr(-,root,root)
%{_bindir}/test-inspect
%files devel
%defattr(-,root,root)
%{_includedir}/sparse
%{_libdir}/libsparse.a
%{_datadir}/pkgconfig/sparse.pc
%changelog