Website Structure

This page will explain the details of how the website build infrastructure is organized. To have a convenient means of reproducing what is described here, you should have checked out the source code by following the instructions on this page.

Common files

Each directory contains a Makefile which defines how the directory will be built. The following is a list of possible variables that define the behaviour:

  • ROOT: defines the root directory for this language (usually a relative path to the language directory).
  • TOPDIR: defines the actual root directory of the working copy. This is always one directory higher up than ROOT.
  • DIR: defines the name of the directory, relative to the root directory, excluding the language directory part.
  • SUBDIRS (optional): defines the sub-directories that need to be built.
  • PAGES: defines a list of .html files that need to be built in the directory.
  • FILES: defines a list of files that are created (this usually includes, but is not restricted to the contents of PAGES).
  • DATA: files that are to be copied without further processing. They are copied as-is.
  • SCRIPTS: similar to DATA except that the file permissions will be set to 0775, making the files executable.

Optionally, a directory may contain a .wmlrc file, which can define specific WML options only valid for this and subsequent directories.

Note that the contents of these files are not incremental, meaning that contents from foo/.wmlrc will not be added to the content of foo/bar/.wmlrc but instead, if the file foo/bar/.wmlrc exists, foo/.wmlrc will never even be considered.

If, however, a directory has no .wmlrc file, then its parent directory will be searched for one recursively, but only until the first .wmlrc file is found, at which point processing will be interrupted.

Basic structure

The root directory of the source code contains a couple of sub-directories: common, debian and mk. In addition to this, there is one directory per supported language.

The common sub-directory contains files that are not language dependent, like CSS and images.

The debian sub-directory contains files that are specific to the HTML generation process, like WML templates, tag definitions, scripts, etc.

The mk sub-directory contains everything related to the make process.