makefile::ast(3pm) debian man page | unix.com

Man Page: makefile::ast

Operating Environment: debian

Section: 3pm

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)
Related Man Pages
me_ast(n) - mojave
bt_traversal(3) - debian
me_ast(n) - suse
me_ast(n) - osx
template::alloy::compile(3pm) - debian
Similar Topics in the Unix Linux Community
Makefile
How to catch and handle Makefile exceptions
epstopdf for multiple files using makefile
Processing Arguments pased to Makefile
Create Makefile from source files