automake
[Top][All Lists]
Advanced

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

Re: P.S. Automake 1.4f is broken


From: Bruce Korb
Subject: Re: P.S. Automake 1.4f is broken
Date: Sun, 09 Sep 2001 04:58:39 -0700

"Gary V. Vaughan" wrote:

> Ah, okay.  I thought you meant AutoGen was hosed.

It is, too.  First, "snprintfv/config/depcomp" couldn't be found during
a "make distcheck".  Since it was a generated file, I added it to the
"EXTRA_DIST" for that directory.

Then there are these:

> automake: Makefile.am: installing `./COPYING'
> Use of uninitialized value in string eq at /usr/local/bin/automake line 5192.
> Use of uninitialized value in hash element at \
> /usr/local/bin/automake line 1751.automake: configure.in: installing 
> `config/depcomp'

> sub derive_suffix
> {
>     my ($source_ext) = @_;
>  
>     # FIXME: hard-coding `o' is a mistake.  Doing something
>     # intelligent is harder.
>     while ($extension_map{$source_ext} eq ''  ###  line 5192
>            && $source_ext ne 'o'
>            && defined $suffix_rules{$source_ext})
>     {
>         $source_ext = $suffix_rules{$source_ext};
>     }

> sub handle_single_transform_list ($$$@)
> {
>     my ($var, $derived, $obj, @files) = @_;
>     my @result = ();
>     my $nonansi_obj = $obj;
>     $nonansi_obj =~ s/\$U//g;
>     my %linkers_used = ();
>     foreach (@files)
>     {
[error test]
>         next if ! /^(?:(.*)\/)?([^\/]*)\.(.*)$/;
>         my $full = $_;
>         my $directory = $1 || '';
>         my $base = $2;
>         my $extension = $3;
[comment]
>         my $renamed = 0;
>         my ($linker, $object);
>         $extension = &derive_suffix ($extension);
>         my $lang = $languages{$extension_map{$extension}};  ### line 1751

and:

> Making distclean in .
> make[3]: Entering directory 
> `/home/bkorb/ag/ag/autogen-5.2.10/=build/snprintfv'
> [...]
> make[2]: Entering directory `/home/bkorb/ag/ag/autogen-5.2.10/=build'
> rm -f Makefile  stamp-h stamp-h[0-9]*
> rm -f config.h
> rm -f TAGS ID
> make[2]: Leaving directory `/home/bkorb/ag/ag/autogen-5.2.10/=build'
> rm -f config.status config.cache config.log
> make[1]: Leaving directory `/home/bkorb/ag/ag/autogen-5.2.10/=build'
> Error: files left after distclean
> make: *** [distcheck] Error 1

Ah.  I see the problem.  Schizophrenic builds do not work because
there is no way to pass VPATH through to scripts and programs
that build targets.  VPATH is a command line "feature".  I fixed
this problem by having builddir != srcdir builds sym-link
the source tree into the build tree.  Someone in automake land
decided to verify that "make distclean" was successful by looking
for "files" in the build tree and accepting the sym-links as
files:

>           && cd $(distdir)/=build \
>           && ../configure --srcdir=.. --prefix=$$dc_install_base \
>           && [...] \
>           && $(MAKE) $(AM_MAKEFLAGS) distclean \
>           && rm -f $(distdir).tar.gz \
>           && (test `find . -type f -print | wc -l` -eq 0 \
>              || (echo "Error: files left after distclean" 1>&2; \
>                  exit 1) )

I think that VPATH is a broken concept.  This final test
needs to be a WARNING, not an error.  Automake is broken.

> For gnuprog2 we are very much on the bleeding edge I'm afraid.

Is there a compelling reason for using bleeding edge?
I'm quite tired of the blood letting, I must say.

> I would be surprised if you needed anything quite that new, though you
> will need a bleeding edge M4 to test Akim's yleval.  I recommend
> (untested):
> 
>   Autoconf 2.52
>   Automake 1.5

A new release.  I'll go get it.  I sure hope the "files remain"
misfeature is not still an error.

>   Libtool  1.4.1 (or 1.4.2 if you wait until tonight)

:-)

>   Note that 1.4.1 doesn't work on Solaris :-( Doh!

That kills my last release.  *sigh*.

> M4-1.4q is available from savannah in parallel with libtool.

I need this, too?

Thanks,
        Bruce



reply via email to

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