Creates a Makefile rule

Usage

create_make_rule(targets, deps = NULL, script = NULL)

Arguments

targets
Target names as a character vector
deps
Dependency names as a character vector
script
A script to execute to build the targets.

Description

A rule in a Makefile consists of a (list of) targets which may depend on one or more dependencies each. Optionally, a script is executed to create the target. Generally, multiple targets mean that the rule is identical for each of the individual targets, and multiple dependencies mean that all of them are required to build each of the targets. In the script, the target can be referenced by $@, and the first dependency can be referenced by $<. Note that the dollar sign has a special meaning in a Makefile, use $$ in scripts that need to use the dollar sign themselves.

Examples

create_make_rule("all", c("first_target", "second_target"))
all: first_target second_target
create_make_rule(".FORCE")
.FORCE:
create_make_rule("first_target", ".FORCE", "echo 'Building first target'")
first_target: .FORCE echo 'Building first target'
create_make_rule("second_target", "first_target", c("echo 'Building second target'", "echo 'Done'"))
second_target: first_target echo 'Building second target' echo 'Done'