diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 103bc2c9bc9c9572626de02d30d19860940084f0..15c1e610be0a5588e188378b7d01adb7e5fecf64 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2001-09-29  Per Bothner  <per@bothner.com>
+
+	* cppdefault.c (cpp_include_defaults):  Also search PREFIX_INCLUDE_DIR.
+	* Makefile.in (includedir):  Rename to local_includedir.
+	(includedir):  Define as $(prefix)/include.
+	* config.in (PREFIX_INCLUDE_DIR):  New variable.
+	* configure.in (PREFIX_INCLUDE_DIR):  Test for new variable.
+
 2001-09-29  Bernd Schmidt  <bernds@redhat.com>
 
 	* config/i386/i386.c (init_mmx_sse_builtins): Fix type of storelps and
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 5cc264cba2949e6ac9740adf9fe6b9addff4c31e..ff2c58fab3e3e3b8fd9cc79c6ff95f9d56245eac 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -306,7 +306,8 @@ build_tooldir = $(exec_prefix)/$(target_alias)
 # Directory in which the compiler finds target-independent g++ includes.
 gcc_gxx_include_dir = @gcc_gxx_include_dir@
 # Directory to search for site-specific includes.
-includedir = $(local_prefix)/include
+local_includedir = $(local_prefix)/include
+includedir = $(prefix)/include
 # where the info files go
 infodir = @infodir@
 # Where cpp should go besides $prefix/bin if necessary
@@ -1983,7 +1984,7 @@ PREPROCESSOR_DEFINES = \
   -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
   -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_alias)\" \
   -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
-  -DLOCAL_INCLUDE_DIR=\"$(includedir)\" \
+  -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \
   -DCROSS_INCLUDE_DIR=\"$(gcc_tooldir)/sys-include\" \
   -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\"
 
diff --git a/gcc/config.in b/gcc/config.in
index 7392a9d0b6e20055162c89d2a284f5562b402902..cc912ab3b43330fff826df3befdf06460a583380 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -509,6 +509,8 @@
 /* Define 0/1 to force the choice for exception handling model. */
 #undef CONFIG_SJLJ_EXCEPTIONS
 
+/* Define if cpp should also search $prefix/include. */
+#undef PREFIX_INCLUDE_DIR
 
 /* Bison unconditionally undefines `const' if neither `__STDC__' nor
    __cplusplus are defined.  That's a problem since we use `const' in
diff --git a/gcc/configure b/gcc/configure
index 2f5a3ef497a0572c7882ec3768e20d8759da5d88..8996049dc8997e4165390f025105bf12742ed799 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -2057,7 +2057,7 @@ EOF
 fi
 
 # Find some useful tools
-for ac_prog in mawk gawk nawk awk
+for ac_prog in gawk mawk nawk awk
 do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -7426,6 +7426,13 @@ EOF
 fi
 echo "$ac_t""$gcc_cv_as_dwarf2_debug_line" 1>&6
 
+if test "$prefix" != "/usr" && test "$prefix" != "/usr/local" ; then
+  cat >> confdefs.h <<EOF
+#define PREFIX_INCLUDE_DIR "$prefix/include"
+EOF
+
+fi
+
 # Figure out what language subdirectories are present.
 # Look if the user specified --enable-languages="..."; if not, use
 # the environment variable $LANGUAGES if defined. $LANGUAGES might
@@ -7556,7 +7563,7 @@ fi
 
 
 echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:7560: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:7567: checking whether to enable maintainer-specific portions of Makefiles" >&5
     # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
 if test "${enable_maintainer_mode+set}" = set; then
   enableval="$enable_maintainer_mode"
diff --git a/gcc/configure.in b/gcc/configure.in
index 6e120878fb52c31489cb775c016a1513461405c6..384aaaa7424e80c709e46b55e9bcb80228981cf9 100644
--- a/gcc/configure.in
+++ b/gcc/configure.in
@@ -1696,6 +1696,10 @@ if test x"$gcc_cv_as_dwarf2_debug_line" = xyes; then
 fi
 AC_MSG_RESULT($gcc_cv_as_dwarf2_debug_line)
 
+if test "$prefix" != "/usr" && test "$prefix" != "/usr/local" ; then
+  AC_DEFINE_UNQUOTED(PREFIX_INCLUDE_DIR, "$prefix/include")
+fi
+
 # Figure out what language subdirectories are present.
 # Look if the user specified --enable-languages="..."; if not, use
 # the environment variable $LANGUAGES if defined. $LANGUAGES might
diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c
index 328971ba9014ff5eceefffa3aeb41f0b370927d9..81ee564ec7eec1af59ed6b538c20a3d457c835ae 100644
--- a/gcc/cppdefault.c
+++ b/gcc/cppdefault.c
@@ -47,6 +47,9 @@ const struct default_include cpp_include_defaults[]
     /* /usr/local/include comes before the fixincluded header files.  */
     { LOCAL_INCLUDE_DIR, 0, 0, 1 },
 #endif
+#ifdef PREFIX_INCLUDE_DIR
+    { PREFIX_INCLUDE_DIR, 0, 0, 1 },
+#endif
 #ifdef GCC_INCLUDE_DIR
     /* This is the dir for fixincludes and for gcc's private headers.  */
     { GCC_INCLUDE_DIR, "GCC", 0, 0 },