NAME
Makefile::Parallel - A distributed parallel makefile
SYNOPSIS
This module should not be called directly. Please see the perldoc of the pmake program on the /examples directory of this distribution.
AUTHOR
Ruben Fonseca, <root@cpan.org>
Alberto Simões <ambs@cpan.org>
José João Almeida <jj@di.uminho.pt>
BUGS
Please report any bugs or feature requests to bug-makefile-parallel@rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Makefile-Parallel. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
COPYRIGHT & LICENSE
Copyright 2006-2008 Ruben Fonseca, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
process_makefile
Main function. Accepts a file to parse and a hash reference with options.
TODO: Document options
journal_recover
Tries to recover the journal of the last makefile run.
clean
This function is responsible to clean all the temporary files created by the PBS system. It should be used only on the PBS scheduler method.
loop
Loop it baby :D
reap_dead_bodies
This function is responsible of reaping the jobs that are finnished. If the job needs to run something at the end (example, find i <- grep | awk...) it is executed and the job queue is expanded.
find_and_run_asShell
This function goes through the finnished job and tries to find asShell commands to run, doing all the expands necessary
find_and_run_asPerl
This function goes through the finnished job and tries to find asPerl commands to run, doing all the expands necessary
paction_list
this function evaluates a perl action and retruns a list of strings. the action can:
.return a ARRAY reference,
.print a list of lines to STDOUT (to be splited end chomped)
.or return a string (to be splited and chomped)
expand_forks
This function is responsible of expanding all the jobs when a variable is evaluated. It expands both forks and joins.
report
Print a pretty report bla bla bla
dispatch
This function is responsible for dispatching the jobs that can run.
is_finnished
This function checks if the specified job is already done in the finnished list.
at_exit
This sub is called at the program exit
write_journal
Saves the scheduler state to disk.
calc_makefile_md5
Calculates the MD5 of the current makefile
can_run_jub
This one finds out if a job can run (all the dependencies are met).
launch
Launch a process (really??)
graphviz
Builds a preety graphviz file after the execution of the makefile
process_interrupt
This function is called everytime the user send a SIGINT to this process. The objective is to kill all the running processes and wait for them to die.