Cosmetics
[llpp.git] / doocaml.sh
blobab4da30f21f28b45343db3093f287a4779e22723
1 #!/bin/sh
2 set -e
4 compiler="$1"
5 out="$2"
6 in="$3"
7 outdir="$(dirname "$out")"
8 srcdir="$(pwd -P)"
10 shift 3
12 dodep ()
14 (cd >/dev/null $srcdir && ocamldep.opt ${1+"$@"} $(basename $in)) | \
15 (sed >$objdir/$out.d \
16 -e "/.cmx/d" \
17 -e 's;\([[:alnum:]\.]\+\);'$outdir'/\1;g' \
18 -e '/:$/d')
21 test "x" = "x$pp" || {
22 ef=$(mktemp)
23 trap 'test -n "$ef" && rm -f "$ef"' 0
24 (cd >/dev/null $outdir && $compiler -pp "$pp" $incs 2>$ef "$@" -o $out $in)
25 rc=$?
26 if test "$rc" != 0; then
27 sed 1>&2 "s;File \"\([^\"]*\)\"\(.*\)$;File $in\2;" $ef
28 else
29 dodep -pp "$pp"
31 exit $rc
32 } && {
33 (cd >/dev/null $outdir && $compiler "$@" $incs -o $out $in) && dodep