GNU bug report logs - #67477
Automake warns that $(?D) is a non-POSIX variable name

Previous Next

Package: automake;

Reported by: Quinn Grier <quinn <at> quinngrier.com>

Date: Mon, 27 Nov 2023 07:15:02 UTC

Severity: normal

Done: Karl Berry <karl <at> freefriends.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Quinn Grier <quinn <at> quinngrier.com>
Subject: bug#67477: closed (Re: bug#67477: Automake warns that $(?D) is a
 non-POSIX variable name)
Date: Mon, 27 Nov 2023 22:48:03 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#67477: Automake warns that $(?D) is a non-POSIX variable name

which was filed against the automake package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 67477 <at> debbugs.gnu.org.

-- 
67477: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67477
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Karl Berry <karl <at> freefriends.org>
To: quinn <at> quinngrier.com
Cc: 67477 <at> debbugs.gnu.org
Subject: Re: bug#67477: Automake warns that $(?D) is a non-POSIX variable name
Date: Mon, 27 Nov 2023 15:47:31 -0700
Hi Quinn,

> Automake seems to be aware of $(@D) and $(@F), but not the others.

Thanks for the report. This was fixed not long ago, and will be in the
next release. The prior report, for the record:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=9587

All the best,
Karl

[Message part 3 (message/rfc822, inline)]
From: Quinn Grier <quinn <at> quinngrier.com>
To: bug-automake <at> gnu.org
Subject: Automake warns that $(?D) is a non-POSIX variable name
Date: Sun, 26 Nov 2023 21:42:52 -0800
POSIX Make allows the syntax $(@D) and $(@F) to be used to retrieve the
directory and filename parts of the $@ internal macro. It also allows
this syntax for the other four internal macros ($%, $?, $<, and $*).

Automake seems to be aware of $(@D) and $(@F), but not the others.

Here is an example:

      $ nl configure.ac
           1  AC_INIT([example], [1])
           2  AM_INIT_AUTOMAKE([-Wall foreign])
           3  AC_CONFIG_FILES([Makefile])
           4  AC_OUTPUT

      $ nl Makefile.am
           1  foo.a(foo.o): foo.o
           2          echo $(@D) # no warning
           3          echo $(@F) # no warning
           4          echo $(%D) # warning
           5          echo $(%F) # warning
           6          echo $(?D) # warning
           7          echo $(?F) # warning
           8          echo $(<D) # warning
           9          echo $(<F) # warning
          10          echo $(*D) # warning
          11          echo $(*F) # warning

      $ autoreconf -i
      Makefile.am:4: warning: %D: non-POSIX variable name
      Makefile.am:5: warning: %F: non-POSIX variable name
      Makefile.am:6: warning: ?D: non-POSIX variable name
      Makefile.am:7: warning: ?F: non-POSIX variable name
      Makefile.am:8: warning: <D: non-POSIX variable name
      Makefile.am:9: warning: <F: non-POSIX variable name
      Makefile.am:10: warning: *D: non-POSIX variable name
      Makefile.am:11: warning: *F: non-POSIX variable name

      $ autoconf --version | head -n 1
      autoconf (GNU Autoconf) 2.71

      $ automake --version | head -n 1
      automake (GNU automake) 1.16.5



This bug report was last modified 1 year and 226 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.