Import Upstream version 20180207
[hcoop/debian/mlton.git] / regression / library / library-test
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