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