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