1. 21 Dec, 2020 1 commit
  2. 23 Nov, 2020 1 commit
  3. 07 Nov, 2020 1 commit
  4. 28 Oct, 2020 1 commit
    • Robert Sprowson's avatar
      Fix to module-wrapped LIBS SYMS · b1350268
      Robert Sprowson authored
      Exercising the new library/symbols selector on a more complex case (Help2) showed that the selection never triggered, because where it is placed ${RLIB} is unset.
      Move the test to after ModuleLibs/AppLibs are set, and invert the sense (it should have been ifneq).
      
      Version 7.52. Tagged as 'BuildSys-7_52'
      b1350268
  5. 24 Oct, 2020 1 commit
    • ROOL's avatar
      Add RMVersion · 887191e2
      ROOL authored
      To CTools, for Installer, fixes build as for BuildSys-7_48.
      
      Version 7.51. Tagged as 'BuildSys-7_51'
      887191e2
  6. 10 Sep, 2020 3 commits
    • Robert Sprowson's avatar
      Build fix · ca85c288
      Robert Sprowson authored
      Edit-1_75's makefile invents trailing application name, remove it here.
      
      Version 7.50. Not tagged
      ca85c288
    • Ben Avison's avatar
      Define toolchain-agnostic warning suppression flags · a11503f7
      Ben Avison authored
      C_NOWARN_ASSIGNMENT_AS_CONDITION to suppress warnings about assignments within
      condition tests in `if` statements
      
      C_NOWARN_NON_ANSI_INCLUDES to suppress warnings about use of angle brackets
      for #include headers not defined by ISO/ANSI
      
      Version 7.50. Tagged as 'BuildSys-7_50'
      a11503f7
    • Ben Avison's avatar
      Extend `CApp` to support module-wrapped applications · 02c570ff
      Ben Avison authored
      This involves grafting in the `resources`, `rom` and `rom_link` rules from
      `CModule` (support for `CmdHelp` files is not copied across, because no
      module-wrapped application can provide star commands). Module-wrapped
      applications typically want to support `install INSTTYPE=app` in the same way
      as other applications, to permit a non-wrapped version to be built (for
      example, for debugging purposes).
      
      Because this feature is typically used with applications that use RISC_OSLib,
      the rules have been made slightly more sophisticated than those in CModule,
      in the sense that if `LIBS` contains `${RLIB}`, it automatically selects the
      larger ROM stubs and symbols files that include the RISC_OSLib library chunk,
      so there is no need to override these from the calling makefile.
      
      Compared to the `install` phase, where all resource files go into the
      application directory, for ROM builds, only a subset of files go there,
      the remainder being placed under `Resources:$.Resources`, and some of the
      files differ in contents from the `install` versions. The application
      directory resources in the ROM build case are (in a change from previous
      behaviour) all now registered with ResourceFS by the module-wrapped
      application rather than by the Messages module, and they are packaged using
      the `ResGen` tool. This means that you can kill (or unplug) the module and
      teh application will disappear from `Resources:$.Apps`.
      
      The resource files are categorised using the separate macros `INSTAPP_FILES`,
      `RES_FILES` and `RESAPP_FILES`.
      
      Requires RISC_OSLib-6_08.
      02c570ff
  7. 20 Jul, 2020 2 commits
    • Ben Avison's avatar
      Change a few modules to `C` type · bccb299b
      Ben Avison authored
      These components have pending merge requests that mean they are likely to
      move to use the `CModule` shared makefile in the near future, which will
      require the use of their `rom_link` rule. However, due to the change to
      `AAsmModule` in the last commit, we can change their type now in anticipation.
      
      I'm not going further and change all `ASM` components en masse, because not
      all of them will yet have been converted to use `AAsmModule`. This is also
      the reason for not making the change in `srcbuild` itself.
      
      Version 7.49. Tagged as 'BuildSys-7_49'
      bccb299b
    • Ben Avison's avatar
      Enable rom_link target for AAsmModule components · f9c01ed0
      Ben Avison authored
      The ModuleDB classifies modules as being of type either `ASM` or `C`. The
      primary consumer of this information is `srcbuild`. The difference between
      them, as far as `srcbuild` is concerned, is only that in the `install_rom`
      phase, it builds the `rom_link` phony target in `C` components' makefiles,
      instead of the `install_rom` phony target.
      
      These phony targets differ slightly in requirements: `install_rom` uses
      `INSTDIR` where `rom_link` uses `LINKDIR`, but more significantly, `rom_link`
      is passed parameter `ADDRESS` to state where in the ROM the module resides.
      This addesss is not known at the time the `rom` phony target is made, so `C`
      components only produce a partially-linked binary at that stage, where `ASM`
      components have already produced a complete binary. (The reason for this
      difference is that while hand-written assembly modules use position-
      independent code, the output of the Norcroft compiler normally relies on
      run-time code modification to relocate absolute addresses - something that is
      not possible when running from ROM.)
      
      There are implementations of the `install_rom` and `rom_link` rules in the
      `AAsmModule` and `CModule` shared makefiles respectively, so `AAsmModule` is
      currently only used for `ASM` components and `CModule` is only used for `C`
      components. However, occasionally we have reason to change a component from
      using `AAsmModule` to `CModule`, usually for reasons unrelated to the use of
      absolute address relocations, because `CModule` is more flexible than
      `AAsmModule` in various other ways.
      
      This poses a problem for keeping `BuildSys` in step with the component in
      question, because whenever we change the shared makefile type in the
      component's makefile, we have to update the `ModuleDB` in lock step.
      
      The solution presented here is to ensure that at least one shared makefile
      supports both phony targets, so any component using it no longer cares how it
      is recorded in the `ModuleDB`. Adding `install_rom` to `CModule` was rejected,
      on the grounds that it would be too easy to accidentally build a ROM using it
      where the necessary relocations had been skipped at ROM link time. However,
      there are no drawbacks to adding `rom_link` to AAsmModule, because linking
      an object that has no relocations at any base address will always result in
      an identical binary that is safe to execute.
      
      Though the module itself requires no relocations, the symbols file
      traditionally output by `CModule` does contain absolute addresses which are
      useful for debugging, so a new link command is executed during `AAsmModule`'s
      `rom_link` rule in order to ensure this is kept up-to-date, even though the
      binary could otherwise have been re-used from the one generated in the `rom`
      rule.
      f9c01ed0
  8. 14 Jul, 2020 1 commit
  9. 27 Jun, 2020 4 commits
    • Ben Avison's avatar
      Assistance for cross-compilable makefiles · 1f71f8f1
      Ben Avison authored
      StdTools: new symbol SUFFIX_HEADER: '.h' for GNU make, undefined for amu; useful for generating filenames of generated headers
      StdTools: new symbol EXT: filename extension separator character
      CModule: ROM_SYMS: now defined conditionally, permitting it to be overridden higher up the master makefile, to match SA_LIBS and ROM_LIBS
      
      Version 7.47. Not tagged
      1f71f8f1
    • Ben Avison's avatar
      Add extra rules to help amu deduce prerequisites of ASM2TXT header exports · d9c576a6
      Ben Avison authored
      GNU make doesn't need this extra hint.
      
      Version 7.47. Tagged as 'BuildSys-7_47'
      d9c576a6
    • Ben Avison's avatar
      Standardise autogeneration of source files using objasm within CModule clients · 3d3228a9
      Ben Avison authored
      Various components use objasm for its general macro abilities in order to
      generate intermediate source or header files. To date, this has required
      writing of custom rules, which then need separate implementations for
      cross-compilation use.
      
      There is no standardisation of destination directory (it may be generating
      source or header files in any arbitrary language) so the solution here is to
      specify each target using a subdirectory, basename and extension, and leave
      CModule to deal with whether or not the extension should be in prefix or
      suffix position, depending on the host OS. Only one such autogenerated file
      is currently supported per makefile:
      
      ```
      ASM2TXT = <basename> <optional extension>
      ASM2TXT_SUBDIR = <optional subdirectory, each element followed by ${SEP}>
      ```
      
      The source file passed to objasm is derived from `<basename>`, prefixed by
      `s.` or suffixed by `.s` as appropriate.
      3d3228a9
    • Ben Avison's avatar
  10. 06 Jun, 2020 2 commits
  11. 02 May, 2020 1 commit
  12. 20 Apr, 2020 1 commit
    • Jeffrey Lee's avatar
      Add WindowScroll to ModuleDB + ROMs · 270182cd
      Jeffrey Lee authored
      Replace redundant AUNMsgs module with WindowScroll, to avoid unplugged
      modules being shuffled.
      
      Also remove rogue AcornURI from BCM2835 ROM.
      
      Version 7.44. Tagged as 'BuildSys-7_44'
      270182cd
  13. 06 Apr, 2020 1 commit
    • Ben Avison's avatar
      Add Dialler to ModuleDB, PPP to Disc · edcacf39
      Ben Avison authored
      PPP also turned out to need Dialler exports, so that got released too.
      Add PPP to the Disc components, and Dialler for its exports.
      
      Version 7.43. Tagged as 'BuildSys-7_43'
      edcacf39
  14. 29 Mar, 2020 1 commit
    • Robert Sprowson's avatar
      Build fix · 55b4c501
      Robert Sprowson authored
      Add FormEd to ModuleDB now it's used in the BonusBin component.
      
      Version 7.42. Not tagged
      55b4c501
  15. 28 Mar, 2020 3 commits
    • Robert Sprowson's avatar
      Add XHCIDriver+EtherGENET to BCM2835 · 51810f13
      Robert Sprowson authored
      At time of writing neither works, but they go dormant gracefully.
      
      Version 7.42. Tagged as 'BuildSys-7_42'
      51810f13
    • Robert Sprowson's avatar
      Install FormEd · b1fc492e
      Robert Sprowson authored
      Terrible window editor WinEdit is in the bonus bin, so why not FormEd too.
      b1fc492e
    • Robert Sprowson's avatar
      Shrink oversize HALs · afef5036
      Robert Sprowson authored
      Set the -at address to match reduced HAL size (from Env-1_43).
      Remove EnforceSCSI4 predefine from iMx6, there's no such switch in the Kernel, replace it with best guess as might have been: configure SCSI drive 4.
      afef5036
  16. 11 Jan, 2020 1 commit
    • ROOL's avatar
      Browse components file maintenance · 0473d93b
      ROOL authored
      Detail:
        AcornSSL now built from source.
        AcornHTTP TARGET changed.
        Missing headers from FileSwitch added.
      Admin:
        Build completed (having started from standard Exports in DDE29a).
      
      Version 7.41. Tagged as 'BuildSys-7_41'
      0473d93b
  17. 27 Oct, 2019 1 commit
  18. 20 Jul, 2019 1 commit
  19. 24 May, 2019 1 commit
    • Robert Sprowson's avatar
      Build fix · 4022e43f
      Robert Sprowson authored
      Don't try and be clever using Build$Path, just refer to touch directly (since uses of it elsewhere don't have *Run).
      
      Version 7.39. Tagged as 'BuildSys-7_39'
      4022e43f
  20. 23 May, 2019 1 commit
  21. 20 May, 2019 1 commit
    • Robert Sprowson's avatar
      Preserve the timestamp when INSERTVERSION operates on Messages · d3b77865
      Robert Sprowson authored
      Those RAM loading modules which pick from VersionNum and insert into their Messages would create a new Messages file with a new date every time they are built. Because the tools to put these in ResourceFS also capture the file's datestamp (via :FLOAD: :FEXEC: in objasm, or via resgen for C modules), you don't create binary identical copies on two successive builds despite the same input source.
      Add a ${TOUCH} step to copy the reference time stamp to the generated Messages file.
      
      Requires Library-1_96 or later for Touch.
      d3b77865
  22. 22 Apr, 2019 1 commit
  23. 14 Apr, 2019 1 commit
  24. 07 Apr, 2019 1 commit
    • Robert Sprowson's avatar
      Add NetUtils to ModuleDB and PlingSystem · 6778d57a
      Robert Sprowson authored
      Rename dummy module NetUtils2 to NetUtils2. Use NetUtils for the real thing.
      RISC OS 3.50 and later had a new enough version of NetFS to not need patching (>=5.79), so on the face of it the simplest solution would be to load the newer NetFS on earlier OS versions. However, that wouldn't work if you were booting via NetFS (compared with loading NetUtils, which can be done while NetFS is being used).
      
      Version 7.35. Tagged as 'BuildSys-7_35'
      6778d57a
  25. 30 Mar, 2019 1 commit
  26. 16 Mar, 2019 1 commit
  27. 28 Jan, 2019 1 commit
  28. 15 Jan, 2019 1 commit
    • ROOL's avatar
      Common OMAP5 module ordering · 25b0583e
      ROOL authored
      Admin:
        Move Podule/ADFSFiler/SATADriver around to similar positions to other components file (so they appear after the modules on which they depend, even if that's not alphabetical).
        Update type in ModuleDB.
      
      Version 7.32. Tagged as 'BuildSys-7_32'
      25b0583e
  29. 28 Dec, 2018 1 commit
  30. 25 Aug, 2018 1 commit
  31. 14 Jun, 2018 1 commit
    • Robert Sprowson's avatar
      Add PDumperPCL to !Printers · 376dc80c
      Robert Sprowson authored
      The sources were added a few years ago, a dumper number allocated, and printer definition. Complete the set with the dumper too.
      
      Version 7.29. Tagged as 'BuildSys-7_29'
      376dc80c