Building SaVi and Geomview under Windows

SaVi and Geomview run under a unix environment. If you only have Microsoft Windows to hand, you can run SaVi and Geomview under the Cygwin environment in Microsoft Windows, as this screenshot of Cygwin running SaVi and Geomview demonstrates.

Here are instructions on installing Cygwin and Geomview under Microsoft Windows. Cygwin's own installer instructions will get you started.

Cygwin has now transitioned from Insight Tcl to the Tcl/Tk used in usual unix-like distributions. SaVi 1.4.6 supports this change.

Note: the Cygwin developers made major changes to their X server distribution in November 2008. Prior to those changes, Cygwin's X server supported hardware acceleration, and Geomview use was robust and reliable. After those changes, robustness, reliability and hardware acceleration have suffered. You can launch geomview with geomview -noopengl (or configure before compiling without specifying --with-opengl) for slow reliability.

At this point, it may be preferable to run VirtualBox, install a debian-based Linux such as Ubuntu from a downloaded ISO disk image, then sudo apt-get install geomview (which is also in the Synaptic package manager) and install the Debian/Ubuntu SaVi package.

Questions about installing Geomview under Cygwin can be taken to the Cygwin and Geomview users mailing lists.

These instructions are primarily for 32-bit Cygwin. Note that Cygwin and its packaging system is ever-changing. These instructions attempt to be useful, but may not reflect recent Cygwin changes. Corrections are welcome.

64-bit Cygwin, introduced in March 2013, is much newer, and has some differences. In August 2013, OpenGL did not work on 64-bit Cygwin, and SaVi and Geomview could not communicate under 64-bit Cygwin. 32-bit Cygwin is preferable. You can build on 64-bit Cygwin by using the replacement instructions:
MOTIFLIBS='-lDtPrint -lMrm -lXm -lXt -lXmu -lXp -lXext -lX11 -lSM -lICE'
./configure --with-motif=/usr --with-opengl=/usr CPPFLAGS="-DglBindTextureEXT=glBindTexture -DglDeleteTexturesEXT=glDeleteTextures"
make
but expect problems. 32-bit Cygwin is more reliable.

  1. Install cygwin and its packages using the net installer you can download from http://www.cygwin.com/. Along with all the packages installed by default, you will need to install a minimum of:
    Under the Devel category:
    • byacc (only if you're a developer planning on building from Geomview's CVS repository. ln -s /usr/bin/byacc /usr/bin/yacc)
    • flex
    • gcc
    • gcc-g++ (cc1plus is used)
    • libiconv (only needed for xforms 1.0.91)
    • make
    Under the Graphics category:
    • opengl (if building with OpenGL, if available)
    Under the Libs category:
    • libgl-devel (only needed for xforms)
    • libjpeg-devel (only needed for xforms)
    Under the Tcl category:
    tcl-tk (needed for some Geomview modules and for SaVi.)
    Under the Text category:
    • texi2html
    Under the X11 category:
    • libGLU-devel (if building with OpenGL)
    • libX11-devel and libXm-devel - also needed for Tcl/Tk and SaVi.
    • motif (this now replaces lesstif and libXm2 for Motif support)
    • xorg-x11-devel (for some required libs and includes)
    • xinit (which loads in all the necessary xorg server components as dependencies)
    • xterm for terminal sessions.

    If also building SaVi, under the Tcl category:
    • tcl-tk libraries for use with SaVi. These libraries are also used by other Geomview modules. Although SaVi does not require X itself, the tcltk libraries that it depends on do, so you will also need to install libX11-devel, as noted above, if it has not already been installed, in order to compile SaVi with Tcl/Tk.
      Do not attempt to install Tcl/Tk yourself. Use the option in the Cygwin installer.

  2. Launch cygwin, and prepare to type commands at its bash shell prompt. As Geomview requires X to run, it makes sense to launch the X server and work in an xterm window, which provides ctrl-mouseclick menu configuration options for left-, right-, and middle-click. (These options can be repeated in a menubar at hte top of each xterm.) This should be an option in the Start menu - install menu shortcuts. (You may need to alter e.g. trackpoint preference in the Mouse control panel to access the ctrl-middle-click menu.) If you have launched Cygwin's bash shell, type startx in the cygwin window to launch the X server. This will bring up an xterm window that you can now use to type all commands in. (If the startx command fails, try xinit -- -multiwindow.)
  3. Download the Geomview 1.9.4 release. This release builds easily with modern compilers, and is far more robust in pipe and I/O communications than the previous 1.8.1 release. With SaVi, this can make working with piping of cone and footprint LISTs to Geomview much more reliable. (Should you choose to pull a more recent Geomview from CVS, you will need to run the top-level reconf script to attempt to generate some files already built in official releases. reconf requires the autoconf, automake, and libtool development tools - see the README.cvs file.) Use the 1.9.4 release!
  4. Unpack e.g. geomview-1.9.4.tar.gz with:
    tar xfvz geomview-1.9.4.tar.gz
    to create a local folder. That folder becomes the working directory for the following instructions.
    Alternatively, you could pull a Geomview CVS snapshot from the sourceforge CVS head. You will need to run ./reconf to generate a configure file and Makefiles before running ./configure and make as detailed below. ./configure and Makefiles are not stored in CVS.
  5. This step is optional and only needed to use all of the interesting included Geomview modules: get xforms (from http://savannah.nongnu.org/projects/xforms where you download latest-stable) and save a copy in the geomview directory. xforms requires libjpeg-devel and libXpm installed. Unpack this with e.g.: in the geomview-1.9.4 directory. Then do: xforms is not required by SaVi.
  6. Build a local copy of Geomview with the following commands: configure and make both take a while - be patient.
  7. If you haven't already, click on Cygwin's xterm icon in the Start Menu program list, or execute startx to spawn the X server and desktop display and get an xterm console window. (An alternative is xinit -- -multiwindow -clipboard for better integration with Windows.)
    Once you have an xterm on screen, then run:
    ./geomview
    in the spawned xterm window that knows it's part of the X display, rather than in Cygwin's initial console window, to check that Geomview works.
  8. You can then put a working copy of Geomview in /usr/local if you desire, with:
    make install
  9. Unpack and make a copy of SaVi in a local directory. See the instructions in SaVi's README file and on building SaVi 1.4. You will be typing:
    make ARCH=cygwin
    in SaVi's topmost directory.
  10. Run Geomview and SaVi together from the Geomview directory with:
    ./geomview -run $SAVIDIR/savi
    (replace $SAVIDIR with the absolute location of the SaVi directory.)

Though SaVi could be ported to Microsoft Windows and use a native Tcl/Tk interpreter there, there is no native Geomview for Microsoft Windows, so SaVi would have to be modified to output to a different 3D renderer or directly to OpenGL. Cygwin lets SaVi and Geomview run in the Microsoft Windows environment.

These instructions are based on original instructions and work by Matthias Foehl and advice from Belinda Marchand, Will Wray and Brad Barber, with thanks.


Lloyd Wood (lloydwood@users.sourceforge.net)
this page last updated 28 July 2013