I have created a simple Ocsigen project from basic template. Everything was fine until I decided I'd like to put all my source files in src directory and create more subdirectiories inside it too, so that my source code is partitioned into modules and arranged nicely.
Unfortunately when I try to compile the project, only the files in the main directory get compiled and the src directory is not searched for source files. I have read the makefiles generated by the project template and tried to figure out a way to make it work, but with no success. Specifically it's not sufficient just to change values of CLIENT_FILES and SERVER_FILES in Makefile.options. I tried to impose recursive search like so:
SERVER_FILES := $(shell find src -name "*.eliom" -or -name "*.eliomi")
but it didn't work. Makefile apparently requires much more changes to accept that. I also tried with flat structure using $(wildcard src/*.eliom), but that didn't work either.
So is there any way to achieve what I need without making changes to half the template Makefile, which is quite magical for me, difficult to modify, and even more difficult to completely comprehend and rewrite.
I can refer you to this very helpful post from Danny Willems Ocsigen: how to compile an Eliom project. Understand the compilation process in deep. If you want, you can make it automated with any framework for example if you want to use ocamlbuild you can create a Makefile yourself and put in it these lines
and then in a
_tagsfile write:First line is needed if you used ppx extension of eliom in your code that is sometimes necessary. Issuing make in a shell, ocamlbuild will compile your code into
_build/src/serverand_build/src/client