Refactor cross-compilation environment scripts
Detail: In tentative efforts to support cross-compilation to date, a few components have had mk.sh scripts inserted. These are functionally equivalent to the !Mk* TaskObey files, in that they are a convenience for developers working on that component in isolation. However, unlike their RISC OS equivalents, the nature of shell scripts means that they are relatively complex, and are therefore relatively burdensome to create and maintain. This commit replaces this mechanism with a shell function which is defined when you source the Env file. This enables a build phase to be applied to the component at the working directory to be built with a simple "mk export", "mk install", "mk rom", "mk clean" and so on. Previously, the build variables COMPONENT, TARGET and INSTDIR were encoded in the mk.sh script, and where a component had multiple targets, the mk.sh script would run the phase on all such components; now the mk function scans the ModuleDB to locate this information instead. You can even target a component in another directory using the -C switch (chosen to match make's equivalent switch). Some efforts have also been made to support Posix shells other than bash. The only feature dropped is the ability to build the component using a different environment within a subshell. However it's relatively simple to construct this at the command line if desired. Version 1.38. Tagged as 'Env-1_38'
Showing with 101 additions and 41 deletions