GooTool is written in pure Java. You can get the source code from the GooTool download page.
You will need:
- Java 1.5+ (1.5.x recommended for building)
- 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.
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)
- Builds all platform distributions (runs dist-linux, dist-macosx and dist-win32).
- 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.
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.
The kind folk at JetBrains have provided a full Ultimate edition license for bona fide GooTool developers. Contact davidc for the license key.