Browse Source

add eigen to makepanda

David Rose 14 years ago
parent
commit
e04c446b1c
4 changed files with 16 additions and 3 deletions
  1. 1 1
      dtool/Config.pp
  2. 9 0
      dtool/src/dtoolutil/pandaSystem.cxx
  3. 5 1
      makepanda/makepanda.py
  4. 1 1
      makepanda/makepandacore.py

+ 1 - 1
dtool/Config.pp

@@ -327,7 +327,7 @@
 // impact memory usage on very-low-memory platforms.)  Currently
 // impact memory usage on very-low-memory platforms.)  Currently
 // experimental.
 // experimental.
 #define EIGEN_IPATH 
 #define EIGEN_IPATH 
-#define EIGEN_CFLAGS
+#defer EIGEN_CFLAGS $[if $[WINDOWS_PLATFORM],/arch:SSE2,-msse2]
 #defer HAVE_EIGEN $[isdir $[EIGEN_IPATH]/Eigen]
 #defer HAVE_EIGEN $[isdir $[EIGEN_IPATH]/Eigen]
 #define LINMATH_ALIGN 1
 #define LINMATH_ALIGN 1
 
 

+ 9 - 0
dtool/src/dtoolutil/pandaSystem.cxx

@@ -41,6 +41,15 @@ PandaSystem() :
 #ifdef STDFLOAT_DOUBLE
 #ifdef STDFLOAT_DOUBLE
   add_system("stdfloat-double");
   add_system("stdfloat-double");
 #endif
 #endif
+
+#ifdef HAVE_EIGEN
+  add_system("eigen");
+#ifdef LINMATH_VECTORIZE
+  set_system_tag("eigen", "vectorize", "1");
+#else
+  set_system_tag("eigen", "vectorize", "0");
+#endif
+#endif  // HAVE_EIGEN
 }
 }
 
 
 ////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////

+ 5 - 1
makepanda/makepanda.py

@@ -72,6 +72,7 @@ if "MACOSX_DEPLOYMENT_TARGET" in os.environ:
 PkgListSet(["PYTHON", "DIRECT",                        # Python support
 PkgListSet(["PYTHON", "DIRECT",                        # Python support
   "GL", "GLES", "GLES2"] + DXVERSIONS + ["TINYDISPLAY", "NVIDIACG", # 3D graphics
   "GL", "GLES", "GLES2"] + DXVERSIONS + ["TINYDISPLAY", "NVIDIACG", # 3D graphics
   "EGL",                                               # OpenGL (ES) integration
   "EGL",                                               # OpenGL (ES) integration
+  "EIGEN",                                             # Linear algebra acceleration
   "OPENAL", "FMODEX", "FFMPEG",                        # Multimedia
   "OPENAL", "FMODEX", "FFMPEG",                        # Multimedia
   "ODE", "PHYSX", "BULLET", "PANDAPHYSICS",            # Physics
   "ODE", "PHYSX", "BULLET", "PANDAPHYSICS",            # Physics
   "SPEEDTREE",                                         # SpeedTree
   "SPEEDTREE",                                         # SpeedTree
@@ -593,6 +594,7 @@ if (COMPILER=="LINUX"):
 
 
     #         Name         pkg-config   libs, include(dir)s
     #         Name         pkg-config   libs, include(dir)s
     if (not RUNTIME):
     if (not RUNTIME):
+        SmartPkgEnable("EIGEN",     "",          (), ("Eigen/Dense",), target_pkg = 'ALWAYS')
         SmartPkgEnable("ARTOOLKIT", "",          ("AR"), "AR/ar.h")
         SmartPkgEnable("ARTOOLKIT", "",          ("AR"), "AR/ar.h")
         SmartPkgEnable("FCOLLADA",  "",          ChooseLib(*fcollada_libs), ("FCollada", "FCollada.h"))
         SmartPkgEnable("FCOLLADA",  "",          ChooseLib(*fcollada_libs), ("FCollada", "FCollada.h"))
         SmartPkgEnable("FFMPEG",    ffmpeg_libs, ffmpeg_libs, ffmpeg_libs)
         SmartPkgEnable("FFMPEG",    ffmpeg_libs, ffmpeg_libs, ffmpeg_libs)
@@ -849,7 +851,7 @@ def CompileCxx(obj,src,opts):
             else:
             else:
                 cmd += " -arch i386"
                 cmd += " -arch i386"
                 if ("NOPPC" not in opts): cmd += " -arch ppc"
                 if ("NOPPC" not in opts): cmd += " -arch ppc"
-        cmd += " -pthread"
+        cmd += " -pthread -msse2"
         optlevel = GetOptimizeOption(opts)
         optlevel = GetOptimizeOption(opts)
         if (optlevel==1): cmd += " -ggdb -D_DEBUG"
         if (optlevel==1): cmd += " -ggdb -D_DEBUG"
         if (optlevel==2): cmd += " -O1 -D_DEBUG"
         if (optlevel==2): cmd += " -O1 -D_DEBUG"
@@ -1527,6 +1529,8 @@ DTOOL_CONFIG=[
     ("USE_MEMORY_DLMALLOC",            'UNDEF',                  'UNDEF'),
     ("USE_MEMORY_DLMALLOC",            'UNDEF',                  'UNDEF'),
     ("USE_MEMORY_PTMALLOC2",           '1',                      'UNDEF'),
     ("USE_MEMORY_PTMALLOC2",           '1',                      'UNDEF'),
     ("USE_MEMORY_MALLOC",              'UNDEF',                  '1'),
     ("USE_MEMORY_MALLOC",              'UNDEF',                  '1'),
+    ("HAVE_EIGEN",                     'UNDEF',                  'UNDEF'),
+    ("LINMATH_ALIGN",                  '1',                      '1'),
     ("HAVE_ZLIB",                      'UNDEF',                  'UNDEF'),
     ("HAVE_ZLIB",                      'UNDEF',                  'UNDEF'),
     ("HAVE_PNG",                       'UNDEF',                  'UNDEF'),
     ("HAVE_PNG",                       'UNDEF',                  'UNDEF'),
     ("HAVE_JPEG",                      'UNDEF',                  'UNDEF'),
     ("HAVE_JPEG",                      'UNDEF',                  'UNDEF'),

+ 1 - 1
makepanda/makepandacore.py

@@ -2292,4 +2292,4 @@ if __name__ == '__main__':
     if sys.platform == "win32":
     if sys.platform == "win32":
         SdkLocateDirectX( 'aug2006' )   
         SdkLocateDirectX( 'aug2006' )   
         SdkLocateMSPlatform( 'winserver2003r2')
         SdkLocateMSPlatform( 'winserver2003r2')
-         
+