6.2 File System Representation

Let us look now at a package subdirectory, containing the source-file pkg/foo/lib/src/foo.c. We compile for systems x86_586-l4v2 and ia64-l4v2. To distinguish between both object files, we place them in different directories: OBJ-<system>: .../src/OBJ-x86_586-l4v2/foo.o and .../src/OBJ-ia64-l4v2/foo.o. As we have a smooth migration from one target system to multiple systems in mind, we compile always into subdirectories, even if we compile for only one system. Thus, we have the structure as depicted in Figure 1 (please, ignore the Makefiles for now).

Figure 1: Structure of an example package
  pkg/
   +- foo/
       +- include/
       +- lib/
       |   +- src/
       |       +- Makefile1
       |       +- Make.rules
       |       +- foo.c
       |       +- OBJ-x86_586-l4v2/
       |       |   +- Makefile2
       |       |   +- foo.o
       |       |   +- libfoo.a
       |       +- OBJ-ia64-l4v2/
       |           +- Makefile3
       |           +- foo.o
       |           +- libfoo.a
       +- server/



L4 Checker 2012-04-11