• Michael Shigorin's avatar
    mixin.mk: gather all mixin/* targets · 24defe94
    Michael Shigorin authored
    These have appeared in desktop.mk, regular.mk, vm.mk
    over time, and there are two problems around.
    
    The minor one is that mixins have been introduced as
    handy reusable bits close in context of their use;
    this practically means that they fall under the same
    class restrictions as their parent targets, that is
    a mixin coming from regular.mk will only be available
    for "distro" IMAGE_CLASS, and so on.
    
    The major one is probably the worst design flaw in m-p:
    building images from ground up, where ground is a valid
    standalone buildable target as well.
    
    Life has shown that we rather want to build up images
    the other way around, choosing what essentials go in first
    and then fitting the fine details along with the packaging.
    
    The first sign of this difference appeared with ARMv7 Simply:
    we had a well-built configuration aiming for x86 ISO, still
    we needed roughly the same app/environment configuration
    put into armh disk image.
    
    Those platforms were different enough that we didn't actually
    plan shipping *lots* of distributions but the problem was clear,
    and it was much alike to the one that sprang m-p to life in the
    first place (when we had a range of "common" distros and needed
    to create and maintain a set of "school" ones that mostly had
    similar or even identical difference to their respective base
    ones -- and we couldn't do something like conf.d/p8.mk does now).
    
    So mixins are going to become the softer way to turn m-p's
    target configuration chain upside down to considerable extent:
    build up what you're going to mix into the various deliverables,
    and make it as portable across image classes, hardware platforms,
    repository branches as feasible so that total maintenance effort
    needed goes down or at least doesn't spike too bad.
    
    And here's the first strike at that.
    24defe94
desktop.mk 738 Bytes