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