From 75bb687e44252ff0e63ed3cfcb05f42a175a914f Mon Sep 17 00:00:00 2001 From: maier Date: Mon, 17 Sep 2012 21:34:17 +0000 Subject: [PATCH] Add support for arpack git-svn-id: https://svn.dealii.org/branches/branch_cmake@26455 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/CMakeLists.txt | 25 +++++----- .../cmake/configure/configure_arpack.cmake | 27 +++++++++++ .../contrib/cmake/modules/FindARPACK.cmake | 16 +++++++ deal.II/features.m4 | 48 ------------------- deal.II/include/deal.II/base/config.h.in | 9 ++++ deal.II/include/deal.II/base/config.h.in.old | 3 -- 6 files changed, 63 insertions(+), 65 deletions(-) create mode 100644 deal.II/contrib/cmake/configure/configure_arpack.cmake create mode 100644 deal.II/contrib/cmake/modules/FindARPACK.cmake diff --git a/deal.II/CMakeLists.txt b/deal.II/CMakeLists.txt index cd7ed19fc7..5ba9d52f16 100644 --- a/deal.II/CMakeLists.txt +++ b/deal.II/CMakeLists.txt @@ -95,6 +95,10 @@ OPTION(DEAL_II_ALLOW_CONTRIB OFF" OFF) +OPTION(DEAL_II_WITH_ARPACK + "Build deal.II with support for ARPACK." + ON) + OPTION(DEAL_II_WITH_BLAS "Build deal.II with support for BLAS." OFF) @@ -248,29 +252,22 @@ ENDFOREACH() # Feature configuration: # +# +# TODO: Resolve this boost dependency so that we can automatically include +# configure_[...] files +# +INCLUDE(configure_arpack) INCLUDE(configure_blas) INCLUDE(configure_lapack) - -# configure_boost depends on configure_blas and configure_lapack -INCLUDE(configure_umfpack) - INCLUDE(configure_functionparser) - INCLUDE(configure_metis) - INCLUDE(configure_mpi) - INCLUDE(configure_netcdf) - INCLUDE(configure_p4est) - INCLUDE(configure_tbb) - +INCLUDE(configure_boost) # depends on variables defined in configure_tbb INCLUDE(configure_trilinos) - -# configure_boost depends on configure_tbb -INCLUDE(configure_boost) - +INCLUDE(configure_umfpack) INCLUDE(configure_zlib) diff --git a/deal.II/contrib/cmake/configure/configure_arpack.cmake b/deal.II/contrib/cmake/configure/configure_arpack.cmake new file mode 100644 index 0000000000..04abc3ad21 --- /dev/null +++ b/deal.II/contrib/cmake/configure/configure_arpack.cmake @@ -0,0 +1,27 @@ +# +# Configuration for the ARPACK library: +# + +MACRO(FEATURE_ARPACK_FIND_EXTERNAL var) + + FIND_PACKAGE(ARPACK) + + IF(ARPACK_FOUND) + SET(${var} TRUE) + ENDIF() + +ENDMACRO() + + +MACRO(FEATURE_ARPACK_CONFIGURE_EXTERNAL var) + + INCLUDE_DIRECTORIES(${ARPACK_INCLUDE_DIR}) + LIST(APPEND deal_ii_external_libraries ${ARPACK_LIBRARY}) + + SET(DEAL_II_USE_ARPACK TRUE) + + SET(${var} TRUE) +ENDMACRO() + + +CONFIGURE_FEATURE(ARPACK) diff --git a/deal.II/contrib/cmake/modules/FindARPACK.cmake b/deal.II/contrib/cmake/modules/FindARPACK.cmake new file mode 100644 index 0000000000..6479e4c386 --- /dev/null +++ b/deal.II/contrib/cmake/modules/FindARPACK.cmake @@ -0,0 +1,16 @@ +# Try to find ARPACK + +INCLUDE(FindPackageHandleStandardArgs) + +FIND_LIBRARY(ARPACK_LIBRARY + NAMES arpack + PATH_SUFFIXES lib64 lib +) + +FIND_PACKAGE_HANDLE_STANDARD_ARGS(ARPACK DEFAULT_MSG ARPACK_LIBRARY) + +IF(ARPACK_FOUND) + MARK_AS_ADVANCED( + ARPACK_LIBRARY + ) +ENDIF() diff --git a/deal.II/features.m4 b/deal.II/features.m4 index fc558ae826..dc0048acac 100644 --- a/deal.II/features.m4 +++ b/deal.II/features.m4 @@ -693,51 +693,3 @@ AC_DEFUN(DEAL_II_CONFIGURE_MUMPS, dnl fi fi ]) - -dnl ------------------------------------------------------------ -dnl Check whether ARPACK is installed, and if so store the -dnl respective links -dnl -dnl Usage: DEAL_II_CONFIGURE_ARPACK -dnl -dnl ------------------------------------------------------------ -AC_DEFUN(DEAL_II_CONFIGURE_ARPACK, dnl -[ - AC_MSG_CHECKING([for ARPACK library directory]) - AC_ARG_WITH(arpack, - [AS_HELP_STRING([--with-arpack=path/to/arpack], - [Specify the path to the ARPACK installation, for which the include directory and lib directory are subdirs; use this if you want to override the ARPACK_DIR environment variable.])], - [dnl action-if-given - if test "x$withval" = "xno" ; then - AC_MSG_RESULT([explicitly disabled]) - USE_CONTRIB_ARPACK=no - else - DEAL_II_ARPACK_DIR="$withval" - AC_MSG_RESULT($DEAL_II_ARPACK_DIR) - dnl Make sure that what was specified is actually correct - if test ! -d $DEAL_II_ARPACK_DIR \ - ; then - AC_MSG_ERROR([Path to ARPACK specified with --with-arpack does not point to a complete ARPACK installation]) - fi - - dnl ------------------------------------------------------------ - dnl Grab a meaningful name of the architeture ARPACK was - dnl compiled for - AC_MSG_CHECKING([for ARPACK library architecture]) - ARPACK_ARCH=`cat $DEAL_II_ARPACK_DIR/ARmake.inc \ - | grep "PLAT = " \ - | perl -pi -e 's/.*PLAT =\s+//g;'` - DEAL_II_ARPACK_ARCH="$ARPACK_ARCH" - AC_MSG_RESULT($DEAL_II_ARPACK_ARCH) - - USE_CONTRIB_ARPACK=yes - AC_DEFINE(DEAL_II_USE_ARPACK, 1, - [Defined if an ARPACK installation was found and is - going to be used]) - fi - ], - [dnl action-if-not-given (do nothing) - USE_CONTRIB_ARPACK=no - AC_MSG_RESULT([no]) - ]) -]) diff --git a/deal.II/include/deal.II/base/config.h.in b/deal.II/include/deal.II/base/config.h.in index a81b8b611e..da8ea1512b 100644 --- a/deal.II/include/deal.II/base/config.h.in +++ b/deal.II/include/deal.II/base/config.h.in @@ -52,6 +52,15 @@ + +/***************************************** + * Configured in configure_arpack.cmake: * + *****************************************/ + +/* Defined if an ARPACK installation was found and is going to be used */ +#cmakedefine DEAL_II_USE_ARPACK + + /*************************************** * Configured in configure_blas.cmake: * ***************************************/ diff --git a/deal.II/include/deal.II/base/config.h.in.old b/deal.II/include/deal.II/base/config.h.in.old index b381758f22..ead5e6739a 100644 --- a/deal.II/include/deal.II/base/config.h.in.old +++ b/deal.II/include/deal.II/base/config.h.in.old @@ -147,9 +147,6 @@ this bug. */ #cmakedefine DEAL_II_TEMPL_SPEC_FRIEND_BUG -/* Defined if an ARPACK installation was found and is going to be used */ -#cmakedefine DEAL_II_USE_ARPACK - /* Defined if a MUMPS installation was found and is going to be used */ #cmakedefine DEAL_II_USE_MUMPS -- 2.39.5