migrated NDOF code from soc-2010-merwin, SpaceNavigator now works on Mac blender
[blender-staging.git] / release / plugins / bmake
1 #!/bin/sh
2 #
3 # $Id$
4 #
5 # ***** BEGIN GPL LICENSE BLOCK *****
6 #
7 # This program is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU General Public License
9 # as published by the Free Software Foundation; either version 2
10 # of the License, or (at your option) any later version.
11 #
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 # GNU General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, write to the Free Software Foundation,
19 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 #
21 # The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
22 # All rights reserved.
23 #
24 # The Original Code is: all of this file.
25 #
26 # Contributor(s): none yet.
27 #
28 # ***** END GPL LICENSE BLOCK *****
29
30 # detect the system
31
32 UNAME=`uname`
33 EXT="so";
34 if ( test "WIN32" = "$TARGET" ) then
35         CC="gcc";
36         CFLAGS="-funsigned-char -O2";
37
38         LD="ld";
39         LDFLAGS="-Bshareable -lm";
40 elif ( test $UNAME = "IRIX64" -o $UNAME = "IRIX" ) then
41         CC="cc";
42         CFLAGS="-KPIC -O2 -mips3";
43
44         LD="ld";
45         LDFLAGS="-shared -U";   
46 elif ( test $UNAME = "FreeBSD" ) then
47         CC="gcc";
48         CFLAGS="-fPIC -funsigned-char -O2";
49
50         LD="ld";
51         LDFLAGS="-Bshareable";
52 elif ( test $UNAME = "OpenBSD" ) then
53         CC="gcc";
54         CFLAGS="-fPIC -funsigned-char -O2";
55
56         LD="ld";
57         LDFLAGS="-Bshareable";
58 elif ( test $UNAME = "Linux" ) then
59         CC="gcc";
60         CFLAGS="-fPIC -funsigned-char -O2";
61
62         LD="ld";
63         LDFLAGS="-Bshareable";
64 elif ( test $UNAME = "SunOS" ) then
65         CC="cc";
66         CFLAGS="-O";
67
68         LD="ld";
69         LDFLAGS="-r";
70 elif ( test $UNAME = "Darwin" ) then
71         CC="cc";
72         CFLAGS="-fPIC -funsigned-char -O2 -fno-common";
73         LD="cc";
74         LDFLAGS="-flat_namespace -bundle -bundle_loader ../../blender.app/Contents/MacOS/blender -lm";
75         EXT="so";
76 fi
77
78 if ( test "$#" = "1" ) then 
79         if ( test -f $1 ) then
80                 BASE_FILE=`echo $1 | sed -e "1 s/\.c//g"`;
81         else 
82                 BASE_FILE=$1;
83         fi
84
85         CFILE="$BASE_FILE.c"
86         OFILE="$BASE_FILE.o"
87         SOFILE="$BASE_FILE.$EXT"
88 else 
89         if ( test -f $1$2 ) then
90                 BASE_FILE=`echo $2 | sed -e "1 s/\.c//g"`;
91         else 
92                 BASE_FILE=$2;
93         fi
94
95         CFILE="$1$BASE_FILE.c"
96         if (test "$TARGET" = "WIN32" ) then
97                 DLLFILE="$BASE_FILE.dll";
98         fi
99         OFILE="$BASE_FILE.o"
100         SOFILE="$BASE_FILE.$EXT"
101 fi
102
103 INCLUDES=
104 if ( test -f plugin.h ) then
105         INCLUDES=-I.;
106 elif ( test -f "include/plugin.h" ) then
107         INCLUDES=-Iinclude/
108 elif ( test -f "../plugin.h" ) then
109         INCLUDES=-I..;
110 elif ( test -f "../include/plugin.h" ) then
111         INCLUDES=-I../include
112 else 
113         echo "Couldn't find plugin.h";
114         exit;
115 fi
116
117 LIBM=`fgrep "#include <math.h>" $CFILE`
118 LIBC=`fgrep "#include <std" $CFILE`
119
120 LIBS=
121
122 if ( test -n "$LIBM" ) then
123         LIBS="$LIBS -lm"; 
124 fi
125 if ( test -n "$LIBC" ) then 
126         LIBS="$LIBS -lc"; 
127 fi
128
129 echo "$CC $CFLAGS -c $CFILE $INCLUDES"
130 $CC $CFLAGS -c $CFILE $INCLUDES
131
132 if ( test "$?" != "0") then 
133         echo "Compile error"; 
134         exit;
135 fi
136
137 echo "$LD $LDFLAGS $OFILE -o $SOFILE $LIBS"
138 $LD $LDFLAGS $OFILE -o $SOFILE $LIBS
139
140 if ( test "$?" != "0") then 
141         echo "Link error"; 
142         exit;
143 fi