From 4a50f5b5930bcaadda1bde13f3abcc9780b7250b Mon Sep 17 00:00:00 2001 From: Chris Want Date: Thu, 18 Aug 2005 06:07:02 +0000 Subject: [PATCH] Support for 'Bullet' in the Makefiles. Enable with: export NAN_USE_BULLET=true in environment, or in user-def.mk --- extern/Makefile | 4 ++ extern/bullet/Bullet/Makefile | 55 ++++++++++++++++++ extern/bullet/BulletDynamics/Makefile | 55 ++++++++++++++++++ extern/bullet/Makefile | 71 +++++++++++++++++++++++ source/Makefile | 7 +++ source/gameengine/Converter/Makefile | 3 + source/gameengine/Ketsji/Makefile | 2 + source/gameengine/Physics/Bullet/Makefile | 44 ++++++++++++++ source/gameengine/Physics/Makefile | 3 + source/nan_compile.mk | 4 ++ source/nan_definitions.mk | 1 + 11 files changed, 249 insertions(+) create mode 100644 extern/bullet/Bullet/Makefile create mode 100644 extern/bullet/BulletDynamics/Makefile create mode 100755 extern/bullet/Makefile create mode 100644 source/gameengine/Physics/Bullet/Makefile diff --git a/extern/Makefile b/extern/Makefile index e872213f4cd..0a85b9b5220 100644 --- a/extern/Makefile +++ b/extern/Makefile @@ -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 index 00000000000..eb3710dc691 --- /dev/null +++ b/extern/bullet/Bullet/Makefile @@ -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 index 00000000000..3d3f9d0714f --- /dev/null +++ b/extern/bullet/BulletDynamics/Makefile @@ -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 index 00000000000..336c58cab82 --- /dev/null +++ b/extern/bullet/Makefile @@ -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 diff --git a/source/Makefile b/source/Makefile index 4a1ca663e41..83726144864 100644 --- a/source/Makefile +++ b/source/Makefile @@ -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 diff --git a/source/gameengine/Converter/Makefile b/source/gameengine/Converter/Makefile index 0350c86ebc8..1440243594f 100644 --- a/source/gameengine/Converter/Makefile +++ b/source/gameengine/Converter/Makefile @@ -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 diff --git a/source/gameengine/Ketsji/Makefile b/source/gameengine/Ketsji/Makefile index 18a931eed65..4f6d19a8df0 100644 --- a/source/gameengine/Ketsji/Makefile +++ b/source/gameengine/Ketsji/Makefile @@ -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 index 00000000000..747e750242a --- /dev/null +++ b/source/gameengine/Physics/Bullet/Makefile @@ -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 diff --git a/source/gameengine/Physics/Makefile b/source/gameengine/Physics/Makefile index a921848cfa7..b88cedee8f2 100644 --- a/source/gameengine/Physics/Makefile +++ b/source/gameengine/Physics/Makefile @@ -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 diff --git a/source/nan_compile.mk b/source/nan_compile.mk index 8bd323cf494..8386a6d9ea7 100644 --- a/source/nan_compile.mk +++ b/source/nan_compile.mk @@ -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 diff --git a/source/nan_definitions.mk b/source/nan_definitions.mk index fcd6f2225fb..74038650db9 100644 --- a/source/nan_definitions.mk +++ b/source/nan_definitions.mk @@ -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