From: maier Date: Fri, 10 Aug 2012 10:02:52 +0000 (+0000) Subject: Some progress for contrib umfpack X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=066c48f0ff0ffa80e96a1d44aa67fc4b4f7c93b4;p=dealii-svn.git Some progress for contrib umfpack git-svn-id: https://svn.dealii.org/branches/branch_cmake@25864 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/CMakeLists.txt b/deal.II/CMakeLists.txt index 06e421facb..c0cfc84210 100644 --- a/deal.II/CMakeLists.txt +++ b/deal.II/CMakeLists.txt @@ -14,7 +14,7 @@ SET(CMAKE_INCLUDE_CURRENT_DIR true) OPTION(DEAL_II_USE_CONTRIB "Build and use contrib libraries bundled with the source tarball." - ON + OFF ) OPTION(DEAL_II_WITH_THREADS "Build deal.II with support for threads. This pulls in libtbb as a dependency." diff --git a/deal.II/contrib/cmake/modules/prepare_threads.cmake b/deal.II/contrib/cmake/modules/prepare_threads.cmake index 1b958145b0..da77eb0825 100644 --- a/deal.II/contrib/cmake/modules/prepare_threads.cmake +++ b/deal.II/contrib/cmake/modules/prepare_threads.cmake @@ -1,14 +1,25 @@ FIND_PACKAGE(Threads REQUIRED) IF(DEAL_II_USE_CONTRIB) - # Compiles and links libtbb, exports the TBB_* variables as well: + # compile and link the contrib tbb library: ADD_SUBDIRECTORY(contrib/tbb) + + # This sets TBB_LIBRARY and TBB_DEBUG_LIBRARY to the full path of the + # _installed_ library location + ELSE() FIND_PACKAGE(TBB REQUIRED) ENDIF() INCLUDE_DIRECTORIES(${TBB_INCLUDE_DIR}) +IF(NOT DEAL_II_USE_CONTRIB) + SET(deal_ii_include_paths + ${deal_ii_include_paths} + ${TBB_INCLUDE_DIR} + ) +ENDIF() + SET(deal_ii_external_libraries ${deal_ii_external_libraries} ${TBB_LIBRARY} diff --git a/deal.II/contrib/cmake/modules/prepare_umfpack.cmake b/deal.II/contrib/cmake/modules/prepare_umfpack.cmake index dffc0a9b98..8fd60cf01d 100644 --- a/deal.II/contrib/cmake/modules/prepare_umfpack.cmake +++ b/deal.II/contrib/cmake/modules/prepare_umfpack.cmake @@ -2,24 +2,45 @@ FIND_PACKAGE(LAPACK REQUIRED) FIND_PACKAGE(BLAS REQUIRED) IF(DEAL_II_USE_CONTRIB) - # Compiles and links libumfpack, exports the Umfpack_* variables as well: - ADD_SUBDIRECTORY(contrib/umfpack) + # + # Add umfpack and amd directly to the object files of deal.II + # + + ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/contrib/umfpack/UMFPACK/Source) + ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/contrib/umfpack/AMD/Source) + + INCLUDE_DIRECTORIES( + ${CMAKE_SOURCE_DIR}/contrib/umfpack/UMFPACK/Include + ${CMAKE_SOURCE_DIR}/contrib/umfpack/AMD/Include + ) + + SET(deal_ii_additional_object_files + ${deal_ii_additional_object_files} + $ + $ + ) ELSE() FIND_PACKAGE(Umfpack REQUIRED) FIND_PACKAGE(AMD REQUIRED) -ENDIF() -INCLUDE_DIRECTORIES(${Umfpack_INCLUDE_DIR} ${AMD_INCLUDE_DIR}) + INCLUDE_DIRECTORIES(${Umfpack_INCLUDE_DIR} ${AMD_INCLUDE_DIR}) -SET(deal_ii_external_libraries - ${deal_ii_external_libraries} - ${Umfpack_LIBRARY} ${AMD_LIBRARY} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} - ) + # + # We skip *_INCLUDE_DIR because it is not needed for the use of the + # deal.II library + # + + SET(deal_ii_external_libraries + ${deal_ii_external_libraries} + ${Umfpack_LIBRARY} ${AMD_LIBRARY} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} + ) + + SET(deal_ii_external_debug_libraries + ${deal_ii_external_debug_libraries} + ${Umfpack_LIBRARY} ${AMD_LIBRARY} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} + ) +ENDIF() -SET(deal_ii_external_debug_libraries - ${deal_ii_external_debug_libraries} - ${Umfpack_LIBRARY} ${AMD_LIBRARY} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} - ) SET(HAVE_LIBBLAS TRUE) SET(HAVE_LIBLAPACK TRUE) diff --git a/deal.II/contrib/umfpack/AMD/Source/CMakeLists.txt b/deal.II/contrib/umfpack/AMD/Source/CMakeLists.txt new file mode 100644 index 0000000000..cab431af89 --- /dev/null +++ b/deal.II/contrib/umfpack/AMD/Source/CMakeLists.txt @@ -0,0 +1,17 @@ +SET(src_amd + amd_1.c + amd_2.c + amd_aat.c + amd_control.c + amd_defaults.c + amd_dump.c + amd_global.c + amd_info.c + amd_order.c + amd_postorder.c + amd_post_tree.c + amd_preprocess.c + amd_valid.c + ) + +ADD_LIBRARY(obj_amd OBJECT ${src_amd}) diff --git a/deal.II/contrib/umfpack/AMD/Source/Makefile b/deal.II/contrib/umfpack/AMD/Source/Makefile deleted file mode 100644 index 8aebbe4a64..0000000000 --- a/deal.II/contrib/umfpack/AMD/Source/Makefile +++ /dev/null @@ -1,40 +0,0 @@ -#------------------------------------------------------------------------------- -# AMD Makefile for compiling on Unix systems (for GNU make only) -#------------------------------------------------------------------------------- - -include ../../../../common/Make.global_options - -#------------------------------------------------------------------------------- -# source files -#------------------------------------------------------------------------------- - -AMD = amd_aat amd_1 amd_2 amd_dump amd_postorder amd_post_tree amd_defaults \ - amd_order amd_control amd_info amd_valid amd_preprocess - -INC = ../Include/amd.h - -#------------------------------------------------------------------------------- -# object files for each version -#------------------------------------------------------------------------------- - -AMDI = $(addprefix $D/lib/contrib/umfpack/, $(addsuffix .$(OBJEXT), $(subst amd_,amd_i_,$(AMD)))) -AMDL = $(addprefix $D/lib/contrib/umfpack/, $(addsuffix .$(OBJEXT), $(subst amd_,amd_l_,$(AMD)))) - -#------------------------------------------------------------------------------- -# compile each int and long routine (with no real/complex version) -#------------------------------------------------------------------------------- - -$D/lib/contrib/umfpack/amd_i_%.$(OBJEXT): amd_%.c $(INC) - @echo =====umfpack==========optimized====== $( $ $ + ${deal_ii_additional_object_files} ) + + message( "${deal_ii_additional_object_files}" )