summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Schlemmer <azarah@gentoo.org>2002-10-27 22:38:11 +0000
committerMartin Schlemmer <azarah@gentoo.org>2002-10-27 22:38:11 +0000
commitcf7f74c6095789776c77302d7e4ef61f71f0419d (patch)
treed3455d8f143efd25c075b93ae75b0a3f0a8c6550
parentdrop script; archived for posterity only (diff)
downloadgcc-config-1.0.tar.gz
gcc-config-1.0.tar.bz2
gcc-config-1.0.zip
initial versionv1.0
-rwxr-xr-xgcc-config98
1 files changed, 98 insertions, 0 deletions
diff --git a/gcc-config b/gcc-config
new file mode 100755
index 0000000..679be7a
--- /dev/null
+++ b/gcc-config
@@ -0,0 +1,98 @@
+#!/bin/bash
+# Copyright 1999-2002 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License
+# Author: Martin Schlemmer <azarah@gentoo.org>
+# $Header: gentoo-x86/sys-devel/gcc-config/files/gcc-config-1.0,v 1.1 2002/10/27 22:38:11 azarah Exp $
+
+
+source /etc/init.d/functions.sh || {
+ echo "$0: Could not source /etc/init.d/functions.sh!"
+ exit 1
+}
+
+if [ "$(id -u)" -ne 0 ]
+then
+ eerror "$0: Must be root."
+ exit 1
+fi
+
+usage() {
+cat << "FOO"
+usage: gcc-config <CHOST>-<gcc version>
+
+FOO
+ exit 1
+}
+
+if [ "$#" -ne 1 ] && [ "$#" -eq 2 -a "$1" != "--use-old" ]
+then
+ usage
+fi
+
+GCC_COMP=""
+
+# Only use specified compiler if one is not already selected.
+if [ "$1" = "--use-old" ]
+then
+ shift
+
+ if [ -f /etc/env.d/gcc/config ]
+ then
+ source /etc/env.d/gcc/config
+ if [ -n "${CURRENT}" ]
+ then
+ GCC_COMP="${CURRENT}"
+ fi
+ fi
+
+ if [ -z "${GCC_COMP}" ]
+ then
+ GCC_COMP="$1"
+ fi
+else
+ GCC_COMP="$1"
+fi
+if [ ! -d /usr/lib/gcc-lib/${GCC_COMP%-*}/${GCC_COMP##*-} -o \
+ ! -f /etc/env.d/gcc/${GCC_COMP} ]
+then
+ usage
+else
+ ebegin "Switching to ${GCC_COMP} compiler"
+
+ # Sourcing /etc/env.d/gcc/${GCC_COMP} is going to mess up
+ # PATH among things...
+ CP="$(which cp)"
+ RM="$(which rm)"
+ MV="$(which mv)"
+ LN="$(which ln)"
+ ENV_UPDATE="$(which env-update)"
+
+ source /etc/env.d/gcc/${GCC_COMP}
+
+ ${CP} -f /etc/env.d/gcc/${GCC_COMP} /etc/env.d/05gcc
+
+ if [ -d /usr/include/${STDCXX_INCDIR} -a ! -L /usr/include/${STDCXX_INCDIR} ]
+ then
+ ${MV} /usr/include/${STDCXX_INCDIR} /usr/include/${STDCXX_INCDIR}.orig
+ elif [ -L /usr/include/${STDCXX_INCDIR} ]
+ then
+ ${RM} -f /usr/include/${STDCXX_INCDIR}
+ fi
+ ${LN} -snf ..${LDPATH/\/usr}/include/${STDCXX_INCDIR} /usr/include/${STDCXX_INCDIR}
+
+ [ -L /lib/cpp -o -f /lib/cpp ] && ${RM} -f /lib/cpp
+ ${LN} -snf ..${PATH}/cpp /lib/cpp
+ [ -L /usr/bin/cc -o -f /usr/bin/cc ] && ${RM} -f /usr/bin/cc
+ ${LN} -snf ../..${PATH}/gcc /usr/bin/cc
+
+ echo "CURRENT=${GCC_COMP}" > /etc/env.d/gcc/config
+
+ source /etc/profile
+
+ ${ENV_UPDATE} &> /dev/null
+
+ eend 0
+fi
+
+
+# vim:ts=4