Updated 2008-03-05 15:26:46 by LV

Arjen Markus (5 march 2003) The idea behind the package buildtools, as used in Critclf, is that basically compilers, linkers and other tools for creating software products are command-line driven, take some input and produce some output. In other words,there is nothing special about a compiler on Windows or UNIX. Except of course that they all require a different set of options to consider, use different terminology and so on.

The buildtools package tries to abstract from that by allowing the user to say:

  • I want to compile this source file
  • I want to link it together with these libraries into that executable.
  • I want to use this compiler on my current platform

This is achieved by:

  • Creating a "tool" or "component" that knows that, for instance, on the current platform the C compiler is called "gcc" and if the user wants a debuggable version, it needs to add the option "-g" to the command-line.
  • The "tool" is driven by setting options:
   createComponent mycc Linux gcc   ;# C compiler of my choice on Linux
   mycc -source myfile.c -optimise fast
   mycc -defines "MYMACRO=1" -exec

  • The tools are specified in a small database that is fairly easy to extend (the difficult part is retrieving all necessary options!)

escargo 5 Mar 2003 - How does this compare to bras?

AM Simple: bras is meant to replace the make utility - the package I am talking about attempts to hide the details of the compiler and linker and other tools used. Hence it could be used by bras in the actual building process