SYNOPSIS and usage say [NAME=value] while multiple assigments are fine:
$ make -p FOO=1 BAR=2 | grep -e^FOO -e^BAR
BAR = 2
FOO = 1
I'm sure ports(7) wouldn't work if only one was accepted, hence it suprises
me that none of the BSDs document it with triple dots, like targets.
Am I missing some detail here or is this just a very old oversight?
Index: main.c
===================================================================
RCS file: /cvs/src/usr.bin/make/main.c,v
retrieving revision 1.128
diff -u -p -r1.128 main.c
--- main.c 4 Dec 2022 23:50:48 -0000 1.128
+++ main.c 16 Jan 2023 21:52:48 -0000
@@ -891,7 +891,7 @@ usage()
(void)fprintf(stderr,
"usage: make [-BeiknpqrSst] [-C directory] [-D variable] [-d flags] [-f mk]\n\
[-I directory] [-j max_processes] [-m directory] [-V variable]\n\
- [NAME=value] [target ...]\n");
+ [NAME=value ...] [target ...]\n");
exit(2);
}
Index: make.1
===================================================================
RCS file: /cvs/src/usr.bin/make/make.1,v
retrieving revision 1.138
diff -u -p -r1.138 make.1
--- make.1 28 Dec 2022 13:00:57 -0000 1.138
+++ make.1 16 Jan 2023 21:57:18 -0000
@@ -47,7 +47,7 @@
.Op Fl j Ar max_processes
.Op Fl m Ar directory
.Op Fl V Ar variable
-.Op Ar NAME Ns = Ns Ar value
+.Op Ar NAME Ns = Ns Ar value ...
.Bk -words
.Op Ar target ...
.Ek