#!/bin/sh -e v() { echo "$@" >&2 "$@" } echo_run() { echo "$@" >&2 eval "$@" } LIBB_BUILD=1 . ../.sh.conf . brace_env modules="str types buffer circbuf deq thunk list hash flat hat error process vec cstr rope sym cons path time m env find ccomplex proc priq timeout net vio io alloc util selector sched shuttle sock ccoro main darcs html http search hunk cgi qmath mime meta device" set -e brace_update_headers files="" for A in $modules; do for U in . $BRACE_USE; do f="$U/$A.b" if [ -e "$f" ]; then files="$files $f"; fi done done ( echo "use png.h" ; v cat $files | grep -v '^\(use\|export\) [^\.]*$' ) > .all.b v b2c < .all.b >.all.c UNAME=`uname | tr 'A-Z' 'a-z'` if [ -n "$MINGW" -o "$UNAME" = darwin ]; then SONAME_FULL=$PLAIN_SONAME else SONAME_FULL=$PLAIN_SONAME.$VERS fi LD_OPT= LD_FLAGS=-fPIC if [ -n "$MINGW" ]; then LD_OPT=--out-implib,${SONAME_FULL%.dll}.a, LD_FLAGS= fi if [ "$UNAME" != darwin ]; then LD_OPT=$LD_OPT-soname,$SONAME_FULL fi ( echo_run "$CC -shared $LDFLAGS -o $SONAME_FULL $CFLAGS $CINCLUDE .all.c $LDFLAGS $LDLIBS_PLAIN -Wl,$LD_OPT" 2>&1 || echo "FAILED" 2>&1 ) | tee libb.log grep 'FAILED' < libb.log && exit 1 chmod -x $SONAME_FULL if [ -z "$MINGW" -a "$UNAME" != darwin ]; then ln -sf $SONAME_FULL $PLAIN_SONAME.$MAJOR ; ln -sf $PLAIN_SONAME.$MAJOR $PLAIN_SONAME fi #rm .all.b .all.c .all.o