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