cons-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ANNOUNCE: PBS goes Alpha.


From: Khemir, Nadim
Subject: ANNOUNCE: PBS goes Alpha.
Date: Fri, 27 Jun 2003 11:51:04 +0200

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 address@hidden

 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]