• Ben Avison's avatar
    Refactor cross-compilation environment scripts · 09cc90ae
    Ben Avison authored
    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'
    09cc90ae
!Common.sh 4.76 KB