• Charlie Jacobsen's avatar
    Major overhaul of build process. · 8198c2fb
    Charlie Jacobsen authored
    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
Name
Last commit
Last update
..
alpha Loading commit data...
arc Loading commit data...
arm Loading commit data...
arm64 Loading commit data...
avr32 Loading commit data...
blackfin Loading commit data...
c6x Loading commit data...
cris Loading commit data...
frv Loading commit data...
h8300 Loading commit data...
hexagon Loading commit data...
ia64 Loading commit data...
m32r Loading commit data...
m68k Loading commit data...
metag Loading commit data...
microblaze Loading commit data...
mips Loading commit data...
mn10300 Loading commit data...
nios2 Loading commit data...
openrisc Loading commit data...
parisc Loading commit data...
powerpc Loading commit data...
s390 Loading commit data...
score Loading commit data...
sh Loading commit data...
sparc Loading commit data...
tile Loading commit data...
um Loading commit data...
unicore32 Loading commit data...
x86 Loading commit data...
xtensa Loading commit data...
.gitignore Loading commit data...
Kconfig Loading commit data...