Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | #! /usr/bin/env bash |
2 | ||
3 | ML=../../build/bin/mlton | |
4 | ||
5 | O[0]='-default-ann' | |
6 | O[1]='allowFFI true' | |
7 | O[2]='-link-opt' | |
8 | O[3]='-L.' | |
9 | ||
10 | LIB="-link-opt -l" | |
11 | ||
12 | # Enable finding libraries locally | |
13 | export LD_LIBRARY_PATH=. | |
14 | ||
15 | set -ex | |
16 | ||
17 | # Compile DSO #1 | |
18 | $ML "${O[@]}" "$@" -format libarchive libm1.sml libm1.c | |
19 | $ML "${O[@]}" "$@" ${LIB}m1 -format library libm2.sml libm2.c | |
20 | ||
21 | # Compile DSO #2 | |
22 | $ML "${O[@]}" "$@" -format libarchive libm3.sml libm3.c | |
23 | $ML "${O[@]}" "$@" ${LIB}m3 ${LIB}m2 -format library libm4.sml libm4.c | |
24 | ||
25 | # Compile executable | |
26 | $ML "${O[@]}" "$@" -format archive libm5.sml libm5.c | |
27 | $ML "${O[@]}" "$@" ${LIB}m5 ${LIB}m4 -format executable \ | |
28 | -default-ann 'allowFFI true' -export-header check.h check.sml check.c | |
29 | ||
30 | # Check that symbols resolved correctly | |
31 | ./check | sed '' > check.log | |
32 | ||
33 | # Confirm expected output | |
34 | set +x | |
35 | diff -u check.ok check.log | |
36 | echo '********** PASS:' "$@" '**********' | |
37 | rm -f check.log |