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
34struct 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
57extern const struct default_include cpp_include_defaults[];
58extern const char cpp_GCC_INCLUDE_DIR[];
59extern 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=. */
63extern const char cpp_PREFIX[];
64/* The length of the configure-time prefix. */
65extern const size_t cpp_PREFIX_len;
66/* The configure-time execution prefix. This is typically the lib/gcc
67 subdirectory of cpp_PREFIX. */
68extern const char cpp_EXEC_PREFIX[];
69/* The run-time execution prefix. This is typically the lib/gcc
70 subdirectory of the actual installation. */
71extern const char *gcc_exec_prefix;
72
73/* Return true if the toolchain is relocated. */
74bool cpp_relocated (void);
75
76#endif /* ! GCC_CPPDEFAULT_H */
77

source code of gcc/cppdefault.h