This page is in the 'old' namespace, and was imported from our previous wiki. We recommend checking for more up-to-date information using the search box.


Before reading this document, read the general info about release kits.

The Target Tree

The target tree for LiRK3 looks like this:

1 compile:
     1.1 checkout-greenstone3:
     1.2 set-version-number-property:
     1.3 dist-prepare-unix:
     1.4 tweak-configure-scripts:
          1.4.1 mgpp-add-static:
          1.4.2 mg-add-static:
          1.4.3 gs2buildextra-add-static:
     1.5 dist-update-unix:
     1.6 dist-configure-unix:
     1.7 tweak-makefiles:
          1.7.1 wv-add-static:
          1.7.2 xlhtml-add-static:
          1.7.3 ppthtml-add-static:
          1.7.4 rtftohtml-add-static:
          1.7.5 gdbm-add-static:
     1.8 dist-build-unix:
     1.9 fix-wget:
     1.10 linux-strip-execs:
     1.11 prepare-documentation:
2 create-distribution:
     2.1 export-greenstone3:
     2.2 dist-set-version-number-property:
     2.3 create-distributions-1:
     2.4 create-distributions-2:
     2.5 create-distributions-3:
     2.6 copy-over-build-xml:
     2.7 insert-user-manual:
     2.8 insert-compiled-binaries:
3 create-installer:
4 wrap:
     4.1 setup-for-wrapping:
     4.2 compile-wrapper:
     4.3 clean-up-after-wrapping:

This is a high-level overview of the tree.

1 compile:
2 create-distribution:
3 create-installer:
4 wrap:


This target compiles the native binary executables and the documentation for the release. It checks out the Greenstone3 source code from the repository into a folder called greenstone3. It then compiles it by running ant, and automatically editing files and so on. It basically simulates what an svn user would do to compile Greenstone3 but with a few small differences. For example, it compiles everything statically.

When running ant, this target uses a special build script which is part of the LiRK3 program, called operations-on gs3home.xml, which replaces dist-resources/build.xml.


This target compiles all the java classes used in Greenstone3, and creates a clean Greenstone3 directory structure which holds the compiled java classes and the compiled binaries and documentation from the previous step. It exports the Greenstone3 source code to distribution/greenstone3. It then compiles all the java classes, including those for GLI and the indexers, by running ant, using the special operations-on gs3home.xml script. Finally, it copies the compiled binary executables and documentation from greenstone3 to the appropriate places in distribution/greenstone3.


This target creates an executable jar installer for Greenstone3, and puts it in a directory called installer. It uses the files in distribution/greenstone3. It uses the ant-installer package included with the release kit.


This target wraps the executable jar installer in a native linux executable, and puts it in a directory called wrapped-installer. In the future it will also create another copy with a bundled JVM.