make

make is a build automation tool that is widely available on Unix-like systems.

Task definitions

Put @ before the task to suppress its output.

Put - before the task to make it continue in the case of error.

Example:

foo:
	@task1
	-task2
	task3
$ make foo
task2
make: task2: An error occurred
make: [foo] Error 1 (ignored)
task3

Magic variables

$@
target name
$^
list of dependencies
$+
list of dependencies, including duplicates
$<
first dependency only
$?
outdated dependencies only