[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Officially require GNU Make to build Guile? (was Re: Bootstrap optimizat
Mark H Weaver
Officially require GNU Make to build Guile? (was Re: Bootstrap optimization)
Sun, 28 Oct 2018 18:33:47 -0400
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)
Mikael Djurfeldt <address@hidden> writes:
> OK, here's a new patch. OK to apply it?
> This actually also fixes the existing problem of all bootstrap objects
> being rebuilt of eval.scm is touched.
Very nice! I didn't know about this feature in GNU Make.
> The patch is verified to give a faster build for 4 and 32 build threads.
> The only downside is that it requires GNU Make 3.8 (which was released
> 2002) or later, but that shouldn't be a problem, right?
Hmm, good question. I'm not sure, not because 2002 is too recent, but
rather because I'm not sure that GNU Make should be a requirement for
Guile's README does not list GNU Make in the section of "Required
External Packages". This, along with the fact that we use Automake
which is clearly designed to produce portable Makefiles, makes me
inclined to think that if Guile depends on non-standard extensions in
GNU Make, that this is a bug.
On the other hand, if this is a bug, it seems that we've had this bug
for several years at least, and that non-GNU systems are already working
around it by adding GNU Make as a requirement. For example, the Guile 2
packages in the OpenBSD and FreeBSD ports collections already list GNU
Make as a prerequisite for building Guile 2. Our README also has
"Special Instructions For Some Systems" which mentions that gmake is
required on FreeBSD 11.0. However, there's no mention of any other
non-GNU systems requiring GNU Make to build Guile.
So, we now have a choice. We can fully embrace a requirement on GNU
Make, or we can treat it as a bug to be fixed.
I'm still inclined to consider it a bug, but maybe we can have the best
of both worlds here. I see that Automake has conditionals:
How hard would it be to test for GNU Make in our configure script, and
then to use your improved Makefile rules only when GNU Make is present?