Update LAPACK to 3.9.0

This commit is contained in:
Martin Kroeker 2019-12-29 18:50:08 +01:00 committed by GitHub
parent 6e02ec95b3
commit 807333aab9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 50 additions and 15 deletions

View File

@ -16,18 +16,16 @@ if(NOT FortranCInterface_GLOBAL_FOUND OR NOT FortranCInterface_MODULE_FOUND)
${LAPACK_BINARY_DIR}/include/lapacke_mangling.h)
endif()
if(WIN32 AND NOT UNIX)
add_definitions(-DHAVE_LAPACK_CONFIG_H -DLAPACK_COMPLEX_STRUCTURE)
message(STATUS "Windows BUILD")
endif()
get_directory_property(DirDefs COMPILE_DEFINITIONS)
include_directories(include ${LAPACK_BINARY_DIR}/include)
add_subdirectory(include)
add_subdirectory(src)
add_subdirectory(utils)
option(LAPACKE_BUILD_SINGLE "Build LAPACKE single precision real" ON)
option(LAPACKE_BUILD_DOUBLE "Build LAPACKE double precision real" ON)
option(LAPACKE_BUILD_COMPLEX "Build LAPACKE single precision complex" ON)
option(LAPACKE_BUILD_COMPLEX16 "Build LAPACKE double precision complex" ON)
macro(append_subdir_files variable dirname)
get_directory_property(holder DIRECTORY ${dirname} DEFINITION ${variable})
foreach(depfile ${holder})
@ -35,8 +33,29 @@ macro(append_subdir_files variable dirname)
endforeach()
endmacro()
message(STATUS "Build LAPACKE single precision real: ${LAPACKE_BUILD_SINGLE}")
message(STATUS "Build LAPACKE double precision real: ${LAPACKE_BUILD_DOUBLE}")
message(STATUS "Build LAPACKE single precision complex: ${LAPACKE_BUILD_COMPLEX}")
message(STATUS "Build LAPACKE double precision complex: ${LAPACKE_BUILD_COMPLEX16}")
append_subdir_files(LAPACKE_INCLUDE "include")
append_subdir_files(SOURCES "src")
if (LAPACKE_BUILD_SINGLE)
append_subdir_files(SOURCES_SINGLE "src")
list(APPEND SOURCES ${SOURCES_SINGLE})
endif()
if (LAPACKE_BUILD_DOUBLE)
append_subdir_files(SOURCES_DOUBLE "src")
list(APPEND SOURCES ${SOURCES_DOUBLE})
endif()
if (LAPACKE_BUILD_COMPLEX)
append_subdir_files(SOURCES_COMPLEX "src")
list(APPEND SOURCES ${SOURCES_COMPLEX})
endif()
if (LAPACKE_BUILD_COMPLEX16)
append_subdir_files(SOURCES_COMPLEX16 "src")
list(APPEND SOURCES ${SOURCES_COMPLEX16})
endif()
append_subdir_files(DEPRECATED "src")
append_subdir_files(EXTENDED "src")
append_subdir_files(MATGEN "src")
@ -61,9 +80,13 @@ set_target_properties(
SOVERSION ${LAPACK_MAJOR_VERSION}
)
target_include_directories(lapacke PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
if(WIN32 AND NOT UNIX)
target_compile_definitions(lapacke PUBLIC HAVE_LAPACK_CONFIG_H LAPACK_COMPLEX_STRUCTURE)
message(STATUS "Windows BUILD")
endif()
if(LAPACKE_WITH_TMG)
target_link_libraries(lapacke PRIVATE tmglib)
@ -71,7 +94,11 @@ endif()
target_link_libraries(lapacke PRIVATE ${LAPACK_LIBRARIES})
lapack_install_library(lapacke)
install(FILES ${LAPACKE_INCLUDE} ${LAPACK_BINARY_DIR}/include/lapacke_mangling.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
install(
FILES ${LAPACKE_INCLUDE} ${LAPACK_BINARY_DIR}/include/lapacke_mangling.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
COMPONENT Development
)
if(BUILD_TESTING)
add_subdirectory(example)
@ -82,6 +109,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/lapacke.pc.in ${CMAKE_CURRENT_BINARY_
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/lapacke.pc
DESTINATION ${PKG_CONFIG_DIR}
COMPONENT Development
)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/lapacke-config-version.cmake.in
@ -95,7 +123,10 @@ install(FILES
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/lapacke-config.cmake
${LAPACK_BINARY_DIR}/lapacke-config-version.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/lapacke-${LAPACK_VERSION}
COMPONENT Development
)
install(EXPORT lapacke-targets
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/lapacke-${LAPACK_VERSION})
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/lapacke-${LAPACK_VERSION}
COMPONENT Development
)

View File

@ -40,22 +40,26 @@
# To clean everything including lapacke library type
# 'make cleanall'
#
include ../make.inc
TOPSRCDIR = ..
include $(TOPSRCDIR)/make.inc
.PHONY: all
all: lapacke
.PHONY: lapacke
lapacke: include/lapacke_mangling.h
$(MAKE) -C src
$(MAKE) -C utils
include/lapacke_mangling.h: include/lapacke_mangling_with_flags.h.in
cp $< $@
cp include/lapacke_mangling_with_flags.h.in $@
.PHONY: lapacke_example
lapacke_example: lapacke
$(MAKE) -C example
#clean: cleanlib
clean: cleanobj
.PHONY: clean cleanobj cleanlib cleanexe
clean:
$(MAKE) -C src clean
$(MAKE) -C utils clean
$(MAKE) -C example clean
@ -64,6 +68,6 @@ cleanobj:
$(MAKE) -C utils cleanobj
$(MAKE) -C example cleanobj
cleanlib:
rm -f ../$(LAPACKELIB)
$(MAKE) -C src cleanlib
cleanexe:
$(MAKE) -C example cleanexe