Browse Source

Update LAPACK to 3.9.0

pull/2353/head
Martin Kroeker GitHub 6 years ago
parent
commit
807333aab9
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 50 additions and 15 deletions
  1. +41
    -10
      lapack-netlib/LAPACKE/CMakeLists.txt
  2. +9
    -5
      lapack-netlib/LAPACKE/Makefile

+ 41
- 10
lapack-netlib/LAPACKE/CMakeLists.txt 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
)

+ 9
- 5
lapack-netlib/LAPACKE/Makefile 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

Loading…
Cancel
Save