Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] build problem, autogen
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2009-08-28 11:13:41


The easiest way to do this is to install all the Autotools (Autoconf,
Automake, Libtool, m4) into a single $prefix. That way, you don't
have to copy *.m4 files around (I don't know what distros do by
default -- I typically install my own/very recent Auto tools under
$HOME/new-gnu or somesuch).

I think we might have a little more detail about this in the HACKING
file...?

FWIW, you should not need to run autogen.sh on any distribution
tarball -- nightly or otherwise. A default build is supported out-of-
the-box(tarball) without even requiring that any of the Auto tools are
installed on the system at all.

We do use slightly older AC/AM/LT in tarballs (there's a chart on the
web site somewhere telling exactly what versions we use for each
tarball series) -- Ken is absolutely correct -- so if you need new
versions to support things like proper Lustre locking for parallel
builds, then running autogen.sh on a tarball is fine. Just be sure
you have a consistent AC/AM/LT set. The same rules for running
autogen.sh successfully on an SVN/HG checkout apply to running
autogen.sh successfully on a tarball.

I hope that made sense! :-)

On Aug 28, 2009, at 9:18 AM, Matney Sr, Kenneth D. wrote:

> Hi Tim, Eugene,
>
> Actually, the part about not needing to run autogen.sh; if running
> via a nightly/release tarball is not entirely accurate. The tarballs
> are configured to allow parallel builds (e.g., "gmake -j6 ...");
> however,
> when you run autogen.sh when building in an older Lustre filesystem,
> locking is not fully supported and so it disables the parallel builds.
>
> The problem here is that the automake and the libtool builds are
> interdependent, in a manner of speaking. The automake build installs
> `aclocal` and your "new" automake references its own shared aclocal
> tree. For example, I installed a newer automake for our OMPI builds
> at NCCS and we have:
>
> kmy_at_jaguarpf-login3:/sw/xt5/automake/1.10.1/sles10.1_pgi7.2.5>
> ls -dl /sw/xt5/automake/1.10.1/sles10.1_pgi7.2.5/share/aclocal-1.10
> drwxr-sr-x 2 kmy ccsstaff 8192 2009-02-04 16:20 /sw/xt5/automake/
> 1.10.1/sles10.1_pgi7.2.5/share/aclocal-1.10
>
> Sorry about the convoluted path, but that is another story. The point
> is that by using my `automake`, you also get the attendant `aclocal`
> and this `aclocal` will reference the above ".../share/aclocal-1.10"
> directory for its macros.
>
> This is the part where you get into trouble. The libtool install puts
> a couple of files into the automake/aclocal shared directory, like so:
>
> [kmy_at_odie ~] rpm -ql libtool-1.5.24-17 | grep aclocal
> /usr/share/aclocal/libtool.m4
> /usr/share/aclocal/ltdl.m4
> /usr/share/libtool/libltdl/aclocal.m4
> [kmy_at_odie ~]
>
> This is why your `aclocal` clutches when it hits "AM_PROG_LIBTOOL".
> There are other RPMs that do the same thing. So, if you want to
> install
> a relocated automake (leave the default system automake in place),
> when
> building the relocated automake, you must copy the default system
> macros
> into your target shared aclocal directory before the install. For
> example:
>
> # cp -p /usr/share/aclocal/*.m4 {...}/share/aclocal-1.10/
>
> Then, do the automake install to update the macros that automake
> installs.
> Installing a version of libtool to incorporate your version of
> automake
> should work for the current issue. However, it is not a general
> solution,
> because there are other macros that may be missing.
> -- Ken
>
>
> -----Original Message-----
> From: devel-bounces_at_[hidden] [mailto:devel-bounces_at_[hidden]]
> On Behalf Of Tim Mattox
> Sent: Thursday, August 27, 2009 10:22 PM
> To: Open MPI Developers
> Subject: Re: [OMPI devel] build problem, autogen
>
> Hi Eugene,
> That FAQ entry is correct.. except that soon we won't need a C++
> compiler :-)
>
> However, *IF* you want to run autogen.sh, you need recent
> versions of all four gnu autotool dependencies:
> m4, autoconf, automake, and libtool
> as described here:
> http://www.open-mpi.org/svn/building.php
>
> However, if you are using a nightly tarball or a release
> tarball, you should not need to (nor want to!) run autogen.sh,
> and can just do the usual:
> "./configure --pile-of-options; make; make install"
>
> On Thu, Aug 27, 2009 at 9:45 PM, Eugene Loh<Eugene.Loh_at_[hidden]> wrote:
> > Tim Mattox wrote:
> >
> >> Don't forget to also install a recent gnu libtool.
> >>
> >
> > Lemme see:
> >
> > http://www.open-mpi.org/faq/?category=building#build-tools says:
> "If you are
> > building Open MPI from a tarball, you need a C compiler, a C++
> compiler, and
> > make... You do not need any special version of the GNU "Auto" tools
> > (Autoconf, Automake, Libtool)."
> >
> > So, that presumably means I *should* be okay.
> >
> > For what it's worth, I can no longer find the places that led me
> to believe
> > that:
> >
> > *) I needed the versions of the tools (m4, autoconf, automake)
> that I picked
> > up.
> > *) I did not need libtool since OMPI had its own, hacked up version.
> >
> > but those were the assumptions I operated under.
> >
> >> On Thursday, August 27, 2009, Jeff Squyres <jsquyres_at_[hidden]>
> wrote:
> >>
> >>>
> >>> Don't you need a rehash in your script to make sure it picks up
> the
> >>> newly-installed autotools?
> >>>
> >
> > Good point. I'm a dummy about these things. Assuming I know how
> to fix
> > what you're saying, I inserted a "rehash" in my script after "make
> install",
> > but still got the same problem. That is, the relevent part of the
> script
> > now says:
> >
> > foreach PACKAGE ( m4-1.4.13 autoconf-2.63 automake-1.10.2 )
> > bunzip2 $PACKAGE.tar.bz2
> > tar xf $PACKAGE.tar
> > pushd $PACKAGE
> > ./configure --prefix=$INSTALLDIR
> > make
> > make install
> > popd
> > rehash
> > end
> >
> > bunzip2 openmpi-1.4a1r20984.tar.bz2
> > tar xf openmpi-1.4a1r20984.tar
> > pushd openmpi-1.4a1r20984
> > ./autogen.sh
> >
> > and the end of the log file still says:
> >
> > *** Running GNU tools
> > [Running] libtoolize --automake --copy
> > [Running] aclocal
> > configure.in:2123: warning: macro `AM_PROG_LIBTOOL' not found in
> library
> > [Running] autoheader
> > [Running] autoconf
> > configure.in:2126: error: possibly undefined macro: AM_PROG_LIBTOOL
> > If this token and others are legitimate, please use
> m4_pattern_allow.
> > See the Autoconf documentation.
> >
> >
> -------------------------------------------------------------------------
> > It seems that the execution of "autoconf" has failed. See above for
> > the specific error message that caused it to abort.
> >
> -------------------------------------------------------------------------
> >
> > Error running autogen.sh -l in romio. Aborting.
> >
> >>>
> >>> On Aug 27, 2009, at 4:48 PM, Eugene Loh wrote:
> >>>
> >>>
> >>> I'm having a build problem. I want to be able to build on all
> sorts of
> >>> different machines and don't always know that the right versions
> of
> >>> various tools will be available. So, I drag them around with
> me. So,
> >>> e.g., I have these tarballs:
> >>>
> >>> autoconf-2.63.tar.bz2
> >>> automake-1.10.2.tar.bz2
> >>> m4-1.4.13.tar.bz2
> >>> openmpi-1.4a1r20984.tar.bz2
> >>>
> >>> After building the other tools, I start autogen on OMPI and get
> this:
> >>>
> >>> *** Running GNU tools
> >>> [Running] libtoolize --automake --copy
> >>> [Running] aclocal
> >>> http://configure.in:2123: warning: macro `AM_PROG_LIBTOOL' not
> found in
> >>> library
> >>> [Running] autoheader
> >>> [Running] autoconf
> >>> http://configure.in:2126: error: possibly undefined macro:
> >>> AM_PROG_LIBTOOL
> >>> If this token and others are legitimate, please use
> m4_pattern_allow.
> >>> See the Autoconf documentation.
> >>>
> >>>
> -------------------------------------------------------------------------
> >>> It seems that the execution of "autoconf" has failed. See above
> for
> >>> the specific error message that caused it to abort.
> >>>
> -------------------------------------------------------------------------
> >>>
> >>> Error running autogen.sh -l in romio. Aborting.
> >>>
> >>> What's up? This is SuSE with GCC. Run script and log file
> attached.
> >>> Thanks for any help.
> >>>
> >>> #!/bin/csh -x
> >>>
> >>> ls
> >>>
> >>> setenv CFLAGS "-O -m64 -g"
> >>> setenv CXXFLAGS "-O -m64 -g"
> >>> setenv FFLAGS "-O -m64 -g"
> >>> setenv FCFLAGS "-O -m64 -g"
> >>>
> >>> pwd
> >>>
> >>> set INSTALLDIR = `pwd`/myopt
> >>> set path = ( $INSTALLDIR/bin /usr/ccs/bin /usr/bin /bin )
> >>>
> >>> foreach PACKAGE ( m4-1.4.13 autoconf-2.63 automake-1.10.2 )
> >>> bunzip2 $PACKAGE.tar.bz2
> >>> tar xf $PACKAGE.tar
> >>> pushd $PACKAGE
> >>> ./configure --prefix=$INSTALLDIR
> >>> make
> >>> make install
> >>> popd
> >>> end
> >>>
> >>> bunzip2 openmpi-1.4a1r20984.tar.bz2
> >>> tar xf openmpi-1.4a1r20984.tar
> >>> pushd openmpi-1.4a1r20984
> >>> ./autogen.sh
> >>> # ./configure \
> >>> # --disable-visibility \
> >>> # --enable-mpirun-prefix-by-default \
> >>> # --prefix=$INSTALLDIR
> >>> # make
> >>> # make install
> >>> popd
> >>>
> >>> ls
> >>>
> >
> > _______________________________________________
> > devel mailing list
> > devel_at_[hidden]
> > http://www.open-mpi.org/mailman/listinfo.cgi/devel
> >
>
>
>
> --
> Tim Mattox, Ph.D. - http://homepage.mac.com/tmattox/
> tmattox_at_[hidden] || timattox_at_[hidden]
> I'm a bright... http://www.the-brights.net/
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>

-- 
Jeff Squyres
jsquyres_at_[hidden]