Skip to content

Commit

Permalink
Build lapack
Browse files Browse the repository at this point in the history
Microsoft Windows 8.1 Enterprise, 6.3.9600 Build 9600
Intel(R) Core(TM) i5-2500 CPU @ 3.30GHz, 3301 Mhz, 4 Core(s), 4 Logical Processor(s)

Toolchain: MSYS2 MinGW-w64, gcc.exe (Rev3, Built by MSYS2 project) 6.3.0

TORCH_INSTALL_PATH=C:/torch
CMAKE_INSTALL_PATH='/c/Program Files (x86)/CMake'

wget http://www.netlib.org/lapack/lapack-3.7.1.tgz
tar zxf lapack-3.7.1.tgz
cd lapack-3.7.1
mkdir build
cd build
"$CMAKE_INSTALL_PATH/bin/cmake" .. -DCMAKE_INSTALL_PREFIX=$TORCH_INSTALL_PATH/lapack -G "MSYS Makefiles" -DBUILD_SHARED_LIBS=1 -DCMAKE_GNUtoMS=1
make
make install
  • Loading branch information
hiili committed Jul 26, 2017
1 parent f4adcb5 commit f1fa0de
Show file tree
Hide file tree
Showing 15 changed files with 210 additions and 0 deletions.
Binary file added lapack/bin/libblas.dll
Binary file not shown.
Binary file added lapack/bin/liblapack.dll
Binary file not shown.
Binary file added lapack/bin/libtmglib.dll
Binary file not shown.
46 changes: 46 additions & 0 deletions lapack/lib/cmake/lapack-3.7.1/lapack-config-version.cmake
@@ -0,0 +1,46 @@
# This is a basic version file for the Config-mode of find_package().
# It is used by write_basic_package_version_file() as input file for configure_file()
# to create a version-file which can be installed along a config.cmake file.
#
# The created file sets PACKAGE_VERSION_EXACT if the current version string and
# the requested version string are exactly the same and it sets
# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version,
# but only if the requested major version is the same as the current one.
# The variable CVF_VERSION must be set before calling configure_file().


set(PACKAGE_VERSION "3.7.1")

if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()

if("3.7.1" MATCHES "^([0-9]+)\\.")
set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
else()
set(CVF_VERSION_MAJOR "3.7.1")
endif()

if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR)
set(PACKAGE_VERSION_COMPATIBLE TRUE)
else()
set(PACKAGE_VERSION_COMPATIBLE FALSE)
endif()

if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
set(PACKAGE_VERSION_EXACT TRUE)
endif()
endif()


# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "")
return()
endif()

# check that the installed version has the same 32/64bit-ness as the one which is currently searching:
if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "8")
math(EXPR installedBits "8 * 8")
set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
set(PACKAGE_VERSION_UNSUITABLE TRUE)
endif()
15 changes: 15 additions & 0 deletions lapack/lib/cmake/lapack-3.7.1/lapack-config.cmake
@@ -0,0 +1,15 @@
# Compute locations from <prefix>/lib/cmake/lapack-<v>/<self>.cmake
get_filename_component(_LAPACK_SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)

# Load lapack targets from the install tree if necessary.
set(_LAPACK_TARGET "blas")
if(_LAPACK_TARGET AND NOT TARGET "${_LAPACK_TARGET}")
include("${_LAPACK_SELF_DIR}/lapack-targets.cmake")
endif()
unset(_LAPACK_TARGET)

# Report the blas and lapack raw or imported libraries.
set(LAPACK_blas_LIBRARIES "blas")
set(LAPACK_lapack_LIBRARIES "lapack")

unset(_LAPACK_SELF_DIR)
42 changes: 42 additions & 0 deletions lapack/lib/cmake/lapack-3.7.1/lapack-targets-release.cmake
@@ -0,0 +1,42 @@
#----------------------------------------------------------------
# Generated CMake target import file for configuration "Release".
#----------------------------------------------------------------

# Commands may need to know the format version.
set(CMAKE_IMPORT_FILE_VERSION 1)

