From 5fa7f148d5febd85905b239207c6382bc580fd98 Mon Sep 17 00:00:00 2001 From: "L.C. Karssen" Date: Wed, 4 May 2016 17:13:10 +0200 Subject: [PATCH] Add Eigen 3.2.1 to ProbABEL This is a temporary workaround for Issue #11. The full Eigen tar-ball is included as src/3.2.1.tar.bz2 and src/eigen-3.2.1/ contains only the header files. --- configure.ac | 33 ++-- doc/COPYING | 16 +- doc/ChangeLog | 6 +- doc/INSTALL | 10 +- doc/ProbABEL_manual.tex | 51 +++--- src/Makefile.am | 350 +++++++++++++++++++++++++++++++++++++++- 6 files changed, 425 insertions(+), 41 deletions(-) diff --git a/configure.ac b/configure.ac index ebbdc8a..3ae5963 100644 --- a/configure.ac +++ b/configure.ac @@ -75,17 +75,30 @@ AC_CHECK_HEADERS([float.h inttypes.h libintl.h limits.h stddef.h \ # Option that lets the user specify a path to the EIGEN include files. AC_ARG_WITH([eigen-include-path], [AS_HELP_STRING([--with-eigen-include-path], - [location of the Eigen headers, defaults to /usr/include/eigen3])], - [CPPFLAGS+=" -I${withval}"], - [CPPFLAGS+=' -I/usr/include/eigen3']) - -# Check for the EIGEN header files -AC_CHECK_HEADERS([Eigen/Dense Eigen/LU]) - -if test x$ac_cv_header_Eigen_Dense = xno; then - AC_MSG_ERROR([Could not find the Eigen header files. Did you specify \ ---with-eigen-include-path correctly?]) + [location of the Eigen headers, defaults to src/eigen-3.2.1])], + [EIGEN_PATH=${withval}; EXTERNAL_EIGEN=yes], + [EIGEN_PATH="src/eigen-3.2.1"]) + +# Inform AutoMake that an eigen path has been specified using the +# --with-eigen-include-dir option so that AutoMake doesn't prepend +# ${top_srcdir} to the path +AM_CONDITIONAL([EXTERNAL_EIGEN], test -n "$EXTERNAL_EIGEN") + +AC_SUBST(EIGEN_PATH) + +# Check for the EIGEN header files (make backup of CPPFLAGS first) +CPPFLAGS_BACKUP=${CPPFLAGS} +if test -z "$EXTERNAL_EIGEN"; then + CPPFLAGS+=" -I${srcdir}/${EIGEN_PATH}" +else + CPPFLAGS+=" -I${EIGEN_PATH}" fi +AC_CHECK_HEADERS([Eigen/Dense Eigen/LU], + [], + [AC_MSG_ERROR([Could not find the Eigen header files. \ +Did you specify --with-eigen-include-path correctly?])] + ) +CPPFLAGS=${CPPFLAGS_BACKUP} # Checks for typedefs, structures, and compiler characteristics. diff --git a/doc/COPYING b/doc/COPYING index 3912109..17348ec 100644 --- a/doc/COPYING +++ b/doc/COPYING @@ -1,4 +1,18 @@ - GNU GENERAL PUBLIC LICENSE +ProbABEL consists of two parts: +1) The ProbABEL source code, which is licensed under the GPL +2) The source code for the Eigen library v.3.2.1 + (http://eigen.tuxfamily.org), which is licensed under the MPL 2.0. + +Note: the MPL allows distribution of unmodified MPL source code in a +GPL-ed larger work (see +https://www.mozilla.org/en-US/MPL/2.0/combining-mpl-and-gpl/) + +The licence text for the MPL can be found in the file +lib/eigen-3.2.1/COPYING.MPL2 +The licence text for the GPL is reproduced below. + + + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. diff --git a/doc/ChangeLog b/doc/ChangeLog index 74a2588..f2cca65 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,11 +1,13 @@ ***** v.0.5.0 (2016.) * ProbABEL now depends on the Eigen library. The option to compile without - Eigen has been removed. + Eigen has been removed. Eigen 3.2.1 is included with ProbABEL. The + directory src/eigen-3.2.1 contains header files we need. The full Eigen + source code tar-ball is included as src/3.2.1.tar.bz2. * Fixed Issue #15: Coxph interactions not working; when using the --interaction option the name of the model was wrong (e.g. for --interaction=1, the interaction term was shown as mu * SNP_A1, which obviously is not what we meant to do). -* Fixed issue Github #16: "Too many NANs for SNPs with low `Rsq` when some +* Fixed Github issue #16: "Too many NANs for SNPs with low `Rsq` when some commandline options are specified" * Added --flipmaf command line option to palinear, pacoxph and palogist. If this option is selected, ProbABEL will 'flip' the alleles A1 and A2 diff --git a/doc/INSTALL b/doc/INSTALL index cd872c9..9f4fd77 100644 --- a/doc/INSTALL +++ b/doc/INSTALL @@ -7,9 +7,13 @@ The ProbABEL manual (in .tex or .pdf format) also contains detailed ** The Eigen library ProbABEL has one external dependency that has to be met before compilation will succeed: it depends on the Eigen library - (http://eigen.tuxfamily.org) for fast matrix manipulation. On - Debian/Ubuntu systems the Eigen library can be installed in the - following way: apt-get install libeigen3-dev + (http://eigen.tuxfamily.org) for fast matrix manipulation. + + Eigen v3.2.1 is distributed with the ProbABEL source code, so by + default no extra steps are needed. + + Alternatively, on Debian/Ubuntu systems the Eigen library can be + installed in the following way: apt-get install libeigen3-dev If you install the eigen library by hand (e.g. after downloading the files from the aforementioned website) you have to specify the diff --git a/doc/ProbABEL_manual.tex b/doc/ProbABEL_manual.tex index 1bb0dbf..7b99b1d 100644 --- a/doc/ProbABEL_manual.tex +++ b/doc/ProbABEL_manual.tex @@ -157,12 +157,17 @@ \subsection{Precompiled packages} and install it from there. The PPA can be found at \url{https://launchpad.net/~l.c.karssen/+archive/genabel-ppa}. Instructions on how to add the PPA can also be found there. -\item If your computer runs Debian Linux\footnote{At the moment \PA{} - is only available in Debian testing and unstable.} (and you have +\item If your computer runs Debian Linux (and you have administrative rights on it), you can install ProbABEL like this: \begin{lstlisting}[basicstyle=\footnotesize\ttfamily,] -user@server:~$ apt-get install probabel +user@server:~$ sudo apt install probabel probabel-examples \end{lstlisting} + Note that since Debian has a relatively slow release cycle the + ProbABEL version in the Debian repositories may be relatively + old\footnote{The Debian package tracker + (\url{https://tracker.debian.org/pkg/probabel}) lists the \PA{} + versions currently in the Debian stable, testing and unstable + releases.}. \item Zip files with pre-compiled binaries (if available) can be found on the ProbABEL web page (\url{http://www.genabel.org/packages/ProbABEL}). @@ -217,20 +222,12 @@ \subsection{Obtaining the source code and compiling it yourself} \end{lstlisting} Before continuing, it is important to mention that \PA{} needs the -EIGEN library\footnote{EIGEN is a library for fast matrix - multiplication. In ProbABEL versions before v0.5.0 EIGEN was not - required (but still recommended).}. In order to download the -library, go to \url{http://eigen.tuxfamily.org} and download the -\texttt{tar.gz} file of the latest version of EIGEN (3.2.4 at the time -of writing). Extract the files: -\begin{lstlisting}[basicstyle=\footnotesize\ttfamily,] -user@server:~$ tar -xzf 3.2.4.tar.gz -\end{lstlisting} -This will create a directory called \texttt{eigen-eigen} followed by a -series of letters and digits. For simplicity we rename it to EIGEN -\begin{lstlisting}[basicstyle=\footnotesize\ttfamily,] -user@server:~$ mv eigen-eigen-10219c95fe65 EIGEN -\end{lstlisting} +Eigen library\footnote{Eigen is a library for fast matrix + multiplication. The Eigen website can be found at + \url{http://eigen.tuxfamily.org}. In ProbABEL versions before v0.5.0 + Eigen was not required (but still recommended).}. The required +source code for Eigen v3.2.1 is included in the ProbABEL +\lstinline{.tar.gz} file in the \lstinline{src/eigen-3.2.1} directory. Now it's time to extract the \PA{} source code and move into the directory that is created: @@ -238,14 +235,12 @@ \subsection{Obtaining the source code and compiling it yourself} user@server:~$ tar -xzf probabel-0.5.0.tar.gz user@server:~$ cd probabel-0.5.0 \end{lstlisting} -With the following command we will indicate where the EIGEN files can -be found and where we want to install \PA{}. Let's install in a -subdirectory of your home directory, +With the following command we will indicate where we want to install +\PA{}. Let's install in a subdirectory of your home directory, e.g.~\texttt{/home/yourusername/ProbABEL}: \begin{lstlisting}[basicstyle=\footnotesize\ttfamily,] user@server:~$ ./configure \ - --prefix=/home/yourusername/ProbABEL/ \ - --with-eigen-include-path=/home/yourusername/EIGEN + --prefix=/home/yourusername/ProbABEL/ \end{lstlisting} This will be followed by a series of checks to see if all tools required for compilation and installation are present on your @@ -1136,6 +1131,18 @@ \section{How to cite} %Iteratively re-weighted least squares are used to obtain parameters' %estimates. +\section{Licence} +\PA{} is licenced under the GNU Public Licence (GPL) v2.0, which +means it is free/libre open source software, basically allowing you to +the freedoms to run, study, share, and modify the software. The full +text of the licence can be found in the file \lstinline{doc/COPYING} +or on \url{https://gnu.org/licenses/old-licenses/gpl-2.0.html}. + +The Eigen library that is included with \PA{} is licenced under the +Mozilla Public Licence (MPL) v2.0. The full text of this licence can +be found in the file \lstinline{lib/eigen-3.2.1/COPYING.MPL2} or on +\url{https://www.mozilla.org/en-US/MPL/2.0/}. + \printindex \end{document} diff --git a/src/Makefile.am b/src/Makefile.am index d1630ac..66a395a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -37,6 +37,346 @@ RHEADERS = include/R.h include/Rmath.h include/R_ext/Arith.h \ include/R_ext/Print.h include/R_ext/Random.h include/R_ext/Utils.h \ include/R_ext/RS.h +## Eigen files, listed here so they get included in the source tar-ball. +EIGENFILES = \ + eigen-3.2.1/Eigen/Jacobi \ + eigen-3.2.1/Eigen/IterativeLinearSolvers \ + eigen-3.2.1/Eigen/MetisSupport \ + eigen-3.2.1/Eigen/Array \ + eigen-3.2.1/Eigen/SparseLU \ + eigen-3.2.1/Eigen/LU \ + eigen-3.2.1/Eigen/SparseCholesky \ + eigen-3.2.1/Eigen/Core \ + eigen-3.2.1/Eigen/SPQRSupport \ + eigen-3.2.1/Eigen/UmfPackSupport \ + eigen-3.2.1/Eigen/Geometry \ + eigen-3.2.1/Eigen/StdVector \ + eigen-3.2.1/Eigen/Sparse \ + eigen-3.2.1/Eigen/OrderingMethods \ + eigen-3.2.1/Eigen/StdDeque \ + eigen-3.2.1/Eigen/Eigen2Support \ + eigen-3.2.1/Eigen/Householder \ + eigen-3.2.1/Eigen/Eigenvalues \ + eigen-3.2.1/Eigen/SparseCore \ + eigen-3.2.1/Eigen/QtAlignedMalloc \ + eigen-3.2.1/Eigen/PaStiXSupport \ + eigen-3.2.1/Eigen/StdList \ + eigen-3.2.1/Eigen/Dense \ + eigen-3.2.1/Eigen/PardisoSupport \ + eigen-3.2.1/Eigen/SparseQR \ + eigen-3.2.1/Eigen/SVD \ + eigen-3.2.1/Eigen/CMakeLists.txt \ + eigen-3.2.1/Eigen/Cholesky \ + eigen-3.2.1/Eigen/QR \ + eigen-3.2.1/Eigen/SuperLUSupport \ + eigen-3.2.1/Eigen/Eigen \ + eigen-3.2.1/Eigen/CholmodSupport \ + eigen-3.2.1/Eigen/src/CholmodSupport/CholmodSupport.h \ + eigen-3.2.1/Eigen/src/CholmodSupport/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + eigen-3.2.1/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + eigen-3.2.1/Eigen/src/IterativeLinearSolvers/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + eigen-3.2.1/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + eigen-3.2.1/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + eigen-3.2.1/Eigen/src/QR/ColPivHouseholderQR_MKL.h \ + eigen-3.2.1/Eigen/src/QR/ColPivHouseholderQR.h \ + eigen-3.2.1/Eigen/src/QR/FullPivHouseholderQR.h \ + eigen-3.2.1/Eigen/src/QR/HouseholderQR.h \ + eigen-3.2.1/Eigen/src/QR/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/QR/HouseholderQR_MKL.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparseBlock.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparsePermutation.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparseDenseProduct.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparseMatrixBase.h \ + eigen-3.2.1/Eigen/src/SparseCore/CompressedStorage.h \ + eigen-3.2.1/Eigen/src/SparseCore/AmbiVector.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparseUtil.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparseMatrix.h \ + eigen-3.2.1/Eigen/src/SparseCore/MappedSparseMatrix.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparseTranspose.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparseFuzzy.h \ + eigen-3.2.1/Eigen/src/SparseCore/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparseView.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparseProduct.h \ + eigen-3.2.1/Eigen/src/SparseCore/TriangularSolver.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparseColEtree.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparseVector.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparseDot.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparseTriangularView.h \ + eigen-3.2.1/Eigen/src/SparseCore/SparseRedux.h \ + eigen-3.2.1/Eigen/src/Householder/HouseholderSequence.h \ + eigen-3.2.1/Eigen/src/Householder/Householder.h \ + eigen-3.2.1/Eigen/src/Householder/BlockHouseholder.h \ + eigen-3.2.1/Eigen/src/Householder/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + eigen-3.2.1/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + eigen-3.2.1/Eigen/src/Eigenvalues/RealSchur.h \ + eigen-3.2.1/Eigen/src/Eigenvalues/Tridiagonalization.h \ + eigen-3.2.1/Eigen/src/Eigenvalues/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + eigen-3.2.1/Eigen/src/Eigenvalues/RealQZ.h \ + eigen-3.2.1/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h \ + eigen-3.2.1/Eigen/src/Eigenvalues/EigenSolver.h \ + eigen-3.2.1/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + eigen-3.2.1/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + eigen-3.2.1/Eigen/src/Eigenvalues/RealSchur_MKL.h \ + eigen-3.2.1/Eigen/src/Eigenvalues/ComplexSchur.h \ + eigen-3.2.1/Eigen/src/Eigenvalues/ComplexSchur_MKL.h \ + eigen-3.2.1/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + eigen-3.2.1/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + eigen-3.2.1/Eigen/src/SparseLU/SparseLU.h \ + eigen-3.2.1/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + eigen-3.2.1/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + eigen-3.2.1/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + eigen-3.2.1/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + eigen-3.2.1/Eigen/src/SparseLU/SparseLU_Structs.h \ + eigen-3.2.1/Eigen/src/SparseLU/SparseLU_pivotL.h \ + eigen-3.2.1/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + eigen-3.2.1/Eigen/src/SparseLU/SparseLU_Memory.h \ + eigen-3.2.1/Eigen/src/SparseLU/SparseLUImpl.h \ + eigen-3.2.1/Eigen/src/SparseLU/SparseLU_pruneL.h \ + eigen-3.2.1/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + eigen-3.2.1/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + eigen-3.2.1/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + eigen-3.2.1/Eigen/src/SparseLU/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + eigen-3.2.1/Eigen/src/SparseLU/SparseLU_Utils.h \ + eigen-3.2.1/Eigen/src/SuperLUSupport/SuperLUSupport.h \ + eigen-3.2.1/Eigen/src/SuperLUSupport/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/Geometry/Transform.h \ + eigen-3.2.1/Eigen/src/Geometry/Homogeneous.h \ + eigen-3.2.1/Eigen/src/Geometry/OrthoMethods.h \ + eigen-3.2.1/Eigen/src/Geometry/Rotation2D.h \ + eigen-3.2.1/Eigen/src/Geometry/EulerAngles.h \ + eigen-3.2.1/Eigen/src/Geometry/RotationBase.h \ + eigen-3.2.1/Eigen/src/Geometry/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/Geometry/arch/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/Geometry/arch/Geometry_SSE.h \ + eigen-3.2.1/Eigen/src/Geometry/ParametrizedLine.h \ + eigen-3.2.1/Eigen/src/Geometry/Scaling.h \ + eigen-3.2.1/Eigen/src/Geometry/AlignedBox.h \ + eigen-3.2.1/Eigen/src/Geometry/Translation.h \ + eigen-3.2.1/Eigen/src/Geometry/AngleAxis.h \ + eigen-3.2.1/Eigen/src/Geometry/Hyperplane.h \ + eigen-3.2.1/Eigen/src/Geometry/Umeyama.h \ + eigen-3.2.1/Eigen/src/Geometry/Quaternion.h \ + eigen-3.2.1/Eigen/src/StlSupport/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/StlSupport/StdVector.h \ + eigen-3.2.1/Eigen/src/StlSupport/details.h \ + eigen-3.2.1/Eigen/src/StlSupport/StdList.h \ + eigen-3.2.1/Eigen/src/StlSupport/StdDeque.h \ + eigen-3.2.1/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h \ + eigen-3.2.1/Eigen/src/SPQRSupport/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/PardisoSupport/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/PardisoSupport/PardisoSupport.h \ + eigen-3.2.1/Eigen/src/Cholesky/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/Cholesky/LLT_MKL.h \ + eigen-3.2.1/Eigen/src/Cholesky/LLT.h \ + eigen-3.2.1/Eigen/src/Cholesky/LDLT.h \ + eigen-3.2.1/Eigen/src/OrderingMethods/Amd.h \ + eigen-3.2.1/Eigen/src/OrderingMethods/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + eigen-3.2.1/Eigen/src/OrderingMethods/Ordering.h \ + eigen-3.2.1/Eigen/src/LU/PartialPivLU_MKL.h \ + eigen-3.2.1/Eigen/src/LU/FullPivLU.h \ + eigen-3.2.1/Eigen/src/LU/PartialPivLU.h \ + eigen-3.2.1/Eigen/src/LU/Determinant.h \ + eigen-3.2.1/Eigen/src/LU/Inverse.h \ + eigen-3.2.1/Eigen/src/LU/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/LU/arch/Inverse_SSE.h \ + eigen-3.2.1/Eigen/src/LU/arch/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/Eigen2Support/VectorBlock.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/Minor.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/Geometry/Translation.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/Geometry/All.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/Geometry/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/Eigen2Support/Geometry/RotationBase.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/Geometry/Quaternion.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/Geometry/AlignedBox.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/Geometry/Transform.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/Geometry/Hyperplane.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/Geometry/Scaling.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/Geometry/Rotation2D.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/Geometry/AngleAxis.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/LeastSquares.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/Meta.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/Macros.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/Block.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/Cwise.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/TriangularSolver.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/LU.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/Lazy.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/CwiseOperators.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/Eigen2Support/Memory.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/SVD.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/MathFunctions.h \ + eigen-3.2.1/Eigen/src/Eigen2Support/QR.h \ + eigen-3.2.1/Eigen/src/SparseQR/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/SparseQR/SparseQR.h \ + eigen-3.2.1/Eigen/src/PaStiXSupport/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/PaStiXSupport/PaStiXSupport.h \ + eigen-3.2.1/Eigen/src/MetisSupport/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/MetisSupport/MetisSupport.h \ + eigen-3.2.1/Eigen/src/Jacobi/Jacobi.h \ + eigen-3.2.1/Eigen/src/Jacobi/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/UmfPackSupport/UmfPackSupport.h \ + eigen-3.2.1/Eigen/src/UmfPackSupport/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/misc/SparseSolve.h \ + eigen-3.2.1/Eigen/src/misc/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/misc/Image.h \ + eigen-3.2.1/Eigen/src/misc/Kernel.h \ + eigen-3.2.1/Eigen/src/misc/Solve.h \ + eigen-3.2.1/Eigen/src/misc/blas.h \ + eigen-3.2.1/Eigen/src/SparseCholesky/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + eigen-3.2.1/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + eigen-3.2.1/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + eigen-3.2.1/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + eigen-3.2.1/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + eigen-3.2.1/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + eigen-3.2.1/Eigen/src/plugins/BlockMethods.h \ + eigen-3.2.1/Eigen/src/plugins/MatrixCwiseUnaryOps.h \ + eigen-3.2.1/Eigen/src/plugins/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + eigen-3.2.1/Eigen/src/SVD/JacobiSVD_MKL.h \ + eigen-3.2.1/Eigen/src/SVD/UpperBidiagonalization.h \ + eigen-3.2.1/Eigen/src/SVD/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/SVD/JacobiSVD.h \ + eigen-3.2.1/Eigen/src/Core/Ref.h \ + eigen-3.2.1/Eigen/src/Core/DiagonalProduct.h \ + eigen-3.2.1/Eigen/src/Core/VectorBlock.h \ + eigen-3.2.1/Eigen/src/Core/Reverse.h \ + eigen-3.2.1/Eigen/src/Core/Array.h \ + eigen-3.2.1/Eigen/src/Core/Matrix.h \ + eigen-3.2.1/Eigen/src/Core/MatrixBase.h \ + eigen-3.2.1/Eigen/src/Core/util/ForwardDeclarations.h \ + eigen-3.2.1/Eigen/src/Core/util/Meta.h \ + eigen-3.2.1/Eigen/src/Core/util/Constants.h \ + eigen-3.2.1/Eigen/src/Core/util/StaticAssert.h \ + eigen-3.2.1/Eigen/src/Core/util/Macros.h \ + eigen-3.2.1/Eigen/src/Core/util/BlasUtil.h \ + eigen-3.2.1/Eigen/src/Core/util/XprHelper.h \ + eigen-3.2.1/Eigen/src/Core/util/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/Core/util/Memory.h \ + eigen-3.2.1/Eigen/src/Core/util/NonMPL2.h \ + eigen-3.2.1/Eigen/src/Core/util/DisableStupidWarnings.h \ + eigen-3.2.1/Eigen/src/Core/util/ReenableStupidWarnings.h \ + eigen-3.2.1/Eigen/src/Core/util/MKL_support.h \ + eigen-3.2.1/Eigen/src/Core/GenericPacketMath.h \ + eigen-3.2.1/Eigen/src/Core/Block.h \ + eigen-3.2.1/Eigen/src/Core/GlobalFunctions.h \ + eigen-3.2.1/Eigen/src/Core/NumTraits.h \ + eigen-3.2.1/Eigen/src/Core/NoAlias.h \ + eigen-3.2.1/Eigen/src/Core/ProductBase.h \ + eigen-3.2.1/Eigen/src/Core/Functors.h \ + eigen-3.2.1/Eigen/src/Core/PlainObjectBase.h \ + eigen-3.2.1/Eigen/src/Core/CoreIterators.h \ + eigen-3.2.1/Eigen/src/Core/products/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/Core/products/CoeffBasedProduct.h \ + eigen-3.2.1/Eigen/src/Core/products/SelfadjointProduct.h \ + eigen-3.2.1/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h \ + eigen-3.2.1/Eigen/src/Core/products/SelfadjointRank2Update.h \ + eigen-3.2.1/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + eigen-3.2.1/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + eigen-3.2.1/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h \ + eigen-3.2.1/Eigen/src/Core/products/TriangularMatrixVector.h \ + eigen-3.2.1/Eigen/src/Core/products/TriangularSolverVector.h \ + eigen-3.2.1/Eigen/src/Core/products/GeneralMatrixVector_MKL.h \ + eigen-3.2.1/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h \ + eigen-3.2.1/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + eigen-3.2.1/Eigen/src/Core/products/Parallelizer.h \ + eigen-3.2.1/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h \ + eigen-3.2.1/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h \ + eigen-3.2.1/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + eigen-3.2.1/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + eigen-3.2.1/Eigen/src/Core/products/TriangularSolverMatrix.h \ + eigen-3.2.1/Eigen/src/Core/products/TriangularMatrixVector_MKL.h \ + eigen-3.2.1/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + eigen-3.2.1/Eigen/src/Core/products/GeneralMatrixVector.h \ + eigen-3.2.1/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h \ + eigen-3.2.1/Eigen/src/Core/GeneralProduct.h \ + eigen-3.2.1/Eigen/src/Core/CwiseNullaryOp.h \ + eigen-3.2.1/Eigen/src/Core/Select.h \ + eigen-3.2.1/Eigen/src/Core/CwiseBinaryOp.h \ + eigen-3.2.1/Eigen/src/Core/SelfCwiseBinaryOp.h \ + eigen-3.2.1/Eigen/src/Core/ArrayWrapper.h \ + eigen-3.2.1/Eigen/src/Core/Stride.h \ + eigen-3.2.1/Eigen/src/Core/CwiseUnaryOp.h \ + eigen-3.2.1/Eigen/src/Core/IO.h \ + eigen-3.2.1/Eigen/src/Core/EigenBase.h \ + eigen-3.2.1/Eigen/src/Core/Assign.h \ + eigen-3.2.1/Eigen/src/Core/MathFunctions.h \ + eigen-3.2.1/Eigen/src/Core/Transpose.h \ + eigen-3.2.1/Eigen/src/Core/ForceAlignedAccess.h \ + eigen-3.2.1/Eigen/src/Core/arch/SSE/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/Core/arch/SSE/PacketMath.h \ + eigen-3.2.1/Eigen/src/Core/arch/SSE/MathFunctions.h \ + eigen-3.2.1/Eigen/src/Core/arch/SSE/Complex.h \ + eigen-3.2.1/Eigen/src/Core/arch/NEON/PacketMath.h \ + eigen-3.2.1/Eigen/src/Core/arch/NEON/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/Core/arch/NEON/Complex.h \ + eigen-3.2.1/Eigen/src/Core/arch/Default/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/Core/arch/Default/Settings.h \ + eigen-3.2.1/Eigen/src/Core/arch/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/Core/arch/AltiVec/Complex.h \ + eigen-3.2.1/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + eigen-3.2.1/Eigen/src/Core/arch/AltiVec/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/Core/SelfAdjointView.h \ + eigen-3.2.1/Eigen/src/Core/Swap.h \ + eigen-3.2.1/Eigen/src/Core/MapBase.h \ + eigen-3.2.1/Eigen/src/Core/Dot.h \ + eigen-3.2.1/Eigen/src/Core/Fuzzy.h \ + eigen-3.2.1/Eigen/src/Core/DenseCoeffsBase.h \ + eigen-3.2.1/Eigen/src/Core/TriangularMatrix.h \ + eigen-3.2.1/Eigen/src/Core/Replicate.h \ + eigen-3.2.1/Eigen/src/Core/StableNorm.h \ + eigen-3.2.1/Eigen/src/Core/CMakeLists.txt \ + eigen-3.2.1/Eigen/src/Core/Random.h \ + eigen-3.2.1/Eigen/src/Core/ReturnByValue.h \ + eigen-3.2.1/Eigen/src/Core/BooleanRedux.h \ + eigen-3.2.1/Eigen/src/Core/ArrayBase.h \ + eigen-3.2.1/Eigen/src/Core/SolveTriangular.h \ + eigen-3.2.1/Eigen/src/Core/Visitor.h \ + eigen-3.2.1/Eigen/src/Core/VectorwiseOp.h \ + eigen-3.2.1/Eigen/src/Core/BandMatrix.h \ + eigen-3.2.1/Eigen/src/Core/DenseStorage.h \ + eigen-3.2.1/Eigen/src/Core/NestByValue.h \ + eigen-3.2.1/Eigen/src/Core/Assign_MKL.h \ + eigen-3.2.1/Eigen/src/Core/Transpositions.h \ + eigen-3.2.1/Eigen/src/Core/CwiseUnaryView.h \ + eigen-3.2.1/Eigen/src/Core/CommaInitializer.h \ + eigen-3.2.1/Eigen/src/Core/Diagonal.h \ + eigen-3.2.1/Eigen/src/Core/DiagonalMatrix.h \ + eigen-3.2.1/Eigen/src/Core/Map.h \ + eigen-3.2.1/Eigen/src/Core/Flagged.h \ + eigen-3.2.1/Eigen/src/Core/PermutationMatrix.h \ + eigen-3.2.1/Eigen/src/Core/DenseBase.h \ + eigen-3.2.1/Eigen/src/Core/Redux.h \ + eigen-3.2.1/Eigen/LeastSquares \ + eigen-3.2.1/COPYING.BSD \ + eigen-3.2.1/COPYING.LGPL \ + eigen-3.2.1/COPYING.MPL2 \ + eigen-3.2.1/COPYING.MINPACK \ + eigen-3.2.1/INSTALL \ + eigen-3.2.1/COPYING.README \ + eigen-3.2.1/COPYING.GPL + +if EXTERNAL_EIGEN +AM_CPPFLAGS = -I${EIGEN_PATH} +else +AM_CPPFLAGS = -I${top_srcdir}/${EIGEN_PATH} +endif + bin_PROGRAMS = if BUILD_palinear bin_PROGRAMS += palinear @@ -58,14 +398,15 @@ bin_PROGRAMS += extract-snp endif -palinear_SOURCES = $(REGFILES) $(FVSRC) $(FVHEADERS) +palinear_SOURCES = $(REGFILES) $(FVSRC) $(FVHEADERS) $(EIGENFILES) palinear_CPPFLAGS = -DLINEAR $(AM_CPPFLAGS) -palogist_SOURCES = $(REGFILES) $(FVSRC) $(FVHEADERS) +palogist_SOURCES = $(REGFILES) $(FVSRC) $(FVHEADERS) $(EIGENFILES) palogist_CPPFLAGS = -DLOGISTIC $(AM_CPPFLAGS) pacoxph_SOURCES = $(COXSRC) $(REGFILES) $(FVSRC) $(FVHEADERS) \ - $(RHEADERS) survS.h survproto.h coxph_data.h coxph_data.cpp + $(RHEADERS) survS.h survproto.h coxph_data.h coxph_data.cpp \ + $(EIGENFILES) pacoxph_CXXFLAGS = -I $(top_srcdir)/src/include $(AM_CXXFLAGS) pacoxph_CPPFLAGS = -DCOXPH $(AM_CPPFLAGS) pacoxph_CFLAGS = -I $(top_srcdir)/src/include $(AM_CFLAGS) @@ -79,6 +420,9 @@ dist_bin_SCRIPTS = probabel scriptdir = $(pkgdatadir)/scripts dist_script_DATA = prepare_data.R extIDS.pl +# Copy the Eigen tar-ball to the ProbABEL tar-ball +EXTRA_DIST = 3.2.1.tar.bz2 + ## Install the config file dist_sysconf_DATA = probabel_config.cfg.example