Project import
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..939d0ca
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,91 @@
+#
+#    Copyright (c) 2015 Nest, Inc.
+#    All rights reserved.
+#
+#    This document is the property of Nest. It is considered
+#    confidential and proprietary information.
+#
+#    This document may not be reproduced or transmitted in any form,
+#    in whole or in part, without the express written permission of
+#    Nest.
+#
+#    Description:
+#      This file is the make file for eigen, a C++ linear algebra library
+#
+
+
+include pre.mak
+
+PackageName		:= eigen
+
+PackageExtension	:= tar.bz2
+PackageSeparator	:= -
+
+PackagePatchArgs	:= -p1
+
+PackageArchive		:= $(PackageName).$(PackageExtension)
+PackageSourceDir	:= $(PackageName)$(PackageSeparator)$(PackageVersion)
+
+PackageBuildMakefile	= $(call GenerateBuildPaths,Makefile)
+
+LicenseSourceFile	:= $(PackageSourceDir)/COPYING.MPL2
+
+CleanPaths		+= $(PackageLicenseFile)
+
+SOURCEDIRS = $(PackageSourceDir)
+$(PackageSourceDir)_RULE_TARGET = $(BuildDirectory)/configure
+
+all: $(PackageDefaultGoal)
+
+# Generate the package license contents.
+
+$(LicenseSourceFile): $(BuildDirectory)/source
+
+$(PackageLicenseFile): $(LicenseSourceFile)
+	$(copy-result)
+
+# Extract the source from the archive and apply patches, if any.
+
+$(PackageSourceDir): $(PackageArchive) $(PackagePatchPaths)
+	$(expand-and-patch-package)
+
+# Prepare the sources.
+
+$(BuildDirectory)/source: | $(PackageSourceDir) $(BuildDirectory)
+	$(Verbose)touch $@
+
+# Patch the sources, if necessary.
+
+$(BuildDirectory)/patch: $(BuildDirectory)/source
+	$(Verbose)touch $@
+
+$(BuildDirectory)/configure: $(BuildDirectory)/source
+	$(Verbose)touch $@
+
+ResultHeaderPath             = $(ResultDirectory)/include
+SourceHeaderPathEigen        = $(PackageSourceDir)/Eigen
+SourceHeaderPathUnsupported  = $(PackageSourceDir)/unsupported
+
+$(ResultHeaderPath):
+	$(create-directory)
+
+$(BuildDirectory)/copyEigen: $(BuildDirectory)/configure | $(ResultHeaderPath)
+	$(Verbose)cp -Rf $(SourceHeaderPathEigen) $(ResultHeaderPath)
+	$(Verbose)touch $@
+
+$(BuildDirectory)/copyUnsupported: $(BuildDirectory)/configure | $(ResultHeaderPath)
+	$(Verbose)cp -Rf $(SourceHeaderPathUnsupported) $(ResultHeaderPath)
+	$(Verbose)touch $@
+
+$(BuildDirectory)/stage: $(BuildDirectory)/copyEigen $(BuildDirectory)/copyUnsupported | $(ResultDirectory)
+	$(Verbose)touch $@
+
+.PHONY: stage
+stage: $(BuildDirectory)/stage
+
+clean:
+	$(Verbose)$(RM) $(RMFLAGS) -r $(PackageSourceDir)
+	$(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory)
+	$(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory)
+
+include post.mak
diff --git a/eigen.patches/eigen-51.description b/eigen.patches/eigen-51.description
new file mode 100644
index 0000000..7e34142
--- /dev/null
+++ b/eigen.patches/eigen-51.description
@@ -0,0 +1,2 @@
+This patch resolves any -Wshadow warnings/errors that Eigen produces
+as a result of Sapphire calls.
diff --git a/eigen.patches/eigen-51.patch.gz b/eigen.patches/eigen-51.patch.gz
new file mode 100644
index 0000000..1f794cc
--- /dev/null
+++ b/eigen.patches/eigen-51.patch.gz
Binary files differ
diff --git a/eigen.patches/eigen-52.description b/eigen.patches/eigen-52.description
new file mode 100644
index 0000000..d3ff8e5
--- /dev/null
+++ b/eigen.patches/eigen-52.description
@@ -0,0 +1 @@
+Further clean up of shadowed members
diff --git a/eigen.patches/eigen-52.patch b/eigen.patches/eigen-52.patch
new file mode 100644
index 0000000..3fdd65b
--- /dev/null
+++ b/eigen.patches/eigen-52.patch
@@ -0,0 +1,22 @@
+diff -aNur unpatched/Eigen/src/Core/ProductBase.h patched/Eigen/src/Core/ProductBase.h
+--- unpatched/Eigen/src/Core/ProductBase.h	2015-01-21 08:26:41.000000000 -0800
++++ patched/Eigen/src/Core/ProductBase.h	2016-10-26 17:11:53.638624059 -0700
+@@ -139,15 +139,15 @@
+     { return FullyLazyCoeffBaseProductType(m_lhs, m_rhs).diagonal(index); }
+ 
+     // restrict coeff accessors to 1x1 expressions. No need to care about mutators here since this isnt a Lvalue expression
+-    typename Base::CoeffReturnType coeff(Index row, Index col) const
++    typename Base::CoeffReturnType coeff(Index aRow, Index aCol) const
+     {
+ #ifdef EIGEN2_SUPPORT
+-      return lhs().row(row).cwiseProduct(rhs().col(col).transpose()).sum();
++      return lhs().row(aRow).cwiseProduct(rhs().col(col).transpose()).sum();
+ #else
+       EIGEN_STATIC_ASSERT_SIZE_1x1(Derived)
+       eigen_assert(this->rows() == 1 && this->cols() == 1);
+       Matrix<Scalar,1,1> result = *this;
+-      return result.coeff(row,col);
++      return result.coeff(aRow,aCol);
+ #endif
+     }
+ 
diff --git a/eigen.tar.bz2 b/eigen.tar.bz2
new file mode 100644
index 0000000..1dcc960
--- /dev/null
+++ b/eigen.tar.bz2
Binary files differ
diff --git a/eigen.url b/eigen.url
new file mode 100644
index 0000000..e9626a2
--- /dev/null
+++ b/eigen.url
@@ -0,0 +1 @@
+http://bitbucket.org/eigen/eigen/get/3.2.4.tar.bz2
diff --git a/eigen.version b/eigen.version
new file mode 100644
index 0000000..a4c8315
--- /dev/null
+++ b/eigen.version
@@ -0,0 +1 @@
+eigen-10219c95fe65