%define opt %(test -x %{_bindir}/ocamlopt && echo 1 || echo 0) %define debug_package %{nil} Name: ocaml-cil Version: 1.3.6 Release: 5%{?dist} Summary: CIL - Infrastructure for C Program Analysis and Transformation Group: Development/Libraries License: BSD URL: http://cil.sourceforge.net/ Source0: http://hal.cs.berkeley.edu/cil/distrib/cil-1.3.6.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExcludeArch: ppc64 ExcludeArch: ppc BuildRequires: ocaml, ocaml-findlib-devel, ocaml-ocamldoc %define _use_internal_dependency_generator 0 %define __find_requires /usr/lib/rpm/ocaml-find-requires.sh %define __find_provides /usr/lib/rpm/ocaml-find-provides.sh %description CIL (C Intermediate Language) is a high-level representation along with a set of tools that permit easy analysis and source-to-source transformation of C programs. CIL is both lower-level than abstract-syntax trees, by clarifying ambiguous constructs and removing redundant ones, and also higher-level than typical intermediate languages designed for compilation, by maintaining types and a close relationship with the source program. The main advantage of CIL is that it compiles all valid C programs into a few core constructs with a very clean semantics. Also CIL has a syntax-directed type system that makes it easy to analyze and manipulate C programs. Furthermore, the CIL front-end is able to process not only ANSI-C programs but also those using Microsoft C or GNU C extensions. If you do not use CIL and want instead to use just a C parser and analyze programs expressed as abstract-syntax trees then your analysis will have to handle a lot of ugly corners of the language (let alone the fact that parsing C itself is not a trivial task). In essence, CIL is a highly-structured, "clean" subset of C. CIL features a reduced number of syntactic and conceptual forms. For example, all looping constructs are reduced to a single form, all function bodies are given explicit return statements, syntactic sugar like "->" is eliminated and function arguments with array types become pointers. %package devel Summary: Development files for %{name} Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description devel The %{name}-devel package contains libraries and signature files for developing applications that use %{name}. %package doc Summary: Documentation for %{name} Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description doc The %{name}-doc package contains documentation for users of %{name}. %package cilly Summary: Support programs for %{name} Group: Development/Libraries Requires: %{name} = %{version}-%{release} Provides: perl(CilConfig) = %{version} Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) %description cilly The %{name}-cilly package contains the 'cilly' wrapper/replacement for gcc. %prep %setup -q -n cil ./configure --libdir=%{_libdir} %build make make quicktest cat > META < bin/CilConfig.pm < - 1.3.6-5 - Fix Perl paths (rhbz#453759). * Wed Nov 7 2007 Richard W.M. Jones - 1.3.6-4 - ExcludeArch ppc - CIL doesn't build on PPC as it turns out. * Wed Nov 7 2007 Richard W.M. Jones - 1.3.6-3 - Change upstream URL. - perl(CilConfig) set to package version - Split out documentation into a separate -doc package. * Mon Aug 20 2007 Richard W.M. Jones - 1.3.6-2 - Initial RPM release.