From 5305bca76924545765c7127f6ba2db04acbfc5f7 Mon Sep 17 00:00:00 2001 From: Markus Blatt <markus@dr-blatt.de> Date: Wed, 23 Oct 2013 16:24:37 +0200 Subject: [PATCH] [umfack] Moved build system tests for umfpack to dune-common This patch removed the tests for umfpack from dune-istl as they are already needed in dune-common. There are modules using umfpack that do not require dune-istl. Therefore dune-common seems to be the more appropriate place for the test. --- cmake/modules/AddUMFPackFlags.cmake | 18 ---- cmake/modules/CMakeLists.txt | 4 +- cmake/modules/FindUMFPack.cmake | 112 ---------------------- cmake/modules/Makefile.am | 4 +- m4/umfpack.m4 | 141 ---------------------------- 5 files changed, 2 insertions(+), 277 deletions(-) delete mode 100644 cmake/modules/AddUMFPackFlags.cmake delete mode 100644 cmake/modules/FindUMFPack.cmake delete mode 100644 m4/umfpack.m4 diff --git a/cmake/modules/AddUMFPackFlags.cmake b/cmake/modules/AddUMFPackFlags.cmake deleted file mode 100644 index 5ed6cdc2b..000000000 --- a/cmake/modules/AddUMFPackFlags.cmake +++ /dev/null @@ -1,18 +0,0 @@ -# module providing convenience mehtods for compiling bianries with UMFPack support -# -# Provides the following functions: -# -# add_dune_umfpack_flags(target1 target2...) -# -# adds UMFPack flags to the targets for compilation and linking -function(add_dune_umfpack_flags _targets) - if(UMFPACK_FOUND) - foreach(_target ${_targets}) - target_link_libraries(${_target} ${UMFPACK_DUNE_LIBRARIES}) - get_target_property(_props ${_target} COMPILE_FLAGS) - string(REPLACE "_props-NOTFOUND" "" _props "${_props}") - set_target_properties(${_target} PROPERTIES COMPILE_FLAGS - "${_props} ${UMFPACK_DUNE_COMPILE_FLAGS} -DENABLE_UMFPACK") - endforeach(_target ${_targets}) - endif(UMFPACK_FOUND) -endfunction(add_dune_umfpack_flags) \ No newline at end of file diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt index 84d034ced..b9bbda946 100644 --- a/cmake/modules/CMakeLists.txt +++ b/cmake/modules/CMakeLists.txt @@ -1,9 +1,7 @@ set(modules AddSuperLUFlags.cmake - AddUMFPackFlags.cmake DuneIstlMacros.cmake - FindSuperLU.cmake - FindUMFPack.cmake) + FindSuperLU.cmake) install(FILES ${modules} DESTINATION ${DUNE_INSTALL_MODULEDIR}) diff --git a/cmake/modules/FindUMFPack.cmake b/cmake/modules/FindUMFPack.cmake deleted file mode 100644 index 8e60b4350..000000000 --- a/cmake/modules/FindUMFPack.cmake +++ /dev/null @@ -1,112 +0,0 @@ -# Module that checks whether UMFPack is available. -# -# Variables used by this module which you may want to set: -# UMFPACK_ROOT Path list to search for UMFPack -# -# Sets the following variables -# -# UMFPACK_FOUND True if UMFPack was found and usable -# UMFPACK_INCLUDE_DIRS Path to the UMFPack include dirs -# UMFPACK_LIBRARIES Name of the UMFPack libraries -# - -find_package(BLAS QUIET REQUIRED) -if(NOT BLAS_FOUND) - message(WARNING "UMFPack requires BLAS which was not found, skipping the test.") - return() -endif() - -find_library(AMD_LIBRARY - NAMES "amd" - PATHS ${UMFPACK_ROOT} - PATH_SUFFIXES "lib" "lib32" "lib64" "AMD" "AMD/Lib" - NO_DEFAULT_PATH -) - -find_library(AMD_LIBRARY - NAMES "amd" - PATH_SUFFIXES "lib" "lib32" "lib64" "AMD" "AMD/Lib" -) - -if(NOT AMD_LIBRARY) - message(WARNING "UMFPack requires AMD which was not found, skipping the test.") - return() -endif() - -#look for header files at positions given by the user -find_path(UMFPACK_INCLUDE_DIR - NAMES "umfpack.h" - PATHS ${UMFPACK_ROOT} - PATH_SUFFIXES "umfpack" "include/umfpack" "suitesparse" "include" "src" "UMFPACK" "UMFPACK/Include" - NO_DEFAULT_PATH -) -#now also look for default paths -find_path(UMFPACK_INCLUDE_DIR - NAMES "umfpack.h" - PATH_SUFFIXES "umfpack" "include/umfpack" "suitesparse" "include" "UMFPACK" "UMFPACK/Include" -) - -#look for library at positions given by the user -find_library(UMFPACK_LIBRARY - NAMES "umfpack" - PATHS ${UMFPACK_ROOT} - PATH_SUFFIXES "lib" "lib32" "lib64" "UMFPACK" "UMFPACK/Lib" - NO_DEFAULT_PATH -) -#now also include the deafult paths -find_library(UMFPACK_LIBRARY - NAMES "umfpack" - PATH_SUFFIXES "lib" "lib32" "lib64" "UMFPACK" "UMFPACK/Lib" -) - -if(UMFPACK_INCLUDE_DIR) - set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${UMFPACK_INCLUDE_DIR} ${AMD_INCLUDE_DIR}) -endif() -if(UMFPACK_LIBRARY) - set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${UMFPACK_LIBRARY}) -endif() -if(BLAS_LIBRARIES) - set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${BLAS_LIBRARIES}) -endif() -if(AMD_LIBRARY) - set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${AMD_LIBRARY}) -endif() - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args( - "UMFPack" - DEFAULT_MSG - UMFPACK_INCLUDE_DIR - UMFPACK_LIBRARY -) - -mark_as_advanced(UMFPACK_INCLUDE_DIR UMFPACK_LIBRARY) - -if(UMFPACK_FOUND) - set(UMFPACK_INCLUDE_DIRS ${UMFPACK_INCLUDE_DIR}) - set(UMFPACK_LIBRARIES ${UMFPACK_LIBRARY}) - file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log - "Determining location of UMFPack succeded:\n" - "Include directory: ${UMFPACK_INCLUDE_DIRS}\n" - "Library directory: ${UMFPACK_LIBRARIES}\n\n") - set(UMFPACK_DUNE_COMPILE_FLAGS "-I${UMFPACK_INCLUDE_DIRS}" - CACHE STRING "Compile Flags used by DUNE when compiling with UMFPack programs") - set(UMFPACK_DUNE_LIBRARIES ${UMFPACK_LIBRARIES} ${BLAS_LIBRARIES} ${AMD_LIBRARY} - CACHE STRING "LIbraries used by DUNE when linking UMFPack programs") -else(UMFPACK_FOUND) - file(APPEND ${CMAKE_BINARY_DIR}${CMAKES_FILES_DIRECTORY}/CMakeError.log - "Determing location of UMFPack failed:\n" - "Include directory: ${UMFPACK_INCLUDE_DIRS}\n" - "Library directory: ${UMFPACK_LIBRARIES}\n\n") -endif(UMFPACK_FOUND) - -#set HAVE_UMFPACK for config.h -set(HAVE_UMFPACK UMFPACK_FOUND) - -#add all umfpack related flags to ALL_PKG_FLAGS, this must happen regardless of a target using add_dune_umfpack_flags -if(UMFPACK_FOUND) - set_property(GLOBAL APPEND PROPERTY ALL_PKG_FLAGS "${UMFPACK_DUNE_COMPILE_FLAGS}") - foreach(dir "${UMFPACK_INCLUDE_DIRS}") - set_property(GLOBAL APPEND PROPERTY ALL_PKG_FLAGS "-I${dir}") - endforeach() -endif() \ No newline at end of file diff --git a/cmake/modules/Makefile.am b/cmake/modules/Makefile.am index 9c3e667f3..ecca9ba01 100644 --- a/cmake/modules/Makefile.am +++ b/cmake/modules/Makefile.am @@ -1,8 +1,6 @@ MODULES = AddSuperLUFlags.cmake \ - AddUMFPackFlags.cmake \ DuneIstlMacros.cmake \ - FindSuperLU.cmake \ - FindUMFPack.cmake + FindSuperLU.cmake modulesdir= $(datadir)/cmake/modules dist_modules_DATA = ${MODULES} diff --git a/m4/umfpack.m4 b/m4/umfpack.m4 deleted file mode 100644 index 189b04a7a..000000000 --- a/m4/umfpack.m4 +++ /dev/null @@ -1,141 +0,0 @@ -# courtesy of the dune-fem maintainers - -AC_DEFUN([DUNE_PATH_UMFPACK],[ - AC_REQUIRE([AC_PROG_CC]) - - AC_ARG_WITH(umfpack, - AC_HELP_STRING([--with-umfpack=PATH],[directory with UMFPACK inside])) - AC_ARG_WITH(umfpack-includedir, - AC_HELP_STRING([--with-umfpack-includedir=PATH],[directory with UMFPACK headers inside])) - AC_ARG_WITH(umfpack-libdir, - AC_HELP_STRING([--with-umfpack-libdir=PATH],[directory with UMFPACK libraries inside])) - -# store old values -ac_save_LDFLAGS="$LDFLAGS" -ac_save_CPPFLAGS="$CPPFLAGS" -ac_save_LIBS="$LIBS" - -UMFPACKYES=0 -## do nothing if no --with-umfpack was supplied -if test x$with_umfpack != x && test x$with_umfpack != xno ; then - UMFPACKYES=1 -fi -if test x$with_umfpack_includedir != x && test x$with_umfpack_includedir != xno ; then - UMFPACKYES=1 -fi -if test x$with_umfpack_libdir != x && test x$with_umfpack_libdir != xno ; then - UMFPACKYES=1 -fi - -if test x$UMFPACKYES = x1 ; then - - # is --with-umfpack=bla used? - if test "x$with_umfpack" != x ; then - UMFPACKROOT=`cd $with_umfpack && pwd` - if ! test -d $UMFPACKROOT; then - AC_MSG_WARN([UMFPACK directory $with_umfpack does not exist]) - fi - - if test "x$UMFPACKROOT" = x; then - # use some default value... - UMFPACKROOT="/usr/local/umfpack" - fi - - UMFAMD_LIB_PATH="$UMFPACKROOT/AMD/Lib" - UMFPACK_LIB_PATH="$UMFPACKROOT/UMFPACK/Lib" - UMFPACK_INCLUDE_PATH="$UMFPACKROOT/UMFPACK/Include" - else - if test "x$with_umfpack_includedir" != x ; then - UMFPACK_INCLUDE_PATH=`cd $with_umfpack_includedir && pwd` - if ! test -d $UMFPACK_INCLUDE_PATH; then - AC_MSG_WARN([UMFPACK directory $with_umfpack_includedir does not exist]) - fi - fi - if test "x$with_umfpack_libdir" != x ; then - UMFPACK_LIB_PATH=`cd $with_umfpack_libdir && pwd` - if ! test -d $UMFPACK_LIB_PATH; then - AC_MSG_WARN([UMFPACK directory $with_umfpack_libdir does not exist]) - fi - fi - UMFAMD_LIB_PATH=$UMFPACK_LIB_PATH - fi - - # set variables so that tests can use them - REM_CPPFLAGS=$CPPFLAGS - - LDFLAGS="$LDFLAGS -L$UMFPACK_LIB_PATH -L$UMFAMD_LIB_PATH" - UMFPACK_INC_FLAG="-I$UMFPACK_INCLUDE_PATH -I$UMFPACKROOT/UFconfig -I$UMFPACKROOT/AMD/Include -I$UMFPACKROOT/SuiteSparse_config -DENABLE_UMFPACK=1" - CPPFLAGS="$CPPFLAGS $UMFPACK_INC_FLAG $MPI_CPPFLAGS" - - # check for header - AC_LANG_PUSH([C]) - AC_CHECK_HEADERS([umfpack.h], - [UMFPACK_CPPFLAGS="$UMFPACK_INC_FLAG" - HAVE_UMFPACK="1"], - AC_MSG_WARN([umfpack.h not found in $UMFPACK_INCLUDE_PATH])) - - CPPFLAGS="$REM_CPPFLAGS" - REM_CPPFLAGS= - - REM_LDFLAGS=$LDFLAGS - - # if header is found... - if test x$HAVE_UMFPACK = x1 ; then - AC_CHECK_LIB(umfpack,[main], - [UMFPACK_LIBS="-lumfpack" - UMFPACK_LDFLAGS="-L$UMFPACK_LIB_PATH"], - [HAVE_UMFPACK="0" - AC_MSG_WARN(libumfpack not found!)]) - fi - - # if lib is found... - if test x$HAVE_UMFPACK = x1 ; then - AC_CHECK_LIB(amd,[main], - [UMFPACK_LIBS="$UMFPACK_LIBS -lamd" - UMFPACK_LDFLAGS="$UMFPACK_LDFLAGS -L$UMFAMD_LIB_PATH" - LIBS="$LIBS $UMFPACK_LIBS"], - [HAVE_UMFPACK="0" - AC_MSG_WARN(libamd not found!)]) - fi - - LDFLAGS=$REM_LDFLAGS - AC_LANG_POP - -## end of umfpack check (--without wasn't set) -fi - -# survived all tests? -if test x$HAVE_UMFPACK = x1 ; then - AC_SUBST(UMFPACK_LIBS, $UMFPACK_LIBS) - AC_SUBST(UMFPACK_LDFLAGS, $UMFPACK_LDFLAGS) - AC_SUBST(UMFPACK_CPPFLAGS, $UMFPACK_CPPFLAGS) - AC_DEFINE(HAVE_UMFPACK, ENABLE_UMFPACK, - [This is only true if umfpack-library was found by configure - _and_ if the application uses the UMFPACK_CPPFLAGS]) - - # add to global list - DUNE_ADD_ALL_PKG([UMFPACK], [\${UMFPACK_CPPFLAGS}], - [\${UMFPACK_LDFLAGS}], [\${UMFPACK_LIBS}]) - - # set variable for summary - with_umfpack="yes" - -else - AC_SUBST(UMFPACK_LIBS, "") - AC_SUBST(UMFPACK_LDFLAGS, "") - AC_SUBST(UMFPACK_CPPFLAGS, "") - - # set variable for summary - with_umfpack="no" -fi - -# also tell automake -AM_CONDITIONAL(UMFPACK, test x$HAVE_UMFPACK = x1) - -# reset old values -LIBS="$ac_save_LIBS" -CPPFLAGS="$ac_save_CPPFLAGS" -LDFLAGS="$ac_save_LDFLAGS" - - DUNE_ADD_SUMMARY_ENTRY([UMFPACK],[$with_umfpack]) -]) -- GitLab