The SQLite Amalgamation(sqlite.org) |
The SQLite Amalgamation(sqlite.org) |
All you have to do is to make your CC this:
cilly --noPrintLn --merge --keepmerged
And in the end after compilation there will be a file named yourproject_comb.c
It's weird that this is still true even though compilers are now capable of whole program optimization at link time. Enabling LTO should be equivalent to compiling everything as a single translation unit but apparently it isn't. I wonder what exactly inhibits the aforementioned inter-procedural and code inlining optimizations in LTO builds.
Perhaps similar in structure. But different in both goal and output.
Unity builds just mean the combined compilation of otherwise multiple files and therefore the reduction of output files to be further processed. An unqualified "unity build" typically means unity builds where inputs are source files and outputs are object files to be linked. This is most evident by considering how would you use corresponding header files from your project: you would still include the same set of header files.
PCH unity builds would instead force you to include a single dedicated header file, like `#include "pch.h"`. I never heard them to be called just "unity builds" in my experience, in fact it was more likely that "PCH" implied a unity build of PCH files.