Building SaVi

Compiling the existing SaVi 1.0 source yourself is worth doing; not only will this allow you to customise SaVi as you wish, but by building with Tcl/Tk 8, rather than the Tcl/Tk 7.4/4.0 interpreters used in the public SaVi 1.0 binaries, you will see a large performance improvement. SaVi works happily with the Geomview 1.8 releases.

Below are needed patches to files in the SaVi 1.0 distribution. These patches are basically a stopgap for users while a new release of SaVi and its new features are worked on. Apply them with patch filename.

savi1.0 directory
savi
this shows you how to modify the file that runs SaVi with the location of the Tcl/Tk 8 headers on your system. You don't want to build with the supplied Tcl/Tk 7.4/4.0 headers in the savi1.0/tcl/lib directory; in fact, you can safely delete that directory.

src/ directory
Makefile changes
Makefile_defs.linux
these are sample changes suitable for Red Hat. You will probably want to build dynamically than statically. You'll need to build with make ARCH=linux in the savi1.0 directory to make sure that this set of definitions is selected.
Tcl and Tk 8.x support
coverage_vis.c
tcl_utils.c
these two patches are needed for Tcl/Tk 8.
file-handling fixes
gv_utils.c and include/gv_utils.h
main.c
newer compilers don't like the assignment of FILE* pointers directly to named streams; this set of patches fixes that.
Other fixes
Here are other useful fixes that you're best-off applying.
earth.c
this patch prevents SaVi from crashing under Geomview immediately after you first choose to draw a detailed or texture-mapped Earth in Geomview.
fisheye.c
this fixes a bug in plotting satellite positions on the fisheye view (you can click in the 2D coverage map to set the fisheye coordinates). Found by Greg LaCoste.

And once you've done that, you will probably want to download more constellation simulation scripts.


Lloyd Wood (L.Wood@surrey.ac.uk)
this page last updated 1 October 2001