Hello Guillaume, * Guillaume Rousse wrote on Wed, Jan 10, 2007 at 11:56:09AM CET: > > foo1.ml > foo2.ml > subdir/foo3.ml > subdir/foo4.ml > etc... > > My current option is to build object files in the same directory as the > corresponding ource file (actually, it is ocaml compiler defaut > behaviour). It makes computing object files list quite easy: > MYSOURCEFILES = foo1.ml foo2.ml subdir/foo3.ml subdir/foo4.ml > MYOBJECTFILES = $(MYSOURCEFILES:.ml=.cmo)
This is what Automake usually does in the subdir-objects mode. Without the subdir-objects option, it flattens all file names (and renames based on conflicts). Of course, I'm speaking about the case where Automake does the computation of the object file names. > Is there a a way to pre-create all those subdirectories in my build tree > if they don't pre-exist ? Yes. The object handling code in automake.in should take care of all of that, by depending on the respective .dirstamp files in those directories. > Other alternative is to switch compilation model to always output object > files in local directory, rather as in original source subdirectory. > Howeverm then I'll have to find a make-portable way to compute a list of > files from another one by applying a function to each member, as in GNU make This machinery is all present in automake.in (but not accessible from outside). Sorry, I haven't worked on this more yet. Cheers, Ralf