Bruno Postle > Panotools-Script-0.24 > Panotools::Makefile

Download:
Panotools-Script-0.24.tar.gz

Dependencies

Annotate this POD

CPAN RT

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

NAME ^

Panotools::Makefile - Makefile creation

SYNOPSIS ^

Simple object interface for generating Makefiles

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 Makefiles.

USAGE ^

  use Panotools::Makefile;

Create a new Makefile object:

  my $makefile = new Panotools::Makefile;

Start adding items to the Makefile:

Rule() returns a new Panotools::Makefile::Rule object, Variable() returns a new Panotools::Makefile::Variable object and Comment() returns a new Panotools::Makefike::Variable object:

  my $var_user = $makefile->Variable ('USER');
  $var_user->Values ("Dr. Largio d'Apalansius (MB)");

  my $rule_all = $makefile->Rule ('all');
  $rule_all->Command ('echo', '$(USER_SHELL)', '>', 'My File.txt');

  $makefile->Comment ('.PHONY target isn't strictly necessary in this case');
  my $rule_phony = $makefile->Rule;
  $rule_phony->Targets ('.PHONY');
  $rule_phony->Prerequisites ('all');

Write the Makefile:

  $makefile->Write ('/path/to/Makefile');

..or let the module execute rules with 'make' directly:

  $makefile->DoIt ('all') || warn "Didn't work :-(";

The following command will be executed, something that isn't possible with perl system() or exec(), and would otherwise require careful assembly with backticks:

  echo Dr.\ Largio\ d\'Apalansius\ \(MB\) > My\ File.txt

On the Windows platform you get appropriate quoting:

  echo "Dr. Largio d'Apalansius (MB)" > "My File.txt"
syntax highlighting: