1. 18 Sep, 2023 1 commit
    • ROOL's avatar
      Assorted ModuleDB changes · 84ff29e1
      ROOL authored
      Detail:
      * MakeInstrument and MakeInstrumentApp added
      * Relocate MIDIPlayer
      * Split ARLib to produce two targets
      * Add entry for 310Support
      
      Version 7.92. Tagged as 'BuildSys-7_92'
      84ff29e1
  2. 24 Aug, 2023 1 commit
    • ROOL's avatar
      Fix 'install_rom' rule for 'HAL' · a35d50bc
      ROOL authored
      Detail:
        Since srcbuild treats HAL type components as "not C" during the install ROM
        phase, yet the HAL fragment inherits most of its rules from CModule, there's
        no install_rom rule to override (as there is with AAsmModule, for example)
        so no need to suffix it with ${CUSTOM_ROM}.
        This was preventing the link and copy step for clients of the HAL fragment.
      
      Version 7.91. Not tagged
      a35d50bc
  3. 23 Aug, 2023 1 commit
    • Ben Avison's avatar
      Change how top-level phony rules are overridden · 3f724fa2
      Ben Avison authored
      A common pattern previously in use was for a shared makefile to define a
      top-level phony rule (the sort of thing that srcbuild or a !Mk file would
      use as the target to pass to amu) but with a macro expansion within the
      rule name. This allowed clients to override the rule by assigning any value
      to the macro.
      
      However, this approach makes it relatively difficult for clients to be
      adapted to support cross-compilation. This is because when cross-compiling,
      the shared makefiles utilise nested invocations of the make tool in order
      to facilitate an out-of-tree build directory layout. Therefore, clients
      need to determine whether they are cross-compiling, and if so, whether they
      are in the context of the inner or outer make invocation, before they can
      decide whether or not to redefine the phony target. This can be achieved in
      as little as 3 extra lines:
      
        CURDIR ?= objs
        ifeq (objs,$(notdir ${CURDIR}))
        # redefinitions of top-level phony rules placed here
        endif
      
      but this wasn't universally popular. Instead, taking inspiration from
      INSTTYPE, we can chain from each ${PHONY} rule to a ${PHONY}_custom rule
      and have the client makefile define the ${PHONY}_custom rule instead.
      Crucially, in the cross-compiling case, the shared makefile can then take
      care of ensuring this only happens on the inner make invocation.
      
      In summary:
      
      When setting `CUSTOMEXP` to `custom`, clients should henceforth
      * define `export_hdrs_custom` and `export_libs_custom` rather than redefine
        `export`
      * define `export_hdrs_custom` rather than redefine `export_hdrs`
      * define `export_libs_custom` rather than redefine `export_libs`
      
      When setting `CUSTOMROM` to `custom`, clients should henceforth
      * define `install_rom_custom` rather than redefine `install_rom`
      * define `rom_custom` rather than redefine `rom`
      * define `rom_link_custom` rather than redefine `rom_link`
      
      When setting `CUSTOMSA` to `custom`, clients should henceforth
      * define `install_custom` rather than redefine `install`
      * define `standalone_custom` rather than redefine `standalone`
      
      `CUSTOMDBG` and `CUSTOMGPA` are now removed. These were not being used by
      any client makefiles, but it seems probable that the rules they related to
      (`debug` and `gpa_debug` respectively) would have needed overriding in
      precisely the same circumstances as `install` and `standalone`, so in
      future `CUSTOMSA` should be used for these also.
      
      Version 7.91. Tagged as 'BuildSys-7_91'
      3f724fa2
  4. 31 Jul, 2023 4 commits
    • ROOL's avatar
      Add IZipFS, PPADriverJ, build SparkLzh · 4de16c09
      ROOL authored
      CTools: add BootCommands to the developer !System, since its SysMerge script
      checks for its presence for the X command.
      Disc: activate SparkLzh to build the Lzh codec from sources.
      
      Version 7.90. Tagged as 'BuildSys-7_90'
      4de16c09
    • Ben Avison's avatar
      Report errors encountered during version number insertion · 36058591
      Ben Avison authored
      The use of ';' between subcommands threw away the status of earlier ones.
      Replace with '&&'.
      36058591
    • Ben Avison's avatar
      Define SUFFIX_TEMPLATE · ef4d2edc
      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).
      ef4d2edc
    • Ben Avison's avatar
      Add symbolic names for additional compiler warnings · 8d98a8d6
      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.
      8d98a8d6
  5. 10 Jul, 2023 1 commit
    • ROOL's avatar
      Install CompressPNG as PCompMod · 8a816d46
      ROOL authored
      Detail:
        In order to fit within a 10 letter FileCore limit pre RISC OS 4, shorten the
        on disc module name following the lead of CompressJPEG (JCompMod).
      
      Version 7.89. Tagged as 'BuildSys-7_89'
      8a816d46
  6. 08 May, 2023 1 commit
  7. 22 Apr, 2023 1 commit
  8. 25 Mar, 2023 3 commits
    • ROOL's avatar
      Build 6x SparkFS codecs from sources · e05ff6cf
      ROOL authored
      Version 7.86. Tagged as 'BuildSys-7_86'
      e05ff6cf
    • Ben Avison's avatar
      Enable `CmdHelp` merging rule when `CUSTOMRES=no` and cross-compiling · 669218b2
      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.
      669218b2
    • Ben Avison's avatar
      Fix cross-compile `install` rule for `AAsmModule` · 129de901
      Ben Avison authored
      This was accidentally stripping the `,ffa` from the filename at the final
      copy step.
      129de901
  9. 04 Mar, 2023 2 commits
    • ROOL's avatar
      Move SparkFS, reference 9 codec modules · b1dfe962
      ROOL authored
      Version 7.85. Tagged as 'BuildSys-7_85'
      b1dfe962
    • ROOL's avatar
      Further library type changes · 37b2162d
      ROOL authored
      Detail:
        * Case correct FetchLib's object filename, and prevent applications linking
          against the module variant
        * Add SPARKLIB
        * For CTools
          - Remove unused Common and NBLib exports
          - Ensure inetlib/rpclib/unixlib/socklib install phases are run following
            the makefile changes in TCPIPLibs-5_75
      37b2162d
  10. 24 Feb, 2023 5 commits
    • ROOL's avatar
      Build SparkFSApp from sources · eef021dc
      ROOL authored
      Version 7.84. Tagged as 'BuildSys-7_84'
      eef021dc
    • Ben Avison's avatar
      Regularise default SOURCES_TO_SYMLINK · 0aeed78a
      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.
      0aeed78a
    • Ben Avison's avatar
      Add missing phony targets · 7471f2ce
      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.
      7471f2ce
    • Ben Avison's avatar
      Updates to library include path defines · 4f6ea9a5
      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).
      4f6ea9a5
    • Ben Avison's avatar
      Updates to library file defines · df43c256
      Ben Avison authored
      * Add symbolic names for ImageLib libraries.
      df43c256
  11. 22 Feb, 2023 1 commit
  12. 20 Feb, 2023 1 commit
    • Ben Avison's avatar
      Change default RAMASMDEFINES to mirror AAsmModule · f0cb6586
      Ben Avison authored
      The AAsmModule shared makefile fragment predefines two assembly variables
      by default when targeting a softload binary: `standalone` (set to {TRUE})
      and `MergedMsgs` (set to the path to the merged `CmdHelp`/`Messages` file).
      It's reasonably common for components to migrate over time from AAsmModule
      to CModule; to assist with this process, change the default setting for
      `RAMASMDEFINES` to match.
      
      Once this is merged, the following components could have their Makefiles
      simplified: Debugger, MakePSFont, NVidia and VFPSupport.
      
      Version 7.82. Tagged as 'BuildSys-7_82'
      f0cb6586
  13. 28 Jan, 2023 1 commit
    • Jeffrey Lee's avatar
      Add HostApp makefile fragments · 061eac6e
      Jeffrey Lee authored
      The HostApp fragment is designed to be used for building apps/tools for
      running on the build host. It's currently fairly basic (just a
      stripped-down and tweaked version of CApp), but it should be sufficient
      for most purposes. The main advantage of this over HostTools+CApp (as
      used previously) is that HostApp will make sure to use the host's
      version of the CLib stubs, avoiding any incompatibilities between the
      host and target CLib versions.
      
      RISC OS version has been tested with a Disc build (after modifying the
      relevant HostTools-using components), GNU version is untested.
      
      Version 7.81. Tagged as 'BuildSys-7_81'
      061eac6e
  14. 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
  15. 21 Dec, 2022 2 commits
  16. 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
  17. 29 Oct, 2022 3 commits
  18. 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
  19. 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
  20. 10 Oct, 2022 2 commits
  21. 21 May, 2022 1 commit