automake
[Top][All Lists]
Advanced

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

Re: PATCH for "make distcheck" failure


From: Alexandre Duret-Lutz
Subject: Re: PATCH for "make distcheck" failure
Date: 21 Aug 2002 22:53:06 +0200
User-agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7

>>> "Bruce" == Bruce Korb <address@hidden> writes:

[...]

 Bruce> That proposal being:

 Bruce> if BAR
 Bruce> MAYBE_BAR = bar
 Bruce> fi
 Bruce> SUBDIRS = foo $(MAYBE_BAR)

 Bruce> The issues are:

 Bruce> 1.  How do you distribute "bar" when BAR is not defined?

Type `make dist' and this will happen automatically :)

Automake will define `DIST_SUBDIRS = foo bar' for you
automatically because he *knows* that `MAYBE_BAR' *can* contain
`bar'.

`make dist' will recurse into `$(DIST_SUBDIRS)' whatever the
value of `$(SUBDIRS)' is, so it will distribute these files even
if the directory was left out of `$(SUBDIRS)' (i.e., out of the
build).

Try it!

 Bruce> "bar" must be listed in either DIST_SUBDIRS or SUBDIRS,
 Bruce> always one of them, but not both. 

No.  See above.  DIST_SUBDIRS should contain any directory that
can appear in SUBDIRS.

(Maybe we could add a sanity check in Automake to ensure that
the values of $(SUBDIRS) are contained in those of
$(DIST_SUBDIRS).)

 Bruce> 2.  bar/Makefile.in must get generated by automake.

Yep.

  AC_CONFIG_FILES([bar/Makefile])

This will cause ./configure to create bar/Makefile unconditionally.
This is what we want: since `make dist' must recurse into `bar/' we
should have a Makefile there.

 Bruce> Can you tell it to do that without listing it in
 Bruce> the AC_CONFIGURE()?

There is no reason to do this here.

 Bruce> 3.  If you list it there, then it will put stuff in the build
 Bruce> directory that will conflict with stuff in the source dir.
 Bruce> *THAT* will cause conflicts come "make distcheck" time.

AFAICT that only causes conflicts when you EXTRA_DIST the
directory.  You don't need to EXTRA_DIST it.



All you need is, in some place read by Autoconf (your macro?):

  AM_CONDITIONAL([BAR], ...)
  AC_CONFIG_FILES([bar/Makefile])

In the top-level Makefile.am

  if BAR
    MAYBE_BAR = bar
  fi
  SUBDIRS = foo $(MAYBE_BAR)

No evil EXTRA_DIST, no redefinition of DIST_SUBDIRS (since
Automake gets it right in this case), no related AC_SUBST.
-- 
Alexandre Duret-Lutz





reply via email to

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