GfxTools a.k.a $G is a software development framework for keeping projects organized and usable over time. Several of its key goals are:

  1. Standardization - using a common development framework makes it a lot easier for folks within our group to pitch in with development, use tools others have created, pick up someone else's project after he/she graduates, and make sure that your own project lives on after you graduate.
  2. Dependable demos and software libraries - $G provides an environment where software libraries and demos can be installed and used by the group.
  3. Easy cross-platform development - $G utilizes the same software organization and Makefiles across multiple development platforms.
  4. Source control for software projects - $G uses CVS to manage source projects.

Here's how it works: Whenever you start a shell, the environment variable "G" is set to point to the root of the $G directory tree. To change directories to go there, you would type "cd $G", hence the name "$G". The directory that $G points is actually different depending on the architecture of the machine that you are on, this means that you can trust that everything within $G/bin will run on your machine. Likewise, libraries in $G/lib are compiled for your machine/OS, etc..

There is a unix-like directory structure within $G. Here's a description of the directories you will find inside each architecture specific $G tree:


  1. Setup your account for $G
  2. Build a program with Make.gfxtools.rules
  3. Building with alternative compilers
  4. Put your code into CVS in $G
  5. Working with cvs in $G
  6. Install your program
  7. Build a library with Make.gfxtools.rules
  8. Install your library
  9. Compiling and linking with installed libraries
  10. Using BETA versions of libraries and programs
  11. Advanced use of libraries and programs
  12. Installing 3rd party programs and libraries in $G
  13. Installing cygwin for Windows XP
  14. Setting up SSH on your non-CS machine
  15. Creating a new $G tree
  16. Generation Documentation for your code using Doxygen
  17. Setting up CalTech projects in $G

Additional User Resources