Bruno Postle > Panotools-Script-0.26 > Panotools::Makefile::Rule

Download:
Panotools-Script-0.26.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Source   Latest Release: Panotools-Script-0.28

NAME ^

Panotools::Makefile::Rule - Assemble Makefile rules

SYNOPSIS ^

Simple interface for generating Makefile syntax

DESCRIPTION ^

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 ^

  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;
syntax highlighting: