Source Layout ============= (Note that at the current time, this document is not followed 100%.) Reference functions should always go in ref/. Non-reference functions may not be in ref/. Implementations are roughly categorized by the compiler flags they use, architecture they compile on, where the source code came from, or what type of functions they are. The goal is to have all the automake conditionals in liboil/Makefile.am, and none in lower-level makefiles. - GCC Inline assembly directories: (powerpc, i386) These can have any kind of GCC inline assembly (post gcc-3.2) that compiles on the given architecture. This also typically includes assembly code that contains MMX/SSE/Altivec instructions, but does not require any special compiler flags. The directory powerpc_asm_blocks is for inline assembly that uses the -fasm-blocks compiler flag on powerpc. - Intrinsics: (sse, altivec) These directories contain architecture-specific code that is portable among compilers. - Source: (motovec, fb) The motovec directory should only contain source files derived from Motovec. The fb directory only contains source derived from X. - Random: (simdpack, colorspace, copy, dct, md5, math, utf, jpeg) Don't add files to these directories.