Discussion:
distcheck missing files
Kip Warner
2013-05-20 07:24:05 UTC
Permalink
Hey list,

My autotool'd project configure and builds fine. When I run distcheck
target, I notice that some tests fail because it is missing files that
ought to be in 'Tests/'.

I checked my projects Makefile.am and, consistent with what I took from
chapter 14.1 of the manual, I made sure that the directory containing my
test files ('Tests/') was present in the EXTRA_DIST variable. If I'm not
mistaken, listing 'Tests' in that variable should copy everything
recursively in that folder which is what I want.

What am I doing wrong?
--
Kip Warner -- Software Engineer
OpenPGP encrypted/signed mail preferred
http://www.thevertigo.com
Eric Blake
2013-05-20 14:44:06 UTC
Permalink
Post by Kip Warner
Hey list,
My autotool'd project configure and builds fine. When I run distcheck
target, I notice that some tests fail because it is missing files that
ought to be in 'Tests/'.
distcheck is provided by automake, not autoconf; perhaps you'll get
better answers from the automake list or from reading the automake manual.
Post by Kip Warner
I checked my projects Makefile.am and, consistent with what I took from
chapter 14.1 of the manual, I made sure that the directory containing my
test files ('Tests/') was present in the EXTRA_DIST variable. If I'm not
mistaken, listing 'Tests' in that variable should copy everything
recursively in that folder which is what I want.
What am I doing wrong?
Without seeing your actual Makefile.am, I can only guess that perhaps
you made your EXTRA_DIST conditional? I've been bitten by that in some
of my own projects, where a conditional EXTRA_DIST impacts what goes
into the tarball according to the configure options used, even though
that is generally a bad idea (you want the tarball to be independent of
configure options).
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
Kip Warner
2013-05-20 19:05:27 UTC
Permalink
Post by Eric Blake
distcheck is provided by automake, not autoconf; perhaps you'll get
better answers from the automake list or from reading the automake manual.
Hey Eric. You're right, perhaps the automake mailing list would have
been better. I should also have clarified that I was referring to the
automake manual and not autoconf.
Post by Eric Blake
Without seeing your actual Makefile.am, I can only guess that perhaps
you made your EXTRA_DIST conditional? I've been bitten by that in some
of my own projects, where a conditional EXTRA_DIST impacts what goes
into the tarball according to the configure options used, even though
that is generally a bad idea (you want the tarball to be independent of
configure options).
As far as I know, it isn't being conditionally modified. Here's the
Makefile.am:

<http://pastebin.com/Ck57h01T>

Thanks Eric,
--
Kip Warner -- Software Engineer
OpenPGP encrypted/signed mail preferred
http://www.thevertigo.com
Gavin Smith
2013-05-20 22:25:18 UTC
Permalink
Post by Kip Warner
Post by Eric Blake
Without seeing your actual Makefile.am, I can only guess that perhaps
you made your EXTRA_DIST conditional? I've been bitten by that in some
of my own projects, where a conditional EXTRA_DIST impacts what goes
into the tarball according to the configure options used, even though
that is generally a bad idea (you want the tarball to be independent of
configure options).
As far as I know, it isn't being conditionally modified. Here's the
<http://pastebin.com/Ck57h01T>
You have

# Manually add these things to distribution package when dist target is run...
EXTRA_DIST =
Authors \
Copying \
Install \
News \
ReadMe \
Tests \
ToDo

(Sorry, the whitespace is being mangled somehow when I copy and paste.)

I believe you should have a backslash ("\") at the end of the first
line, or otherwise move the "Authors" line up to be on the first line.
Kip Warner
2013-05-21 02:36:37 UTC
Permalink
Post by Gavin Smith
Post by Kip Warner
As far as I know, it isn't being conditionally modified. Here's the
<http://pastebin.com/Ck57h01T>
You have
# Manually add these things to distribution package when dist target is run...
EXTRA_DIST =
Authors \
Copying \
Install \
News \
ReadMe \
Tests \
ToDo
(Sorry, the whitespace is being mangled somehow when I copy and paste.)
I believe you should have a backslash ("\") at the end of the first
line, or otherwise move the "Authors" line up to be on the first line.
Great eye, Gavin. The damn missing character demon was at it again.
Indeed, I found the little bugger's work buried within the
RecoveryTest.sh target as well (missing quotation).

Two other questions, which I suppose one is an automake question, but
you might be able to help me with.

The first one is if I use AC_CONFIG_AUX_DIR([AutomakeAuxiliary]) in my
configure.ac, how do I get the generated makefile to remove the
directory once done? I already have the following in my Makefile.am, but
it only cleans out the contents of the directory, but leaves the latter.

MAINTAINERCLEANFILES = \
$(srcdir)/AutomakeAuxiliary/config.h.in \
$(srcdir)/AutomakeAuxiliary/config.guess \
$(srcdir)/AutomakeAuxiliary/config.rpath \
$(srcdir)/AutomakeAuxiliary/config.sub \
$(srcdir)/AutomakeAuxiliary/depcomp \
$(srcdir)/AutomakeAuxiliary/install-sh \
$(srcdir)/AutomakeAuxiliary/missing \
$(srcdir)/AutomakeAuxiliary \
...

Lastly, at the end of my ./configure, I'd like to output a general
summary of parameters the build will be created with. One of those is
whether NLS was enabled. Is there a way to check for $enable_nls without
having to manually define it like so?

# Native language support...
AC_ARG_ENABLE([nls],
[AS_HELP_STRING([--disable-nls],
[do not use native language support @<:@default: yes@:>@])],
[enable_nls=${enableval}],
[enable_nls=yes])

Thanks a lot,
--
Kip Warner -- Software Engineer
OpenPGP encrypted/signed mail preferred
http://www.thevertigo.com
Kip Warner
2013-05-21 04:27:10 UTC
Permalink
Post by Kip Warner
Lastly, at the end of my ./configure, I'd like to output a general
summary of parameters the build will be created with. One of those is
whether NLS was enabled. Is there a way to check for $enable_nls without
having to manually define it like so?
# Native language support...
AC_ARG_ENABLE([nls],
[AS_HELP_STRING([--disable-nls],
[enable_nls=${enableval}],
[enable_nls=yes])
This one I managed to solve by checking $USE_NLS =)
--
Kip Warner -- Software Engineer
OpenPGP encrypted/signed mail preferred
http://www.thevertigo.com
Loading...