$G
$G in principle
GfxTools a.k.a $G is a software development framework for keeping projects organized and usable over time. Several of its key goals are:
- 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 development platforms.
- Source control for software projects - $G uses CVS to manage source projects.
$G in practice
Here's how $G 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:
- $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.
While this page is under construction, you might find the old online $G doc useful.