Project structure and build system for a project with OCaml native on the backend and Bucklescript on the frontend

I’ve heard that several times but it does not match my observations.
I’d say writing any complex out-of-tree recursive makefiles is hard, with or without OCaml, but that writing simple Makefiles for not so complex cases is rather easy to do (and easy to fix in case something goes wrong).

I’d go as far as saying that ocaml compiler mimic some C compiler behavior in order to be more easily amenable to C build workflows. This is obviously true for the ocamldep tool but there is also something about how the compiler picks which compilation units to include etc. Despite Xavier said recently in a nearby thread that they drew inspiration from Modula-2, maybe Modula-2 itself drew inspiration from C:

So I’d like to know what are you referring to when you say that writing correct Makefiles for OCaml is hard. Maybe something can be done about it, that would be better than introducing a new build system specific to OCaml every couple of months?