1 #
   2 # This file and its contents are supplied under the terms of the
   3 # Common Development and Distribution License ("CDDL"), version 1.0.
   4 # You may only use this file in accordance with the terms of version
   5 # 1.0 of the CDDL.
   6 #
   7 # A full copy of the text of the CDDL should have accompanied this
   8 # source.  A copy of the CDDL is also available via the Internet at
   9 # http://www.illumos.org/license/CDDL.
  10 #
  11 
  12 #
  13 # Copyright 2015 Garrett D'Amore <garrett@damore.org>
  14 #
  15 
  16 #
  17 # Compilation environments.
  18 #
  19 # Each compilation environment is declared using the keyword "env", like
  20 # this:
  21 #
  22 # env | <name> | <std> | <defs>
  23 #
  24 # <name> is just a symbolic name for environment.
  25 # <std>  indicates either c89 or c99, i.e. which C standard to compile
  26 #        under.  This infuences choice of compiler and switches.
  27 # <defs> is a list of CPP style -D or -U flags to define C preprocessor
  28 #        symbols.
  29 #
  30 # Groups of compilation environments can be named, using the "env_group"
  31 # keyword (this can also be used to create aliases):
  32 #
  33 # env_group | <name> | <envs>
  34 #
  35 # <name> is a name for the group or alias
  36 # <envs> is a whitespace separated list of previously declared environments
  37 #        or environment groups (or aliases).
  38 #
  39 
  40 env | XPG3              | c89 | -D_XOPEN_SOURCE
  41 env | XPG4              | c89 | -D_XOPEN_SOURCE -D_XOPEN_VERSION=4
  42 env | SUSv1             | c89 | -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1
  43 env | SUSv2             | c89 | -D_XOPEN_SOURCE=500
  44 env | SUSv3             | c99 | -D_XOPEN_SOURCE=600
  45 env | SUSv4             | c99 | -D_XOPEN_SOURCE=700
  46 env | POSIX-1990        | c89 | -D_POSIX_SOURCE
  47 env | POSIX-1992        | c89 | -D_POSIX_SOURCE -D_POSIX_C_SOURCE=2
  48 env | POSIX-1993        | c89 | -D_POSIX_C_SOURCE=199309L
  49 env | POSIX-1995        | c89 | -D_POSIX_C_SOURCE=199506L
  50 env | POSIX-2001        | c99 | -D_POSIX_C_SOURCE=200112L
  51 env | POSIX-2008        | c99 | -D_POSIX_C_SOURCE=200809L
  52 env | C90               | c89 |
  53 env | C99               | c99 |
  54 
  55 #
  56 # These are ordered from less inclusive (most recent) to most inclusive.
  57 # This allows for us to "include" by reference.
  58 #
  59 env_group | POSIX-2008+ | POSIX-2008
  60 env_group | POSIX-2001+ | POSIX-2008+ POSIX-2001
  61 env_group | POSIX-1995+ | POSIX-2001+ POSIX-1995
  62 env_group | POSIX-1993+ | POSIX-1995+ POSIX-1993
  63 env_group | POSIX-1992+ | POSIX-1993+ POSIX-1992
  64 env_group | POSIX-1990+ | POSIX-1992+ POSIX-1990
  65 env_group | POSIX+      | POSIX-1990+
  66 env_group | SUSv4+      | SUSv4 POSIX-2008+
  67 env_group | SUSv3+      | SUSv3 SUSv4+ POSIX-2001+
  68 env_group | SUSv2+      | SUSv2 SUSv3+
  69 env_group | SUSv1+      | SUSv1 SUSv2+
  70 env_group | SUS+        | SUSv1+
  71 env_group | XPG4+       | XPG4 SUSv1+
  72 env_group | XPG3+       | XPG3 XPG4+
  73 env_group | C99+        | C99 POSIX-2001+ SUSv3+
  74 env_group | C+          | C90 C99 POSIX+ SUS+
  75 env_group | ALL         | C+
  76 
  77 #
  78 # Aliases.
  79 #
  80 env_group | XPG4v2      | SUSv1
  81 env_group | XPG4v2+     | SUSv1+
  82 env_group | XPG5        | SUSv2
  83 env_group | XPG5+       | SUSv2+
  84 env_group | XPG6        | SUSv3
  85 env_group | XPG6+       | SUSv3+
  86 env_group | XPG7        | SUSv4
  87 env_group | XPG7+       | SUSv4+