- 15 May, 2021 1 commit
-
-
Ben Avison authored
Typically useful for libraries where you have both types of target, and you want the application build to contain function names (for meaningful backtraces) but the module build not to (to save ROM space). This is achieved as follows: * CAPPFLAGS and CMODFLAGS contain additional flags to be passed to application and module builds, respectively * C_FNAMES is initialised to a compiler-agnostic build switch to enable function names in the binary Therefore a master makefile will often use the line CAPPFLAGS = ${C_FNAMES} although CAPPFLAGS and CMODFLAGS are not limited to this usage.
-
- 31 Mar, 2011 1 commit
-
-
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'
-
- 19 May, 2010 1 commit
-
-
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'
-
- 14 Oct, 2008 1 commit
-
-
Ben Avison authored
This represents the version released in the Batch 4 "bbe" tarfiles. Tagged as 'Batch4'
-