Meta data

The LMAKE dir at the root of the repo contains numerous information that may be handy for the user.

It also contains a lmake dir containing private data for open-lmake's own usage.

LMAKE/environ and LMAKE/manifest can be freely used in jobs and are considered as sources if they are listed in lmake.manifest, which is automatic by default.

LMAKE/config_deps, LMAKE/rules_deps and LMAKE/sources_deps

These files contain a list of files that open-lmake has read to process Lmakefile.py when reading each section (config, rules and sources).

They contain several types of lines, depending on the first char:

  • #: comment line
  • *: line contains the open-lmake installation dir
  • +: line contains an existing file that was read
  • !: line contains a non-existing file that was accessed

These contents are then used to determine if each section must be refreshed when a new lmake command is run.

LMAKE/auto_tmp

This dir contains the default tmp dirs of jobs.

LMAKE/config

This file contains a description of the lmake.config dict as it has been understood by open-lmake after having processed Lmakefile.py.

LMAKE/debug

This dir contains a sub-dir for each job ldebug was used for. These sub-dirs are named after the job id as displayed by lshow -i.

LMAKE/environ

This file contains the list of environment variables actually used in Lmakefile.py in the form of lines containing <key>=<value>.

LMAKE/last_output

This file is a symbolic link to the last transcript.

LMAKE/lmakefile_tmp

This dir contains the tmp dirs used when reading Lmakefile.py. When several passes are used, each pass has its own tmp dir. These are kept after reading for debugging purpose.

LMAKE/manifest

This file contains a description of the sources as it has been understood by open-lmake after having processed Lmakefile.py.

LMAKE/matching

This file contains a description of the matching performed by open-lmake when looking for rules to generate a file. It is composed of matching entries.

Each matching entry starts with a header providing a prefix and a suffix. Files matching the prefix and suffix are matched against the rules listed underneath.

The prefix and suffix are given in the form <prefix>*<suffix>' to mimic shell patterns. However, in this case, the *` may match a negative number of characters, i.e. the prefix and the suffix may overlap.

The listed rules are provided as:

  • Its priority: if a rule at given priority match and generate the file, rules of lower priority are not tried.
  • Its name.
  • The target corresponding to this prefix/suffix pair.

LMAKE/outputs/<date>/<time>

This file contains a transcript of the lmake command that has been run at <time> on <day>. Such logs are kept for a number of days given in lmake.config.console.history_days.

LMAKE/quarantine

This dir contains all files that have been quarantined. A file is quantantined when open-lmake decides it must be unlinked and it contains manual modifications, i.e. modifications made outside the control of open-lmake. In that case, in order to be sure that no user work is lost, the file is quarantined in this dir rather than unlinked.

LMAKE/rules

This file contains a description of the rules as they have been understood by open-lmake after having processed Lmakefile.py.

LMAKE/targets

This file contains the targets that have been required by lmake commands in chronological order (with duplicates removed).

LMAKE/tmp

This dir contains a sub-dir for each job which was run while keeping its tmp dir. These sub-dirs are named after the job id as displayed by lshow -i.

LMAKE/version

This file contains a state-recording version of open-lmake. If the recorded version does not match the used version, none of the open-lmake commands can be used.