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.