Support for 'Bullet' in the Makefiles. Enable with:
authorChris Want <cwant@ualberta.ca>
Thu, 18 Aug 2005 06:07:02 +0000 (06:07 +0000)
committerChris Want <cwant@ualberta.ca>
Thu, 18 Aug 2005 06:07:02 +0000 (06:07 +0000)
export NAN_USE_BULLET=true

in environment, or in user-def.mk

extern/Makefile
extern/bullet/Bullet/Makefile [new file with mode: 0644]
extern/bullet/BulletDynamics/Makefile [new file with mode: 0644]
extern/bullet/Makefile [new file with mode: 0755]
source/Makefile
source/gameengine/Converter/Makefile
source/gameengine/Ketsji/Makefile
source/gameengine/Physics/Bullet/Makefile [new file with mode: 0644]
source/gameengine/Physics/Makefile
source/nan_compile.mk
source/nan_definitions.mk

index e872213f4cdac4408a2f7d824622997016272ae5..0a85b9b522072e7ded8849ef8f27db4d2fb74808 100644 (file)
@@ -40,6 +40,10 @@ ifeq ($(WITH_FREETYPE2), true)
     DIRS += bFTGL/src
 endif
 
+ifeq ($(NAN_USE_BULLET), true)
+    DIRS += bullet
+endif
+
 TARGET =
 ifneq ($(OS),irix)
   TARGET=solid
