diff --git a/dtool/Config.pp b/dtool/Config.pp index d5e2292e7d..73e2e8f4c3 100644 --- a/dtool/Config.pp +++ b/dtool/Config.pp @@ -327,7 +327,7 @@ // impact memory usage on very-low-memory platforms.) Currently // experimental. #define EIGEN_IPATH -#define EIGEN_CFLAGS +#defer EIGEN_CFLAGS $[if $[WINDOWS_PLATFORM],/arch:SSE2,-msse2] #defer HAVE_EIGEN $[isdir $[EIGEN_IPATH]/Eigen] #define LINMATH_ALIGN 1 diff --git a/dtool/src/dtoolutil/pandaSystem.cxx b/dtool/src/dtoolutil/pandaSystem.cxx index 7a4d48364b..d1460d977a 100644 --- a/dtool/src/dtoolutil/pandaSystem.cxx +++ b/dtool/src/dtoolutil/pandaSystem.cxx @@ -41,6 +41,15 @@ PandaSystem() : #ifdef STDFLOAT_DOUBLE add_system("stdfloat-double"); #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 } //////////////////////////////////////////////////////////////////// diff --git a/makepanda/makepanda.py b/makepanda/makepanda.py index 660264f766..cc77b72100 100755 --- a/makepanda/makepanda.py +++ b/makepanda/makepanda.py @@ -72,6 +72,7 @@ if "MACOSX_DEPLOYMENT_TARGET" in os.environ: PkgListSet(["PYTHON", "DIRECT", # Python support "GL", "GLES", "GLES2"] + DXVERSIONS + ["TINYDISPLAY", "NVIDIACG", # 3D graphics "EGL", # OpenGL (ES) integration + "EIGEN", # Linear algebra acceleration "OPENAL", "FMODEX", "FFMPEG", # Multimedia "ODE", "PHYSX", "BULLET", "PANDAPHYSICS", # Physics "SPEEDTREE", # SpeedTree @@ -593,6 +594,7 @@ if (COMPILER=="LINUX"): # Name pkg-config libs, include(dir)s if (not RUNTIME): + SmartPkgEnable("EIGEN", "", (), ("Eigen/Dense",), target_pkg = 'ALWAYS') SmartPkgEnable("ARTOOLKIT", "", ("AR"), "AR/ar.h") SmartPkgEnable("FCOLLADA", "", ChooseLib(*fcollada_libs), ("FCollada", "FCollada.h")) SmartPkgEnable("FFMPEG", ffmpeg_libs, ffmpeg_libs, ffmpeg_libs) @@ -849,7 +851,7 @@ def CompileCxx(obj,src,opts): else: cmd += " -arch i386" if ("NOPPC" not in opts): cmd += " -arch ppc" - cmd += " -pthread" + cmd += " -pthread -msse2" optlevel = GetOptimizeOption(opts) if (optlevel==1): cmd += " -ggdb -D_DEBUG" if (optlevel==2): cmd += " -O1 -D_DEBUG" @@ -1527,6 +1529,8 @@ DTOOL_CONFIG=[ ("USE_MEMORY_DLMALLOC", 'UNDEF', 'UNDEF'), ("USE_MEMORY_PTMALLOC2", '1', 'UNDEF'), ("USE_MEMORY_MALLOC", 'UNDEF', '1'), + ("HAVE_EIGEN", 'UNDEF', 'UNDEF'), + ("LINMATH_ALIGN", '1', '1'), ("HAVE_ZLIB", 'UNDEF', 'UNDEF'), ("HAVE_PNG", 'UNDEF', 'UNDEF'), ("HAVE_JPEG", 'UNDEF', 'UNDEF'), diff --git a/makepanda/makepandacore.py b/makepanda/makepandacore.py index 6e27bd0dd4..045491d2fe 100644 --- a/makepanda/makepandacore.py +++ b/makepanda/makepandacore.py @@ -2292,4 +2292,4 @@ if __name__ == '__main__': if sys.platform == "win32": SdkLocateDirectX( 'aug2006' ) SdkLocateMSPlatform( 'winserver2003r2') - \ No newline at end of file +