I think it is much preferable to use a common build system, well-known in community, rather than inventing your own with no good reason. This simplifies life of downstream users, especially packagers (e.g. there are `oasis2opam` and `oasis2debian`).

What code generation stages are you talking about?