Node: Directory structure, Next: , Up: Project layout



Directory structure

Each project sources MUST be delivered in a directory, the name of which shall be announced in advance by the tutors. In addition to the usual source files, and without additional specification, it SHOULD contain a number of additional files:

AUTHORS
This file MUST contain the authors' names, one per line. Each line MUST contain an asterisk, then a login name. The first name to appear is considered as the head of the project.

Rationale: this file is to be grep'ed over with a

           ^\* \([a-z-][a-z-]*_[a-z]\).*$
          
regexp pattern to extract login names.

It is especially important to note that this specifications allows for documenting a project by using actual text in the AUTHORS file: the regexp will only extract the relevant information. For example, consider the following text:

          
This project was written with the help of: * foo_b (Foo Bar), main developer; * baz_y (Baz Yay), code consultant; * franco_l (Ludovic François), tutor Many thanks to them for their contribution to the project.
Because the regex only matches the relevant information, it constitutes a valid AUTHORS file.
configure
When the project contract allows so, and only then, the script configure is automatically run before running the make command. It MAY create or modify files in the current directory or subdirectories, but MUST NOT expect to be run from a particular location.

Rationale: allow for site configuration with Autoconf or similar tools.

Makefile*
Unless explicitely forbidden, the project directory MAY contain an arbitrary number of files with names derived from "Makefile". These files are optional, although a Makefile MUST be present at the time the command make is run.

Rationale: the Makefile may include Makefile-rules.make or similar files for architecture-dependent compilation options.