r11056: 28 Aug 2006 Kevin Rosenberg <kevin@rosenberg.net>
[clsql.git] / uffi / make.sh
index f239372de3b8d292d33c5eb933042be5b637de16..746a86268e7d62cbaf32343cc590243a90a6042e 100644 (file)
@@ -1,26 +1,33 @@
 #!/bin/sh
 
-UNAME=`uname -a`
-LINUX=`expr "$UNAME" : '.*Linux.*'`
-DARWIN=`expr "$UNAME" : '.*Darwin.*'`
-SOLARIS=`expr "$UNAME" : '.*sun4u.*'`
-AIX=`expr "$UNAME" : '.*aix.*'`
-
-
-if [ $LINUX -ne 0 ]; then
+case "`uname`" in
+    Linux) os_linux=1 ;;
+    GNU) os_linux=1 ;;
+    FreeBSD) os_freebsd=1 ;;
+    NetBSD) os_netbsd=1 ;;
+    GNU/kFreeBSD) os_gnukfreebsd=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" -o "$os_gnukfreebsd" -o "$os_netbsd" ]; then
     gcc -fPIC -DPIC -c $SOURCE -o $OBJECT
-    gcc -shared $OBJECT -o $SHARED_LIB
-    #gcc -shared -Wl,-soname,uffi-c-test-lib $OBJECT -o $SHARED_LIB
-elif [ $DARWIN -ne 0 ]; then
+    ld -shared -soname=$BASE $LDFLAGS $OBJECT -o $SHARED_LIB
+elif [ "$os_darwin" ]; then
     cc -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 -flat_namespace -undefined suppress /usr/lib/libz.dylib -o z.dylib
-elif [ $SOLARIS -ne 0 ]; then
+
+elif [ "$os_sunos" ]; then
     cc -KPIC -c $SOURCE -o $OBJECT
     cc -G $OBJECT -o $SHARED_LIB
-elif [ $AIX -ne 0 ]; then
+
+elif [ "$os_aix" ]; then
     gcc -c -D_BSD -D_NO_PROTO -D_NONSTD_TYPES -D_MBI=void $SOURCE
     make_shared -o $SHARED_LIB $OBJECT
 fi
 
-
+exit 0