[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #57751] Improve POSIX support for SCCS

From: Bruce Lilly
Subject: [bug #57751] Improve POSIX support for SCCS
Date: Sat, 7 Nov 2020 14:16:01 -0500 (EST)
User-agent: Mozilla/5.0 (X11; OpenBSD amd64; rv:82.0) Gecko/20100101 Firefox/82.0

Follow-up Comment #8, bug #57751 (project make):

A further note on:


in the original report.  That's likely to be a problem for gmake as it stands,
separately from any SCCS-specific issues.

Gmake has a long-standing difference from other make variants in handling of
$@ and variants of it (e.g. $(@D)) as prerequisites (as distinct from use in
recipes).  Here's a greatly simplified example:

$ cat makefile.dollar-at
foobar : $@.blurfl
$ uname -sr
OpenBSD 6.8
$ type -a make bmake gmake smake dmake
make is a tracked alias for /usr/bin/make
ksh93: whence: bmake: not found
gmake is a tracked alias for /usr/local/bin/gmake
ksh93: whence: smake: not found
ksh93: whence: dmake: not found
$ make -f makefile.dollar-at
make: don't know how to make foobar.blurfl (prerequisite of: foobar)
Stop in /data/projects/computing/make/tests
$ gmake -f makefile.dollar-at
gmake: *** No rule to make target '.blurfl', needed by 'foobar'.  Stop.

1. Like the quoted line, $@ appears in what syntactically looks like a
prerequisite on a single-colon dependency line
2. Two make variants tested here: OpenBSD native make and gmake
3. Note that the OpenBSD native make expands $@ in the prerequisite, which is
traditional make behavior
4. Note that gmake neither expands nor copies $@; it is effectively treated as
if it were whitespace! That difference between gmake and other make variants
is fairly well known and documented in a few places (e.g. the old O'Reilly
make books).

So handling that specific case verbatim is likely to first require handling $@
(and perhaps variants) on dependency lines *in general* in gmake.


Reply to this item at:


  Message sent via Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]