diff --git a/extern/bullet/Bullet/Makefile b/extern/bullet/Bullet/Makefile
new file mode 100644 (file)
index 0000000..eb3710d
--- /dev/null
@@ -0,0 +1,55 @@
+#
+# $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 *****
+# opennl intern Makefile
+#
+
+LIBNAME = bullet
+SOURCEDIR = extern/bullet/Bullet
+DIR = $(OCGDIR)/$(SOURCEDIR)
+
+CCSRCS  = $(wildcard BroadphaseCollision/*.cpp)
+CCSRCS += $(wildcard NarrowPhaseCollision/*.cpp)
+CCSRCS += $(wildcard CollisionShapes/*.cpp)
+
+CPPFLAGS += -DUSE_DOUBLES -DQHULL -D_LIB
+CPPFLAGS += -I../Bullet -I../BulletDynamics -I../LinearMath
+
+all debug:: objdirs
+
+include nan_compile.mk
+
+.PHONY: objdirs
+objdirs:
+       @$(MAKE) makedir DIR=$(DIR)/$(DEBUG_DIR)
+       @$(MAKE) makedir DIR=$(DIR)/$(DEBUG_DIR)BroadphaseCollision
+       @$(MAKE) makedir DIR=$(DIR)/$(DEBUG_DIR)NarrowPhaseCollision
+       @$(MAKE) makedir DIR=$(DIR)/$(DEBUG_DIR)CollisionShapes
+
diff --git a/extern/bullet/BulletDynamics/Makefile b/extern/bullet/BulletDynamics/Makefile
new file mode 100644 (file)
index 0000000..3d3f9d0
--- /dev/null
@@ -0,0 +1,55 @@
+#
+# $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 *****
+# opennl intern Makefile
+#
+
+LIBNAME = bulletdyn
+SOURCEDIR = extern/bullet/BulletDynamics
+DIR = $(OCGDIR)/$(SOURCEDIR)
+
+CCSRCS =  $(wildcard CollisionDispatch/*.cpp)
+CCSRCS += $(wildcard ConstraintSolver/*.cpp)
+CCSRCS += $(wildcard Dynamics/*.cpp)
+
+CPPFLAGS += -DUSE_DOUBLES -DQHULL -D_LIB
+CPPFLAGS += -I../Bullet -I../BulletDynamics -I../LinearMath
+
+all debug:: objdirs
+
+include nan_compile.mk
+
+.PHONY: objdirs
+objdirs:
+       @$(MAKE) makedir DIR=$(DIR)/$(DEBUG_DIR)
+       @$(MAKE) makedir DIR=$(DIR)/$(DEBUG_DIR)CollisionDispatch
+       @$(MAKE) makedir DIR=$(DIR)/$(DEBUG_DIR)ConstraintSolver
+       @$(MAKE) makedir DIR=$(DIR)/$(DEBUG_DIR)Dynamics
+
diff --git a/extern/bullet/Makefile b/extern/bullet/Makefile
new file mode 100755 (executable)
index 0000000..336c58c
--- /dev/null
@@ -0,0 +1,71 @@
+#
+# $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 *****
+#
+#
+
+include nan_definitions.mk
+
+
+SOURCEDIR = extern/bullet
+LIBNAMES = bullet bulletdyn
+DIR = $(OCGDIR)/$(SOURCEDIR)
+DIRS = Bullet BulletDynamics
+
+include nan_subdirs.mk
+
+install: all debug
+       @[ -d $(NAN_BULLET) ] || mkdir $(NAN_BULLET)
+       @[ -d $(NAN_BULLET)/include ] || mkdir $(NAN_BULLET)/include
+       @[ -d $(NAN_BULLET)/include/CollisionShapes ] || mkdir $(NAN_BULLET)/include/CollisionShapes
+       @[ -d $(NAN_BULLET)/include/BroadphaseCollision ] || mkdir $(NAN_BULLET)/include/BroadphaseCollision
+       @[ -d $(NAN_BULLET)/include/NarrowPhaseCollision ] || mkdir $(NAN_BULLET)/include/NarrowPhaseCollision
+       @[ -d $(NAN_BULLET)/include/Dynamics ] || mkdir $(NAN_BULLET)/include/Dynamics
+       @[ -d $(NAN_BULLET)/include/ConstraintSolver ] || mkdir $(NAN_BULLET)/include/ConstraintSolver
+       @[ -d $(NAN_BULLET)/include/CollisionDispatch ] || mkdir $(NAN_BULLET)/include/CollisionDispatch
+       @[ -d $(NAN_BULLET)/lib ] || mkdir $(NAN_BULLET)/lib
+       @[ -d $(NAN_BULLET)/lib/debug ] || mkdir $(NAN_BULLET)/lib/debug
+       @$(NANBLENDERHOME)/intern/tools/cpifdiff.sh $(DIR)/Bullet/libbullet.a $(NAN_BULLET)/lib/
+       @$(NANBLENDERHOME)/intern/tools/cpifdiff.sh $(DIR)/Bullet/debug/libbullet.a $(NAN_BULLET)/lib/debug/
+       @$(NANBLENDERHOME)/intern/tools/cpifdiff.sh $(DIR)/BulletDynamics/libbulletdyn.a $(NAN_BULLET)/lib/
+       @$(NANBLENDERHOME)/intern/tools/cpifdiff.sh $(DIR)/BulletDynamics/debug/libbulletdyn.a $(NAN_BULLET)/lib/debug/
+ifeq ($(OS),darwin)
+       ranlib $(NAN_BULLET)/lib/libbullet.a
+       ranlib $(NAN_BULLET)/lib/debug/libbullet.a
+       ranlib $(NAN_BULLET)/lib/libbulletdyn.a
+       ranlib $(NAN_BULLET)/lib/debug/libbulletdyn.a
+endif
+       @$(NANBLENDERHOME)/intern/tools/cpifdiff.sh Bullet/CollisionShapes/*.h $(NAN_BULLET)/include/CollisionShapes
+       @$(NANBLENDERHOME)/intern/tools/cpifdiff.sh Bullet/BroadphaseCollision/*.h $(NAN_BULLET)/include/BroadphaseCollision
+       @$(NANBLENDERHOME)/intern/tools/cpifdiff.sh Bullet/NarrowPhaseCollision/*.h $(NAN_BULLET)/include/NarrowPhaseCollision
+       @$(NANBLENDERHOME)/intern/tools/cpifdiff.sh BulletDynamics/Dynamics/*.h $(NAN_BULLET)/include/Dynamics
+       @$(NANBLENDERHOME)/intern/tools/cpifdiff.sh BulletDynamics/ConstraintSolver/*.h $(NAN_BULLET)/include/ConstraintSolver
+       @$(NANBLENDERHOME)/intern/tools/cpifdiff.sh BulletDynamics/CollisionDispatch/*.h $(NAN_BULLET)/include/CollisionDispatch
+       @$(NANBLENDERHOME)/intern/tools/cpifdiff.sh LinearMath/*.h $(NAN_BULLET)/include
index 4a1ca663e41028c2e6591b008e36c8c7e32d7b9e..837261448641202198a593daec1debaebb76b1a4 100644 (file)
@@ -125,6 +125,9 @@ ifneq ($(NAN_NO_KETSJI),true)
 #    COMLIB += $(OCGDIR)/gameengine/blphys/blode/$(DEBUG_DIR)libblode.a
 #    COMLIB += $(OCGDIR)/gameengine/blphys/sumo/$(DEBUG_DIR)libsumo.a
     COMLIB += $(OCGDIR)/gameengine/blphys/dummy/$(DEBUG_DIR)libdummy.a
+    ifeq ($(NAN_USE_BULLET), true)
+       COMLIB += $(OCGDIR)/gameengine/blphys/blbullet/$(DEBUG_DIR)libblbullet.a
+    endif
     COMLIB += $(OCGDIR)/gameengine/blphys/common/$(DEBUG_DIR)libcommon.a
 #    COMLIB += $(OCGDIR)/gameengine/blphys/sumo/$(DEBUG_DIR)libsumo.a
     COMLIB += $(OCGDIR)/gameengine/blphys/dummy/$(DEBUG_DIR)libdummy.a
@@ -144,6 +147,10 @@ ifneq ($(NAN_NO_KETSJI),true)
     COMLIB += $(OCGDIR)/gameengine/ketsji/KXNetwork/$(DEBUG_DIR)libKXNetwork.a
     COMLIB += $(OCGDIR)/gameengine/Network/$(DEBUG_DIR)libNetwork.a
     COMLIB += $(OCGDIR)/gameengine/Network/LoopBackNetwork/$(DEBUG_DIR)libLoopBackNetwork.a
+    ifeq ($(NAN_USE_BULLET), true)
+       COMLIB += $(NAN_BULLET)/lib/libbulletdyn.a
+       COMLIB += $(NAN_BULLET)/lib/libbullet.a
+    endif
 endif
     COMLIB += $(NAN_GUARDEDALLOC)/lib/libguardedalloc.a
     COMLIB += $(NAN_BMFONT)/lib/$(DEBUG_DIR)libbmfont.a
index 0350c86ebc815b861ead8eb9ca0dbef26a4efa45..1440243594fda437f73ab8624f660c2a80a510bd 100644 (file)
@@ -44,6 +44,8 @@ CPPFLAGS += -I$(NAN_SOUNDSYSTEM)/include
 CPPFLAGS += -I$(NAN_PYTHON)/include/python$(NAN_PYTHON_VERSION)
 CPPFLAGS += -I$(NAN_FUZZICS)/include -I$(NAN_SUMO) -I$(NAN_MOTO)/include
 CPPFLAGS += -I$(NAN_SOLID)/include
+CPPFLAGS += -I$(NAN_BULLET)/include
+
 CPPFLAGS += -I../../blender
 # these two needed because of blenkernel
 CPPFLAGS += -I../../blender/imbuf
@@ -60,3 +62,4 @@ CPPFLAGS += -I../Rasterizer/RAS_OpenGLRasterizer
 CPPFLAGS += -I../Network -I../Ketsji/KXNetwork
 CPPFLAGS += -I../Physics/common -I../Physics/Dummy
 CPPFLAGS += -I../Physics/BlOde
+CPPFLAGS += -I../Physics/Bullet
index 18a931eed65654eb470c2e001fe4221e99582824..4f6d19a8df0adcc5d2db9e2bedfe3c6073b4a58a 100644 (file)
@@ -44,6 +44,7 @@ CPPFLAGS += -I$(NAN_STRING)/include
 CPPFLAGS += -I$(NAN_SOUNDSYSTEM)/include    
 CPPFLAGS += -I$(NAN_FUZZICS)/include -I$(NAN_SUMO) -I$(NAN_MOTO)/include
 CPPFLAGS += -I$(NAN_SOLID)/include
+CPPFLAGS += -I$(NAN_BULLET)/include
 CPPFLAGS += -I../Rasterizer -I../GameLogic -I../SceneGraph
 CPPFLAGS += -I../BlenderRoutines -I../Expressions
 CPPFLAGS += -I../../kernel/gen_system
@@ -52,6 +53,7 @@ CPPFLAGS += -I../Physics/common
 CPPFLAGS += -I../Physics/Dummy
 CPPFLAGS += -I../Physics/Sumo
 CPPFLAGS += -I../Physics/BlOde
+CPPFLAGS += -I../Physics/Bullet
 CPPFLAGS += -I.
 CPPFLAGS += -I../Converter
 CPPFLAGS += -I../../blender/blenkernel
diff --git a/source/gameengine/Physics/Bullet/Makefile b/source/gameengine/Physics/Bullet/Makefile
new file mode 100644 (file)
index 0000000..747e750
--- /dev/null
@@ -0,0 +1,44 @@
+#
+# $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 *****
+#
+#
+
+LIBNAME = blbullet
+DIR = $(OCGDIR)/gameengine/blphys/$(LIBNAME)
+
+include nan_compile.mk
+
+CCFLAGS += $(LEVEL_1_CPP_WARNINGS)
+
+CPPFLAGS += -I$(NAN_BULLET)/include
+CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
+CPPFLAGS += -I../../Physics/common
+CPPFLAGS += -I../../Physics/Dummy
index a921848cfa7f0522368fb50352f2bc773af49fc8..b88cedee8f2ee9deebe3a2642558d54e3bf91aa5 100644 (file)
@@ -37,5 +37,8 @@ SOURCEDIR = source/gameengine/Physics
 DIR = $(OCGDIR)/gameengine/blphys
 DIRS = common Sumo Dummy
 #DIRS += BlOde
+ifeq ($(NAN_USE_BULLET), true)
+ DIRS += Bullet
+endif
 
 include nan_subdirs.mk
index 8bd323cf494e6bad9a8ab578054703575e10c697..8386a6d9ea7fad0ccc01f8091380e2e71d03c6cd 100644 (file)
@@ -42,6 +42,10 @@ ifneq ($(NAN_NO_KETSJI), true)
     CFLAGS  += -DGAMEBLENDER=1
     CFLAGS  += -DUSE_SUMO_SOLID
     CCFLAGS += -DUSE_SUMO_SOLID
+    ifeq ($(NAN_USE_BULLET), true)
+      CFLAGS  += -DUSE_BULLET
+      CCFLAGS += -DUSE_BULLET
+    endif
 else
    CPPFLAGS += -DNO_KETSJI
 endif
index fcd6f2225fb40f95876fd1f98d4f212e98f4282d..74038650db9807006d117ef05c204c22e8fe2421 100644 (file)
@@ -67,6 +67,7 @@ else
     export NAN_SOLID ?= $(LCGDIR)/solid
     export NAN_QHULL ?= $(LCGDIR)/qhull
 endif
+    export NAN_BULLET ?= $(LCGDIR)/bullet
     export NAN_SUMO ?= $(SRCHOME)/gameengine/Physics/Sumo
     export NAN_FUZZICS ?= $(SRCHOME)/gameengine/Physics/Sumo/Fuzzics
     export NAN_BLENKEY ?= $(LCGDIR)/blenkey