• Chris Wilson's avatar
    Merge makebuildenv.pl and makeparcels.pl, write monolithic Makefiles. · 0ebfa646
    Chris Wilson authored
    This is necessary to fix compilation on machines with large numbers of cores
    (e.g. Travis build workers) because the build system automatically attempts
    maximum parallelism, and the old one is broken and tries to build multiple
    libraries simultaneously.
    The new buildsystem almost entirely avoids recursive Make: only trivial
    Makefiles in target directories (which invoke the top-level Makefile to build
    the appropriate output file) and the old docs makefile are not part of the
    new master Makefile.
    Due to higher parallelism and better dependency checking, Make should be much
    faster now. Not all old targets are supported though.
    I've removed implicit dependencies hard-coded in the build system, and
    expressed all dependencies in modules.txt, since the implicit dependencies
    were confusing, obscure and unnecessary, and it was hard to express their
    own dependencies on each other.
    Test both the default target and explicitly "parcels" for release builds on Travis.