GfxTools a.k.a $G is a software development framework for keeping
projects organized and usable over time. Several of its key goals
- 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.
- Dependable demos and software libraries - $G provides
an environment where software libraries and demos can be
installed and used by the group.
- Easy cross-platform development - $G utilizes the same
software organization and Makefiles across multiple
- 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
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:
- $G/bin: Installed executables and scripts.
- $G/data: A symlink to a data directory that is common amoung
all the $G trees. Sci-vis data is organized and stored inside here.
- $G/doc: Project documentation in non-man format. Typically,
html generated from javadoc or doxygen, README files for demos, etc..
- $G/help: Contains $G specific documentation, like this webpage.
- $G/lib: Installed libraries, shared libraries, and program
resource files like config files, icons, sounds, etc.. inside
project specific subdirectories.
- $G/man: Project documentation in unix man page format.
- $G/src: CVS controlled projects in subdirectories.
- Setup your account for $G
- Build a program with Make.gfxtools.rules
- Building with alternative compilers
- Put your code into CVS in $G
- Working with cvs in $G
- Install your program
- Build a library with Make.gfxtools.rules
- Install your library
- Compiling and linking with installed
- Using BETA versions of libraries and programs
- Advanced use of libraries and programs
- Installing 3rd party programs and libraries
- Installing cygwin for Windows XP
- Setting up SSH on your non-CS machine
- Creating a new $G tree
- Generation Documentation for your code using Doxygen
- Setting up CalTech projects in $G
Additional User Resources