Native aware dep generation
[llpp.git] / doocaml.sh
blob16daf5a779c1ca053e441804f686304a710f7895
1 #!/bin/sh
2 set -e
4 compiler="$1"
5 out="$2"
6 in="$3"
7 ignext="$4"
8 outdir="$(dirname "$out")"
9 srcdir="$(pwd -P)"
11 shift 4
13 dodep ()
15 (cd >/dev/null $srcdir && ocamldep.opt ${1+"$@"} $(basename $in)) | \
16 (sed >$objdir/$out.d \
17 -e "/\($ignext\|:\$\)/d" \
18 -e 's;\([[:alnum:]\.]\+\);'$outdir'/\1;g')
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