
=== Build ===

In order to build the UMC application, call 'make build'. This will start the
Dojo build process and will create a compressed JavaScript file that contains
all main modules used in the code (js/umc/build.js). All other modules still
exist as separate module files which are also compressed. The build process
will create a new subdirectory 'build' to which all necessary files are store.

The build process will create a directory 'js' containing all JavaScript data
and a directory 'css' which contains all stylesheet information. In order to
avoid caching problems with browsers, symbolic links with a timestamp are 
created. The timestamp is inserted into the file index.html during the build 
process.


=== Development build ===

Since the Dojo build process takes some time, it may be more useful to call
'make build-dev' instead of the release build. This will equally create a
subdirectory 'build' with all necessary files. This directory can be hooked in
as webpage by creating a symbolic link in /var/www that points to it. Since all
of the files are simply symbolic links to the original source files (both UMC
and Dojo code), they can be modified directly in order to perform 'live'
development. 

The build-dev target will also generate directories with timestamps. Therefore
caching problems can be avoided during the development by simply calling 'make
build-dev' again (which will in turn create new timestamps).

Note that due to some slight differences for JavaScript inclusion for a release
build and a development build, there exists 'index-dev.html' which is an
adapted index-file for the development build.


=== Debugging ===

Debugging in JavaScript can be somewhat cumbersome since modules are loaded 
dynamically by Dojo. Error messages thus do not have useful tracebacks (they
point to the position where the file was dynamically loaded). Working with a
release build, one may change the included file 'js_*/umc/build.js' to 
'js_*/umc/build.js.uncompressed.js'. This will load the uncompressed version
of the build file (which contains all main modules). Tracebacks within modules
contained in this file can be correctly traced back.

During development, the only option at the moment seems the a primitive way of
debugging where dummy lines, such as 'console.log("### DBG1");' are inserted 
into the code. 

Note that Google's Chromium could be an alternative as it is suppposed to 
yield usable tracebacks for dynamically loaded modules. (to be verified)


=== Icons ===

All icons in the directory 'icons' will be automatically scaled (using 
ImageMagick's 'convert') to the appropriate sizes.


=== More modules ===

Some more modules with icons (for demonstration purposes) can be found in the
directory more_modules.


