xref: /openbsd/libexec/tradcpp/config.h (revision 09467b48)
1 /*-
2  * Copyright (c) 2010, 2013 The NetBSD Foundation, Inc.
3  * All rights reserved.
4  *
5  * This code is derived from software contributed to The NetBSD Foundation
6  * by David A. Holland.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  * 1. Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
18  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
21  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27  * POSSIBILITY OF SUCH DAMAGE.
28  */
29 
30 /*
31  * Config for predefined macros. If this doesn't do what you want you
32  * can set any or all of the CONFIG_ defines from the compiler command
33  * line; or patch the list in main.c; or both.
34  */
35 
36 /*
37  * Paths
38  */
39 
40 #ifndef CONFIG_LOCALINCLUDE
41 #define CONFIG_LOCALINCLUDE "/usr/local/include"
42 #endif
43 
44 #ifndef CONFIG_SYSTEMINCLUDE
45 #define CONFIG_SYSTEMINCLUDE "/usr/include"
46 #endif
47 
48 /*
49  * Operating system
50  */
51 
52 #ifndef CONFIG_OS
53 #if defined(__NetBSD__)
54 #define CONFIG_OS "__NetBSD__"
55 #define CONFIG_OS_2 "__unix__"
56 #elif defined(__FreeBSD__)
57 #define CONFIG_OS "__FreeBSD__"
58 #define CONFIG_OS_2 "__unix__"
59 #elif defined(__OpenBSD__)
60 #define CONFIG_OS "__OpenBSD__"
61 #define CONFIG_OS_2 "__unix__"
62 #elif defined(__DragonFly__)
63 #define CONFIG_OS "__DragonFly__"
64 #define CONFIG_OS_2 "__unix__"
65 #elif defined(__bsdi__)
66 #define CONFIG_OS "__bsdi__"
67 #define CONFIG_OS_2 "__unix__"
68 #elif defined(__sun)
69 #define CONFIG_OS "__sun"
70 #define CONFIG_OS_2 "__unix__"
71 #elif defined(__sgi)
72 #define CONFIG_OS "__sgi"
73 #define CONFIG_OS_2 "__unix__"
74 #elif defined(__SVR4)
75 #define CONFIG_OS "__SVR4"
76 #define CONFIG_OS_2 "__unix__"
77 #elif defined(__APPLE__)
78 #define CONFIG_OS "__APPLE__"
79 #define CONFIG_OS_2 "__unix__"
80 #elif defined(__linux__)
81 #define CONFIG_OS "__linux__"
82 #elif defined(__CYGWIN__)
83 #define CONFIG_OS "__CYGWIN__"
84 #elif defined(__INTERIX)
85 #define CONFIG_OS "__INTERIX"
86 #elif defined(__MINGW32)
87 #define CONFIG_OS "__MINGW32"
88 #else
89 /* we could error... but let's instead assume generic unix */
90 #define CONFIG_OS "__unix__"
91 #endif
92 #endif
93 
94 /*
95  * CPU
96  */
97 
98 #ifndef CONFIG_CPU
99 #if defined(__x86_64__)
100 #define CONFIG_CPU "__x86_64__"
101 #define CONFIG_CPU_2 "__amd64__"
102 #elif defined(__i386__) || defined(__i386)
103 #define CONFIG_CPU "__i386__"
104 #define CONFIG_CPU_2 "__i386"
105 #elif defined(__sparc)
106 #define CONFIG_CPU "__sparc"
107 #elif defined(__mips)
108 #define CONFIG_CPU "__mips"
109 #elif defined(__mips__)
110 #define CONFIG_CPU "__mips__"
111 #elif defined(__mipsel__)
112 #define CONFIG_CPU "__mipsel__"
113 #elif defined(__POWERPC__)
114 #define CONFIG_CPU "__POWERPC__"
115 #elif defined(__POWERPC__)
116 #define CONFIG_CPU "__powerpc__"
117 #elif defined(__PPC__)
118 #define CONFIG_CPU "__PPC__"
119 #elif defined(__ppc__)
120 #define CONFIG_CPU "__ppc__"
121 #elif defined(__PPC64__)
122 #define CONFIG_CPU "__PPC64__"
123 #elif defined(__ppc64__)
124 #define CONFIG_CPU "__ppc64__"
125 #elif defined(__ARM__)
126 #define CONFIG_CPU "__ARM__"
127 #elif defined(__AARCH64__)
128 #define CONFIG_CPU "__AARCH64__"
129 #elif defined(__aarch64__)
130 #define CONFIG_CPU "__aarch64__"
131 #elif defined(__RISCV__)
132 #define CONFIG_CPU "__RISCV__"
133 #elif defined(__riscv__)
134 #define CONFIG_CPU "__riscv__"
135 #elif defined(__RISCV64__)
136 #define CONFIG_CPU "__RISCV64__"
137 #elif defined(__riscv64__)
138 #define CONFIG_CPU "__riscv64__"
139 #elif defined(__riscv64)
140 #define CONFIG_CPU "__riscv64"
141 #elif defined(__ia64__)
142 #define CONFIG_CPU "__ia64__"
143 #else
144 /* let it go */
145 #endif
146 #endif
147 
148 /*
149  * Other stuff
150  */
151 
152 #ifndef CONFIG_SIZE
153 #ifdef __LP64__
154 #define CONFIG_SIZE "__LP64__"
155 #else
156 #define CONFIG_SIZE "__ILP32__"
157 #endif
158 #endif
159 
160 #ifndef CONFIG_BINFMT
161 #ifdef __ELF__
162 #define CONFIG_BINFMT "__ELF__"
163 #endif
164 #endif
165 
166 /*
167  * We are __TRADCPP__ by default, but if you want to masquerade as
168  * some other compiler this is a convenient place to change it.
169  */
170 
171 #ifndef CONFIG_COMPILER
172 #define CONFIG_COMPILER "__TRADCPP__"
173 #define CONFIG_COMPILER_MINOR "__TRADCPP_MINOR__"
174 #endif
175