GooTool is written in pure Java. You can get the source code from the GooTool download page.

Requirements

You will need:

  • Java 1.5+ (1.5.x recommended for building)
  • ANT
  • launch4j if you wish to build the Windows EXE
  • NSIS if you wish to build the Windows installer

The GUI forms were created using IntelliJ IDEA. You will need IDEA in order to modify them easily; a trial version can be downloaded from JetBrains. However you do not need IDEA simply to compile GooTool, as I have included javac2.jar in lib/build/: this is the IDEA Java compiler, which injects code for the GUI forms.

All other required libraries for building are in lib/build. Run-time libraries are in dist_src/common/lib.

Building

Create a file ant.properties in the top-level directory setting the following variables to appropriate values. Only jdk.home is required for simple builds, the rest are for building distributions or tagging releases.

Example for Windows:

jdk.home=c:/Program Files/java/jdk1.5.0_17
launch4j.dir=C:/Program Files/Launch4j
nsis.dir=C:/Program Files/NSIS

Example for Linux:

jdk.home=/usr/lib/j2sdk1.5-sun
launch4j.dir=/home/david/src/launch4j
nsis.dir=/home/david/src/nsis/nsis-2.42
svn.base=file:///svn/gootool

For building, I use the 1.5 JDK to maintain Mac compatibility.

Run ant with one of the following targets:

recompile (default)
Cleans everything and compiles it again (runs clean then compile)
dist
Builds all platform distributions (runs dist-linux, dist-macosx and dist-win32).
tag-release
Tags a release in Subversion(for me only) - only works under Linux

There are other targets but they're generally just called by the above.

Development

The master bug/feature tracker is at /issues (you can also use /mantis to see it better without the goofans theme).

There are a lot of TODOs in the code. The whole thing is rather messy due to it being a long evolution of a bunch of prototype code, rather than a result of actual design. In particular, Controller is horrendously monolithic, and a major refactor is needed soon to support retargeting the build to something other than the local machine (e.g. iPhone).

Please feel free to submit patches by e-mail, preferably against the latest version.

IntelliJ IDEA

The kind folk at JetBrains have provided a full Ultimate edition license for bona fide GooTool developers. Contact davidc for the license key.