On Jun 1, 2012, at 2:16 PM, Jeremy wrote:

> However, if I do an intermediate copy of the opempi-1.6 directory then
> make fails (details attached):
> tar xvf openmpi-1.6.tar
> cp -r openmpi-1.6 openmpi-1.6.try

^^Yeah, don't do that.  :-)

Open MPI, like all Automake-bootstrapped tools, has a very strict dependence on 
its timestamps on the filesystem.  The tarball itself is created with a 
specific file ordering so that when you untar it, the filestamps are in the 
Order That Is Needed (Automake takes care of all of this when we make the 
tarball).  As you saw, if you violate those timestamps, Bad Things happen when 
you "make" (because "make" is timestamp driven).

> I can get it work only if I preserve timestamps when I do the copy:
> tar xvf openmpi-1.6.tar
> cp -r --preserve=timestamps openmpi-1.6 openmpi-1.6.try

Yes, this is expected.

I think your options are as follows:

1. untar the tarball every time you want another copy
2. cp -r --preserve=timestamps
3. Use a VPATH build

#3 is probably your easiest solution.  You can do something like this:

tar xf openmpi-1.6.tar.bz2
mkdir build-1
cd build-1
../openmpi-1.6/configure ....whatever options you want...
make -j 8 install

cd ..
mkdir build-2
cd build-2
../openmpi-1.6/configure ....whatever other options you want...
make -j 8 install

...and so on.

Meaning: you have the source expanded exactly once, and you configure/build 
multiple times in different trees.  Specifically: you separate the source tree 
from the build tree(s).

Does that help?

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to