diff --git a/Demos/TerrainDemo/TerrainDemo.cpp b/Demos/TerrainDemo/TerrainDemo.cpp index 9e6af75ce..c42cd8bc4 100644 --- a/Demos/TerrainDemo/TerrainDemo.cpp +++ b/Demos/TerrainDemo/TerrainDemo.cpp @@ -494,7 +494,7 @@ btScalar& maxHeight btAssert(raw && "out of memory"); // reseed randomization every 30 seconds - srand(time(NULL) / 30); +// srand(time(NULL) / 30); // populate based on model switch (model) { diff --git a/Makefile.am b/Makefile.am index 9cb8a1870..2dc7cf62a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1 +1,5 @@ -SUBDIRS=src Extras Demos/OpenGL Demos/BasicDemo Demos/TerrainDemo Demos/VehicleDemo Demos/CcdPhysicsDemo Demos/ColladaDemo Demos/MultiThreadedDemo Demos/SoftDemo Demos/AllBulletDemos +if CONDITIONAL_BUILD_MULTITHREADED +SUBDIRS=src Extras Demos/OpenGL Demos/BasicDemo Demos/TerrainDemo Demos/VehicleDemo Demos/CcdPhysicsDemo Demos/ColladaDemo Demos/MultiThreadedDemo Demos/SoftDemo Demos/AllBulletDemos +else +SUBDIRS=src Extras Demos/OpenGL Demos/BasicDemo Demos/TerrainDemo Demos/VehicleDemo Demos/CcdPhysicsDemo Demos/ColladaDemo Demos/SoftDemo Demos/AllBulletDemos +endif diff --git a/config.h.in b/config.h.in index 6c30c429a..2f10be9b4 100644 --- a/config.h.in +++ b/config.h.in @@ -60,6 +60,10 @@ /* Define to 1 if you have the header file. */ #undef HAVE_WINDOWS_H +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + /* Name of package */ #undef PACKAGE diff --git a/configure.ac b/configure.ac index 329eb3ac9..e3ddcc50a 100644 --- a/configure.ac +++ b/configure.ac @@ -47,17 +47,17 @@ AC_SUBST(opengl_LIBS) case "$host" in i?86-* | k?-* | athlon-* | pentium*-) AC_DEFINE(ARCH_X86, 1, [Architecture is x86]) - ARCH_SPECIFIC_CFLAGS="-mmmx -msse" + ARCH_SPECIFIC_CFLAGS="" ARCH_STRING="X86" ;; x86_64-*) AC_DEFINE(ARCH_X86_64, 1, [Architecture is x86-64]) - ARCH_SPECIFIC_CFLAGS="-mmmx -msse" + ARCH_SPECIFIC_CFLAGS="-DUSE_ADDR64" ARCH_STRING="X86-64" ;; ppc-* | powerpc-*) AC_DEFINE(ARCH_PPC, 1, [Architecture is PowerPC]) - ARCH_SPECIFIC_CFLAGS="-maltivec" + ARCH_SPECIFIC_CFLAGS="" ARCH_STRING="PowerPC" ;; *) @@ -131,6 +131,15 @@ CS_CHECK_GLUT #---------------------------------------------------------------------------- # Package configuration switches. #---------------------------------------------------------------------------- +AC_ARG_ENABLE([multithreaded], + [AC_HELP_STRING([--disable-multithreaded], + [build without BulletMultiThreaded (default NO)])], + [disable_multithreaded=yes], [disable_multithreaded=no]) +AC_MSG_CHECKING([BulletMultiThreaded]) +AS_IF([test "$disable_multithreaded" = yes], [build_multithreaded=no], [build_multithreaded=yes]) +AC_MSG_RESULT([$build_multithreaded]) +AM_CONDITIONAL([CONDITIONAL_BUILD_MULTITHREADED], [test "$build_multithreaded" = yes]) + AC_ARG_ENABLE([debug], [AC_HELP_STRING([--enable-debug], [build with debugging information (default NO)])], @@ -149,7 +158,8 @@ CS_OUTPUT_INSTALLDIRS CS_EMIT_PACKAGEINFO -CXXFLAGS="$CXXFLAGS $CFLAGS" +CFLAGS="$ARCH_SPECIFIC_CFLAGS $CFLAGS" +CXXFLAGS="$ARCH_SPECIFIC_CFLAGS $CXXFLAGS $CFLAGS" #---------------------------------------------------------------------------- # Emit generated files. #---------------------------------------------------------------------------- diff --git a/src/Makefile.am b/src/Makefile.am index c5f4b0dfc..882400a40 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,5 +1,77 @@ +if CONDITIONAL_BUILD_MULTITHREADED + noinst_LIBRARIES = libbulletmath.a libbulletcollision.a libbulletdynamics.a libbulletsoftbody.a libbulletmultithreaded.a +libbulletmultithreaded_a_CXXFLAGS = ${CXXFLAGS} -I./BulletMultiThreaded/vectormath/scalar/cpp +libbulletmultithreaded_a_SOURCES =\ + BulletMultiThreaded/SpuCollisionObjectWrapper.cpp \ + BulletMultiThreaded/SpuSampleTask/SpuSampleTask.cpp \ + BulletMultiThreaded/SpuLibspe2Support.cpp \ + BulletMultiThreaded/SpuBatchRaycaster.cpp \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGjkEpa2.cpp \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuEpaPenetrationDepthSolver.cpp \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.cpp \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.cpp \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGjkPairDetector.cpp \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuVoronoiSimplexSolver.cpp \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuMinkowskiPenetrationDepthSolver.cpp \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.cpp \ + BulletMultiThreaded/SpuRaycastTask/SpuRaycastTask.cpp \ + BulletMultiThreaded/SpuRaycastTask/SpuSubSimplexConvexCast.cpp \ + BulletMultiThreaded/SpuParallelSolver.cpp \ + BulletMultiThreaded/SpuSolverTask/SpuParallellSolverTask.cpp \ + BulletMultiThreaded/btThreadSupportInterface.cpp \ + BulletMultiThreaded/SequentialThreadSupport.cpp \ + BulletMultiThreaded/SpuGatheringCollisionDispatcher.cpp \ + BulletMultiThreaded/Win32ThreadSupport.cpp \ + BulletMultiThreaded/SpuFakeDma.cpp \ + BulletMultiThreaded/SpuRaycastTaskProcess.cpp \ + BulletMultiThreaded/PosixThreadSupport.cpp \ + BulletMultiThreaded/SpuCollisionTaskProcess.cpp \ + BulletMultiThreaded/SpuContactManifoldCollisionAlgorithm.cpp \ + BulletMultiThreaded/SpuSampleTaskProcess.cpp \ + BulletMultiThreaded/SpuSampleTask/SpuSampleTask.h \ + BulletMultiThreaded/PpuAddressSpace.h \ + BulletMultiThreaded/SpuSampleTaskProcess.h \ + BulletMultiThreaded/SequentialThreadSupport.h \ + BulletMultiThreaded/PlatformDefinitions.h \ + BulletMultiThreaded/Win32ThreadSupport.h \ + BulletMultiThreaded/SpuContactManifoldCollisionAlgorithm.h \ + BulletMultiThreaded/SpuParallelSolver.h \ + BulletMultiThreaded/btThreadSupportInterface.h \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.h \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGjkEpa2.h \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuEpaPenetrationDepthSolver.h \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuVoronoiSimplexSolver.h \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuConvexPenetrationDepthSolver.h \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuPreferredPenetrationDirections.h \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.h \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGjkPairDetector.h \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuLocalSupport.h \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuMinkowskiPenetrationDepthSolver.h \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.h \ + BulletMultiThreaded/SpuRaycastTask/SpuSubSimplexConvexCast.h \ + BulletMultiThreaded/SpuRaycastTask/SpuRaycastTask.h \ + BulletMultiThreaded/SpuSolverTask/SpuParallellSolverTask.h \ + BulletMultiThreaded/SpuGatheringCollisionDispatcher.h \ + BulletMultiThreaded/SpuFakeDma.h \ + BulletMultiThreaded/SpuSync.h \ + BulletMultiThreaded/SpuCollisionObjectWrapper.h \ + BulletMultiThreaded/SpuDoubleBuffer.h \ + BulletMultiThreaded/SpuCollisionTaskProcess.h \ + BulletMultiThreaded/SpuBatchRaycaster.h \ + BulletMultiThreaded/PosixThreadSupport.h \ + BulletMultiThreaded/SpuLibspe2Support.h \ + BulletMultiThreaded/SpuRaycastTaskProcess.h \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/boxBoxDistance.cpp \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/boxBoxDistance.h \ + BulletMultiThreaded/SpuNarrowPhaseCollisionTask/Box.h + +else +noinst_LIBRARIES = libbulletmath.a libbulletcollision.a libbulletdynamics.a libbulletsoftbody.a +endif + + libbulletmath_a_SOURCES = \ LinearMath/btQuickprof.cpp \ LinearMath/btGeometryUtil.cpp \ @@ -261,68 +333,4 @@ libbulletsoftbody_a_SOURCES = \ BulletSoftBody/btSoftBodyHelpers.h -libbulletmultithreaded_a_CXXFLAGS = ${CXXFLAGS} -I./BulletMultiThreaded/vectormath/scalar/cpp -libbulletmultithreaded_a_SOURCES =\ - BulletMultiThreaded/SpuCollisionObjectWrapper.cpp \ - BulletMultiThreaded/SpuSampleTask/SpuSampleTask.cpp \ - BulletMultiThreaded/SpuLibspe2Support.cpp \ - BulletMultiThreaded/SpuBatchRaycaster.cpp \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGjkEpa2.cpp \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuEpaPenetrationDepthSolver.cpp \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.cpp \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.cpp \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGjkPairDetector.cpp \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuVoronoiSimplexSolver.cpp \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuMinkowskiPenetrationDepthSolver.cpp \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.cpp \ - BulletMultiThreaded/SpuRaycastTask/SpuRaycastTask.cpp \ - BulletMultiThreaded/SpuRaycastTask/SpuSubSimplexConvexCast.cpp \ - BulletMultiThreaded/SpuParallelSolver.cpp \ - BulletMultiThreaded/SpuSolverTask/SpuParallellSolverTask.cpp \ - BulletMultiThreaded/btThreadSupportInterface.cpp \ - BulletMultiThreaded/SequentialThreadSupport.cpp \ - BulletMultiThreaded/SpuGatheringCollisionDispatcher.cpp \ - BulletMultiThreaded/Win32ThreadSupport.cpp \ - BulletMultiThreaded/SpuFakeDma.cpp \ - BulletMultiThreaded/SpuRaycastTaskProcess.cpp \ - BulletMultiThreaded/PosixThreadSupport.cpp \ - BulletMultiThreaded/SpuCollisionTaskProcess.cpp \ - BulletMultiThreaded/SpuContactManifoldCollisionAlgorithm.cpp \ - BulletMultiThreaded/SpuSampleTaskProcess.cpp \ - BulletMultiThreaded/SpuSampleTask/SpuSampleTask.h \ - BulletMultiThreaded/PpuAddressSpace.h \ - BulletMultiThreaded/SpuSampleTaskProcess.h \ - BulletMultiThreaded/SequentialThreadSupport.h \ - BulletMultiThreaded/PlatformDefinitions.h \ - BulletMultiThreaded/Win32ThreadSupport.h \ - BulletMultiThreaded/SpuContactManifoldCollisionAlgorithm.h \ - BulletMultiThreaded/SpuParallelSolver.h \ - BulletMultiThreaded/btThreadSupportInterface.h \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.h \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGjkEpa2.h \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuEpaPenetrationDepthSolver.h \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuVoronoiSimplexSolver.h \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuConvexPenetrationDepthSolver.h \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuPreferredPenetrationDirections.h \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.h \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGjkPairDetector.h \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuLocalSupport.h \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuMinkowskiPenetrationDepthSolver.h \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.h \ - BulletMultiThreaded/SpuRaycastTask/SpuSubSimplexConvexCast.h \ - BulletMultiThreaded/SpuRaycastTask/SpuRaycastTask.h \ - BulletMultiThreaded/SpuSolverTask/SpuParallellSolverTask.h \ - BulletMultiThreaded/SpuGatheringCollisionDispatcher.h \ - BulletMultiThreaded/SpuFakeDma.h \ - BulletMultiThreaded/SpuSync.h \ - BulletMultiThreaded/SpuCollisionObjectWrapper.h \ - BulletMultiThreaded/SpuDoubleBuffer.h \ - BulletMultiThreaded/SpuCollisionTaskProcess.h \ - BulletMultiThreaded/SpuBatchRaycaster.h \ - BulletMultiThreaded/PosixThreadSupport.h \ - BulletMultiThreaded/SpuLibspe2Support.h \ - BulletMultiThreaded/SpuRaycastTaskProcess.h \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/boxBoxDistance.cpp \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/boxBoxDistance.h \ - BulletMultiThreaded/SpuNarrowPhaseCollisionTask/Box.h