rpms/ocaml-cil/devel ocaml-cil.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2

Richard W.M. Jones (rjones) fedora-extras-commits at redhat.com
Sat Mar 1 12:32:00 UTC 2008


Author: rjones

Update of /cvs/pkgs/rpms/ocaml-cil/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv18508/devel

Modified Files:
	.cvsignore sources 
Added Files:
	ocaml-cil.spec 
Log Message:
Initial CVS import.



--- NEW FILE ocaml-cil.spec ---
%define opt %(test -x %{_bindir}/ocamlopt && echo 1 || echo 0)
%define debug_package %{nil}

Name:           ocaml-cil
Version:        1.3.6
Release:        4%{?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}
Requires:       perl >= 5.8
Provides:       perl(CilConfig) = %{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 <<EOF
version="%{version}"
description="%{summary}"
archive(byte)="cil.cma"
archive(native)="cil.cmxa"
requires=""
EOF

archos=`ls obj`

rm -f bin/CilConfig.pm
cat > bin/CilConfig.pm <<EOF
\$::archos    = "$archos";
\$::cc        = "gcc";
\$::cilhome   = "%{_libexecdir}/cil";
\$::default_mode = "GNUCC";
EOF

strip obj/$archos/libcil.a
#strip obj/$archos/cilly.byte.exe - NO! It removes the bytecode :-(
%if %opt
strip obj/$archos/cilly.asm.exe
%endif


%install
rm -rf $RPM_BUILD_ROOT

# This sets $archos to something like 'x86_LINUX':
archos=`ls obj`

# This sets $privlib to something like '/usr/lib/perl5/5.8.8':
eval `perl -V:privlib`

export DESTDIR=$RPM_BUILD_ROOT
export OCAMLFIND_DESTDIR=$RPM_BUILD_ROOT%{_libdir}/ocaml

# CIL's make install rule is totally borked.
mkdir -p $DESTDIR$privlib
install -m 0644 lib/*.pm bin/CilConfig.pm $DESTDIR$privlib
mkdir -p $OCAMLFIND_DESTDIR
ocamlfind install cil META obj/$archos/*.{ml,mli,cmi,cmo,cmx,cma,cmxa,o,a}

mkdir -p $DESTDIR%{_bindir}
install -m 0755 bin/cilly $DESTDIR%{_bindir}

mkdir -p $DESTDIR%{_libexecdir}/cil/obj/$archos
install -m 0755 obj/$archos/cilly.*.exe $DESTDIR%{_libexecdir}/cil/obj/$archos


%clean
rm -rf $RPM_BUILD_ROOT


%files
%defattr(-,root,root,-)
%doc README LICENSE
%{_libdir}/ocaml/cil
%if %opt
%exclude %{_libdir}/ocaml/cil/*.a
%exclude %{_libdir}/ocaml/cil/*.cmxa
%exclude %{_libdir}/ocaml/cil/*.cmx
%endif
%exclude %{_libdir}/ocaml/cil/*.mli


%files devel
%defattr(-,root,root,-)
%doc README LICENSE
%if %opt
%{_libdir}/ocaml/cil/*.a
%{_libdir}/ocaml/cil/*.cmxa
%{_libdir}/ocaml/cil/*.cmx
%endif
%{_libdir}/ocaml/cil/*.mli


%files doc
%doc README LICENSE doc/*

%files cilly
%defattr(-,root,root,-)
%doc README LICENSE
/usr/lib/perl5/*/CilConfig.pm
/usr/lib/perl5/*/Cilly.pm
/usr/lib/perl5/*/KeptFile.pm
/usr/lib/perl5/*/OutputFile.pm
/usr/lib/perl5/*/TempFile.pm
%{_bindir}/cilly
%{_libexecdir}/cil


%changelog
* Wed Nov  7 2007 Richard W.M. Jones <rjones at redhat.com> - 1.3.6-4
- ExcludeArch ppc - CIL doesn't build on PPC as it turns out.

* Wed Nov  7 2007 Richard W.M. Jones <rjones at redhat.com> - 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 <rjones at redhat.com> - 1.3.6-2
- Initial RPM release.


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/ocaml-cil/devel/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore	29 Feb 2008 17:03:55 -0000	1.1
+++ .cvsignore	1 Mar 2008 12:31:25 -0000	1.2
@@ -0,0 +1 @@
+cil-1.3.6.tar.gz


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/ocaml-cil/devel/sources,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sources	29 Feb 2008 17:03:55 -0000	1.1
+++ sources	1 Mar 2008 12:31:25 -0000	1.2
@@ -0,0 +1 @@
+112dfbabdd0e1280800d62ba4449ab45  cil-1.3.6.tar.gz




More information about the fedora-extras-commits mailing list