NAME

Slay::MakerRule - a class for making things with dependencies

SYNOPSIS

use strict ;

use Slay::MakerRule ;

$t1 = Slay::MakerRule->new( { rule => [
   \@target,         ## Filenames made by \@actions
   \@dependencies,   ## Files or Slay::MakerRule objects
   \@actions,        ## Command lines or sub{}
   ] }
) ;

Any or all of the three parameters may be scalars if there is only one thing to pass:

$t1 = Slay::MakerRule->new( { rule => [
   $target,
   $dependency,
   $action,
   ] }
) ;

New can also be called with separate hash elements for each part:

$t1 = Slay::MakerRule->new( { 
   PATS => \@target,         ## Filenames made by \@actions
   DEPS => \@dependencies,   ## Files or Slay::MakerRule objects
   ACTS => \@actions,        ## Command lines or sub{}
   ] }
) ;

DESCRIPTION

check

Builds the queue of things to make if this target or its dependencies are out of date.

exec

Executes the action(s) associated with this rule.

targets

returns either ( target1, target2, ... ) or "target1, target2, ..." depending on context.

matches

Checks the target list to see if it matches the target passed in.