Frama-C / headache

Lightweight tool for managing headers in source code files. It can update in any source code files (OCaml, C, XML et al).
Other
24 stars 7 forks source link
                           `headache`
                           **********
                        Vincent Simonet
                        ===============
                         November, 2002
                         ==============

This manual is also available in plain text (1), PostScript (2) and PDF (3).

1 Overview ====*=

It is a common usage to put at the beginning of source code files a short header giving, for instance, some copyright informations. headache is a simple and lightweight tool for managing easily these headers. Among its functionalities, one may mention:

2 Compilation and installation ==============*=

Building headache requires Objective Caml (available at http://caml.inria.fr/) and GNU Make. In addition, from version 1.03-utf8, the build requires the Unicode library Camomile and, from version 1.04, Dune.

Instructions

headache is available through OPAM (available at http://opam.ocaml.org/), the OCaml Package Manager. This is the preferred installation method. Then the following sequence of commands should install the package: << opam init opam install headache

Alternatively, you can use these commands (Dune must be installed): << make && sudo make INSTALLDIR=/usr/local/bin install

Build the executable and install it into the specified directory.

3 Usage ===

Let us illustrate the use of this tool with a small example. Assume you have a small project mixing C and Caml code consisting in three files foo.c, bar.ml and bar.mli, and you want to equip them with some header. First of all, write a header file, i.e. a plain text file including the information headers must mention. An example of such a file is given in figure 1. In the following, we assume this file is named myheader and is in the same directory as source files. Then, in order to generate headers, just run the command: << headache -h myheader foo.c bar.ml bar.mli

Each file is equipped with a header including the text given in the header file myheader, surrounded by some extra characters depending on its format making it a comment (e.g. (* and *) in .ml files). If you update informations in the header file myheader, you simply need to re-run the above command to update headers in source code files: existing ones are automatically removed. Similarly, running: << headache -r foo.c bar.ml bar.mli

removes any existing in files foo.c, bar.ml and bar.mli. Files which do not have a header are kept unchanged. The current headers of files can be extracted: << headache -e foo.c bar.ml bar.mli

prints on the standard output the current headers of the files foo.c, bar.ml and bar.mli. All files are kept unchanged.

<< Headache Automatic generation of files headers

         Vincent Simonet, Projet Cristal, INRIA Rocquencourt

 Copyright 2002
 Institut National de Recherche en Informatique et en Automatique.
 All rights reserved.  This file is distributed under the terms of
 the GNU Library General Public License.

 Vincent.Simonet@inria.fr          

http://cristal.inria.fr/~simonet/

 Figure 1: An example of header file

4 Configuration file ==========

File types and format of header may be specified by a configuration file. By default, the default builtin configuration file given in figure 2 is used. You can also use your own configuration file thanks to the -c option: << headache -c myconfig -h myheader foo.c bar.ml bar.mli

In order to write your own configuration, you can follow the example given in figure 2. A configuration file consists in a list of entries separated by the character |. Each of them is made of two parts separated by an ->:


This document was translated from LaTeX by HeVeA (4).

(1) manual.txt (2) manual.ps.gz (3) manual.pdf (4) http://hevea.inria.fr/index.html