orbitz / ocaml-protobuf

Protobuf implementation in Ocaml
BSD 3-Clause "New" or "Revised" License
7 stars 1 forks source link

change build system to omake #10

Open agarwal opened 10 years ago

agarwal commented 10 years ago

Would you be okay with changing the build system to OMake? I'll do the work. The main benefit would be that generated files will go under a separate _build/ directory, keeping your source tree clean. Also, it's the system I know best, so it'll be easier for me to contribute. This is sort of related to #4, which will require me to modify the build a little, so I could make this change at the same time.

orbitz commented 10 years ago

At the moment I'd prefer not to. Changing file names right now shouldn't really be more than changing LIBMODULES=protobuf..... and then NON_LIB_MODULES=protobuf.ml for the packer.

agarwal commented 10 years ago

Ok

orbitz commented 10 years ago

Do you know of a well regarded OMake tutorial somewhere?

xandkar commented 10 years ago

ocp-build is also nice. I converted a couple of small projects to it and like it.

orbitz commented 10 years ago

I know my current solution is pretty ghetto, and non standard, but the upside is it's really simple and does everything I've asked of it without any very interesting deps. I'm willing to switch to something better, but will require some convincing. I'm hoping to wait out for the community to standardize on something.

agarwal commented 10 years ago

I only read the documentation on the omake website: the quickstart guide and the extremely comprehensive manual.

To be clear, I find omake rather frustrating. However, I've spent more time learning it than any of the other build tools, which as we know are all quite bad. OMake lets me eventually get what I want done, even if it is with some pain and cursing. Biocaml's OMakeroot file is I think reasonably clean now. I keep updating it and propagating changes to my other projects.

BTW, using omake's -j parallelism option really helps Biocaml's build time, but that's not very relevant to this project as it is much smaller.

I'm hoping to wait out for the community to standardize on something.

Yes, someday...

orbitz commented 10 years ago

Good to know about omake. I looked over the docs and it didn't seem that much better to use, but it was just a quick glance. While not perfect, I think my little ocaml makefile is mostly clean. It also supports -j for parallel builds. And it's pure GNUMakefile so pretty standard. The weakest part is probably that it depends on ocamldep, which I've heard has some funny edge cases.

agarwal commented 10 years ago

OMake also depends on ocamldep, and I did have one issue from that [1, 2].