-
Full kernel build no longer required. Yay! This should cut down on dev time a lot. I moved all of the LCD source into $(kernel-src)/lcd-domains/, so it's all in one spot. There is now a top-level makefile in there that triggers building liblcd, the microkernel, and the examples. This is built as an *external* build now, even though the directory is in the kernel source. The build now takes under a minute to do everything LCD related. This should also make verification easier in the future (e.g. building with clang) if we aren't ensnared in the kernel source. Of course, to use the microkernel and examples, you have to build the patched kernel and install it. But now when you make a few lines of changes in e.g. an example, you don't have to trigger a top-level kernel build to rebuild it. Running the full kernel build takes on average about 3 - 4 minutes (some files are generated everytime, linking is done, and so on), and can take upwards of 30 minutes for a full build if you re-config'd. Which brings me to my other change: no more config for LCDs in menuconfig. If we create menu entries for every example and so on, we end up changing the config too often, and this triggers full kernel rebuilds == waste of time. We can use macros by setting them via compiler flags (e.g., -DSOME_FLAG). Furthermore, it wasn't making sense to me to do conditional compilation for LCD support (we always want to compile for that). Yes, changes aren't clearly delineated with macros, but you can see changes made by just doing 'git diff v3.10.14 some-file-or-dir'. The wiki has been fully updated with instructions for building, and other relevant parts (updated paths to files). I also took the opportunity to clean up some old stuff lying around that is dead (like lcdguest). I incorporated all of the documentation in Documentation/lcd-domains into the wiki so it's all in one spot now (including some helpful debug tips).
8198c2fb