This reverts commit 8087d283c08033c61112cf7ce847433f92da5220. Bash that comes with macOS does not support associative arrays.
Unified · Split
| @@ -40,6 +40,7 @@ muinc="-I $mudir/include -I $mudir/thirdparty/freetype/include" · 39 unmodified lines | ||
| 40 | 40 | test -d "$mudir" || die muPDF not found, consult $(dirname $0)/BUILDING |
| 41 | 41 | |
| 42 | 42 | mkdir -p $outd/{$wsid,lablGL} |
| 43 | +:>$outd/ordered | |
| 43 | 44 | |
| 44 | 45 | isfresh() { test -r $1.past && test "$(<$1.past)" = "$2"; } |
| 45 | 46 | |
| @@ -137,14 +138,10 @@ done < <(ocamlc -config) · 91 unmodified lines | ||
| 137 | 138 | |
| 138 | 139 | read cvers < <($ccomp --version) |
| 139 | 140 | |
| 140 | −declare -A modset | |
| 141 | −modord= | |
| 142 | − | |
| 143 | 141 | bocaml1() { |
| 144 | − if test -z "${modset[$3]-}"; then | |
| 142 | + if ! grep -q "$3" $outd/ordered; then | |
| 145 | 143 | bocaml2 "$@" |
| 146 | − modset[$3]=+ | |
| 147 | − test "${3%%.cmi}" != "$3" || modord="$modord $3" | |
| 144 | + echo "$3" >>"$outd/ordered" | |
| 148 | 145 | fi |
| 149 | 146 | } |
| 150 | 147 | |
| @@ -287,8 +284,9 @@ else · 136 unmodified lines | ||
| 287 | 284 | bocamlc wsi/x11/xlib.o |
| 288 | 285 | fi |
| 289 | 286 | |
| 290 | −cmd="ocamlc -custom $libs -o $outd/llpp $cobjs $modord -cclib \"$clibs\"" | |
| 291 | −keycmd="digest $outd/llpp $cobjs $modord $mulibs" | |
| 287 | +ord=$(grep -v \.cmi $outd/ordered) | |
| 288 | +cmd="ocamlc -custom $libs -o $outd/llpp $cobjs $(echo $ord) -cclib \"$clibs\"" | |
| 289 | +keycmd="digest $outd/llpp $cobjs $ord $mulibs" | |
| 292 | 290 | isfresh "$outd/llpp" "$cmd$(eval $keycmd)" || { |
| 293 | 291 | echo linking $outd/llpp |
| 294 | 292 | eval "$cmd" || die "$cmd failed" |