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 IRIX6 OPENGL TK FLTKThis 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 ./configureSeveral 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 IRIX5 -- SGI IRIX 5.3, SGI IRIX 6.x IRIX6 -- SGI IRIX 6.5.4 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 only for ancient SGI 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 is best supported graphics option for VMD at this time.
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 normally performs all of its rendering in software, and may run
significantly slower than a native OpenGL implementation.
On systems using XFree86 4.0 or later, the new DRI interface can
provide hardware-accelerated Mesa, which will speed up VMD significantly.
With few exceptions, a native OpenGL implementation will provide
the best rendering performance.
We have compiled VMD with MESA 3.1 on all of the tested
OSs. The Mesa library is available for free via ftp from ftp.mesa3d.org in the mesa directory. Mesa is also
mirrored on sunsite in the directory pub/packages/development/graphics/mesa. See the web address
http://www.mesa3d.org/ 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
for all supported platforms. We no longer distribute GL versions
of VMD, and it may not even be possible to build GL versions of VMD
for much longer for a variety of reasons.
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: FLTK -- the standard FLTK GUI XFORMS -- the old XForms GUI TK -- Support for user-written GUI elements in scripts etc.
You should compile with FLTK, in which case you need to get the source or binaries from http://www.fltk.org/. Alternately, you may wish to build using the older XForms library, you can get 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
VRPN -- (not fully supported yet) Use the VRPN library to support local and remote trackers and other input devices.
IMD -- use IMD for doing remote simulations
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.