"David A. Wheeler" <dwhee...@dwheeler.com> wrote:

> > That as introduced by accident, because I did not realize at that time that
> > gmake used an icompatible implementation that differs from smake and BSD 
> > make.
> 
> That?s an unfortunate bug but easily fixed. It *is* specifically noted in the 
> Rationale :-).

Really? How do you like to fix that incompatible gmake behavior?
 
> A person named ?joerg? in this bug report noted this semantic difference in 
> 2011-11-17 in our discussion on this topic:
> https://www.austingroupbugs.net/view.php?id=330 
> <https://www.austingroupbugs.net/view.php?id=330>
> I take it you?re not the same person? Or maybe you knew this at one time & 
> forgot it later?
> If you forgot it later, no big deal, forgetting happens to all of us :-).

Please carefully read the SunPro Make man page:

        http://schilytools.sourceforge.net/man/man1/make.1s.html

and try to understand what SunPro Make implemented for := in January 1986 - 
long before gmake existed. Maybe you understand your current misconception in 
depth. You already admitted your misconception and this is a good starter :-)

Hint: the explanation is currently on page 17 and page 31.

> >> The article "Recursive Make Considered Harmful" by Peter Miller
> >> (http://miller.emu.id.au/pmiller/books/rmch/ [^] and
> > 
> > This is an article from a person that does not know make(1) in depth (in 
> > special not the features from SunPro Make). The problems mentioned there are
> > all solved by autoatic dependency handling via .KEEP_STATE: from SunPro 
> > Make 
> > (introduced in January 1986) and the automatic library dependency handling 
> > from SunPro Make via .KEEP_STATE: since approx. 1992.
> 
> Peter Miller (who has deceased) was quite expert in make, specifically GNU 
> make:
> https://accu.org/journals/overload/14/71/miller_2004/ 
> <https://accu.org/journals/overload/14/71/miller_2004/>
> I realize you (Joerg) are partial to SunPro make, but many people are *never* 
> going to use
> SunPro make and simply don?t care about it.
> GNU Make is required for building many software systems,
> including GCC (since version 3.4), the Linux kernel, LibreOffice, and Mozilla 
> Firefox.
> For many people, ?make? *is* ?GNU make?.

That does not change the fact that the claims in 
https://accu.org/journals/overload/14/71/miller_2004/ have been outdated long 
before that text was written, since the problems have been identified and 
fixed before - see .KEEP_STATE:
 
> The *reason* that ?GNU make? is ?make? to many people is
> partly because GNU make is a good implementation, and that?s fine.
> However, it?s also because *practical* use of make often requires features 
> that are
> not standardized in POSIX. The POSIX standard for make is dreadfully 
> impoverished today.
> Adding at least one *standard* way to implement immediate execution is a step 
> towards
> having a more powerful *standard* for make. That not only helps portability,
> but it also encourages use of these more powerful mechanisms (*because* they 
> are standardized).

The reason for that problem is the fact that gmake is incompatible to other 
make implementations and that caused problems in finding ways to get to a 
common way. I am trying to get POSIX make to be extenxed since a really long 
time in order to finally include the minimum set of common features needed for 
a portable makefile method.

We currently still miss implicit pattern rules in POSIX and I really hope that 
we find a way to standardize at least the minimum subset for ISSUE 8 that 
would permit portable makefiles.        

BTW: gmake is the only make implementation that implements the minimum feature 
set needed for modern portable makefiles that at the same time is a constant 
source of problems caused by bugs. If you are in a bubble that only knows 
gmake, you may arrange yourself with these bugs, but if you intend to permit 
your users to use any make implementation, gmake is not part of the solution 
because gmake still does not care about compatibility.

What I like to see in POSIX is a make definition that combines usability and 
interchangeability.

The reason for the success of UNIX was that people did look at other 
implementations and reimplemented good ideas from other implementations by at 
the same time avoiding clashes and incompatiblities. If that was true for 
gmake as well, this was a big win for the future.

Jörg

-- 
EMail:jo...@schily.net                  Jörg Schilling D-13353 Berlin
                                        Blog: http://schily.blogspot.com/
URL:  http://cdrecord.org/private/ 
http://sourceforge.net/projects/schilytools/files/

  • Re: [Issue 8 drafts ... Paul Smith via austin-group-l at The Open Group
    • Re: [Issue 8 dr... Nick Stoughton via austin-group-l at The Open Group
      • Re: [Issue ... Paul Smith via austin-group-l at The Open Group
        • Re: [Is... Geoff Clare via austin-group-l at The Open Group
          • Re:... Paul Smith via austin-group-l at The Open Group
            • ... David A. Wheeler via austin-group-l at The Open Group
              • ... Joerg Schilling via austin-group-l at The Open Group
              • ... David A. Wheeler via austin-group-l at The Open Group
              • ... Joerg Schilling via austin-group-l at The Open Group
              • ... Paul Smith via austin-group-l at The Open Group
              • ... Joerg Schilling via austin-group-l at The Open Group
              • ... David A. Wheeler via austin-group-l at The Open Group
              • ... Joerg Schilling via austin-group-l at The Open Group
              • ... David A. Wheeler via austin-group-l at The Open Group
              • ... Joerg Schilling via austin-group-l at The Open Group
              • ... David A. Wheeler via austin-group-l at The Open Group
              • ... Joerg Schilling via austin-group-l at The Open Group
              • ... Scott Lurndal via austin-group-l at The Open Group
              • ... Paul Smith via austin-group-l at The Open Group

Reply via email to