1. 12 Jan, 2023 13 commits
    • Ben Avison's avatar
      Regularise default SOURCES_TO_SYMLINK · 98787be4
      Ben Avison authored
      * Add `hdr/*` to `CApp` - such components can use assembly, which might have
        need for assembly header files. Brings this in line with `CModule`.
      * Add `c++/*`, `hdr/*`, `VersionNum` and `VersionASM` to `CLibrary`. Brings
        this in line with `CApp` and `CModule`, means `SyncLib` doesn't need to
        explicitly add `hdr/*` and `NBLib` doesn't need to explicitly add `c++/*`
        or `VersionNum`. Strictly speaking, as a special case, `VersionNum` isn't
        required for `CLibrary` clients, since a copy is always available under
        `Export` renamed as `LibVersion`, but it's nice to be consistent.
      * Remove `Resources` from `AAsmModule` - it needs (and already has) special
        handling because it's a directory rather than a file.
      98787be4
    • Ben Avison's avatar
      Report errors encountered during version number insertion · c4c16624
      Ben Avison authored
      The use of ';' between subcommands threw away the status of earlier ones.
      Replace with '&&'.
      c4c16624
    • Ben Avison's avatar
      Stop `CApp` from assuming `Messages` in installed in `resources` · f26c1d21
      Ben Avison authored
      By contrast with `INSTRES_FILES` in `CModule`, where `Messages` is implicitly
      included, `CApp` and `BasicApp` do not do this for `RES_FILES`. The native-
      compilation version of `CApp` was doing duplicate installations of `Messages`,
      which was at odds with the cross-compiling `CApp` and both versions of
      `BasicApp`. If this version of `CApp` is used with a component that doesn't
      feature a `Messages` file (such as the in-development `InetRes`) this results
      in an error.
      
      The only existing `CApp` client components that define `RES_FILES` are
      `Help2` and `EditApp`, and they both explicitly list `Messages`, so this
      change should not break either of them.
      f26c1d21
    • Ben Avison's avatar
      Enable `CmdHelp` merging rule when `CUSTOMRES=no` and cross-compiling · c5251633
      Ben Avison authored
      In the cross-compiling case, a rule is defined targeting `MERGEDMSGS`, which
      the phony target `resources_cmdhelp` depends on, but the definition is
      conditional on `CUSTOMRES` not being `custom` or `no`.
      
      In a use-case which is believed to be unique to LanManFS, it is required
      that the resource files not be registered to ResourceFS via the Messages
      module, but by LanManFS itself, both for RAM and ROM builds, but the merging
      of `CmdHelp` and `Messages` files is still required. To leverage the
      `Messages` merging code in `CModule`, re-enable the `MERGEDMSGS` rule when
      `CUSTOMRES=no` (which is arguably the correct setting for LanManFS) but leave
      it disabled for `CUSTOMRES=custom` to permit full customisation if required.
      c5251633
    • Ben Avison's avatar
      Improvements to building transient utilities · 3a35d5dc
      Ben Avison authored
      * Add cross-compilation `CUtil` makefile fragment and define `SUFFIX_UTILITY`
      * Switch to linking with `-util`. This automatically attaches headers and
        footers to the binary, and requires `link` 5.36 (16 Mar 2014 - long enough
        ago that I think that we can assume everyone wil have upgraded)
      3a35d5dc
    • Ben Avison's avatar
      Define SUFFIX_TEMPLATE · e7d6c7dc
      Ben Avison authored
      This allows RISC OS Wimp template files with filetype fec to be referenced
      identically whether native or cross-compiling (it expands to an empty string
      when used natively).
      e7d6c7dc
    • Ben Avison's avatar
      Fix cross-compile `install` rule for `AAsmModule` · cbf9f918
      Ben Avison authored
      This was accidentally stripping the `,ffa` from the filename at the final
      copy step.
      cbf9f918
    • Ben Avison's avatar
      Add symbolic names for additional compiler warnings · c34ba5e0
      Ben Avison authored
      Norcroft's `-We` option suppresses warnings about casts between function
      pointers and non-function objects.
      
      Norcroft's `-Wn` option suppresses warnings about implicit narrowing casts.
      
      GCC doesn't have equivalents to these warnings, so they expand to an empty
      string if that's the selected compiler.
      c34ba5e0
    • Ben Avison's avatar
      Component type changes in ModuleDB · f33e8752
      Ben Avison authored
      The following are changed to type `C`. This will permit these components to
      switch to using the `CModule` shared makefile in upcoming changes.
      
      * ADFSFiler (and SCSIFiler and SDFSFiler, built from the same sources)
      * BatMgr
      * Filer
      * Free
      * NetFiler
      * Pinboard
      * SpriteExtend
      * TaskManager
      
      The following are changed to type `EXP`. These components don't define
      `resources` or any subsequent phony targets. `amu` wil fail silently when you
      try to make these, but GNU `make` considers it an error.
      
      * DDTLib
      * DebugLib
      * DeskLib
      * ModMallocLib
      * PDebug
      * RemoteDebug
      * Trace
      * Wild
      * tboxlib
      f33e8752
    • Ben Avison's avatar
      Additional tool defines · aa7ad624
      Ben Avison authored
      * Define `DEFMOD` for cross-compilation use.
      * Define `SETTYPE` for cross-compilation use (this acts as a no-op; when
        cross-compiling, filetypes are indicated using ,xxx suffixes instead).
      * Define `RUN` tool for both native and cross-compilation. This is already
        used in various components, but wasn't defined anywhere. It is particularly
        useful during cross-compilation for launching build tools that were built
        locally to a component, since on systems other than RISC OS, the current
        directory is typically not on the run path.
      aa7ad624
    • Ben Avison's avatar
      Add missing phony targets · e83a0fa2
      Ben Avison authored
      * Add `standalone` target for CApp makefile clients.
      
        This is analogous to `standalone` for CModule clients, and is implemented
        as an alias for the `all` target. This is useful because cppcheck CI jobs
        need a consistent way to ensure that all local autogenerated source and
        header files have been created, so that cppcheck can fully analyse the
        source code.
      
      * Enable install target for cross-compiling CLibrary components.
      
        `install` was missing from the list of targets that need to be re-run from
        within the `objs` subdirectory.
      e83a0fa2
    • Ben Avison's avatar
      Updates to library include path defines · 0969115e
      Ben Avison authored
      * Define cross-platform name for ConfigLib header include path.
      * Undefine `${TCPIPINC}` when building with GCC (as with the standard C
        headers, the headers in TCPIPLibs conflict with those on the default
        include path when compiling with GCC. Our TCPIPLibs headers appear to be
        incompatible with GCC, so resolve the conflict by removing TCPIPLibs from
        the path).
      0969115e
    • Ben Avison's avatar
      Updates to library file defines · ea984565
      Ben Avison authored
      * Add symbolic names for ImageLib libraries.
      ea984565
  2. 28 Dec, 2022 1 commit
    • ROOL's avatar
      Add Internet 5 variant of rpclib · 03736764
      ROOL authored
      Admin:
        Also keep GNUmakefiles in sync by adding ${XOLIB} variables.
      
      Version 7.80. Tagged as 'BuildSys-7_80'
      03736764
  3. 21 Dec, 2022 2 commits
  4. 03 Dec, 2022 1 commit
    • ROOL's avatar
      Add XOLIB variable to AppLibs & ModuleLibs · 04ef6a31
      ROOL authored
      Detail:
        Also build it for those components which depend on InetRes
      Admin:
        Required by InetRes-5_97 and later.
      
      Version 7.78. Tagged as 'BuildSys-7_78'
      04ef6a31
  5. 29 Oct, 2022 3 commits
  6. 22 Oct, 2022 3 commits
    • Timothy E Baldwin's avatar
      Add ImageLibJPEG to Disc · c7fb2964
      Timothy E Baldwin authored
      Without this ImageLib fails the export libs phase with an error,
      ideally ImageLib needs fixing so it isn't split in this fashion.
      
      No change to build output (the contents of HardDisc4).
      
      Version 7.76. Tagged as 'BuildSys-7_76'
      c7fb2964
    • ROOL's avatar
      Remove unneeded components · ceb74171
      ROOL authored
      Detail:
        Remove NVRAM/PortManager from builds where unused.
        Remove MakePSFont/PDumperDM/DDT from ROM builds.
        For ROMs where some install a component and others only export it, settle
        on a common place to put the component in the list from a majority vote.
      Admin:
        Based on a submission from Timothy E Baldwin
        BCM2835/BonusBin/BuildEnv/Disc/IOMD32/OMAP3/4/5/PineA64/PlingSystem/Titanium
        Tungten/iMx6 builds checked.
        Unmaintained S3C2440/6410/BCM2835Pico not checked.
      ceb74171
    • ROOL's avatar
      Movements to make Components files easier to compare · 83892419
      ROOL authored
      Detail:
        Move Portable export up in IOMD32 to match Tungsten/S3C2440/S3C6410.
        Move SCSIFS/PCI to equivalent place in the exports at the top of file.
        Remove some extra # in separator blocks for Titanium.
      Admin:
        Based on a submission from Timothy E Baldwin
      83892419
  7. 19 Oct, 2022 4 commits
    • Jeffrey Lee's avatar
      Attempt to document the different defines · f82a7093
      Jeffrey Lee authored
      There are a number of different defines/variables which the makefile
      fragments pass into the compiler/assembler when building code. Add a new
      document (Makefile.Docs.Defines) which attempts to document them and
      their intended use.
      
      Version 7.75. Tagged as 'BuildSys-7_75'
      f82a7093
    • Jeffrey Lee's avatar
      Add RISCOS_MODULE defines · 351c84a1
      Jeffrey Lee authored
      These go hand-in-hand with the RISCOS_HAL and RISCOS_KERNEL defines, to
      allow code to identify when it's being built for inclusion in a module.
      351c84a1
    • Jeffrey Lee's avatar
      Add RISCOS_ZM assembler variable · 82636e39
      Jeffrey Lee authored
      This is intended to act as a replacement for the zM variable, which is
      hard to search for.
      
      zM will be removed in 2024.
      82636e39
    • Jeffrey Lee's avatar
      Add initial support for HAL & kernel library builds · 12bfbd27
      Jeffrey Lee authored
      Extend the CLibrary shared makefile to add support for building HAL and
      kernel versions of libraries, with 'h' and 'k' suffixes respectively.
      These are built with stack limit checking & frame pointers disabled, and
      with RISCOS_HAL and RISCOS_KERNEL defines enabled as appropriate.
      
      Note that currently there's nothing done to protect the SB register in
      HAL builds of libraries, or to deal with references to data sections.
      12bfbd27
  8. 10 Oct, 2022 2 commits
  9. 21 May, 2022 2 commits
  10. 14 Feb, 2022 2 commits
  11. 05 Feb, 2022 1 commit
    • Ben Avison's avatar
      Add SDIODriver header export to Disc build · f755c8f9
      Ben Avison authored
      This facilitates softloadable modules that interface to the SD subsystem
      (such as pretty much every Linux-derived WiFi driver module since they can't
      be linked into a ROM) and also permits GitLab CI to build soft-loadable
      versions of ROM WiFi drivers or SDFS.
      
      Version 7.70. Tagged as 'BuildSys-7_70'
      f755c8f9
  12. 31 Jan, 2022 1 commit
    • Ben Avison's avatar
      Create shared makefile for building HALs · 44504264
      Ben Avison authored
      This de-duplicates a lot of HAL makefiles, and also allows us to introduce a
      cross-compilation variant for them all at once.
      
      APCS specifiers are deliberately omitted; this is in order to facilitate some
      HALs linking with libraries compiled to the usual APCS variant without
      resulting in link-time warnings.
      
      Version 7.69. Tagged as 'BuildSys-7_69'
      44504264
  13. 29 Jan, 2022 1 commit
    • Ben Avison's avatar
      Add two SDIO-related libraries · 0296d2c6
      Ben Avison authored
      Added to Components files for all ROM builds that could, in theory, have WiFi
      drivers, and to Disc so that softloadable builds are possible.
      
      Version 7.68. Tagged as 'BuildSys-7_68'
      0296d2c6
  14. 28 Jan, 2022 1 commit
  15. 05 Jan, 2022 1 commit
  16. 15 Dec, 2021 1 commit
  17. 09 Oct, 2021 1 commit