a68g-platform.h

You can download the current version of Algol 68 Genie and its documentation here.

   1 //! @file a68g-platform.h
   2 //! @author J. Marcel van der Veer
   3 //!
   4 //! @section Copyright
   5 //!
   6 //! This file is part of Algol68G - an Algol 68 compiler-interpreter.
   7 //! Copyright 2001-2023 J. Marcel van der Veer .
   8 //!
   9 //! @section License
  10 //!
  11 //! This program is free software; you can redistribute it and/or modify it 
  12 //! under the terms of the GNU General Public License as published by the 
  13 //! Free Software Foundation; either version 3 of the License, or 
  14 //! (at your option) any later version.
  15 //!
  16 //! This program is distributed in the hope that it will be useful, but 
  17 //! WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
  18 //! or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 
  19 //! more details. You should have received a copy of the GNU General Public 
  20 //! License along with this program. If not, see .
  21 
  22 //! @section Synopsis
  23 //!
  24 //! Platform dependent definitions.
  25 
  26 #if ! defined (__A68G_PLATFORM_H__)
  27 #define __A68G_PLATFORM_H__
  28 
  29 #if defined (BUILD_WIN32)
  30 #include "a68g-config.win32.h"
  31 #else
  32 #include "a68g-config.h"
  33 #endif
  34 
  35 // Decide on A68G "LEVEL".
  36 //
  37 // LEVEL 3 uses INT*8, REAL*10 and REAL*16 data types, when available in hardware.
  38 // LEVEL 2 builds generic A68G with INT*4 and REAL*8 data types.
  39 // LEVEL 1 is reserved for (possible) restrictive builds.
  40 
  41 #if defined (BUILD_WIN32) && defined (HAVE_QUADMATH)
  42 #  define A68_LEVEL 3
  43 #elif defined (HAVE_LONG_TYPES) && defined (HAVE_QUADMATH)
  44 #  define A68_LEVEL 3
  45 #else
  46 #  define A68_LEVEL 2
  47 #  undef HAVE_MATHLIB
  48 #endif
  49 
  50 // R mathlib
  51 
  52 #if defined (HAVE_MATHLIB)
  53 #  if !defined (MATHLIB_STANDALONE)
  54 #  define MATHLIB_STANDALONE
  55 #  endif
  56 #endif
  57 
  58 // Imported libraries
  59 
  60 #undef __cplusplus
  61 
  62 #endif