1 /* CPP Library. 2 Copyright (C) 1986-2022 Free Software Foundation, Inc. 3 Contributed by Per Bothner, 1994-95. 4 Based on CCCP program by Paul Rubin, June 1986 5 Adapted to ANSI C, Richard Stallman, Jan 1987 6 7 This program is free software; you can redistribute it and/or modify it 8 under the terms of the GNU General Public License as published by the 9 Free Software Foundation; either version 3, or (at your option) any 10 later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program; see the file COPYING3. If not see 19 <http://www.gnu.org/licenses/>. */ 20 21 #ifndef GCC_CPPDEFAULT_H 22 #define GCC_CPPDEFAULT_H 23 24 /* This is the default list of directories to search for include files. 25 It may be overridden by the various -I and -ixxx options. 26 27 #include "file" looks in the same directory as the current file, 28 then this list. 29 #include <file> just looks in this list. 30 31 All these directories are treated as `system' include directories 32 (they are not subject to pedantic warnings in some cases). */ 33 34 struct default_include 35 { 36 const char *const fname; /* The name of the directory. */ 37 const char *const component; /* The component containing the directory 38 (see update_path in prefix.cc) */ 39 const char cplusplus; /* When this is non-zero, we should only 40 consider this if we're compiling C++. 41 When the -stdlib option is configured, this 42 may take values greater than 1 to indicate 43 which C++ standard library should be 44 used. */ 45 const char cxx_aware; /* Includes in this directory don't need to 46 be wrapped in extern "C" when compiling 47 C++. */ 48 const char add_sysroot; /* FNAME should be prefixed by 49 cpp_SYSROOT. */ 50 const char multilib; /* FNAME should have appended 51 - the multilib path specified with -imultilib 52 when set to 1, 53 - the multiarch path specified with 54 -imultiarch, when set to 2. */ 55 }; 56 57 extern const struct default_include cpp_include_defaults[]; 58 extern const char cpp_GCC_INCLUDE_DIR[]; 59 extern const size_t cpp_GCC_INCLUDE_DIR_len; 60 61 /* The configure-time prefix, i.e., the value supplied as the argument 62 to --prefix=. */ 63 extern const char cpp_PREFIX[]; 64 /* The length of the configure-time prefix. */ 65 extern const size_t cpp_PREFIX_len; 66 /* The configure-time execution prefix. This is typically the lib/gcc 67 subdirectory of cpp_PREFIX. */ 68 extern const char cpp_EXEC_PREFIX[]; 69 /* The run-time execution prefix. This is typically the lib/gcc 70 subdirectory of the actual installation. */ 71 extern const char *gcc_exec_prefix; 72 73 /* Return true if the toolchain is relocated. */ 74 bool cpp_relocated (void); 75 76 #endif /* ! GCC_CPPDEFAULT_H */ 77