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
[Message part 1 (text/plain, inline)]
Your message dated Mon, 27 Nov 2023 15:47:31 -0700
with message-id <202311272247.3ARMlVNr013135 <at> freefriends.org>
and subject line Re: bug#67477: Automake warns that $(?D) is a non-POSIX variable name
has caused the debbugs.gnu.org bug report #67477,
regarding Automake warns that $(?D) is a non-POSIX variable name
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> 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)]
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
[Message part 3 (message/rfc822, inline)]
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
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.