From: Rich Cook (rcook_at_llnl.gov)
Date: Tue Dec 01 2009 - 17:50:48 CST

I guess I should share that I'm building from source because the
binary installation did not work for me. We install on our clusters,
and when I display back to my Mac workstation, it crashed my entire
machine, quite an impressive feat! I'm hoping a source build changes
things, as I can then pick and choose which modules to include.

On Dec 1, 2009, at 12:03 PM, John Stone wrote:

>
> Rich,
> I'll go ahead and add new environment variables for the Python stuff
> since a lot of people end up building from source in order to
> integrate
> VMD with their favorite Python version and Python library
> installation.
>
> Are you doing your builds from CVS, or from the source tarballs for
> the
> official release? I can send you a note when I've modified the
> configure
> script to enable the environment variable overrides and committed it
> to CVS.
>
> Cheers,
> John Stone
> vmd_at_ks.uiuc.edu
>
> On Tue, Dec 01, 2009 at 11:59:29AM -0800, Rich Cook wrote:
>> Thanks, that's helpful. It would be great if this stuff could be
>> done
>> from the command line, as you can see I automate things to deploy on
>> more than one machine, and hand-editing files is a non-starter in
>> this
>> environment -- I end up writing sed scripts to take care of it.
>>
>> But thanks again for the information.
>>
>> On Dec 1, 2009, at 8:05 AM, John Stone wrote:
>>
>>>
>>> Hi,
>>> The standard VMD 'configure' script expects all of the libraries
>>> to be found in vmd/lib rather than in /usr/local or other locations.
>>> We do this because when we build VMD here we have to have strict
>>> control
>>> over which versions of the various libraries we are linking against,
>>> and
>>> this prevents us from accidentally picking up a bad version of Tcl,
>>> Python,
>>> or FLTK from the /usr/local tree on system we're compiling on.
>>>
>>> You can redirect the VMD compilation to use whatever directory
>>> structure
>>> you like by editing the appropriate lines in the 'configure' script
>>> prior to generating the makefiles etc. Look in the 'configure'
>>> script
>>> starting on line 1027 and you'll see where the default Python
>>> include
>>> and linkage paths are set. You can simply edit those directory
>>> paths
>>> and you should be in business. This is often simpler than manually
>>> editing
>>> the makefile that the configure script generates, although that
>>> approach
>>> would work equally well if you're more comfortable with it.
>>>
>>> For Tcl/Tk we allow overriding default paths with the use of a few
>>> environment variables (see line 22-31 in the 'configure' script).
>>> If people would find it helpful, I could add logic to allow the same
>>> kinds of overrides for Python and other libraries that are often
>>> part
>>> of the default OS install.
>>>
>>> Let me know if you have more questions.
>>>
>>> Cheers,
>>> John Stone
>>> vmd_at_ks.uiuc.edu
>>>
>>>
>>> On Mon, Nov 30, 2009 at 03:49:23PM -0800, Rich Cook wrote:
>>>> Hello,
>>>>
>>>> I am using the below script to install VMD 1.8.7. I'm almost
>>>> there,
>>>> but the build seems to be unable to find the python library. Can
>>>> some
>>>> wise person here help me? I find the build instructions to be
>>>> confusing and incomplete. Thanks for any help or pointers to
>>>> additional info.
>>>>
>>>> Here is my machine info:
>>>> rcook_at_zeus287 (src): uname -a
>>>> Linux zeus287 2.6.18-76chaos #1 SMP Fri Aug 14 13:22:06 EDT 2009
>>>> x86_64 x86_64 x86_64 GNU/Linux
>>>>
>>>> Do I need to download and install Python 2.5 in the vmd-1.8.7
>>>> directory to get it in there?
>>>> Here is the installation script:
>>>> #
>>>> =
>>>> =
>>>> ===================================================================
>>>> # begin installation script for vmd
>>>> #!/usr/bin/env bash
>>>> if ! . $HOME/RC_bash_lib/shellfuncs.sh; then
>>>> echo "need shellfuncs, time to exit, bye bye"
>>>> exit 1
>>>> fi
>>>>
>>>> set -x
>>>> cd /usr/global/tools/vmd/1.8.7
>>>>
>>>> rm -rf $SYS_TYPE/{src,bin,lib}
>>>> mkdir -p $SYS_TYPE/src
>>>> cd $SYS_TYPE
>>>> [ -d Tcl ] || errexit "You must have Tcl installed in $(pwd)/Tcl"
>>>>
>>>> cd src
>>>> tar -xvzf /usr/global/tools/vmd/1.8.7/tarballs/vmd-1.8.7.src.tar.gz
>>>>
>>>> echo "============================================================"
>>>> echo "First the plugins have to be built"
>>>> cd /usr/global/tools/vmd/1.8.7/$SYS_TYPE/src/plugins
>>>> gmake LINUXAMD64 TCLINC=-I/usr/global/tools/vmd/1.8.7/$SYS_TYPE/
>>>> Tcl/
>>>> include TCLLIB=-L/usr/global/tools/vmd/1.8.7/$SYS_TYPE/Tcl/lib/
>>>> export PLUGINDIR=/usr/global/tools/vmd/1.8.7/$SYS_TYPE/src/
>>>> vmd-1.8.7/
>>>> plugins
>>>> gmake distrib
>>>>
>>>> echo "============================================================"
>>>> echo "Now build SURF"
>>>> cd /usr/global/tools/vmd/1.8.7/$SYS_TYPE/src/vmd-1.8.7/lib/surf
>>>> uncompress surf.tar.Z -c | tar -xv || errexit "could not untar surf
>>>> library"
>>>> gmake depend
>>>> gmake
>>>> mv surf surf_LINUXAMD64
>>>>
>>>> echo "============================================================"
>>>> echo "Now make Fltk"
>>>> cd /usr/global/tools/vmd/1.8.7/$SYS_TYPE/src/
>>>> tar -xvzf /usr/global/tools/vmd/1.8.7/tarballs/fltk-1.1.10rc3-
>>>> source.tar.gz
>>>> cd fltk-1.1.10rc3 || errexit "cannot cd to fltk directory"
>>>> ./configure --prefix=/usr/global/tools/vmd/1.8.7/$SYS_TYPE
>>>> gmake
>>>> gmake install || errexit "Cannot build Fltk library"
>>>>
>>>> echo "============================================================"
>>>> echo "Now the main thing can be built"
>>>> cd /usr/global/tools/vmd/1.8.7/$SYS_TYPE/src/vmd-1.8.7
>>>> sedfiles -e "s:install_bin_dir=\"/usr/local/bin\":install_bin_dir=
>>>> \"/
>>>> usr/global/tools/vmd/1.8.7/$SYS_TYPE/bin\":" -e
>>>> "s:install_library_dir=
>>>> \"/usr/local/lib:install_library_dir=\"/usr/global/tools/vmd/
>>>> 1.8.7/$SYS_TYPE/lib:" configure
>>>> chmod 775 configure
>>>> export TCL_INCLUDE_DIR=/usr/global/tools/vmd/1.8.7/$SYS_TYPE//
>>>> include
>>>> export TCL_LIBRARY_DIR=/usr/global/tools/vmd/1.8.7/$SYS_TYPE//lib
>>>> export TK_INCLUDE_DIR=/usr/global/tools/vmd/1.8.7/$SYS_TYPE//
>>>> include
>>>> export TK_LIBRARY_DIR=/usr/global/tools/vmd/1.8.7/$SYS_TYPE//lib
>>>>
>>>> ./configure LINUXAMD64 OPENGL FLTK ACTC NETCDF TK TCL PYTHON NUMPY
>>>> PTHREADS LP64 PTHREADS NOSILENT
>>>> cd src
>>>> gmake # <--------- this fails
>>>> gmake install
>>>>
>>>> # end vmd installation script
>>>> #=============================================================
>>>> Here is the error:
>>>>
>>>> g++ -m64 -fno-for-scope -Wno-deprecated -Wall -O6 -ffast-
>>>> math -DARCH_LINUXAMD64 -DVMDOPENGL -DVMDGRAPHICS -DVMDACTC -
>>>> DVMDPYTHON -DVMDTHREADS -DUSEPOSIXTHREADS -D_REENTRANT -DVMDNUMPY -
>>>> DVMDORBITALS -DVMDWITHORBITALS -DVMDWITHCARBS -DVMDPOLYHEDRA -
>>>> DVMDSURF
>>>> -DVMDMSMS -DVMDFIELDLINES -DVMDPBCSMOOTH -DVMDTCL -DVMDTK -
>>>> DVMDSTATICPLUGINS -DVMDGUI -DVMDFLTK -I../lib/actc/include -I../
>>>> lib/
>>>> python/lib_LINUXAMD64/include/python2.5 -I../lib/numpy/
>>>> lib_LINUXAMD64/
>>>> include -I../lib/python/lib_LINUXAMD64/lib/python2.5/site-packages/
>>>> numpy/core/include -I/usr/global/tools/vmd/1.8.7/
>>>> chaos_4_x86_64_ib//
>>>> include -I/usr/global/tools/vmd/1.8.7/chaos_4_x86_64_ib//include -
>>>> I../
>>>> plugins/include -I../plugins/LINUXAMD64/molfile -I../lib/netcdf/
>>>> include -I../lib/fltk/include -I. -c PythonTextInterp.C -o ../
>>>> LINUXAMD64/PythonTextInterp.o
>>>> Compiling PythonTextInterp.C --> PythonTextInterp.o ...
>>>> In file included from PythonTextInterp.C:21:
>>>> py_commands.h:28:20: error: Python.h: No such file or directory
>>>> PythonTextInterp.C:32:21: error: errcode.h: No such file or
>>>> directory
>>>>
>>>>
>>>>
>>>>
>>>> /* A function that takes a single integer argument and returns
>>>> a pointer to a function that takes two integer arguments and
>>>> returns a floating-point number. */
>>>> float (*func2(int a))(int, int);
>>>> Rich Cook
>>>> rcook_at_llnl.gov
>>>>
>>>>
>>>>
>>>
>>> --
>>> NIH Resource for Macromolecular Modeling and Bioinformatics
>>> Beckman Institute for Advanced Science and Technology
>>> University of Illinois, 405 N. Mathews Ave, Urbana, IL 61801
>>> Email: johns_at_ks.uiuc.edu Phone: 217-244-3349
>>> WWW: http://**www.**ks.uiuc.edu/~johns/ Fax: 217-244-6078
>>>
>>
>>
>> /* A function that takes a single integer argument and returns
>> a pointer to a function that takes two integer arguments and
>> returns a floating-point number. */
>> float (*func2(int a))(int, int);
>> Rich Cook
>> rcook_at_llnl.gov
>>
>>
>>
>
> --
> NIH Resource for Macromolecular Modeling and Bioinformatics
> Beckman Institute for Advanced Science and Technology
> University of Illinois, 405 N. Mathews Ave, Urbana, IL 61801
> Email: johns_at_ks.uiuc.edu Phone: 217-244-3349
> WWW: http://*www.*ks.uiuc.edu/~johns/ Fax: 217-244-6078
>

/* A function that takes a single integer argument and returns
    a pointer to a function that takes two integer arguments and
    returns a floating-point number. */
float (*func2(int a))(int, int);
Rich Cook
rcook_at_llnl.gov