Sigh, yet another article giving advice about how to use make as a kind of general-purpose language. It's not. Forget all the crap with wildcards, conditionals, filename globbing, etc. and use it for what it is: a program that takes as input a DAG and a timestamp for each node, and executes rules when predecessor(s) of some node are newer than the node itself.
Take make for what it is and use a proper programming language to handle Makefile generation, installation, etc.
Take make for what it is and use a proper programming language to handle Makefile generation, installation, etc.