*** Greg Reagle [2021-01-03 13:07]: >'all' targets for simplicity--I don't that they are very useful
"all" target is useful only as a default rule that is run by many implementations by default and you have just to type "redo" to build the program. But of course everything is fine without it. >Please take a look and tell me what you think. Everything looks good. But I am just curious: why do you use printf 'recompiling %s\n' $2.c >&2 printf 'relinking\n' >&2 instead of?: echo recompiling $2.c >&2 echo relinking >&2 In my opinion the later is easier to read and understand. And personally I am pretty against that kind of messages. * I think it is better to be silent as much as you (program) can. And print only really valuable messages. Like Go -- it is totally quiet when doing go get/build, however it could git clone, build, link and compile dozens of libraries in the background. If you see a message from it -- then something goes wrong, as a rule. "cc" is silent by default too and only prints warning/errors * all redo implementations I tried print the target that is built now. So anyway you will see what is compiling or linking now * even if some redo implementation is silent about that, there are, as you mentioned, options like -x/-v. But explicit progress messages are useless and even harmful here, in my opinion -- Sergey Matveev (http://www.stargrave.org/) OpenPGP: CF60 E89A 5923 1E76 E263 6422 AE1A 8109 E498 57EF