Usual invocation is without parameters, in any directory of the project. However, you can modify its behavior by some environment variables and options.

If both environment variable and command line option setting something is specified, command line is taken.

By default, remake opens file REM in current directory and reads instructions from it. If a different directory is specified with parent or descend directives, it opens file called REM in there (note that these directives may specify file as well as directory).

You can change this by:

When remake searches for a module to be imported (by the import directive), it searches several directories for file of the given name. The first one found is used. The list contains by default these directories (in order):

The list can be modified by:

Remake stores some data between runs. They are stored in a binary cache, which is usually found in project top-level directory as .rem_cache. This can be changed by the --cache=filename option or $REMAKE_CACHE environment variable.

Altering compilation

Usually, remake takes all objects in TARGETS variable, all its dependencies, and runs their methods DEFAULT, if their dependencies changed. There are options to modify this behaviour:

Forced recompilation

While in theory you shouldn’t need to force recompiling, remake is of development quality and you might make a mistake in writing REM scripts.

Other options