GNU bug report logs -
#67477
Automake warns that $(?D) is a non-POSIX variable name
Previous Next
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
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.