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