11 Apr 1999 20:39:38 UTC
- Distribution: Make
- Module version: 1.00
- Source (raw)
- Browse (raw)
- How to Contribute
- Issues (0)
- Testers (1054 / 53 / 0)
- KwaliteeBus factor: 1
- 67.39% Coverage
- License: unknown
- Download (12.13KB)
- MetaCPAN Explorer
- Subscribe to distribution
- This version
- Latest version++ed by:2 non-PAUSE users
Make - module for processing makefiles
require Make; my $make = Make->new(...); $make->parse($file); $make->Script(@ARGV) $make->Make(@ARGV) $make->Print(@ARGV) my $targ = $make->Target($name); $targ->colon([dependancy...],[command...]); $targ->dolon([dependancy...],[command...]); my @depends = $targ->colon->depend; my @commands = $targ->colon->command;
Make->new creates an object if
new(Makefile => $file)is specified then it is parsed. If not the usual makefile Makefile sequence is used. (If GNU => 1 is passed to new then GNUmakefile is looked for first.)
$make->Make(target...)'makes' the target(s) specified (or the first 'real' target in the makefile).
$make->Printcan be used to 'print' to current
select'ed stream a form of the makefile with all variables expanded.
$make->Script(target...)can be used to 'print' to current
select'ed stream the equivalent bourne shell script that a make would perform i.e. the output of
There are other methods (used by parse) which can be used to add and manipulate targets and their dependants. There is a hierarchy of classes which is still evolving. These classes and their methods will be documented when they are a little more stable.
The syntax of makefile accepted is reasonably generic, but I have not re-read any documentation yet, rather I have implemented my own mental model of how make works (then fixed it...).
In addition to traditional
.c.o : $(CC) -c ...
GNU make's 'pattern' rules e.g.
%.o : %.c $(CC) -c ...
Likewise a subset of GNU makes $(function arg...) syntax is supported.
Via pmake Make has built perl/Tk from the
newmust always find a makefile, and
$make->parse($file)can only be used to augment that file.
More attention needs to be given to using the package to write makefiles.
The rules for matching 'dot rules' e.g. .c.o and/or pattern rules e.g. %.o : %.c are suspect. For example give a choice of .xs.o vs .xs.c + .c.o behaviour seems a little odd.
Variables are probably substituted in different 'phases' of the process than in make(1) (or even GNU make), so 'clever' uses will probably not work.
Module Install Instructions
To install Make::Rule::Vars, copy and paste the appropriate command in to your terminal.
perl -MCPAN -e shell install Make::Rule::Vars
For more information on module installation, please visit the detailed CPAN module installation guide.
|s||Focus search bar|
|?||Bring up this help dialog|
|g p||Go to pull requests|
|g i||go to github issues (only if github is preferred repository)|
|g a||Go to author|
|g c||Go to changes|
|g i||Go to issues|
|g d||Go to dist|
|g r||Go to repository/SCM|
|g s||Go to source|
|g b||Go to file browse|