#!/bin/sh # fixghc: a small script to patch up the -syslib changes between # versions 4.04, 4.06, 4.08, and 5.xx of ghc. case $# in 0) exit 1;; esac ghcversion=$1 shift # We need a working `echo' command: Solaris2.6 and HP/UX may not have it. case `echo -n hello | wc -c | ( read n ; echo $n )` in 5) echon () { echo -n "$@"; } ;; *) LOCAL=${LOCAL-`dirname $0`} if [ -x $LOCAL/echo ] then echon () { $LOCAL/echo -n "$@"; } else echon () { echo "$@"; } fi ;; esac # Versions of ghc > 6.0 need a hack to make the version number larger. if [ $ghcversion -le 100 ] then ghcversion=${ghcversion}0 fi # We permit arguments to arrive in any format (4.04, 4.06, 4.08, 5.00, 5.04), # and translate to the format specified by the first arg. if [ $ghcversion -le 405 ] then while test "'$1'" != "''" do case $1 in -syslib|-package) shift case $1 in lang) echon " -syslib exts";; text) echon " -syslib misc";; base) ;; *) echon " -syslib $1" ;; esac ;; *) echon " $1" ;; esac shift done echo exit 0 fi if [ $ghcversion -gt 405 -a $ghcversion -lt 408 ] then while test "'$1'" != "''" do case $1 in -syslib|-package) shift case $1 in exts) echon " -syslib lang";; misc) ;; base) ;; *) echon " -syslib $1" ;; esac ;; *) echon " $1" ;; esac shift done echo exit 0 fi if [ $ghcversion -ge 408 -a $ghcversion -lt 504 ] then while test "'$1'" != "''" do case $1 in -syslib) shift case $1 in exts) echon " -package lang";; misc) ;; base) ;; *) echon " -package $1" ;; esac ;; -package) shift case $1 in base) ;; haskell98) ;; readline) ;; *) echon " -package $1" ;; esac ;; *) echon " $1" ;; esac shift done echo exit 0 fi if [ $ghcversion -ge 504 -a $ghcversion -lt 605 ] then while test "'$1'" != "''" do case $1 in -syslib) shift case $1 in exts) echon " -package lang";; misc) ;; *) echon " -package $1" ;; esac ;; *) echon " $1" ;; esac shift done echo exit 0 fi if [ $ghcversion -ge 605 ] then while test "'$1'" != "''" do case $1 in -syslib|-package) shift case $1 in exts) ;; misc) ;; util) ;; lang) ;; text) ;; *) echon " -package $1" ;; esac ;; *) echon " $1" ;; esac shift done echo exit 0 fi # stand-by default case echo "$@" exit 0