1. 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
  2. 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
  3. 14 Jul, 2020 1 commit
  4. 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
  5. 06 Jun, 2020 2 commits
  6. 02 May, 2020 1 commit
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 27 Oct, 2019 1 commit
  13. 20 Jul, 2019 1 commit
  14. 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
  15. 23 May, 2019 1 commit
  16. 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
  17. 22 Apr, 2019 1 commit
  18. 14 Apr, 2019 1 commit
  19. 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
  20. 30 Mar, 2019 1 commit
  21. 16 Mar, 2019 1 commit
  22. 28 Jan, 2019 1 commit
  23. 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
  24. 28 Dec, 2018 1 commit
  25. 25 Aug, 2018 1 commit
  26. 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
  27. 01 Jun, 2018 1 commit
  28. 12 May, 2018 1 commit
    • ROOL's avatar
      Component, Makefile, ModuleDB updates · 300a68d2
      ROOL authored
      Detail:
        Disc - add AcornHTTP and URL modules, force en-gb CmdHelp for RouteD in 310 directory.
        OMAP5 - add ADFS/SATADriver/ATAPI, change default CMOS to select FileSystem=ADFS
        Libs makefiles - add path to ZLIB
        ModuleDB - Relocate OMAP5 HAL to mixed/
      
      Version 7.27. Tagged as 'BuildSys-7_27'
      300a68d2
  29. 15 Apr, 2018 1 commit
    • Ben Avison's avatar
      Fix definition of INCLUDE_OSLIB · 8198f31f
      Ben Avison authored
      Detail:
        Somehow the leading minus signs went missing - this broke ColourPicker,
        which was the only component that relied on it.
      
      Version 7.26. Tagged as 'BuildSys-7_26'
      8198f31f
  30. 14 Apr, 2018 1 commit
    • Ben Avison's avatar
      Makefile bugfixes · 53b25b7a
      Ben Avison authored
      Detail:
        Makefiles/AAsmModule:
        * This was the odd-one out amongst top-level shared makefiles in that it
          still required the master makefile to include StdTools explicitly - even
          the GNU version of this makefile did so. Now changed for consistency.
        GNUmakefiles/AAsmModule:
        * Fixed typo in renaming of MERGEDMDIR to MERGEDRDIR.
      Admin:
        Fixes build error in latest FPEmulator
      
      
      Version 7.25. Tagged as 'BuildSys-7_25'
      53b25b7a
  31. 11 Apr, 2018 1 commit
    • Ben Avison's avatar
      Incremental step in cross-compilation support · 5e83cb7e
      Ben Avison authored
      Detail:
        ModuleDB:
        * Correct capitalisation of resgen's TARGET to match its main source file
        GNUmakefiles/AAsmModule:
        * Targets now given ,ffa filetype suffix
        * Support source directory layouts s/<subdir>/<leaf> as used by the
          kernel and printer drivers - define SYMLINK_EXT_FIRST to enable
        * Prevent relinking when running make on an up-to-date component due to
          a difference between amu and GNU make's handling of double-colon rules
        * Support linking with GNU toolchain
        * Fix installation rule (mixup between MERGEDMDIR and MERGEDRDIR)
        * Support up to 16 assembler and 8 C-from-assembler headers, up from 3
          of each (here's looking at you, kernel) - long-term, it might be worth
          changing this to a scheme like that used by CModule to remove any
          limits
        * Fix C-from-assembler exports to have .h suffix
        GNUmakefiles/AppLibs:
        * Define INCLUDE_OSLIB to permit OSLib header search paths to be
          specified in an OS-agnostic way
        GNUmakefiles/CApp:
        * Prevent relinking when running make on an up-to-date component due to
          a difference between amu and GNU make's handling of double-colon rules
        GNUmakefiles/CLibrary:
        * Prevent rearchiving when running make on an up-to-date component due
          to a difference between amu and GNU make's handling of double-colon
          rules
        * Don't use .hdr suffix on exported assembler header files
        * Correct order of dependencies for export_libs phony target
        GNUmakefiles/StdTools:
        * Definition for the module filetype suffix
        * Add LDBIN tool for GNU/Norcroft-agnostic binary link, useful for
          linking position-independent binary code, such as relocatable modules
          (i.e. ones that don't require the linker to create a __RelocCode
          function)
        * FAPPEND function now works if the same file is used for the
          destination as for one of the sources (this is used by CModule)
        GNUmakefiles/CModule, ModStdRule, ModuleLibs:
        * Finally created cross-compilation versions of the last major shared
          makefiles! Warning: these have received limited testing to date.
        Makefiles/AAsmModule:
        * Support up to 16 assembler and 8 C-from-assembler headers
        Makefiles/AppLibs, ModuleLibs:
        * Define INCLUDE_OSLIB
        Makefiles/StdTools:
        * Add LDBIN tool
      
      
      Version 7.24. Tagged as 'BuildSys-7_24'
      5e83cb7e