From: Paul Eggert <eggert@cs.ucla.edu>
To: Glenn Morris <rgm@gnu.org>
Cc: 20894@debbugs.gnu.org
Subject: bug#20894: make libgnu.a doesn't generate everything it requires
Date: Wed, 24 Jun 2015 23:39:26 -0700 [thread overview]
Message-ID: <558BA21E.5070703@cs.ucla.edu> (raw)
In-Reply-To: <nxfv5gr6hf.fsf@fencepost.gnu.org>
> 'make libgnu.a' doesn't generate the lib/ version of fcntl.h, which is
> what defines O_BINARY.
>
> In contrast, 'make all' (in lib) does.
That's a known problem with Automake, when dependency checking is turned on.
The short version is that it can't compute dependencies until it has the .h
files, and it can't make the .h files until it knows the dependencies. The
usual workaround is BUILT_SOURCES, but as the Automake manual says in
<http://www.gnu.org/software/automake/manual/html_node/Sources.html>:
=====
It might be important to emphasize that BUILT_SOURCES is honored only by ‘make
all’, ‘make check’ and ‘make install’. This means you cannot build a specific
target (e.g., ‘make foo’) in a clean tree if it depends on a built source.
However it will succeed if you have run ‘make all’ earlier, because accurate
dependencies are already available.
=====
Ways to work around this issue are described in
<http://www.gnu.org/software/automake/manual/html_node/Built-Sources-Example.html>.
They are all a bit of a pain, though, and the simplest thing is probably to
say “don't try to make libgnu.a by hand without doing an ordinary make first”....
> (I would like 'make -C src emacs' to work).
*That* we can arrange.
> Perhaps it should call 'make -C lib all' instead (an Emacs issue);
Yes, that's an easy way to arrange things. I installed that as part of commit
319eeeb0fb154a0cd1d36ec33c68029ff9d6c290. Good enough?
next prev parent reply other threads:[~2015-06-25 6:39 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-25 0:12 bug#20894: make libgnu.a doesn't generate everything it requires Glenn Morris
2015-06-25 0:15 ` Glenn Morris
2015-06-25 6:39 ` Paul Eggert [this message]
2015-06-25 16:02 ` Glenn Morris
2015-06-25 20:33 ` Paul Eggert
2015-06-25 23:06 ` Glenn Morris
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=558BA21E.5070703@cs.ucla.edu \
--to=eggert@cs.ucla.edu \
--cc=20894@debbugs.gnu.org \
--cc=rgm@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).