Panotools::Makefile::Rule - Assemble Makefile rules


Panotools-Script documentation  | view source Contained in the Panotools-Script distribution.

Index


NAME

Top

Panotools::Makefile::Rule - Assemble Makefile rules

SYNOPSIS

Top

Simple interface for generating Makefile syntax

DESCRIPTION

Top

Writing Makefiles directly from perl scripts with print and "\t" etc... is prone to error, this library provides a simple perl interface for assembling Makefile rules.

USAGE

Top

  my $rule = new Panotools::Makefile::Rule;

..or additionally specify targets at creation time

  my $rule = new Panotools::Makefile::Rule ('all');

A Makefile rule always has one or more 'targets', these are typically filenames, but can be 'phony' non-files.

(phony targets should be listed as perequisites of the special .PHONY target)

  $rule->Targets ('output1.txt', 'output2.txt');

..or equivalently:

  $rule->Targets ('output1.txt');
  $rule->Targets ('output2.txt');

Rules can have zero or more 'prerequisites', again these are typically filenames, but can be 'phony' non-files.

  $rule->Prerequisites ('input1.txt', 'input2.txt');

..or equivalently:

  $rule->Prerequisites ('input1.txt');
  $rule->Prerequisites ('input2.txt');

Rules zero or more 'commands':

  $rule->Command ('cp', 'input1.txt', 'output1.txt');
  $rule->Command ('cp', 'input2.txt', 'output2.txt');

Assemble all this into string that can be written to a Makefile:

  my $string = $rule->Assemble;


Panotools-Script documentation  | view source Contained in the Panotools-Script distribution.