## 3 Distribution Contents

The file `distrib/cil-1.3.6.tar.gz` contains the complete source CIL distribution, consisting of the following files:

Filename | Description
`Makefile.in` | `configure` source for the Makefile that builds CIL
`configure` | The configure script
`configure.in` | The `autoconf` source for `configure`
`config.guess`, `config.sub`, `install-sh` | stuff required by `configure`
`doc/` | HTML documentation of the CIL API
`obj/` | Directory that will contain the compiled CIL modules and executables
`bin/cilly.in` | The `configure` source for a Perl script that can be invoked with the same arguments as either `gcc` or Microsoft Visual C and will convert the program to CIL, perform some simple transformations, emit it and compile it as usual.
`lib/CompilerStub.pm` | A Perl class that can be used to write code that impersonates a compiler. `cilly` uses it.
`lib/Merger.pm` | A subclass of `CompilerStub.pm` that can be used to merge source files into a single source file.`cilly` uses it.
`bin/patcher.in` | A Perl script that applies specified patches to standard include files.
`src/check.ml,mli` | Checks the well-formedness of a CIL file
`src/cil.ml,mli` | Definition of CIL abstract syntax and utilities for manipulating it
`src/clist.ml,mli` | Utilities for efficiently managing lists that need to be concatenated often
`src/errormsg.ml,mli` | Utilities for error reporting
`src/ext/heapify.ml` | A CIL transformation that moves array local variables from the stack to the heap
`src/ext/logcalls.ml,mli` | A CIL transformation that logs every function call
`src/ext/sfi.ml` | A CIL transformation that can log every memory read and write
`src/frontc/clexer.mll` | The lexer
`src/frontc/cparser.mly` | The parser
`src/frontc/cabs.ml` | The abstract syntax
`src/frontc/cprint.ml` | The pretty printer for CABS
`src/frontc/cabs2cil.ml` | The elaborator to CIL
`src/main.ml` | The `cilly` application
`src/pretty.ml,mli` | Utilities for pretty printing
`src/rmtmps.ml,mli` | A CIL tranformation that removes unused types, variables and inlined functions
`src/stats.ml,mli` | Utilities for maintaining timing statistics
`src/testcil.ml` | A random test of CIL (against the resident C compiler)
`src/trace.ml,mli` | Utilities useful for printing debugging information
`ocamlutil/` | Miscellaneous libraries that are not specific to CIL.
`ocamlutil/Makefile.ocaml` | A file that is included by `Makefile`
`ocamlutil/perfcount.c` | C code that links with src/stats.ml and reads Intel performance counters.
`obj/@ARCHOS@/feature_config.ml` | File generated by the Makefile describing which extra “features” to compile. See Section 5
`obj/@ARCHOS@/machdep.ml` | File generated by the Makefile containing information about your architecture, such as the size of a pointer
`src/machdep.c` | C program that generates `machdep.ml` files