1. 24 Oct, 2014 1 commit
    • Robert Sprowson's avatar
      Do 'rom_link' against the same thing you do 'rom' with · 3b88d112
      Robert Sprowson authored
      During the rom phase, ROM C modules would be linked against ${ROMCSTUBS}, ie. clib.
      During the rom_link phase, they'd be linked against ${ABSSYM}, ie. clib and rlib.
      As RISC_OSLib contains various wimp_ symbol names which clash with ${WIMPLIB} from the Toolbox, so you can't write a ROMmable C module which links against the Toolbox and uses the shared makefiles.
      
      We define a new variable ROM_SYMS which is initialised to ${C_ABSSYM}, ie. just the clib to match the stubs used during the rom phase, and the ${ROMCSTUBS} is now appended to ${ROM_LIBS} so it can be overridden rather than being hardwired into the rule.
      For completeness SA_LIBS can now also be overridden to remove ${CLIB} if desired.
      
      CApp/CLibrary now use ${NOP} silently.
      
      Version 6.60. Tagged as 'BuildSys-6_60'
      3b88d112
  2. 12 Oct, 2014 1 commit
    • Steve Revill's avatar
      Various updates generally associated with CTools builds. · 5ef9ae4d
      Steve Revill authored
      Components (ROOL CTools):
        * Added new components (ITable, BlendTable, RTC) for exports
        * Switch to using Install: rather than <Install$Dir> to help CLX
        * Replace CToolsCD component with DDE component
      ModuleDB tweaks:
        * Added the (closed source) DDE resources component
        * Added a component for BuildSys itself (so DDE can get the Makefiles)
      Shared makefile tweadded ERASECVS to the standard tools
        * Added a verbose copy flags CPVFLAGS for big copy operations
        * Added "install" rule for debug app builds (amu install INSTTYPE=debug)
      
      Version 6.53. Tagged as 'BuildSys-6_53'
      5ef9ae4d
  3. 01 Oct, 2014 1 commit
    • Jeffrey Lee's avatar
      Fix some Disc build errors · 99d15696
      Jeffrey Lee authored
      Detail:
        Makefiles/AAsmModule - Reintroduce IfThere check of LocalRes:Messages, so that components which don't have any messages file will build correctly once again
        Makefiles/CApp - Ensure ${INSERTVERSION}'d files are writable; fixes errors when performing repeated Disc builds of components which mark their install directory tree as readonly.
      Admin:
        Fixes issue reported on forums with DDEUtils not being present in recent disc images:
        https://www.riscosopen.org/forum/forums/11/topics/2848
      
      
      Version 6.51. Tagged as 'BuildSys-6_51'
      99d15696
  4. 11 Nov, 2013 1 commit
    • Ben Avison's avatar
      Changes to keep GNUmakefiles and Makefiles compatible · 3542e171
      Ben Avison authored
      Detail:
        Makefiles/CApp:
        * Naming of object file variables rationalised in line with CModule
        * Noted that INSTAPP_VERSION files must also be present in INSTAPP_FILES for
          compatibility with GNUmakefiles - requires changes to individual top-level
          makefiles, but not BuildSys
        Makefiles/CLibrary:
        * Naming of object file variables rationalised in line with CModule
        Makefiles/CModule:
        * Removed unused variable OBJS_
        Makefiles/StdTools:
        * Retired TIDYDESC
        GNUmakefiles/AppLibs:
        * Add CONLIB, RMVSN, SYNCLIB
        GNUmakefiles/CApp:
        * Default definition of INSTAPP
        * Naming of object file variables rationalised in line with CModule
        * CLEAN_DEPEND removed, clean made a double-colon rule (it's worth noting
          that such additional clean rules are now only executed from the component's
          top-level directory: this was not true for the old extra_clean rules that
          this replaces, in the GNUmakefiles case)
        * Rename of INSTALLAPPFILES to INSTAPP_FILES
        * Rename of INSTALLAPP_DEPEND to INSTAPP_DEPENDS
        * Insertion of component version into Desc files now done using AwkVers
          script rather than the C preprocessor (note, will require editing of Desc
          files to comply). Also supports versions in Messages and !Run files,
          controlled by new variable INSTAPP_VERSION
        GNUmakefiles/CLibrary:
        * Naming of object file variables rationalised in line with CModule
        * clean rules now only executed from the component's top-level directory, as
          with CApp
        GNUmakefiles/StdTools:
        * Added INSERTVERSION (AwkVers), retired TIDYDESC
        * Perl scripts now explicitly passed to perl - no need to chmod +x the
          scripts in RiscOS/Library
        * asasm/objasm include paths and APCS/Machine/UserIF predefines set to match
          Makefiles
      Admin:
        Tested in a CTools build
      
      Version 6.32. Tagged as 'BuildSys-6_32'
      3542e171
  5. 15 Jul, 2013 1 commit
    • Robert Sprowson's avatar
      Shared makefile enhancements · 6b4a70b4
      Robert Sprowson authored
      AAsmModule:
       Comments sync'd with implementation
      ModuleLibs/AppLibs:
       Add the RMVersion library
      CApp:
       Now APP_OBJS and APP_DBG_OBJS don't need the '.o' suffix in common with OBJS and DBG_OBJS
       Changed insertion of version numbers to be common for Messages/Obey/Desc files through new 'INSTAPP_VERSION' dummy rule
       INSTALLAPP_DEPEND renamed to INSTAPP_DEPENDS to match other INSTAPP_stuff
      CUtil:
       Use addprefix'd APP_OBJS
      StdTools:
       Default SQUISHFLAGS now set
       Added INSERTVERSION
      
      
      Version 6.20. Tagged as 'BuildSys-6_20'
      6b4a70b4
  6. 05 Feb, 2012 1 commit
  7. 12 Sep, 2011 1 commit
    • Ben Avison's avatar
      Fixes to shared makefiles · 70323f40
      Ben Avison authored
      Detail:
        The change which permitted top-level makefiles to include only CApp,
        CModule etc accidentally broke makefiles which included HostTools (StdTools
        got included instead and overwrote the HostTools settings). Amazingly, we
        seem to have got away with this so far - but fixed now. Also, brought the
        GNUmakefiles versions in line with updates to the amu Makefiles in this
        and other respects.
      Admin:
        Tested in a RISC OS ROM build, and for building cross-compiling versions
        of the tools.
      
      Version 5.21. Tagged as 'BuildSys-5_21'
      70323f40
  8. 31 Mar, 2011 1 commit
    • Ben Avison's avatar
      Improvements to shared makefiles · 684d01e3
      Ben Avison authored
      Detail:
        * Some subtle bugs can be caused by including shared makefiles in the
          wrong order. To try to prevent further problems, and simplify main
          makefiles at the same time, CApp, CLibrary and CModule now include the
          makefiles they depend upon themselves, in the correct order: generally
          speaking, all macro (re)definitions should be before rule definitions.
        * Added sentry macro definitions to each makefile. These can be used to
          avoid repeated inclusion of makefiles - particularly important now that
          CApp, CLibrary and CModule do additional includes. This removes the
          majority of cases where amu produced warnings about multiple inclusion;
          a few components remain where this is still the case, but these
          warnings are harmless. If they bother you, simply remove the
          now-superfluous include statements from the relevant main makefile.
        * Created a CUtil shared makefile, for building transient utilities. The
          'C' in the name is more for consistency with CApp/CLibrary/CModule than
          anything to do with the 'C' language, since all of these makefiles work
          equally well for assembler and 'C' - the 'C' is for historic reasons.
        * Tweaked the debug rules in CApp to avoid harmless but annoying linker
          warnings about stubs being included twice.
        * Added several new default switches to ASFLAGS. These enable us to start
          making assembler source files work under a cross-assembler, because
          statements like
              GET  Hdr:Macros
              GET  Hdr:Machine.<Machine>
          are not portable, and tweaking the cross-assembler to understand these
          types of constructs would not be pretty. Instead, with the extra
          command line switches now introduced, you can use
              GET  Macros
              GET  Machine/$Machine
      Admin:
        Tested in a ROM build
      
      Version 5.12. Tagged as 'BuildSys-5_12'
      684d01e3
  9. 20 Oct, 2010 1 commit
    • Ben Avison's avatar
      Makefile bugfixes, and support for latest CTools build · e15324c6
      Ben Avison authored
      Detail:
        * Fixed dependencies for debug builds in GNUmakefiles/CApp
        * Added -f switch to rm in GNUmakefiles/StdTools to make it fail silently
          if the file doesn't exist, like the RISC OS version
        * Fix for amu complaining if INSTTYPE is undefined in Makefiles/CApp
        * Reflected makefile changes in resgen, squeeze and xpand in CTools
          component file
        * Added a8time to ModuleDB and CTools component file
      Admin:
        Tested in  a C Tools build
      
      Version 5.03. Tagged as 'BuildSys-5_03'
      e15324c6
  10. 19 May, 2010 1 commit
    • Ben Avison's avatar
      Changes to facilitate platform independence. · 4477e695
      Ben Avison authored
      Detail:
       CApp:
        * New variable CLEAN_DEPEND is now the preferred way to specify additional
          clean actions because GNU make doesn't have an equivalent to amu's :: rules
        * Can now indicate preference to use C++ linker options using LINK_TYPE
        * Gains install phase support:
          + INSTALLAPPFILES lists the files to be copied, effectively specified
            relative to LocalRes$Path
          + Adopted INSTTYPE concept from DDE makefiles for cases where executable
            and support files need to be installed to different locations
          + Unusual cases can override this implementation using CUSTOMINSTALLAPP
            and/or CUSTOMINSTALLTOOL
      
        CLibrary:
        * New variable CLEAN_DEPEND is now the preferred way to specify additional
          clean actions because GNU make doesn't have an equivalent to amu's :: rules
        * -o is no longer a mandatory argument to libfile - now in ARFLAGS rather
          than used explicitly
      
        DbgRules / StdRules:
        * Macroised some Norcroft-specific features
      
        HostTools:
        * Clean phase support was incomplete
      
        StdTools:
        * A few additional tool definitions
        * Added macro definitions for common C options
        * C's enable-warnings and suppress-function-name-embedding options now on by
          default because they're usually (maybe even universally?) used - it won't
          hurt if they're specified again by existing makefiles
        * C++ now has equivalent INCLUDES and DEFINES variables, and the standard C++
          headers are on the default include path
        * SEP is defined as the directory separator character and can be used from
          top-level makefiles in a platform-independent way
      
        Functionally equivalent versions of the following makefile fragments
        have been developed so far for executing on a Posix build host:
          AppLibs, CApp, CLibrary, DbgRules, HostTools, StdRules, StdTools
        These suport native compilers (when APCS=Host) and cross-compilers,
        and GCC (when TOOLCHAIN=GNU) and Norcroft toolchains - typically these
        environment variables would be selected by running an Env file.
      
      Admin:
        Tested by building as many as possible of the DDE components on RISC OS
        and on Linux, using native and cross compilers, and using Norcroft and
        GNU toolchains.
      
      Version 5.01. Tagged as 'BuildSys-5_01'
      4477e695
  11. 14 Oct, 2008 1 commit