unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Mark H Weaver <mhw@netris.org>
To: Mikael Djurfeldt <mikael@djurfeldt.com>
Cc: guile-devel <guile-devel@gnu.org>
Subject: Officially require GNU Make to build Guile? (was Re: Bootstrap optimization)
Date: Sun, 28 Oct 2018 18:33:47 -0400	[thread overview]
Message-ID: <87tvl58zvd.fsf_-_@netris.org> (raw)
In-Reply-To: <CAA2XvwJaMoxv652aGYGoK5FsBoDGZ1=3UnvK7CHo_OwoStCqJw@mail.gmail.com> (Mikael Djurfeldt's message of "Sun, 28 Oct 2018 13:40:00 +0100")

Hi Mikael,

Mikael Djurfeldt <mikael@djurfeldt.com> 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
building Guile.

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:

  https://www.gnu.org/software/automake/manual/automake.html#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?

    Regards,
      Mark



  reply	other threads:[~2018-10-28 22:33 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-25 12:25 Bootstrap optimization Mikael Djurfeldt
2018-10-28  1:34 ` Mark H Weaver
2018-10-28  7:24   ` Mikael Djurfeldt
2018-10-28 12:40     ` Mikael Djurfeldt
2018-10-28 22:33       ` Mark H Weaver [this message]
2018-10-29  0:12         ` Officially require GNU Make to build Guile? (was Re: Bootstrap optimization) Greg Troxel
2018-10-29 10:33         ` Mikael Djurfeldt
2018-10-30  6:04           ` Mark H Weaver

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/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87tvl58zvd.fsf_-_@netris.org \
    --to=mhw@netris.org \
    --cc=guile-devel@gnu.org \
    --cc=mikael@djurfeldt.com \
    /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.
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).