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 and later support 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 the following packages. You can also search package contents for needed files to check that you have the pacakges you need for a missing file:
    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 (for developers)
    • gcc-core
    • gcc-g++ (cc1plus is used)
    • libiconv (only needed for xforms 1.0.91)
    • make
    • zlib-devel and source (optional for both Geomview and SaVi)
    Under the Graphics category:
    • opengl (if building with OpenGL, if available)
    Under the Libs category:
    • libGL-devel and source (only needed for xforms)
    • libjpeg-devel and source (only needed for xforms)
    Under the Publishing category:
    • Optional if problems building documentation at end: texlive-collection-basic, texlive-collection-fontsrecommended and texlive-collection-latex for fonts necessary for documentation. Which, unfortunately, is built before the geomview binary is, so you're at the mercy of your TEX install.
    Under the Tcl category:
    • tcl-tk and source (needed for some Geomview modules and for SaVi.)
    Under the Text category:
    • tex
    • Optional if problems building documentation at end: texinfo-tex for texi2dvi - you may have to set TEX=/usr/bin/tex
    Under the X11 category:
    • libGLU-devel and source (if building with OpenGL)
    • libX11-devel and source - also needed for Tcl/Tk and so for SaVi.
    • libXm-devel and source - this provides the needed Xm/Xm.h. (libXm2 is no longer used.)
    • motif (this has replaced the alternative lesstif for Motif support)
    • 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 the top of each xterm.) This should be an option in the Start menu if you install menu shortcuts, or from the system tray icon. (You may need to alter e.g. trackpoint preference in the Mouse control panel to access the ctrl-middle-click menu. Middle-click is used for pasting highlighted text, so you want a three-button mouse.) If you have launched Cygwin's bash shell, type startx in the cygwin window to launch the X server. This will load a new Cygwin icon into the system tray at the bottom right of the screen, in the Windows taskbar. Right-click on that icon and select System Tools/Xterm to bring up an xterm window that you can now use to type all commands in. (If the startx command fails, try xinit -- -multiwindow.)
  3. Create a directory within in your Cygwin home directory that you can work within: Cygwin lives under C:\cygwin or C:\cygwin64, and your unix home directory is /home/username (or C:\cygwin\home\username on 32-bit cygwin). The Windows filesystem is accessible from Cygwin under /cygdrive/c etc.)
  4. Download the Geomview 1.9.5 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.5 release!
  5. Move the downloaded geomview tarball into the directory you have created and unpack e.g. geomview-1.9.5.tar.gz with:
    tar xfvz geomview-1.9.5.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.
  6. 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.5 directory. Then do: xforms is not required by SaVi.
  7. Build a local copy of Geomview with the following commands: If that is unsuccessful, you can try the more detailed: configure and make both take a while - be patient.
  8. 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 X is running, look for the new icons in the system tray. Right-click the Cygwin XDG icon and select the XTerm option from the System Tools menu. Now you have an xterm on screen, 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.
  9. You can then put a working copy of Geomview in /usr/local if you desire, with:
    make install
  10. 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.
  11. 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 29 December 2015