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 #else 128 /* let it go */ 129 #endif 130 #endif 131 132 /* 133 * Other stuff 134 */ 135 136 #ifndef CONFIG_SIZE 137 #ifdef __LP64__ 138 #define CONFIG_SIZE "__LP64__" 139 #else 140 #define CONFIG_SIZE "__ILP32__" 141 #endif 142 #endif 143 144 #ifndef CONFIG_BINFMT 145 #ifdef __ELF__ 146 #define CONFIG_BINFMT "__ELF__" 147 #endif 148 #endif 149 150 /* 151 * We are __TRADCPP__ by default, but if you want to masquerade as 152 * some other compiler this is a convenient place to change it. 153 */ 154 155 #ifndef CONFIG_COMPILER 156 #define CONFIG_COMPILER "__TRADCPP__" 157 #define CONFIG_COMPILER_MINOR "__TRADCPP_MINOR__" 158 #endif 159