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