From: maier Date: Thu, 27 Sep 2012 22:11:08 +0000 (+0000) Subject: Reenable UMFPACK support after fixing some compile bugs. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b6624887ddc7c30a0de8c4fd689b5918c43440c5;p=dealii-svn.git Reenable UMFPACK support after fixing some compile bugs. git-svn-id: https://svn.dealii.org/branches/branch_cmake@26807 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/CMakeLists.txt b/deal.II/CMakeLists.txt index 67f6f1ec7c..ecae7d299b 100644 --- a/deal.II/CMakeLists.txt +++ b/deal.II/CMakeLists.txt @@ -112,9 +112,9 @@ OPTION(DEAL_II_WITH_TRILINOS OPTION(DEAL_II_WITH_UMFPACK "Build deal.II with support for UMFPACK." OFF) -#OPTION(DEAL_II_FORCE_CONTRIB_UMFPACK -# "Always use the bundled umfpack library instead of an external one." -# OFF) +OPTION(DEAL_II_FORCE_CONTRIB_UMFPACK + "Always use the bundled umfpack library instead of an external one." + OFF) OPTION(DEAL_II_WITH_ZLIB "Build deal.II with support for zlib." diff --git a/deal.II/cmake/configure/configure_umfpack.cmake b/deal.II/cmake/configure/configure_umfpack.cmake index d180c2359f..f24536ac5b 100644 --- a/deal.II/cmake/configure/configure_umfpack.cmake +++ b/deal.II/cmake/configure/configure_umfpack.cmake @@ -5,7 +5,6 @@ SET(FEATURE_UMFPACK_DEPENDS DEAL_II_WITH_BLAS - DEAL_II_WITH_LAPACK ) @@ -31,30 +30,30 @@ MACRO(FEATURE_UMFPACK_CONFIGURE_EXTERNAL var) SET(${var} TRUE) ENDMACRO() -# -#SET(FEATURE_UMFPACK_HAVE_CONTRIB TRUE) -# -# -#MACRO(FEATURE_UMFPACK_CONFIGURE_CONTRIB var) -# # -# # Add umfpack and amd directly to the object files of deal.II -# # -# -# SET(umfpack_folder "${CMAKE_SOURCE_DIR}/contrib/umfpack") -# -# INCLUDE_DIRECTORIES( -# ${umfpack_folder}/UMFPACK/Include -# ${umfpack_folder}/AMD/Include -# ) -# -# ADD_SUBDIRECTORY(${umfpack_folder}/UMFPACK/Source) -# ADD_SUBDIRECTORY(${umfpack_folder}/AMD/Source) -# -# SET(HAVE_LIBUMFPACK TRUE) -# -# SET(${var} TRUE) -#ENDMACRO() -# + +SET(FEATURE_UMFPACK_HAVE_CONTRIB TRUE) + + +MACRO(FEATURE_UMFPACK_CONFIGURE_CONTRIB var) + # + # Add umfpack and amd directly to the object files of deal.II + # + + SET(umfpack_folder "${CMAKE_SOURCE_DIR}/contrib/umfpack") + + INCLUDE_DIRECTORIES( + ${umfpack_folder}/UMFPACK/Include + ${umfpack_folder}/AMD/Include + ) + + ADD_SUBDIRECTORY(${umfpack_folder}/UMFPACK/Source) + ADD_SUBDIRECTORY(${umfpack_folder}/AMD/Source) + + SET(HAVE_LIBUMFPACK TRUE) + + SET(${var} TRUE) +ENDMACRO() + SET(FEATURE_UMFPACK_CUSTOM_ERROR_MESSAGE TRUE) @@ -68,8 +67,8 @@ MACRO(FEATURE_UMFPACK_ERROR_MESSAGE) " $ UMFPACK_DIR=\"...\" cmake <...>\n" " $ ccmake -DUMFPACK_DIR=\"...\" cmake <...>\n" "or set the relevant variables by hand in ccmake.\n" -# "Alternatively you may choose to compile the bundled contrib libraries\n" -# "by setting DEAL_II_ALLOW_CONTRIB=on or DEAL_II_FORCE_CONTRIB_UMFPACK=on.\n\n" + "Alternatively you may choose to compile the bundled contrib libraries\n" + "by setting DEAL_II_ALLOW_CONTRIB=on or DEAL_II_FORCE_CONTRIB_UMFPACK=on.\n\n" ) ENDMACRO() diff --git a/deal.II/contrib/umfpack/UMFPACK/Source/CMakeLists.txt b/deal.II/contrib/umfpack/UMFPACK/Source/CMakeLists.txt index 75713ae4ac..751eee7bfc 100644 --- a/deal.II/contrib/umfpack/UMFPACK/Source/CMakeLists.txt +++ b/deal.II/contrib/umfpack/UMFPACK/Source/CMakeLists.txt @@ -1,6 +1,6 @@ # -# Logic copied from the distributed UMFPACK Makefile. (... where everything -# is explained contrary to this... mess) +# Logic copied from the distributed UMFPACK Makefile. +# (... where everything is explained contrary to this... mess) # SET(src_umfpack_UMF @@ -33,7 +33,10 @@ SET(src_umfpack_UMF umf_mem_alloc_tail_block.c umf_mem_free_tail_block.c umf_mem_init_memoryspace.c - umf_multicompile.c + # + # Don't ever think about including + # umf_multicompile.c, we do it by hand below + # umf_realloc.c umf_report_perm.c umf_report_vector.c @@ -64,7 +67,6 @@ SET(src_umfpack_UMFPACK umfpack_get_lunz.c umfpack_get_numeric.c umfpack_get_symbolic.c - umfpack_global.c umfpack_load_numeric.c umfpack_load_symbolic.c umfpack_numeric.c @@ -83,12 +85,16 @@ SET(src_umfpack_UMFPACK umfpack_scale.c umfpack_solve.c umfpack_symbolic.c - umfpack_tictoc.c - umfpack_timer.c umfpack_transpose.c umfpack_triplet_to_col.c ) +SET(src_umfpack_GENERAL + umfpack_global.c + umfpack_tictoc.c + umfpack_timer.c + ) + #------------------------------------------------------------------------------- # compile each int and long routine (with no real/complex version) @@ -160,5 +166,5 @@ DEAL_II_ADD_DEFINITIONS(obj_umfpack_DL_SOLVE "DLONG" "WSOLVE") # Create the generic routines (GN) using a generic rule #------------------------------------------------------------------------------- -DEAL_II_ADD_C_LIBRARY(obj_umfpack_GENERIC OBJECT ${src_umfpack_UMFPACK}) +DEAL_II_ADD_C_LIBRARY(obj_umfpack_GENERIC OBJECT ${src_umfpack_GENERAL})