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