Dollarg 2009
Getting Started with $G - January 2009
Setting Environment Variables for your User Account
Edit your ~/.environment file and add the lines:
setenvvar GROOT /map/gfx0 setenvvar CVSROOT /map/gfx0/cvsroot
If you use C-shell, edit your .cshrc and add somewhere below the sourcefile $HOME/.environment line:
sourcefile $GROOT/tools/gfxtools-startup-csh
If you use Bash, edit your .bashrc and add somewhere below the sourcefile $HOME/.environment line:
sourcefile $GROOT/tools/gfxtools-startup-bash
Remember that your environment variables will not be updated immediately; only newly-opened shells will get them, so close your current shell and open a new one. You can check that everything worked by entering
echo $G
If you get non-error output, then you're all set.
Checking out a project
$G uses CVS for source control and you can read more about it on its official site or on Wikipedia.
You can work anywhere except under the $G directory. At Brown ample disk space has been allocated here for students:
/map/gfx0/users/$USER
So, for example, if your user id is "goo" and you wanted to check out the "wrist" project, you should type:
> mkdir /map/gfx0/users/goo > cd /map/gfx0/users/goo > cvs co project/wrist # Creates: /map/gfx0/users/goo/project/wrist/...
Please do not waste space and retain only the files you need. When you are done with your account please be sure to delete it.
Building a project
Type "make all" to build a project. Continuing the wrist project example from above, you would type:
> cd /map/gfx0/users/foo/project/wrist > make all
By convention simple projects that build a single program or library can be built just by typing "make".
Creating a "test" for a project
Testing is helpful to find bugs, detect problems discovered by system upgrades, and to help make sure projects are working on a daily basis.
Each project should contain a simple smoke test with the target name "test". It should ensure basic functionality and run reasonably fast. For example, to run the test for the wrist project you would type:
> cd /map/gfx0/users/foo/project/wrist > make test
Projects can include additional tests. By convention the make target should be named with a prefix, "test" (e.g. testmore).