2005/5/10

     
 

ACDK Make manual

artefaktur

ACDK Make is a platform neutral make utility.



Content of this chapter:

   Introduction
     Environment
       ACDK_TOOLS_HOME
       ACDKHOME
     Command line options
       Options
       General ACDK command line options
       Targets
       Samples



 Introduction

The makefiles are named build.csf and are written in a simple scripting language called  CfgScript.
The build.csf has no special syntax for make files, but uses dmi to create and configure Tasks.

It was designed to compile ACDK projects, but can be used as general replacement for other make tools.

 Environment

Two basic environmet variable has to be set using acdkmake:

 ACDK_TOOLS_HOME

The installation directory of the ACDK tools including acdkmake.

If this environmnent variable is not set, or not passed as command line argument (see  man acdk_core) will be asumed as parent directory of current binary directory.

The acdkmake has to be found in:
# Unix
$ACDK_TOOLS_HOME/bin/acdkmake
# Win32
%ACDK_TOOLS_HOME%/bin/acdkmake_r.exe
In the $ACDK_TOOLS_HOME/bin directory also the ACDK shared libraries can be found.

 ACDKHOME

The ACDKHOME environment variable is used while compiling ACDK projects.


 Command line options

 Options

  • -j numberofjobs: Parallize the compile jobs.

  • -f buildfile: Load build file. If not given try to load build.csf in current directory.

  • -dn: No source dependemcies.

  • -dd: Only source dependencies which are included via #include "file.h" not via #include <file.h>.

  • -df: Full include dependencies.

  • -k: Don't abort if an task fails.

  • -D <LABEL[=VALUE]>: Add define passed to compile tasks.

  • -I <include path>: Add include path passed to compile tasks.

  • -L <library path>: Add library search path passed to link tasks.

  • -PATH <execution path>: Add path to execution search path.

  • -dump-tasks: print task definitions before starting.

  • -dump-targets: print targets known by this acdkmake installation.

  • -dump-target <targetname>: Dump target definitions.

  • -dump-sel-target: Dump target definitions choosen by acdkmake.


 General ACDK command line options

  • -acdk-home <ACDKHOME>.

  • -acdk-tools-home <ACDK_TOOLS_HOME>.

  • -loglevel <Threshold log level>: suppress all logging below this log level.

 Targets

[TaskName [TaskTargetTags] [TaskCommand]] [TaskName [TaskTargetTags] [TaskCommand]] Where
  • TaskName: The name of the task. If no TaskName is specified The first task specified or a task with the name "default" will be executed. If an amake argument is not found as task it will be interpreted as TaskTargetTags.
  • TaskTargetTags are modifier like DEBUG, RELEASE, STATIC, SHARED.
    If an amake argument is not found as TaskTargetTags it will be passed as TaskCommand to the task while executing the task.
  • TaskCommand are string which are passed to the tasks. Some Task ignores the command, other requires the TaskCommand.
    If the Task want to have a valid TaskCommand it should also support the TaskCommand "help".

 Samples

given build.csf:

#include "amake_config.cfg"
/* create a library acdk_boot */
acdk_boot = new acdk.make.AcdkLibTask("acdk_boot");
acdk_boot.addModule("src/acdk/boot");
acdk_boot.addAcdkLib("acdk_core");
acdk_boot.addAcdkLib("acdk_text");

HelloWorld = new acdk.make.AcdkExeTask("HelloWorld");
HelloWorld.addSource("src/acdk/HelloWorld.cpp");
HelloWorld.addAcdkLib("acdk_core");
HelloWorld.addAcdkLib("acdk_text");
HelloWorld.addAcdkLib("acdk_boot");
HelloWorld.addSubTask("acdk_boot");

  • make acdk_boot (DEBUG SHARED):
    amake
  • Clean acdk_boot STATIC (DEBUG) files:
    amake acdk_boot STATIC clean
  • build and install acdk_boot and HelloWorld:
    amake acdk_boot all HelloWorld all