HomeUser GuideDevelopmentDownloadLegal

Development: Build Environment

Overview

Instead of some variant of the make utility the Java based Ant tool is used as build tool within this project. See the resources for more information on Ant. There is a so-called build file (named build.xml) for building and running parts of the project.

Due to the fact that Ant always has to be configured (e.g. by environment variables) and enriched by additional libraries (such as a XSLT processor or additional tasks as XDoclet) a complete Ant runtime environment is included in the project directory. In the tools directory the Jar archives of Ant, the used XSLT processor and all needed additional tasks are located. To start Ant there is a script in the top level directory of the project (build.sh for Unix/Mac OS X and build.cmd for Windows). This script is not named ant to prevent naming conflicts with other versions of Ant that are already installed on your system.

Available Targets

The available targets and their descriptions is listed in the following table, but it can also be printed by running build -projecthelp.

Main Targets (build.xml)

MuliFex master build file.

This file has been designed to work with the Ant script in this directory and the ant files in the 'tool' directory.

Target Description
build-info Interactively updates the build information of various components.
clean Removes all compilation files and directories.
compile Compiles the sources of all modules.
data Generates all data resource files.
doc Generates all documentation in the build folder.
lib Creates all distribution archives.
native Builds the native robots for the current platform.
verify Checks all project files and sources for validity.
world Builds the complete project.

module.ant-tools (rsrc/ant-tools/ant.xml)

Build file for the MuliFex ant support tools.

The ant-tools package has been designed so that it might prove useful in other projects. (As a matter of fact there are already a few other projects which use these tools, that's why they are versioned independently.)

Target Description
ant-tools.dist Builds the ant-tools contributed by this project.
ant-tools.sync Synchronizes the built-in ant-tools with the current build.

tool.freemind (tool/util/freemind/ant.xml)

FreeMind mind mapping tool support.

Target Description
freemind Launches the FreeMind mind mapping tool.
freemind.structure Launches the FreeMind with the project structure.
freemind.todo Launches the FreeMind with the ToDo list.

Configurability of the Build Process

Besides the main build file build.xml sources a couple of support files in the following order:

  1. env/user.xml containing user specific settings.
  2. env/site.xml containing site settings.
  3. env/defaults.xml containing project defaults.

Ant uses always the first definition of a variable it encounters. Therefore the above list suggests that user settings in env/user.xml override site specific settings in env/site.xml, and site settings override the project defaults in env/defaults.xml.

Checkout the Development Setup page for more information about configuring your build environment.