PBS/PBS version =============== Older presentation available at L<http://khemir.net/pnw_2004/> B<PBS>/I<pbs.pl> is a build utility/module in the same spirit as 'make'. PBS is among the new generation build systems: rake: L<http://rake.rubyforge.org/> scons ... This module is pure perl. It is tested on linux and windows. Special thanks go to Todd Merritt, author of Batch::PBS, to allow us to use 'PBS' as namespace. INSTALLATION To install this module type the following: perl Build.PL ./Build ./Build test ./Build install INTRODUCTION I<pbs.pl> is a build utility which uses Perl exclusively for defining rules. If you have used 'make', I<pbs> should be easy to understand and use. This is a beta (a developper) release of I<pbs> but this software has been used for three years and I use it right now in a very serious project which has 800 pbsfiles, 11000 nodes and 3 millions C code lines. I<pbs> will continue to grow and I hope to get some help from the Open source community. I<pbs> has a limiting licence please read I<licence.txt>. The biggest limitation is the lack of documentation but we are working on this issue. You can have a look at the slide presentation I made at the Nordic Perl Workshop in 2004. Some things have changed since then but it will give you a nice overview. I<pbs> has a test suite consisting of over 700 tests. We still work to make the coverage better. Look at the test directory for some simple examples. I hope this release will tickle your curiosity anf that we will hear from you. TODO Short time: Write documentation. Gather some help. Create a web site, a mailing list, a bug tracker, faq, irc, ... Long time: Reduce the memory usage. Perfect the test suite. More speed (though the caching scheme we use today is very satisfying) Find some solutions for making it faster on windows (same code big difference!) Create a companion configuration and installation utility. I am already planning next version of PBS (the 1.XX series) and there is some material to think about in the TODO file. CAUTION Backup your source code! An error in your build sytem or in this build utility might leave you without anything to work on. DEPENDENCIES This module requires these other modules and libraries: Data::TreeDumper => '0.20', Getopt::Long => '2.32', Cwd => '2.06', Data::Dumper => '2.12', File::Basename => '2.71', Tie::Hash::Indexed => '0.03', Devel::Depend::Cpp => '0.05', Devel::Depend::Cl => '0.01', Devel::Cycle => '0', File::MkTemp => '0', GraphViz => '0', Math::Pari => '0', Net::Telnet => '0', Net::SSH::Perl => '0', Pod::Simple::Search => '0', Data::Compare => '0', Test::Class => '0', Test::Cmd => '0', Term::ProgressBar => '0', File::Copy::Recursive => '0', File::Spec => '0', Term::ANSIColor => ? Text::Balanced => ? * Math::Pari is required for remote compilation via SSH. This might not install easily on Windows. * Devel::Depend::Cpp is needed to depend C source on linux. * Devel::Depend::Cl is needed to depend C source on windows. * Data::TreeDumper on CPAN works in linux only. Mail me for a patch or wait a short time for the comming update (within hours or days) COVERAGE (0.28_11) ----------------------------------- ------ ------ ------ ------ ------ ------ File stmt branch cond sub time total ----------------------------------- ------ ------ ------ ------ ------ ------ Attributes 85.7 n/a n/a 80.0 0.1 84.2 Build 80.8 61.9 41.3 95.7 0.9 73.1 Forked 83.0 53.0 42.9 100.0 0.0 75.4 ForkedNodeBuilder 91.1 63.2 33.3 100.0 0.0 84.7 Check 80.5 56.2 43.5 95.0 1.3 71.3 Config 67.3 50.0 59.5 65.4 1.7 61.8 Constants 100.0 n/a n/a 100.0 0.2 100.0 Cyclic 95.7 50.0 33.3 100.0 0.1 90.5 Debug 15.6 0.0 0.0 37.0 0.1 11.6 DefaultBuild 85.1 59.3 40.0 100.0 0.7 77.0 Depend 74.9 55.4 51.0 100.0 1.4 68.1 Digest 61.3 47.0 19.7 79.1 1.1 55.1 Distributor 79.4 28.6 40.0 93.3 0.0 72.5 Documentation 18.6 0.0 0.0 51.9 0.1 15.5 FrontEnd 81.1 46.6 39.1 88.9 0.5 68.8 Graph 56.0 39.1 36.0 90.9 0.0 50.5 Html 27.3 0.0 0.0 78.6 0.0 25.7 Snapshots 31.4 0.0 0.0 91.7 0.0 32.8 GraphViz 64.9 51.9 35.4 87.5 0.0 58.7 Information 79.1 66.2 61.5 84.6 0.5 74.6 Log 73.1 47.8 59.3 87.5 0.9 68.6 Output 57.8 50.0 44.2 72.4 20.1 54.6 PBS 80.2 52.1 41.2 96.7 1.4 72.2 PBSConfig 77.0 54.3 51.4 96.2 33.9 69.0 PBSConfigSwitches 65.8 7.7 42.9 81.2 4.5 57.4 Plugin 89.7 57.1 80.0 93.8 20.5 81.8 PostBuild 38.2 6.7 0.0 75.0 0.1 32.5 Rules 69.3 54.8 45.5 81.5 0.5 66.0 Generators 71.1 60.6 43.1 92.3 1.5 67.3 Shell 83.0 41.7 20.0 92.9 6.9 75.0 Triggers 78.7 47.2 11.1 94.4 0.2 70.8 Warp1_5 89.9 78.0 80.0 95.8 0.6 86.9 ----------------------------------- ------ ------ ------ ------ ------ ------ Total 69.0 48.4 39.9 85.9 100.0 62.9 ----------------------------------- ------ ------ ------ ------ ------ ------ BUG REPORTS http://rt.cpan.org/NoAuth/ReportBug.html?Queue=PerlBuildSystem Copyright (C) 2003-2008 Khemir Nadim ibn Hamouda. <nadim@khemir.net>