PGMAKE-DB(1p) User Contributed Perl Documentation PGMAKE-DB(1p)NAME
pgmake-db - A make utility using Makefile::Parser::GmakeDB, Makefile::AST, and Makefile::AST::Evaluator
SYNOPSIS
$ pgmake-db
$ pgmake-db -f mine.mk
DESCRIPTION
This is a make tool using Makefile::Parser::GmakeDB, Makefile::AST, and Makefile::AST::Evaluator.
This script is primary for testing the whole toolchain via running GNU make's official test suite.
As of this writing, pgmake-db has already passed 51% of GNU make 3.81's test suite.
SVN REPOSITORY
For the very latest version of this script, check out the source from
http://github.com/agentzh/makefile-parser-pm <http://github.com/agentzh/makefile-parser-pm>.
There is anonymous access to all.
AUTHOR
Zhang "agentzh" Yichun "<agentzh@gmail.com>"
COPYRIGHT AND LICENSE
Copyright (c) 2007-2008 by Zhang "agentzh" Yichun (agentzh).
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
Makefile::Parser::GmakeDB, Makefile::AST, Makefile::AST::Evaluator, Makefile::Parser::GmakeDB, pgmake-db, makesimple, Makefile::DOM.
perl v5.12.4 2011-08-17 PGMAKE-DB(1p)
Check Out this Related Man Page
Makefile::AST(3pm) User Contributed Perl Documentation Makefile::AST(3pm)NAME
Makefile::AST - AST for (GNU) makefiles
DESCRIPTION
The structure of this (GNU) makefile AST is designed based on GNU make's data base listing output produced by "--print-data-base".
This AST library provides the following classes:
Makefile::AST
The primary class for ASTs. Provides interface for node adding and querying, such as "add_implicit_rule", "apply_implicit_rules",
"add_explicit_rule", "apply_explicit_rules", "add_var", "add_auto_var", "get_var", as well as lots of other utility functions, like
method "eval_var_value" for computing the ultimate values of makefile variables, method "enter_pad" and "leave_pad" for local
variable's scoping pad.
Makefile::AST::Rule::Base
This is the base class for the rule nodes in the AST. It has properties like "normal_prereqs", "order_prereqs", "commands", and
"colon".
Makefile::AST::Rule
This class represents the de-sugared form of simple rules and implicite rules after application. It inherits from
Makefile::AST::Rule::Base, and adds new properties "target" and "other_targets".
Makefile::AST::Rule::Implicit
This class represents the implicit rule nodes in the AST. It inherits from Makefile::AST::Rule::Base, and adds new properties
"targets", "match_anything", and "is_terminal".
Makefile::AST::StemMatch
This class encapsulates the file pattern matching (file names containing "%") and stem substitution algorithms.
Makefile::AST::Variable
It represents the makefile variable nodes in the AST, including "name", "value", "flavor", and "origin".
Makefile::AST::Command
Used to encapsulate information regarding makefile rule commands (e.g. command body, command modifiers "@", "-", "+", and etc.) as a
whole.
LIMITATIONS AND TODO
Adding support for other flavors' makes into this AST library should make a huge amount of sense. The most interesting candiate is
Microsoft's NMAKE.
CODE REPOSITORY
For the very latest version of this script, check out the source from
http://github.com/agentzh/makefile-parser-pm <http://github.com/agentzh/makefile-parser-pm>.
There is anonymous access to all.
AUTHOR
Zhang "agentzh" Yichun "<agentzh@gmail.com>"
COPYRIGHT AND LICENSE
Copyright (c) 2007-2008 by Zhang "agentzh" Yichun (agentzh).
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
Makefile::AST::Evaluator, Makefile::Parser::GmakeDB, makesimple, pgmake-db, Makefile::DOM.
perl v5.12.4 2011-08-17 Makefile::AST(3pm)