Skip to content
Snippets Groups Projects
Forked from Reform / reform-boundary-uboot
Source project has a limited visibility.
  • Andy Fleming's avatar
    f588bb03
    Allow for parallel builds and saved output · f588bb03
    Andy Fleming authored
    
    The MAKEALL script cleverly runs make with the appropriate options
    to use all of the cores on the system, but your average U-Boot build
    can't make much use of more than a few cores.  If you happen to have
    a many-core server, your builds will leave most of the system idle.
    
    In order to make full use of such a system, we need to build multiple
    targets in parallel, and this requires directing make output into
    multiple directories. We add a BUILD_NBUILDS variable, which allows
    users to specify how many builds to run in parallel.
    When BUILD_NBUILDS is set greater than 1, we redefine BUILD_DIR for
    each build to be ${BUILD_DIR}/${target}. Also, we make "./build" the
    default BUILD_DIR when BUILD_NBUILDS is greater than 1.
    
    MAKEALL now tracks which builds are still running, and when one
    finishes, it starts a new build.
    
    Once each build finishes, we run "make tidy" on its directory, to reduce
    the footprint.
    
    As a result, we are left with a build directory with all of the built
    targets still there for use, which means anyone who wanted to use
    MAKEALL as part of a test harness can now do so.
    
    Signed-off-by: default avatarAndy Fleming <afleming@freescale.com>
    f588bb03
    History
    Allow for parallel builds and saved output
    Andy Fleming authored
    
    The MAKEALL script cleverly runs make with the appropriate options
    to use all of the cores on the system, but your average U-Boot build
    can't make much use of more than a few cores.  If you happen to have
    a many-core server, your builds will leave most of the system idle.
    
    In order to make full use of such a system, we need to build multiple
    targets in parallel, and this requires directing make output into
    multiple directories. We add a BUILD_NBUILDS variable, which allows
    users to specify how many builds to run in parallel.
    When BUILD_NBUILDS is set greater than 1, we redefine BUILD_DIR for
    each build to be ${BUILD_DIR}/${target}. Also, we make "./build" the
    default BUILD_DIR when BUILD_NBUILDS is greater than 1.
    
    MAKEALL now tracks which builds are still running, and when one
    finishes, it starts a new build.
    
    Once each build finishes, we run "make tidy" on its directory, to reduce
    the footprint.
    
    As a result, we are left with a build directory with all of the built
    targets still there for use, which means anyone who wanted to use
    MAKEALL as part of a test harness can now do so.
    
    Signed-off-by: default avatarAndy Fleming <afleming@freescale.com>