summaryrefslogtreecommitdiff
path: root/binary/solaris/build-gcc
diff options
context:
space:
mode:
Diffstat (limited to 'binary/solaris/build-gcc')
-rwxr-xr-xbinary/solaris/build-gcc69
1 files changed, 69 insertions, 0 deletions
diff --git a/binary/solaris/build-gcc b/binary/solaris/build-gcc
new file mode 100755
index 0000000..2258ba0
--- /dev/null
+++ b/binary/solaris/build-gcc
@@ -0,0 +1,69 @@
+#! /usr/bin/env bash
+
+# Create GCC compiler Solaris distribution.
+#
+# -rebuild
+# -arch
+#
+trap 'exit 1' ERR
+
+function error ()
+{
+ echo "$*" 1>&2
+}
+
+arhc=i686-solaris2.10
+rebuild=n
+
+while [ $# -gt 0 ]; do
+ case $1 in
+ -rebuild)
+ rebuild=y
+ shift
+ ;;
+ -arch)
+ shift
+ arch=$1
+ shift
+ ;;
+ *)
+ error "unknown option: $1"
+ exit 1
+ ;;
+ esac
+done
+
+# Make sure we have objdump.
+#
+objdump --version 2>/dev/null 1>&2 || {
+ error "no objdump can be found"
+ error "consider: ln -s /usr/sfw/bin/gobjdump /usr/local/bin/objdump"
+ exit 1
+}
+
+cpu=`echo $arch | sed -e 's/^\([^-]*\)-.*$/\1/'`
+
+mkdir -p gcc-build
+
+# Clean everything up if we are rebuilding.
+#
+if [ $rebuild = y ]; then
+ rm -rf gcc-build/*
+ rm -rf /$arch/*
+fi
+
+# Build gcc
+#
+cd gcc-build
+
+if [ $rebuild = y ]; then
+ ../gcc-configure $arch $cpu
+fi
+
+# SPARC gas is buggy and cannot handle -g.
+#
+make -j 2
+make install
+make -C $arch/libstdc++-v3 install-strip
+
+cd ..