Hi Stefan (and Tobias),

there is a new out-of-source-tree compilation tool in the HelenOS mainline branch as of changeset 1519. It creates a symlink farm in the destination directory and builds HelenOS there without touching the original source tree. It is pretty easy to use, just run (from anywhere) the tool dest_build.py by supplying the path to the source tree as the first argument and the path to the build/destination tree as the second argument. You can also append any Make arguments as you wish.

The benefit of this solution is that it is completely non-intrusive, no modification of our makefiles was necessary (except one minor bug fix). Modifying the tool to be able to build also individual components (kernel, uspace, etc.) should not be an issue.

I have also spent some time investigating the use of VPATH, but this is a dead end. The VPATH search algorithm in GNU Make is simply not strong enough for our complex makefiles. Many things could be solved by slightly twisting our makefiles, but for example sourcing files from upper-level directories (e.g. requiring ../version from the makefile in kernel/) unfortunately didn't cooperate with VPATH at all and I really don't like the idea of manually prefixing the paths with some variable all over the place.


I hope this helps Tobias, I am certainly open to any suggestions. For the ultimate and most elegant solution we'll have to wait for the complete rewrite the HelenOS build system in Waf.


M.D.

_______________________________________________
HelenOS-devel mailing list
[email protected]
http://lists.modry.cz/cgi-bin/listinfo/helenos-devel

Reply via email to