Tuesday 2 December 2008

Windows CE: SOURCES macro restrictions

Today I want to focus on the SOURCES macro which contains a list of files that are processed during the build process of Windows CE to become the contents of a .lib, .dll or .exe file. This macro is used from within the SOURCES file. The list of files to compile includes assembly and source files with the following file extensions:
.cxx, .cpp, .c, .asm, .s, .src, .rc, .obj, .ire, .res, .h, .edl, .tlb, .i, .cs, .resx

As with all other macros in SOURCES or DIR files, a “\” character denotes that the list for the particular macro continues in the next line. Be careful not to use any other character after the “\” character otherwise the list will NOT continue in the following line. A whitespace character after the “\” character is a common and hard to trace bug in this context.

There is one more restriction you need to be aware of when using the SOURCES macro. You can only specify files in the same directory as the SOURCES file (e.g. SOURCES=myFile.c) or files that are one directory up from the SOURCES file (e.g. SOURCES=..\myOtherFile.c). Every other file will not be taken into account and produce an error when building your module.
NOTE: This restriction does not apply to the assembly file macros such as ARM_SOURCES, SH_SOURCES, x86_SOURCES or MIPS_SOURCES.

Have fun!

No comments: