5 ms·
What simple tool would you suggest to address those .PHONY-targets instead of a Makefile?
by amirbehzad 9y ago
What simple tool would you suggest to address those .PHONY-targets instead of a Makefile?
- chubot 9y agoI recommend using plain shell scripts. Each .PHONY target is a simple shell function, and then the last line of the script is "$@", which means run function $1 with parameters $2 to $n. So instead of 'make test', I just use './test.sh all', or './test.sh foo'. The test script can invoke make. The idea is that 'dataflow' parts are done in Make, and the imperative parts are done in shell. This works out fairly well if you're disciplined about it. The only point of Makefiles is to support quick incremental builds. If there's no incrementality, then you might as well use shell. (Note: whenever you use Make, you're using shell by definition. There's no possibility of only using Make. So I take Make out of the picture where it's not necessary.) For example, all the instructions here are of the form 'foo.sh ACTION': https://github.com/oilshell/oil/wiki/Contributing https://github.com/oilshell/oil/wiki/Contributing Pretty much every shell script in the repo uses "the argv dispatch pattern"... I've been meaning to write a blog post about that pattern, i.e. using functions with the last line as "$@". https://github.com/oilshell/oil https://github.com/oilshell/oil
- bigmanwalter 9y agoWow, I never knew about "$@" that's a super handy tip. Now I just need an excuse to write a shell script :)
- deleted 9y ago[deleted]