| 1 | /* CPP Library. |
| 2 | Copyright (C) 1986-2025 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 | |