-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Yes, this makes sense if this problem had to do with building *Fiasco* (and/or L4Re) - which indeed took a while, but that didn't surprise me. What surprised me was that it took ages to compile a "hello world" *application* when I already had compiled the kernel, and, that compilation of the application involved so many steps, from multiple (filesystem) locations, with paths passed as arguments to make, etc.
Staying with my original example: If you compiled the Linux _kernel_, you'd also still have to compile the C library etc. before running a Hello World application on this system. Same with Fiasco (aka the kernel) and L4Re.
Sure, that's what an automated build system (e.g., GNU/Make) is there for. To only build things once and when you don't touch them, you don't rebuild.
Yes, I know the purpose of Makefiles, what I meant was, if I compile yet another application, not a "hello world" but a "hello moon", with separate (new) files, will the C library inclusion and remap and the things you mention, which do not relate to anything that separates the "world" from the "moon" (but rather what separates Linux from Fiasco), would all that have to be done again?
As I said, if you add a new application to L4Re, you won't have to compile the C library again.
Except for the usual stuff (target, libraries, and sources), there are a couple of recurring things, like
include $(L4DIR)/mk/prog.mk
Yep, all the make magic in L4Re is hidden in l4/mk/*.mk. Not very nice for the untrained eye, though. ;)
So my question remains, apart from the ordinary Makefile stuff, which I just described, what do I have to do - i.e., what is the "unique" Fiasco/L4Re stuff that needs to be included?
Why not start with a simple L4 application with a rather simple Makefile (e.g., l4/pkg/hello) and copy stuff from there? Basically the answer is that you only have to set the SRC_C/SRC_CC and REQUIRES_LIBS make variables and the build system will do the rest for you.
Did you already have a look at http://wiki.tudos.org/HOWTOs#Introduction_to_Fiasco.OC_and_L4Re ? The slides at http://www.inf.tu-dresden.de/index.php?node_id=1315 might also be of interest for you.
There are so many links on those pages - if you can point me to the actual articles, I promise to read them.
For an overview (which might include parts of what you already read) the "Introduction to Fiasco.OC and L4Re" slides in the wiki might be useful.
On the complex lab there are 4 slide sets - the first two might include some useful information about what needs to go into an L4Re Makefile, if that is what you're specifically searching for.
Cheers, Bjoern - -- Dipl.-Inf. Bjoern Doebel Mail: doebel@tudos.org TU Dresden, OS Chair Phone: +49 351 463 38 799 Noethnitzer Str. 46 Fax: +49 351 463 38 284 01187 Dresden, Germany WWW: http://www.tudos.org/~doebel - -- "When the seagulls follow the trawler, it's because they think sardines will be thrown into the sea." (Eric Cantona)