This seems to add complexity to the build system, instead of a simple script. What are the advantages?