# Import target "blas" for configuration "Release"
set_property(TARGET blas APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(blas PROPERTIES
IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/libblas${CMAKE_IMPORT_LIBRARY_SUFFIX}"
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/libblas.dll"
)

list(APPEND _IMPORT_CHECK_TARGETS blas )
list(APPEND _IMPORT_CHECK_FILES_FOR_blas "${_IMPORT_PREFIX}/lib/libblas${CMAKE_IMPORT_LIBRARY_SUFFIX}" "${_IMPORT_PREFIX}/bin/libblas.dll" )

# Import target "lapack" for configuration "Release"
set_property(TARGET lapack APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(lapack PROPERTIES
IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/liblapack${CMAKE_IMPORT_LIBRARY_SUFFIX}"
IMPORTED_LINK_DEPENDENT_LIBRARIES_RELEASE "blas"
IMPORTED_LINK_INTERFACE_LIBRARIES_RELEASE ""
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/liblapack.dll"
)

list(APPEND _IMPORT_CHECK_TARGETS lapack )
list(APPEND _IMPORT_CHECK_FILES_FOR_lapack "${_IMPORT_PREFIX}/lib/liblapack${CMAKE_IMPORT_LIBRARY_SUFFIX}" "${_IMPORT_PREFIX}/bin/liblapack.dll" )

# Import target "tmglib" for configuration "Release"
set_property(TARGET tmglib APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(tmglib PROPERTIES
IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/libtmglib${CMAKE_IMPORT_LIBRARY_SUFFIX}"
IMPORTED_LINK_INTERFACE_LIBRARIES_RELEASE "lapack;blas"
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/libtmglib.dll"
)

list(APPEND _IMPORT_CHECK_TARGETS tmglib )
list(APPEND _IMPORT_CHECK_FILES_FOR_tmglib "${_IMPORT_PREFIX}/lib/libtmglib${CMAKE_IMPORT_LIBRARY_SUFFIX}" "${_IMPORT_PREFIX}/bin/libtmglib.dll" )

# Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION)
90 changes: 90 additions & 0 deletions lapack/lib/cmake/lapack-3.7.1/lapack-targets.cmake
@@ -0,0 +1,90 @@
# Generated by CMake 3.5.2

if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5)
message(FATAL_ERROR "CMake >= 2.6.0 required")
endif()
cmake_policy(PUSH)
cmake_policy(VERSION 2.6)
#----------------------------------------------------------------
# Generated CMake target import file.
#----------------------------------------------------------------

# Commands may need to know the format version.
set(CMAKE_IMPORT_FILE_VERSION 1)

# Protect against multiple inclusion, which would fail when already imported targets are added once more.
set(_targetsDefined)
set(_targetsNotDefined)
set(_expectedTargets)
foreach(_expectedTarget blas lapack tmglib)
list(APPEND _expectedTargets ${_expectedTarget})
if(NOT TARGET ${_expectedTarget})
list(APPEND _targetsNotDefined ${_expectedTarget})
endif()
if(TARGET ${_expectedTarget})
list(APPEND _targetsDefined ${_expectedTarget})
endif()
endforeach()
if("${_targetsDefined}" STREQUAL "${_expectedTargets}")
set(CMAKE_IMPORT_FILE_VERSION)
cmake_policy(POP)
return()
endif()
if(NOT "${_targetsDefined}" STREQUAL "")
message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_targetsDefined}\nTargets not yet defined: ${_targetsNotDefined}\n")
endif()
unset(_targetsDefined)
unset(_targetsNotDefined)
unset(_expectedTargets)


# Compute the installation prefix relative to this file.
get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)

# Create imported target blas
add_library(blas SHARED IMPORTED)

# Create imported target lapack
add_library(lapack SHARED IMPORTED)

# Create imported target tmglib
add_library(tmglib SHARED IMPORTED)

# Load information for each installed configuration.
get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
file(GLOB CONFIG_FILES "${_DIR}/lapack-targets-*.cmake")
foreach(f ${CONFIG_FILES})
include(${f})
endforeach()

# Cleanup temporary variables.
set(_IMPORT_PREFIX)

# Loop over all imported files and verify that they actually exist
foreach(target ${_IMPORT_CHECK_TARGETS} )
foreach(file ${_IMPORT_CHECK_FILES_FOR_${target}} )
if(NOT EXISTS "${file}" )
message(FATAL_ERROR "The imported target \"${target}\" references the file
\"${file}\"
but this file does not exist. Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
\"${CMAKE_CURRENT_LIST_FILE}\"
but not all the files it references.
")
endif()
endforeach()
unset(_IMPORT_CHECK_FILES_FOR_${target})
endforeach()
unset(_IMPORT_CHECK_TARGETS)

# This file does not depend on other imported targets which have
# been exported from the same project but in a separate export set.

# Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION)
cmake_policy(POP)
Binary file added lapack/lib/libblas.dll.a
Binary file not shown.
Binary file added lapack/lib/libblas.lib
Binary file not shown.
Binary file added lapack/lib/liblapack.dll.a
Binary file not shown.
Binary file added lapack/lib/liblapack.lib
Binary file not shown.
Binary file added lapack/lib/libtmglib.dll.a
Binary file not shown.
Binary file added lapack/lib/libtmglib.lib
Binary file not shown.
8 changes: 8 additions & 0 deletions lapack/lib/pkgconfig/blas.pc
@@ -0,0 +1,8 @@
libdir=C:/torch/lapack/lib
includedir=C:/torch/lapack/include

Name: BLAS
Description: FORTRAN reference implementation of BLAS Basic Linear Algebra Subprograms
Version: 3.7.1
URL: http://www.netlib.org/blas/
Libs: -L${libdir} -lblas
9 changes: 9 additions & 0 deletions lapack/lib/pkgconfig/lapack.pc
@@ -0,0 +1,9 @@
libdir=C:/torch/lapack/lib
includedir=C:/torch/lapack/include

Name: LAPACK
Description: FORTRAN reference implementation of LAPACK Linear Algebra PACKage
Version: 3.7.1
URL: http://www.netlib.org/lapack/
Libs: -L${libdir} -llapack
Requires.private: blas

0 comments on commit f1fa0de

Please sign in to comment.