#!/bin/sh
-UNAME=`uname -a`
-LINUX=`expr "$UNAME" : '.*Linux.*'`
-DARWIN=`expr "$UNAME" : '.*Darwin.*'`
-SOLARIS=`expr "$UNAME" : '.*sun4u.*'`
-AIX=`expr "$UNAME" : '.*aix.*'`
+case "`uname`" in
+ Linux) os_linux=1 ;;
+ FreeBSD) os_freebsd=1 ;;
+ Darwin) os_darwin=1 ;;
+ SunOS) os_sunos=1 ;;
+ AIX) os_aix=1 ;;
+ *) echo "Unable to identify uname " `uname`
+ exit 1 ;;
+esac
+
+if [ "$os_linux" -o "$os_freebsd" ]; then
+ gcc $CFLAGS -fPIC -c $SOURCE -o $OBJECT
+ gcc -shared $OBJECT $LDFLAGS -o $SHARED_LIB
+elif [ "$os_darwin" ]; then
+ cc $CFLAGS -dynamic -c $SOURCE -o $OBJECT
+ ld -bundle /usr/lib/bundle1.o -flat_namespace -undefined suppress -o $BASE.dylib $OBJECT
+ ld -bundle /usr/lib/bundle1.o $LDFLAGS -flat_namespace -undefined suppress /usr/lib/libz.dylib -o z.dylib
+elif [ "$os_sunos" ]; then
+ cc $CFLAGS -KPIC -c $SOURCE -o $OBJECT
+ cc -G $OBJECT $LDFLAGS -o $SHARED_LIB
-if [ $LINUX -ne 0 ]; then
- gcc -fPIC -DPIC $CFLAGS -c $SOURCE -o $OBJECT
- gcc -shared $OBJECT $LDFLAGS -o $SHARED_LIB
- #gcc -shared -Wl,-soname,uffi-c-test-lib $OBJECT -o $SHARED_LIB
-elif [ $DARWIN -ne 0 ]; then
- cc -dynamic $CFLAGS -c $SOURCE -o $OBJECT
- ld -bundle /usr/lib/bundle1.o -flat_namespace -undefined suppress -o $BASE.dylib $OBJECT $LDFLAGS
- ld -bundle /usr/lib/bundle1.o -flat_namespace -undefined suppress /usr/lib/libz.dylib -o z.dylib
-elif [ $SOLARIS -ne 0 ]; then
- cc -KPIC $CFLAGS -c $SOURCE -o $OBJECT
- cc -G $OBJECT $LDFLAGS -o $SHARED_LIB
-elif [ $AIX -ne 0 ]; then
+elif [ "$os_aix" ]; then
gcc $CFLAGS -c -D_BSD -D_NO_PROTO -D_NONSTD_TYPES -D_MBI=void $SOURCE
- make_shared $LDFLAGS -o $SHARED_LIB $OBJECT
+ make_shared $LDFLAGS -o $SHARED_LIB $OBJECT
fi
-
+exit 0