ANNOUNCE: PBS goes Alpha.

"Khemir, Nadim" <[email protected]> Fri, 27 Jun 2003 11:51:04 +0200
Newsgroups gmane.comp.gnu.cons.general
Message-ID <[email protected]>
Hi all,

I take the opportunity to announce a new build system: "PBS"

PBS is a 'rule based' software construction tool written in Perl. Current
version of PBS is 0.23, it consists of +/- 300 Kb of perl code in 23
modules.

PBS is not a starting project (hundreds of hours work has already been
invested in it) and it builds the system we produce at our job.

PBS is a Meta build system; it is made for you to easily build your system
on top of it. A simple and powerful front end (pbs in lower case) exists and
does indeed do builds.

Here is a simple example of a Pbsfile:
>>
PbsUse('Configs/gcc_rtos');
PbsUse('Configs/Projects/nailara');
PbsUse('Rules/BuildSystem');

AddRule [VIRTUAL], 'Top-level: all', ['all' => 'os.bin'],
		BuildOk("Top-level: all built successfully.") ;

AddRule 'Final link', ['os.elf' => 'nailara.plo'],
		[ "LD LDFLAGS -o FILE_TO_BUILD DEPENDENCY_LIST -lc
/arm-elf-tools/lib/gcc-lib/arm-rtos/3.2.2/libgcc.a -lc" ];

 
AddSubDirRules('hal', 'os', 'projects'); # user defined function
<<

An example or two of more advanced rule definitions:
>>
AddRule, 'C_dependencies', \&C_SourceDepender, \&C_Builder ;

sub C_SourceDepender
{
...
<<
>>
ExcludeFromDigestGeneration( 'c_files' => qr/\.c$/) ;
ExcludeFromDigestGeneration( 's_files' => qr/\.s$/) ;

AddRule 's_objects', [ '*/*.o' => '*.s' ], ["AS ASFLAGS -o FILE_TO_BUILD
DEPENDENCY_LIST"];

AddRule 'c_objects', [ '*/*.o' => '*.c' ], ["CC CFLAGS CDEFINES
CFLAGS_INCLUDE -o FILE_TO_BUILD -c DEPENDENCY_LIST" ] ; 

AddRuleTo 'BuiltIn', [META_RULE], 'o_cs_meta', [\&FirstAndOnlyOneOnDisk,
['c_objects', 's_objects'], 'c_objects'] ;
<<


PBS is looking for more people to work on it. Except the boring stuff
(documentation, test, installation, web site ...) there are few things to
develop and finish:
- Distributed build
- Heterogeneous build environments (ex I need something compiled with a
compiler that doesn't work in my OS)
- Parallel build (exists and works but is limited by the threading available
in perl)
- Build optimization
- Integration with source control, etc...
- Other ideas we haven't even thought about

If you want to help with the development of PBS, try PBS or simply give tips
about what you want to find in a build system, send a mail to
[email protected].

_______________________________________________
[email protected]
http://mail.gnu.org/mailman/listinfo/cons-discuss
Cons URL: http://www.dsmit.com/cons/