You must configure the compile time options you wish to use. These are set with the ./configure script which produces Makefiles for the src and $ARCH directories. After doing the configuration you will do the make. The configuration can be set in two ways:
./configure IRIX5 GL TK XFORMSThis will save the options to the file ./configure.options so the next time you want to regenerate the Makefiles, you need but do
./configure
For an SGI version one would do something like:
cp ./configure.options.IRIX5.opengl ./configure.options
./configure
Several configure.options files are included in the VMD distribution.
After you've set the options in the file, run ./configure to propagate the new definitions to the Makefiles! The full list of compile-time options set by the configure script are:
Option: Tested with: AIX4 -- IBM AIX 4.x HPUX10 -- HPUX 10.20 (see comments below). IRIX5 -- SGI IRIX 5.3, SGI IRIX 6.x (see comments below) IRIX6 -- SGI IRIX 6.4 and 6.5.3 (see comments below) LINUX -- RedHat Linux 5.2 SOLARIS2 -- Solaris 2.6 (sparc) SOLARISX86 -- Solaris 7 (x86)
Option: Graphics Support: OPENGL -- OpenGL graphics library (overall best choice) MESA -- Free, Portable, Open Source, OpenGL workalike GL -- SGI's Iris GL graphics library (use for older systems) NOGRAPHICS -- Graphics support disabled
OPENGL - VMD compiles with native OpenGL for DEC, HP, IBM, Sun, and SGI.
OpenGL offers the best rendering performance on new systems,
and will be the best supported graphics option for VMD as time goes on.
On the newer SGIs, GL is implemented via OpenGL, so you should compile
for OpenGL on these platforms. If you have a mix of GL and
OpenGL-based machines in the same environment and want to get the
best performance out of each, you'll have to do a bit of hackery
to start the appropriate binary.
Our suggestion is to compile and install one version as GL, and
compile the OpenGL and rename the binary vmd_IRIX5_opengl. You can
place that binary in the VMDDIR and modify the 'vmd' startup script to
recognize which machine is running and start the appropriate
application. Contact your vendor or support service to get
OpenGL for your system.
MESA - Mesa is a free OpenGL compatible library which can be
used on systems which have no native OpenGL implementation.
Mesa performs all of its rendering in software, and may run
significantly slower than a native OpenGL implementation.
The one exception to this is the 3dfx Voodoo boards running
on Linux, for which Mesa does provide hardware accelerated rendering.
With few exceptions, a native OpenGL implementation will provide
the best rendering performance.
We have compiled VMD with MESA 3.0 on all of the tested
OSs. The Mesa library is available for free via ftp from
iris.ssec.wisc.edu in the pub/Mesa directory. Mesa is also
mirrored on sunsite in the directory
pub/packages/development/graphics/mesa. See the web address
http://www.ssec.wisc.edu/ brianp/Mesa.html for more
information, and the README in ./lib/Mesa for information
about how to get Mesa working with VMD.
GL - Iris GL is SGI's original hardware accelerated graphics API.
Iris GL is no longer widely used now that OpenGL is available for
all interesting platforms, but it is still supported in VMD.
The Iris GL graphics support works with IRIX5.
On very old SGI machines, OpenGL is emulated via GL, so you should
probably compile for GL on these machines. To compile for GL you must
have the appropriate header files and libraries installed on your system.
To get the CAVE library, please contact Pyramid Systems, Inc. The Pyramid WWW page is at http://www.pyramidsystems.com/. We cannot distribute the CAVE libraries, but the standard SGI binary distribution version is compiled with the CAVE library. To use that option, start VMD with the run-time option -dispdev cave.
The configuration options are:
Option: Graphics Support: CAVE -- include run-time support for CAVE display (GL and OpenGL).
Option: GUI Support: XFORMS -- the standard (soon to be "old") XForms GUI FLTK -- (not yet supported) a fixed version the XForms GUI for FLTK TK -- (not yet supported) a rewrite of the GUI in Tk
To date the GUI for VMD has been XForms or its GL-based predecessor, FORMS. In version 1.3 the GUI is still XForms based but we plan to convert to FLTK or Tk in future versions. A Tk based GUI could allow user-scripts to create or modify the display on the fly; like drawing an RMSD plot in a new 2D graphics window. If you want to try out Tk, go ahead, but there will be no GUI or mouse control.
You should compile with XForms, in which case you need to get the pre-built binaries from http://bragg.phys.uwm.edu/xforms/ or from the ftp site ftp://einstein.phys.uwm.edu/ . There are instructions in ./lib/xforms/README describing what you need to do.
VMD was compiled against Tcl/Tk version 8.0.4 and TclX version 8.0.4 . You must have the 8.0 or better versions of both packages. The latest versions can be found at:
Tcl/Tk 8.0.4 is at http://www.scriptics.com/
TclX 8.0.4 is at ftp://www.neosoft.com/pub/tcl/TclX
Because Tcl and TclX are very useful programs, we make the assumption that these will be installed on your system, so there is no ./lib/tcl directory. To configure VMD to use the appropriate Tcl/TclX directory, you may have to edit ./configure and change a few variables. The current settings look in /usr/local/[include,lib] unless the corresponding environment variable is set. The variables are:
From the configure script:
################ Tcl / Tk # location of TCL library and include file. # If left blank, standard system directories will be searched. $stock_tcl_include_dir=$ENV{"TCL_INCLUDE_DIR"} || "/usr/local/include"; $stock_tcl_library_dir=$ENV{"TCL_LIBRARY_DIR"} || "/usr/local/lib"; # location of Tk (for TK option) $stock_tk_include_dir=$ENV{"TK_INCLUDE_DIR"} || "/usr/local/include"; $stock_tk_library_dir=$ENV{"TK_LIBRARY_DIR"} || "/usr/local/lib"; # location of TclX $stock_tclx_include_dir=$ENV{"TCLX_INCLUDE_DIR"} || "/usr/local/include"; $stock_tclx_library_dir=$ENV{"TCLX_LIBRARY_DIR"} || "/usr/local/lib";
Either change the default values or override them with the environment variables. As a note, if compiling TclX without Tk, you'll need use the option ./configure -with-tk=NO.
SURF -- add the external call to SURF (uses DrawMolItemSurf.\{Ch\} and adds the option to the graphics pop-up list)
There is no reason not to compile SURF. It is actually distributed (with permission) as part of the VMD distribution. To compile surf, go to ./lib/surf and follow the instructions in README.VMD (the README file if from surf itself). The end result will be a program named surf_$ARCH in that directory. Leave it there.
For the main SURF distribution, see
ftp://ftp.cs.unc.edu/pub/projects/GRIP/SURF/surf.tar.Z
UNC -- Use the UNC tracker library to support 3DOF/6DOF trackers VRPN -- (not fully supported yet) Use the VRPN library to support local and remote 3DOF/6DOF trackers
The standard VMD distribution for IRIX5 is compiled with UNC. We have not tested it with any other platforms. See ./lib/unc/ for more information about the library and how to set it up with VMD. The VRPN option is still in development and will be fully supported in a future release of VMD.
The configuration options for MDComm are: REMOTE -- use MDComm for doing remote simulations
Please read ./lib/mdcomm/README for information about setting up MDComm (and RAPP) for use in VMD.
DEBUG or NODEBUGWhen turned on, these print all "msgdebug" messages. There are a lot of them and they really slow things down. (BTW, you can tell who wrote which sections of code by who uses msgDebug :) Also, set the -g flag when compiling. By default, VMD is compiled with NODEBUG. If you only want to add the -g flag, edit the configure script so the compiler is defined as "CC -g" (or "g++ -g").
SILENT or NOSILENTThe default is SILENT, in which case you don't see the details of the compilation as it suppresses the make command echo. All this does is add or not add the line ".SILENT" near the top of the produced Makefile.