aboutsummaryrefslogtreecommitdiff
path: root/gcc/configure.ac
diff options
context:
space:
mode:
authorRichard Sandiford <richard@codesourcery.com>2007-05-16 06:43:36 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2007-05-16 06:43:36 +0000
commit4ef2b6ed338dc91e1143417181f978772d54bae9 (patch)
tree5f4fe514ca446c48467629008ad6d9d9ab87fc10 /gcc/configure.ac
parent7433458d871f6bfe2169b9d7d04fec64bb142924 (diff)
downloadgcc-4ef2b6ed338dc91e1143417181f978772d54bae9.zip
gcc-4ef2b6ed338dc91e1143417181f978772d54bae9.tar.gz
gcc-4ef2b6ed338dc91e1143417181f978772d54bae9.tar.bz2
revert: configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
gcc/ Revert: 2007-05-12 Richard Sandiford <richard@codesourcery.com> * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix). (gcc_tooldir): Likewise. * configure: Regenerate. * Makefile.in (libsubdir_to_prefix): New variable, based on the old configure.ac gcc_tooldir setting. (prefix_to_exec_prefix): New variable. (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix) rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX. From-SVN: r124760
Diffstat (limited to 'gcc/configure.ac')
-rw-r--r--gcc/configure.ac41
1 files changed, 39 insertions, 2 deletions
diff --git a/gcc/configure.ac b/gcc/configure.ac
index f5e9c3e..708ce16 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -141,7 +141,9 @@ if test x${gcc_gxx_include_dir} = x; then
if test x$host != x$target; then
libstdcxx_incdir="$target_alias/$libstdcxx_incdir"
fi
- gcc_gxx_include_dir="\$(libsubdir)/\$(libsubdir_to_prefix)$libstdcxx_incdir"
+changequote(<<, >>)dnl
+ gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/$libstdcxx_incdir"
+changequote([, ])dnl
fi
fi
@@ -3679,7 +3681,42 @@ if test "x$subdirs" != x; then
fi
echo "source ${srcdir}/gdbinit.in" >> .gdbinit
-gcc_tooldir='$(libsubdir)/$(libsubdir_to_prefix)$(target_noncanonical)'
+# If $(exec_prefix) exists and is not the same as $(prefix), then compute an
+# absolute path for gcc_tooldir based on inserting the number of up-directory
+# movements required to get from $(exec_prefix) to $(prefix) into the basic
+# $(libsubdir)/@(unlibsubdir) based path.
+# Don't set gcc_tooldir to tooldir since that's only passed in by the toplevel
+# make and thus we'd get different behavior depending on where we built the
+# sources.
+if test x$exec_prefix = xNONE -o x$exec_prefix = x$prefix; then
+ gcc_tooldir='$(libsubdir)/$(unlibsubdir)/../$(target_noncanonical)'
+else
+changequote(<<, >>)dnl
+# An explanation of the sed strings:
+# -e 's|^\$(prefix)||' matches and eliminates 'prefix' from 'exec_prefix'
+# -e 's|/$||' match a trailing forward slash and eliminates it
+# -e 's|^[^/]|/|' forces the string to start with a forward slash (*)
+# -e 's|/[^/]*|../|g' replaces each occurrence of /<directory> with ../
+#
+# (*) Note this pattern overwrites the first character of the string
+# with a forward slash if one is not already present. This is not a
+# problem because the exact names of the sub-directories concerned is
+# unimportant, just the number of them matters.
+#
+# The practical upshot of these patterns is like this:
+#
+# prefix exec_prefix result
+# ------ ----------- ------
+# /foo /foo/bar ../
+# /foo/ /foo/bar ../
+# /foo /foo/bar/ ../
+# /foo/ /foo/bar/ ../
+# /foo /foo/bar/ugg ../../
+#
+ dollar='$$'
+ gcc_tooldir="\$(libsubdir)/\$(unlibsubdir)/\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/\$(dollar)||' -e 's|^[^/]|/|' -e 's|/[^/]*|../|g'\`\$(target_noncanonical)"
+changequote([, ])dnl
+fi
AC_SUBST(gcc_tooldir)
AC_SUBST(dollar)