From 2f79ef3b9ead1de4eac7bdc960bedd9f29cb3c1c Mon Sep 17 00:00:00 2001 From: Richard Brooksby Date: Sat, 11 May 2013 17:52:01 +0100 Subject: Converting design.mps.config to restructuredtext. rewriting, correcting, clarifying, and generally bringing it up-to-date. Removing misplaced obsolete design text from mpstd.h. Tidying up the format of a couple of other docs. Copied from Perforce Change: 181717 ServerID: perforce.ravenbrook.com --- mps/code/mpstd.h | 45 ++++++++------------------------------------- 1 file changed, 8 insertions(+), 37 deletions(-) (limited to 'mps/code/mpstd.h') diff --git a/mps/code/mpstd.h b/mps/code/mpstd.h index 61a20d3cbf2..8298e98be26 100644 --- a/mps/code/mpstd.h +++ b/mps/code/mpstd.h @@ -9,51 +9,22 @@ * documentation, or, in the case of GCC, from the compiler itself. * References to the documentation appear above each detection line. * + * For more details on how this file fits into the MPS build system, + * and an explanation of all the MPS_* defines, see design.config.pf + * "MPS Configuration" <../design/config.txt> + * * .macos.ppc.align: MacOS / PowerPC requires 8 bytes alignment (in * general). See "Mac OS Runtime Architecture", table 4-2. - */ - -#ifndef mpstd_h -#define mpstd_h - -/* DESIGN NOTES - * ------------ - * [These should be moved to a proper buildsys design doc. RHSK] - * - * mpstd.h does two main things: - * 1. platform detection by looking at preprocessor symbols; - * 2. setting variables (eg. MPS_PF_STRING, MPS_WORD_WIDTH). - * - * Sometimes the platform is *already* known by the buildsystem: - * - the Global Graphics buildsystem always sets CONFIG_PF_*. - * - the Ravenbrook buildsystem knows the platform and may (but - * typically does not) set CONFIG_PF_*. - * - * Regardless of this, mpstd.h still attempts to detect the platform. - * (This is intentional). However if both CONFIG_PF_* and - * CONFIG_PF_STRING are set, then mpstd.h performs a third function: - * 3. checking that the detected platform corresponds to that - * specified by CONFIG_PF_*. - * - * Sometimes no MPS buildsystem is in use, so the platform *must* - * be detected. For example, when client software #includes mps.h, - * we want it to just work out of the box with whatever compiler is - * being used. In other words we do not require the client to define - * CONFIG_PF_*. - * (This is the case that justifies mpstd.h doing platform detection - * by looking at preprocessor symbols; otherwise we'd simply use - * CONFIG_PF_*). * * mpstd.h fails if it cannot detect the platform (even if CONFIG_PF_* * is specified). This is intentional. mpstd.h does *not* allow * CONFIG_PF_* to override the platform as detected from preprocessor - * symbols. This is intentional. - * - * References: - * GG buildsys use of CONFIG_PF_*: - * + * symbols. This is intentional. [This needs justifying. RB 2013-05-11] */ +#ifndef mpstd_h +#define mpstd_h + /* Visual C++ 2.0, Books Online, C/C++ Book, Preprocessor Reference, * Chapter 1: The Preprocessor, Macros, Predefined Macros. -- cgit v1.2.1