diff options
Diffstat (limited to 'release/plugins/bmake')
-rw-r--r-- | release/plugins/bmake | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/release/plugins/bmake b/release/plugins/bmake new file mode 100644 index 00000000000..f7d1404a808 --- /dev/null +++ b/release/plugins/bmake @@ -0,0 +1,130 @@ +#!/bin/sh +# +# $Id$ +# +# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. The Blender +# Foundation also sells licenses for use in proprietary software under +# the Blender License. See http://www.blender.org/BL/ for information +# about this. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. +# All rights reserved. +# +# The Original Code is: all of this file. +# +# Contributor(s): none yet. +# +# ***** END GPL/BL DUAL LICENSE BLOCK ***** + +# detect the system + +UNAME=`uname` +if ( test $UNAME = "IRIX64" -o $UNAME = "IRIX" ) then + CC="cc"; + CFLAGS="-KPIC -O2 -mips3"; + + LD="ld"; + LDFLAGS="-shared -U"; +elif ( test $UNAME = "FreeBSD" ) then + CC="gcc"; + CFLAGS="-fPIC -funsigned-char -O2"; + + LD="ld"; + LDFLAGS="-Bshareable"; +elif ( test $UNAME = "OpenBSD" ) then + CC="gcc"; + CFLAGS="-fPIC -funsigned-char -O2"; + + LD="ld"; + LDFLAGS="-Bshareable"; +elif ( test $UNAME = "Linux" ) then + CC="gcc"; + CFLAGS="-fPIC -funsigned-char -O2"; + + LD="ld"; + LDFLAGS="-Bshareable"; +elif ( test $UNAME = "SunOS" ) then + CC="cc"; + CFLAGS="-O2"; + + LD="ld"; + LDFLAGS="-r"; +fi + +if ( test "$#" = "1" ) then + if ( test -f $1 ) then + BASE_FILE=`echo $1 | sed -e "1 s/\.c//g"`; + else + BASE_FILE=$1; + fi + + CFILE="$BASE_FILE.c" + OFILE="$BASE_FILE.o" + SOFILE="$BASE_FILE.so" +else + if ( test -f $1$2 ) then + BASE_FILE=`echo $2 | sed -e "1 s/\.c//g"`; + else + BASE_FILE=$2; + fi + + CFILE="$1$BASE_FILE.c" + OFILE="$BASE_FILE.o" + SOFILE="$BASE_FILE.so" +fi + +INCLUDES= +if ( test -f plugin.h ) then + INCLUDES=-I.; +elif ( test -f "include/plugin.h" ) then + INCLUDES=-Iinclude/ +elif ( test -f "../plugin.h" ) then + INCLUDES=-I..; +elif ( test -f "../include/plugin.h" ) then + INCLUDES=-I../include +else + echo "Couldn't find plugin.h"; + exit; +fi + +LIBM=`fgrep "#include <math.h>" $CFILE` +LIBC=`fgrep "#include <std" $CFILE` + +LIBS= + +if ( test -n "$LIBM" ) then + LIBS="$LIBS -lm"; +fi +if ( test -n "$LIBC" ) then + LIBS="$LIBS -lc"; +fi + +echo "$CC $CFLAGS -c $CFILE $INCLUDES" +$CC $CFLAGS -c $CFILE $INCLUDES + +if ( test "$?" != "0") then + echo "Compile error"; + exit; +fi + +echo "$LD $LDFLAGS $OFILE -o $SOFILE $LIBS" +$LD $LDFLAGS $OFILE -o $SOFILE $LIBS + +if ( test "$?" != "0") then + echo "Link error"; + exit; +fi |