ARTENUM BUILD TOOL.

INTRO
===========================================================================
to write your own builder you must write the abt-recipe.xml file which
contains 2 part:

   - the project decription part (between the <project></project> elements)
   - the makefile part (between the <makefile></makefile> elements)

PROJECT PART
===========================================================================
here is a simple commented example of a project description:
<project>
  <!-- The name of the project -->
  <name>abt</name>
  <!-- The version of the project -->
  <version>0.3</version>

  <!-- Binary dependencies -->
  <!-- We need python version >= 2.1 -->
  <dependence_bin name="python" version="2.1" />
  <!-- We need jython version >= 2.1 -->
  <dependence_bin name="jython" version="2.1" />

  <!-- Library dependencies -->
  <!-- We need the jython-vtk library used with the jython interpreter -->
  <dependence_lib name="jython-vtk" compiler="jython" />
  <!-- The jython-picup library used with the jython interpreter is optional-->
  <dependence_lib name="jython-picup" compiler="jython" option="yes" />

  <!-- Here we are asking the user to enter a value for the INSTALLDIR
       variable used later in the makefile part -->
  <dependence_ask name="INSTALLDIR" version="enter the install directory" />
</project>

MAKEFILE PART
===========================================================================
This part describe a Makefile-like formated in XML. Like old Makefile
you define variables (also called MACROS) and write rules.

A variable is declared with the <var></var> element:
<var name="POULET">a poil</var>
(define POULET="a poil")

here is a commented example of a makefile rule:
<!-- defines the distclean rule -->
<rule name="distclean">
  <!-- distclean depends on the clean rule-->
  <prerequisite>clean</prerequisite>
  <!-- the following action will be executed on all OSes and will be muted -->
  <actions os="all" mute="yes">
    echo "distclean rulez !"
  </actions>
  <!-- the following action will be executed only on unix and will
       not be muted -->
  <actions os="unix">
    rm -rf *.class
    rm -rf *.pyc
    rm -rf $(PROJECT_NAME)-$(PROJECT_VERSION).tar.bz2
  </actions>
</rule>

os = {all|win|unix}
mute = {yes|no} (optional and default is no)

there are several builtins variables:
PROJECT_NAME		- the name of the project
PROJECT_VERSION		- version of the project
BUILDER_MINIMAKE	- path to minimake.py file
BUILDER_RM		- path to the rm builtin file
BUILDER_CP		- path to the cp builtin file
BUILDER_FILE		- path to compile.py file
BUILDER_INTERPRETER	- interpreter running the builder (if python is
			used, then this is the full path to the python
			interpreter, if jython is used then this
			variables is 'jython')
INSTALLDIR		- install directory  (default: "/usr/local")

for example if you want to re-run the builder as a rule you can write
in the makefile:
   $(BUILDER_INTERPRETER) $(BUILDER_FILE)

and all the 'tested' interpreters/compilers/librairies, for example:
jython
python
java
