ACDK Make concepts


Description of the internal concepts of acdkmake.

Content of this chapter:

   Props hierarchy
   General C++ Task
   Tasks and Tools
     Selection, Input

 Props hierarchy

  <- acdkmake globals
    <- build props (passed to Task.execute())
      <- Target specific Props (held by Task)

 General C++ Task

  • Build options
    • Load other configuration .csf before starting build.csf.
    • Use generated project files (f.e. msdev.exe) instead of own builder
    • Plugin for eclipse
  • Compile options
  • Support for compiling c Sources.
    • optional use libtool to compile
    • C++ options for rtti, exception support
    • console/windows options
    • Support for static libraries
    • Support for mingw.
    • support for ressource compiler (vc, borland)
    • flag for threaded applications (set compiler and linker settings)
    • Parser for compiler to unify compiler output (warnings, errors).
  • Generation options
    • Build make and project files

 Tasks and Tools

  • Tool
    • Class (like CCompiler)
    • Tribe (like vc6, posix-gnuc, dos, unix)


Tools are identified by ToolClass (CCompiler) and ToolTribe.

  • FileTranslater. Has Input and Output files and additionally log output
  • CCompiler (FileTranslater): compiles .c -> .o/.obj
  • CCCompiler (FileTranslater): compiles .c -> .o/.obj
  • JavaCompiler (FileTranslater): JC_
  • Linker (FileTranslater): CCC_
  • Builder uses tools like amake, make, devenv, ant
  • ExeBuilder, LibBuilder, StaticLibBuilder, SharedLibBuilder:
    Can use Compiler/Linker or make/project files
  • ProjectGenerator, ProjectGroupGenerator, ProjectTargetGenerator
  • VersionControl
  • Shell
  • FileCopy, FileMove, FileRemove, FileMakeDir
  • Install
  • acdkmc
  • ResourceCompiler


  CppExeBuilder: SharedLibBuilder
    make -f xxx target

// pseudo code
class Tool extends Task
  String getToolClass();
  String getToolTribe();
  Tool initTool(Props props);
  static Tool getTool(String toolClass, String toolTribe = Nil);

class FileTranslater extends Tool
  bool translates(String fileExt);
  String translatesTo(String file);

RCCompiler cc = (RCCompiler)Tools::getTool("CCompiler");
RCCompiler cc = (RCCompiler)Tools::getTool("CCompiler", "vc");

Props p = new Props(

 Selection, Input

If more than one or none ToolTribe was found, may interact with user to select the tool.


The ToolOutputFilter filters the output of