Installing the ProtoJ Project

Downloading from CVS Repository

The project repository is hosted on waldorf.csc.calpoly.edu. To create your copy of the project, execute the following CVS command from the directory in which you want to install the project:

cvs -d waldorf.csc.calpoly.edu:/users/faculty/gfisher/projects/CVS checkout protoj

Building and Running the Executable

The standard ProtoJ build uses the UNIX-based make utility. To use make on Windows, download the CYGWIN package, which includes make as part of the standard distribution.

There are two machine-specific definitions in the project Makefile, which define the paths of required project libraries. This means you need to use a machine-specific Makefile. There are three such makefiles that are part of the standard project, for the Cal Poly machines waldorf, falcon, and thyme. To build on waldorf, for example, execute the following commands from the root of the protoj project directory:

cd implementation/source/java
ln -s Makefile-waldorf Makefile
make

The executable program is put in the following project directory:

implementation/executables/JVM
in the manifested JAR file named protoj.jar. To execute this file, use the command:
java -jar protoj.jar
The file's manifest makes it fully stand-alone, so it can be copied to any directory and executed in the same way. In Windows and MacOS, the .jar file is typically executable by double clicking on its Icon, assuming that Java-related OS settings are in effect.

To build on a some other machine, change the Makefile definition LIB206 to the location of the directory that contains the CSC 206 library packages. Then download the library packages from waldorf to that directory. Also, change the LIB206 definition in the Makefile in protoj/implementation/executables.

If you don't want to use make, you can install the ProtoJ source tree in your favorite IDE. The source tree is rooted in the following project directory:

protoj/implementation/source/java/protoj
This is the root of a standard Java package hierarchy.