Hi,see below my original message to a FreeBSD mailing list, which I'm forwarding here sa per Simon's suggestion.
Anybody with historical memory on SysV-style "include" directive in bmake can shed a light on why an include is prevented if a colon is found in the parsed line?
Thank you, ----- Forwarded message from Pietro Cerutti <gahr%FreeBSD.org@localhost> ----- Date: Wed, 28 Mar 2018 11:58:25 +0000 From: Pietro Cerutti <gahr%FreeBSD.org@localhost> To: freebsd-hackers%FreeBSD.org@localhost, sjg%FreeBSD.org@localhost Subject: bmake: variable modifiers in SysV include Hi,our make (contrib/bmake) does not currently support variable modifiers in SysV-style "include" directives. See this simple example:
============================================================================== % cat Makefile Makefile1.inc Makefile2.inc Makefile3.inc # Makefile SUB= Makefile2.foo Makefile3.foo include Makefile1.inc $(SUB:.foo=.inc) # ===== THIS ===== # Makefile1.inc FOO= foo # Makefile2.inc BAR= bar # Makefile3.inc all: @echo ${FOO} ${BAR} % make make: "/usr/home/gahr/tmp/mk-sysv-include/Makefile" line 5: Need an operator make: Fatal errors encountered -- cannot continue make: stopped in /usr/home/gahr/tmp/mk-sysv-include ============================================================================== This patch [1] corrects this problem, and results in the expected % make foo barApart from parentheses reshuffling, the patch just removes a check that inhibits SysV inclusion if the line being parsed contains a colon (:) character.
This has been there since bmake has supported SysV includes [2]. Questions: 1. Any ideas why the check is there, and what problem it's preventing? 2. Anybody with src bit would like to approve me committing the fix? Thanks! [1] https://people.freebsd.org/~gahr/bmake-inc-subst.diff [2] http://cvsweb.netbsd.org/bsdweb.cgi/src/usr.bin/make/parse.c.diff?r1=1.4&r2=1.5 ----- End forwarded message ----- -- Pietro Cerutti
Attachment:
signature.asc
Description: PGP signature