automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ltmain.sh


From: Gary V. Vaughan
Subject: ltmain.sh
Date: Thu, 29 Jul 2004 14:20:06 +0100
User-agent: Mozilla Thunderbird 0.7 (X11/20040615)

Hi Alexandre!

Having automake choke when ltmain.sh is missing causes no end
of trouble for libtool... because obviously we don't have ltmain.sh
yet at bootstrap time.  We work around it by having a bootstrap
script touch ltmain.sh before running automake, and then removing
it so that make triggers the right rules to rebuild it properly.

None of the automatic rebuild rules work:

] make
cd .. && /bin/sh /Users/gary/devel/savannah/libtool--devo--1.0/config/missing
--run automake-1.8c --gnits  Makefile
configure.ac:179: required file `config/ltmain.sh' not found
make: *** [../Makefile.in] Error 1

And worst of none of the dist rules work properly.  In a VPATH build
tree, we make ./config/ltmain.sh, but automake expects to see it in
$(srcdir)/config/ltmain.sh and chokes:

] make dist
{ test ! -d libtool-1.5a || { find libtool-1.5a -type d ! -perm -200 -exec
chmod u+w {} ';' && rm -fr libtool-1.5a; }; }
mkdir libtool-1.5a
mkdir -p -- . libtool-1.5a/. libtool-1.5a/config libtool-1.5a/m4
...
make[2]: *** No rule to make target
`/Users/gary/devel/savannah/libtool--devo--1.0/tests/cdemo/../../config/ltmain.sh',
needed by `distdir'.  Stop.
make[1]: *** [distdir] Error 1
make: *** [distdir] Error 1

If I copy everything into a new tree and configure in top_srcdir, make
dist will work, but distcheck fails the VPATH tests :-(

I've added the following rules to the top-level Makefile.am, and they
do mitigate things a lot:

$(top_srcdir)/config/ltmain.sh: config/ltmain.sh
        $(LN_S) config/ltmain.sh $(top_srcdir)/config/ltmain.sh

dist-hook:
        test -f $(top_distdir)/config/ltmain.sh || \
          $(LN_S) config/ltmain.sh $(top_distdir)/config/ltmain.sh

I think that what we *really* need is for automake to not assume ltmain.sh
is in the source tree, and some way for the libtool Makefile.am to
declare that config/ltmain.sh is a built file so that automake doesn't
keep stopping before it is built without the horrible bootstrap $fakes
hack.

Unfortunately, at the moment we need to rebootstrap the whole tree far
more often than necessary where other projects just rerun automake as
part of the make invocation.  Rerunning autoreconf -fvi on all 8 test/*demo*
trees and the libtool source tree proper after every cvs update and commit
takes about 30 minutes on my high end Mac, and up to an hour for some of
our other developers :-(

Thoughts?

Cheers,
        Gary.
-- 
Gary V. Vaughan      ())_.  address@hidden,gnu.org}
Research Scientist   ( '/   http://tkd.kicks-ass.net
GNU Hacker           / )=   http://www.gnu.org/software/libtool
Technical Author   `(_~)_   http://sources.redhat.com/autobook

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]