Improvements to shared makefiles
Ben Avison authored
Detail:
  * Some subtle bugs can be caused by including shared makefiles in the
    wrong order. To try to prevent further problems, and simplify main
    makefiles at the same time, CApp, CLibrary and CModule now include the
    makefiles they depend upon themselves, in the correct order: generally
    speaking, all macro (re)definitions should be before rule definitions.
  * Added sentry macro definitions to each makefile. These can be used to
    avoid repeated inclusion of makefiles - particularly important now that
    CApp, CLibrary and CModule do additional includes. This removes the
    majority of cases where amu produced warnings about multiple inclusion;
    a few components remain where this is still the case, but these
    warnings are harmless. If they bother you, simply remove the
    now-superfluous include statements from the relevant main makefile.
  * Created a CUtil shared makefile, for building transient utilities. The
    'C' in the name is more for consistency with CApp/CLibrary/CModule than
    anything to do with the 'C' language, since all of these makefiles work
    equally well for assembler and 'C' - the 'C' is for historic reasons.
  * Tweaked the debug rules in CApp to avoid harmless but annoying linker
    warnings about stubs being included twice.
  * Added several new default switches to ASFLAGS. These enable us to start
    making assembler source files work under a cross-assembler, because
    statements like
        GET  Hdr:Macros
        GET  Hdr:Machine.<Machine>
    are not portable, and tweaking the cross-assembler to understand these
    types of constructs would not be pretty. Instead, with the extra
    command line switches now introduced, you can use
        GET  Macros
        GET  Machine/$Machine
Admin:
  Tested in a ROM build

Version 5.12. Tagged as 'BuildSys-5_12'
684d01e3