ref: 7d2f32a9e5e2b27faa217fd3d9d2d2092f052861
dir: /Tools/mhsc.sh/
# Compile a file to combinators, then tack it on to the C evaluator # and compile the whole thing. # Assume everything has been installed in $prefix. # Depends on # $prefix/bin/mhseval # $prefix/lib/mhs/Tools/Compress.hs # $prefix/lib/mhs/Tools/Addcomb.hs # $prefix/lib/mhs/comb/mhs.comb # $prefix/lib/mhs/src/runtime/eval.c # $prefix/lib/mhs/lib/... cc=gcc here=`dirname $0` prefix="${prefix:=.}" prefixmhs="$prefix/lib/mhs" compflags="" output="" while [ `expr "X$1" : "X-"` = "2" ]; do if [ `expr "$1" : "-o"` = "2" ]; then output="$1" else compflags="$compflags $1" fi shift done input="$1" if [ -z "$input" ]; then echo "Usage: $0 [FLAGS] MODULE" exit 1 fi lib="-i$prefixmhs/lib" compile="$prefix/bin/mhseval +RTS -r$prefixmhs/comb/mhs.comb -RTS" compress="$compile -r $lib -i$prefixmhs/Tools Compress" addcomb="$compile -r $lib -i$prefixmhs/Tools Addcombs" tmp=${TMPDIR:=/tmp} tmpcomb=`mktemp $tmp/comb.XXXXXX` tmpeval=`mktemp $tmp/eval.XXXXXX.c` trap "rm -f $tmpcomb $tmpeval" EXIT ex="" $ex $compile $lib $compflags -o$tmpcomb "$input" $ex cp $prefixmhs/src/runtime/eval.c $tmpeval $ex $compress < $tmpcomb | $addcomb >> $tmpeval $ex $cc -O3 $tmpeval $output ##$ex rm -f $tmpcomb $tmpeval