From 28eb4386222ac75c4a91016810fca0638f8b9a2c Mon Sep 17 00:00:00 2001 From: Andreas Naumann <andreas.naumann@tu-dresden.de> Date: Tue, 26 Apr 2011 06:52:26 +0000 Subject: [PATCH] looking for umfpack (+amd,ufconfig), dont compile it any more --- AMDiS/AMDiSConfig.cmake.in | 67 ++++++++++++++++++---- AMDiS/CMakeLists.txt | 111 +++++++++++++++++++++++-------------- 2 files changed, 125 insertions(+), 53 deletions(-) diff --git a/AMDiS/AMDiSConfig.cmake.in b/AMDiS/AMDiSConfig.cmake.in index 5e08a732..878394e9 100644 --- a/AMDiS/AMDiSConfig.cmake.in +++ b/AMDiS/AMDiSConfig.cmake.in @@ -47,7 +47,7 @@ else() endif() unset(_AMDIS_LIB CACHE) -find_package(Boost 1.42 REQUIRED system iostreams) +find_package(Boost 1.42 REQUIRED system iostreams filesystem) if(Boost_FOUND) list(APPEND AMDIS_LIBRARIES ${Boost_LIBRARIES}) list(APPEND AMDIS_LIBRARY_DIRS ${Boost_LIBRARY_DIRS}) @@ -63,20 +63,63 @@ set(AMDIS_USE_FILE ${AMDIS_DIR}/AMDiSUse.cmake) set(AMDiS_COMPILEFLAGS "@COMPILEFLAGS@") if(AMDiS_NEED_UMFPACK) - find_library(BLAS_LIBRARY NAMES "blas" "goto") + #look for umfpack, we need the headers only + find_file(UMFPACK_H umfpack.h + HINTS /usr/include /usr/include/suitesparse + DOC "headerfile umfpack.h for UMFPACK") + if( UMFPACK_H ) + #construct the include path + get_filename_component(UMFPACK_PATH ${UMFPACK_H} PATH) + #look for ufconfig + find_file(UFCONFIG_H UFconfig.h + HINTS /usr/include ${UMFPACK_PATH} + DOC "headerfile UFConfig.h") + if( UFCONFIG_H ) + get_filename_component(UFCONFIG_PATH ${UFCONFIG_H} PATH) + else() + message(FATAL_ERROR "could not find UFConfig.h, needed for umfpack") + endif() + #look for amd + find_file(AMD_H amd.h + HINTS /usr/include/ ${UMFPACK_PATH} + DOC "headerfile amd.h") + if( AMD_H ) + get_filename_component(AMD_PATH ${AMD_H} PATH) + else() + message( FATAL_ERROR "could not find amd.h, needed for umfpack") + endif() + + #add the compileflags and directories + list(APPEND AMDIS_INCLUDE_DIRS ${UMFPACK_PATH} ${UFCONFIG_PATH} ${AMD_PATH}) + else() + message(FATAL_ERROR "Could not find the umfpack-headers. Please install umfpack") + endif() + find_library(BLAS_LIBRARY NAMES "blas" "goto" + DOC "the blas library") # message("blaslibrary: ${BLAS_LIBRARY}") - if(NOT BLAS_LIBRARY) + if( BLAS_LIBRARY ) + list(APPEND AMDIS_LIBRARIES ${BLAS_LIBRARY}) + else() message(ERROR " could not find the blas library. please set the variable BLAS_LIBRARY to the blas library with full path") endif() - list(APPEND AMDIS_LIBRARIES ${AMDIS_LIBRARY_DIR}/umfpack/libumfpack.a ${AMDIS_LIBRARY_DIR}/amd/libamd.a ${BLAS_LIBRARY}) -#message("amdis-libs: ${AMDIS_LIBRARIES}") - list(APPEND AMDIS_LIBRARY_DIRS ${AMDIS_LIBRARY_DIR}/umfpack ${AMDIS_LIBRARY_DIR}/amd ${BLAS_LIBRARY_DIR}) - list(APPEND AMDIS_INCLUDE_DIRS - ${AMDIS_INCLUDE_DIR}/umfpack - ${AMDIS_INCLUDE_DIR}/amd - ${AMDIS_INCLUDE_DIR}/ufconfig - ${AMDIS_INCLUDE_DIR}/ufconfig/xerbla - ) + + find_library(UMFPACK_LIB umfpack + DOC "the UMFPACK library") + if( UMFPACK_LIB ) + list(APPEND AMDIS_LIBRARIES ${UMFPACK_LIB}) + else() + message(FATAL_ERROR "Did not find the umfpack library") + endif() + + find_library(AMD_LIB amd + DOC "the AMD library") + if( AMD_LIB ) + list(APPEND AMDIS_LIBRARIES ${AMD_LIB}) + else() + message(FATAL_ERROR "Did not find the amd library") + endif() + #message("amdis-libs: ${AMDIS_LIBRARIES}") + list(APPEND AMDIS_LIBRARY_DIRS ${BLAS_LIBRARY_DIR}) endif(AMDiS_NEED_UMFPACK) if(${AMDIS_FIND_COMPONENTS} MATCHES umfpack ) diff --git a/AMDiS/CMakeLists.txt b/AMDiS/CMakeLists.txt index 23daa50e..3d6b168b 100644 --- a/AMDiS/CMakeLists.txt +++ b/AMDiS/CMakeLists.txt @@ -213,49 +213,79 @@ if(ENABLE_PARALLEL_DOMAIN) endif(ENABLE_PARALLEL_DOMAIN) if(ENABLE_UMFPACK) - include_directories(${LIB_DIR}/UFconfig ${LIB_DIR}/AMD/Include ${LIB_DIR}/UMFPACK/Include) - SET(COMPILEFLAGS "${COMPILEFLAGS} -DHAVE_UMFPACK=1 -DMTL_HAS_UMFPACK") - FILE(GLOB UMFPACK_HEADERS "${LIB_DIR}/UMFPACK/Include/*.h") - INSTALL(FILES ${UMFPACK_HEADERS} - DESTINATION include/amdis/umfpack/) - list(APPEND deb_add_dirs "include/amdis/umfpack") - - FILE(GLOB UMFPACK_HEADERS "${LIB_DIR}/AMD/Include/*.h") - INSTALL(FILES ${UMFPACK_HEADERS} - DESTINATION include/amdis/amd/) - list(APPEND deb_add_dirs "include/amdis/amd") - - FILE(GLOB HEADERS "${LIB_DIR}/UFconfig/*.h") - INSTALL(FILES ${HEADERS} - DESTINATION include/amdis/ufconfig/) - list(APPEND deb_add_dirs "include/amdis/ufconfig") - - FILE(GLOB HEADERS "${LIB_DIR}/UFconfig/xerbla/*.h") - INSTALL(FILES ${HEADERS} - DESTINATION include/amdis/ufconfig/xerbla) - list(APPEND deb_add_dirs "include/amdis/ufconfig/xerbla") +# include_directories(${LIB_DIR}/UFconfig ${LIB_DIR}/AMD/Include ${LIB_DIR}/UMFPACK/Include) +# FILE(GLOB UMFPACK_HEADERS "${LIB_DIR}/UMFPACK/Include/*.h") +# INSTALL(FILES ${UMFPACK_HEADERS} +# DESTINATION include/amdis/umfpack/) +# list(APPEND deb_add_dirs "include/amdis/umfpack") + +# FILE(GLOB UMFPACK_HEADERS "${LIB_DIR}/AMD/Include/*.h") +# INSTALL(FILES ${UMFPACK_HEADERS} +# DESTINATION include/amdis/amd/) +# list(APPEND deb_add_dirs "include/amdis/amd") + +# FILE(GLOB HEADERS "${LIB_DIR}/UFconfig/*.h") +# INSTALL(FILES ${HEADERS} +# DESTINATION include/amdis/ufconfig/) +# list(APPEND deb_add_dirs "include/amdis/ufconfig") + +# FILE(GLOB HEADERS "${LIB_DIR}/UFconfig/xerbla/*.h") +# INSTALL(FILES ${HEADERS} +# DESTINATION include/amdis/ufconfig/xerbla) +# list(APPEND deb_add_dirs "include/amdis/ufconfig/xerbla") #add some rules to build the umfpack and amd libs # message("adding command for libumfpack:${CMAKE_CURRENT_SOURCE_DIR}/${LIB_DIR}/UMFPACK/Lib/libumfpack.a ") - add_custom_target(umfpack-lib ALL - make - WORKING_DIRECTORY ${LIB_DIR}/UMFPACK - ) - - add_custom_target(amd-lib ALL - make - WORKING_DIRECTORY ${LIB_DIR}/AMD - ) - - INSTALL(FILES ${LIB_DIR}/UMFPACK/Lib/libumfpack.a - DESTINATION lib/amdis/umfpack/) - list(APPEND deb_add_dirs "lib/amdis/umfpack") - INSTALL(FILES ${LIB_DIR}/AMD/Lib/libamd.a - DESTINATION lib/amdis/amd/) - list(APPEND deb_add_dirs "lib/amdis/amd") - +# add_custom_target(umfpack-lib ALL +# make +# WORKING_DIRECTORY ${LIB_DIR}/UMFPACK +# ) + +# add_custom_target(amd-lib ALL +# make +# WORKING_DIRECTORY ${LIB_DIR}/AMD +# ) + +# INSTALL(FILES ${LIB_DIR}/UMFPACK/Lib/libumfpack.a +# DESTINATION lib/amdis/umfpack/) +# list(APPEND deb_add_dirs "lib/amdis/umfpack") +# INSTALL(FILES ${LIB_DIR}/AMD/Lib/libamd.a +# DESTINATION lib/amdis/amd/) +# list(APPEND deb_add_dirs "lib/amdis/amd") + + #look for umfpack, we need the headers only + find_file(UMFPACK_H umfpack.h + HINTS /usr/include /usr/include/suitesparse + DOC "headerfile umfpack.h for UMFPACK") + if( UMFPACK_H ) + #construct the include path + get_filename_component(UMFPACK_PATH ${UMFPACK_H} PATH) + #look for ufconfig + find_file(UFCONFIG_H UFconfig.h + HINTS /usr/include ${UMFPACK_PATH} + DOC "headerfile UFConfig.h") + if( UFCONFIG_H ) + get_filename_component(UFCONFIG_PATH ${UFCONFIG_H} PATH) + else() + message(FATAL_ERROR "could not find UFConfig.h, needed for umfpack") + endif() + #look for amd + find_file(AMD_H amd.h + HINTS /usr/include/ ${UMFPACK_PATH} + DOC "headerfile amd.h") + if( AMD_H ) + get_filename_component(AMD_PATH ${AMD_H} PATH) + else() + message( FATAL_ERROR "could not find amd.h, needed for umfpack") + endif() + + #add the compileflags and directories + include_directories(${UMFPACK_PATH} ${UFCONFIG_PATH} ${AMD_PATH}) + SET(COMPILEFLAGS "${COMPILEFLAGS} -DHAVE_UMFPACK=1 -DMTL_HAS_UMFPACK") + else() + message(FATAL_ERROR "Could not find the umfpack-headers. Please install umfpack") + endif() SET(RPM_DEPEND_STR "blas") - LIST(APPEND AMDiS_LIBS amdis blas amd umfpack) endif(ENABLE_UMFPACK) SET(COMPOSITE_SOURCE_DIR ${SOURCE_DIR}/compositeFEM) @@ -281,7 +311,6 @@ add_library(amdis SHARED ${AMDIS_SRC} ${PARALLEL_DOMAIN_AMDIS_SRC}) add_library(compositeFEM SHARED ${COMPOSITE_FEM_SRC}) add_library(reinit STATIC ${REINIT_SRC}) target_link_libraries(compositeFEM amdis) -LIST(APPEND AMDiS_LIBS amdis boost_system boost_iostreams) if(WIN32) SET(COMPILEFLAGS "${COMPILEFLAGS} -D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS") @@ -385,7 +414,7 @@ configure_file(${AMDiS_SOURCE_DIR}/postrm.in ${AMDiS_BINARY_DIR}/postrm @ONLY) set(CPACK_RPM_PACKAGE_REQUIRES "boost-devel >= 1.42, ${RPM_DEPEND_STR}") -set(CPACK_DEBIAN_PACKAGE_DEPENDS "libboost-dev (>= 1.42), libboost-iostreams-dev (>= 1.42), libboost-system-dev (>= 1.42)") +set(CPACK_DEBIAN_PACKAGE_DEPENDS "libboost-dev (>= 1.42), libboost-iostreams-dev (>= 1.42), libboost-system-dev (>= 1.42), libboost-filesystem-dev (>= 1.42)") set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${AMDiS_BINARY_DIR}/preinst" "${AMDiS_BINARY_DIR}/postrm") include(CPack) -- GitLab