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: Quinn Grier <quinn <at> quinngrier.com>
To: 67477 <at> debbugs.gnu.org
Subject: bug#67477: 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 175 days ago.

Previous Next


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