Complete rewrite of Makefile
authorKevin Klues <klueska@cs.berkeley.edu>
Thu, 2 Jul 2015 02:56:44 +0000 (19:56 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Mon, 6 Jul 2015 16:07:53 +0000 (09:07 -0700)
commit20192c8be75b8657a7628d8a221bad08bce0a305
tree3e4a89a32dc6d07ad2826d6569bb6316d5fefdca
parentb61872476fa16cc09f0100a545e783640a65fb9b
Complete rewrite of Makefile

This was motivated by the desire to add new features to the makefil,
such as "make install-kernel-headers", etc. Before the rewrite, this was
hard to add in easily (if not impossible).  With the new way, you just
have to add a valid SUBCMD to the VALID_SUBCMDS variable and then add a
target for your new subcommand with a '-real' extension on it.  Use the
existing 'build' and 'uninstall' build rules as templates.  There is
also better support for adding in build time checks for things like
'gawk' being installed and 'X86_64_INSTDIR' being set.  You can use the
existing templates as an example if you want to add a new error check.

New semantics are as follows:

Usage: make <arch> [ <config> ] [ <subcmd> ]
    Valid archs are: 'x86_64', 'riscv'
    Valid configs are: 'cross', 'native'
    Valid subcommands are: 'build', 'uninstall'
    If no config is specified, the 'cross' config is assumed by default.
    If no subcommand is specified, the 'build' subcommand is assumed by default.

Additional pseudo targets exist for:
    make clean
        Cleanup the build environment
    make inst-clean
        Cleanup the build environment and uninstall all compilers for all archs.
tools/compilers/gcc-glibc/Makefile