190075Sobrien/* CPP Library.
290075Sobrien   Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
3169689Skan   1999, 2000, 2003, 2004, 2006 Free Software Foundation, Inc.
490075Sobrien   Contributed by Per Bothner, 1994-95.
590075Sobrien   Based on CCCP program by Paul Rubin, June 1986
690075Sobrien   Adapted to ANSI C, Richard Stallman, Jan 1987
790075Sobrien
890075SobrienThis program is free software; you can redistribute it and/or modify it
990075Sobrienunder the terms of the GNU General Public License as published by the
1090075SobrienFree Software Foundation; either version 2, or (at your option) any
1190075Sobrienlater version.
1290075Sobrien
1390075SobrienThis program is distributed in the hope that it will be useful,
1490075Sobrienbut WITHOUT ANY WARRANTY; without even the implied warranty of
1590075SobrienMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1690075SobrienGNU General Public License for more details.
1790075Sobrien
1890075SobrienYou should have received a copy of the GNU General Public License
1990075Sobrienalong with this program; if not, write to the Free Software
20169689SkanFoundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
2190075Sobrien
2290075Sobrien#include "config.h"
2390075Sobrien#include "system.h"
24132718Skan#include "coretypes.h"
25132718Skan#include "tm.h"
2690075Sobrien#include "cppdefault.h"
2790075Sobrien
28132718Skan#ifndef STANDARD_INCLUDE_DIR
29132718Skan#define STANDARD_INCLUDE_DIR "/usr/include"
30132718Skan#endif
31132718Skan
32132718Skan#ifndef STANDARD_INCLUDE_COMPONENT
33132718Skan#define STANDARD_INCLUDE_COMPONENT 0
34132718Skan#endif
35132718Skan
36132718Skan#if defined (CROSS_COMPILE) && !defined (TARGET_SYSTEM_ROOT)
37132718Skan# undef LOCAL_INCLUDE_DIR
38132718Skan# undef SYSTEM_INCLUDE_DIR
39132718Skan# undef STANDARD_INCLUDE_DIR
40132718Skan#else
41132718Skan# undef CROSS_INCLUDE_DIR
42132718Skan#endif
43132718Skan
4490075Sobrienconst struct default_include cpp_include_defaults[]
4590075Sobrien#ifdef INCLUDE_DEFAULTS
4690075Sobrien= INCLUDE_DEFAULTS;
4790075Sobrien#else
4890075Sobrien= {
4990075Sobrien#ifdef GPLUSPLUS_INCLUDE_DIR
5090075Sobrien    /* Pick up GNU C++ generic include files.  */
51169689Skan    { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 0, 0 },
5290075Sobrien#endif
5390075Sobrien#ifdef GPLUSPLUS_TOOL_INCLUDE_DIR
5490075Sobrien    /* Pick up GNU C++ target-dependent include files.  */
55169689Skan    { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0, 1 },
5690075Sobrien#endif
5790075Sobrien#ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR
5890075Sobrien    /* Pick up GNU C++ backward and deprecated include files.  */
59169689Skan    { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 0, 0 },
6090075Sobrien#endif
6190075Sobrien#ifdef LOCAL_INCLUDE_DIR
6290075Sobrien    /* /usr/local/include comes before the fixincluded header files.  */
63169689Skan    { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
6490075Sobrien#endif
6590075Sobrien#ifdef PREFIX_INCLUDE_DIR
66169689Skan    { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0 },
6790075Sobrien#endif
6890075Sobrien#ifdef GCC_INCLUDE_DIR
6990075Sobrien    /* This is the dir for fixincludes and for gcc's private headers.  */
70169689Skan    { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
7190075Sobrien#endif
7290075Sobrien#ifdef CROSS_INCLUDE_DIR
7390075Sobrien    /* One place the target system's headers might be.  */
74169689Skan    { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
7590075Sobrien#endif
7690075Sobrien#ifdef TOOL_INCLUDE_DIR
7790075Sobrien    /* Another place the target system's headers might be.  */
78169689Skan    { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 },
7990075Sobrien#endif
8090075Sobrien#ifdef SYSTEM_INCLUDE_DIR
8190075Sobrien    /* Some systems have an extra dir of include files.  */
82169689Skan    { SYSTEM_INCLUDE_DIR, 0, 0, 0, 1, 0 },
8390075Sobrien#endif
8490075Sobrien#ifdef STANDARD_INCLUDE_DIR
8590075Sobrien    /* /usr/include comes dead last.  */
86169689Skan    { STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT, 0, 0, 1, 0 },
8790075Sobrien#endif
88169689Skan    { 0, 0, 0, 0, 0, 0 }
8990075Sobrien  };
9090075Sobrien#endif /* no INCLUDE_DEFAULTS */
9190075Sobrien
9290075Sobrien#ifdef GCC_INCLUDE_DIR
9390075Sobrienconst char cpp_GCC_INCLUDE_DIR[] = GCC_INCLUDE_DIR;
9490075Sobrienconst size_t cpp_GCC_INCLUDE_DIR_len = sizeof GCC_INCLUDE_DIR - 8;
9590075Sobrien#else
9690075Sobrienconst char cpp_GCC_INCLUDE_DIR[] = "";
9790075Sobrienconst size_t cpp_GCC_INCLUDE_DIR_len = 0;
9890075Sobrien#endif
99