Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
8bcbf5d
Remove type specifiers of intrinsic function ETIME, since it has no e…
ACSimon33 Apr 23, 2026
c59b28a
Fixed all lines that were longer than 72 characters. That caused the …
ACSimon33 Apr 23, 2026
8d8df56
Remove unnessesary blas lib from LAPACKE examples (caused warning fro…
ACSimon33 Apr 23, 2026
1bc5d3a
Added fp-model=strict for Intel on Windows; disabled deprecation warn…
ACSimon33 Apr 23, 2026
2328018
Set C standard explicitly to C99 (needed by Intel classic compiler to…
ACSimon33 Apr 23, 2026
3afa827
Fix export & import of global CBLAS symbols for shared Windows builds
ACSimon33 Apr 22, 2026
cd40e85
Remove unnecessary test_inlude directory in the build folder
ACSimon33 Apr 23, 2026
1092f35
Remove complex ?asum and ?nrm2 routines from real tests since they ar…
ACSimon33 Apr 23, 2026
7cca0ea
Skip cblas xerbla tests for shared Windows builds, since weak symbols…
ACSimon33 Apr 23, 2026
5a687f4
Remove the explicit __declspec(dllexport) since that is handles alrea…
ACSimon33 Apr 23, 2026
e18912f
Use CMAKE_POSITION_INDEPENDENT_CODE instead of enabling PIC for each …
ACSimon33 Apr 24, 2026
d620756
Bump required CMake version to 3.18 because we rely on Fortran_PREPRO…
ACSimon33 Apr 24, 2026
76dee5d
Added CMake helper which generate a 64bit suffixed Fortran source fro…
ACSimon33 Apr 24, 2026
01ad09c
New 64bit extended APi generator works
ACSimon33 Apr 27, 2026
530d74c
Added BUILD_DEFAULT_API CMake open to build only the 64bit extended API
ACSimon33 Apr 27, 2026
b92efb6
Added BUILD_DEFAULT_API CMake open to build only the 64bit extended API
ACSimon33 Apr 27, 2026
2eaac71
Fixed missing EXTERNAL declarations in LAPACK sources
ACSimon33 Apr 27, 2026
80b4f53
Add missing EXTERNAL declarations in TESTING/EIG
ACSimon33 Apr 29, 2026
d31bf01
Add missing external declarations in TESTING/LIN (and removed unneces…
ACSimon33 May 2, 2026
a6c1fd8
Removed unnecessary external declarations in TESTING/EIG
ACSimon33 May 2, 2026
d4fbf36
Add missing external declarations in CBLAS/TESTING
ACSimon33 May 2, 2026
b8c9a98
Add missing external declarations in SRC (and removed unused ones)
ACSimon33 May 2, 2026
7872e2d
Fixed CBLAS symbol name: cblas_zaxbpy_64 -> cblas_zaxpby_64
ACSimon33 May 2, 2026
b4ba901
Added API_SUFFIX to CBLAS tests
ACSimon33 May 2, 2026
84ec80d
Added BUILD_DEFAULT_API guards around default CBLAS/LAPACKE examples
ACSimon33 May 4, 2026
932ae47
Added _64 suffixed LAPACK test suite targets
ACSimon33 May 4, 2026
a59517b
Added _64 suffixed CTests
ACSimon33 May 4, 2026
531e611
Added _64 suffixed BLAS tests
ACSimon33 May 4, 2026
a32aa4b
Added _64 suffixed CBLAS tests
ACSimon33 May 4, 2026
275bc4c
Add some more CMake messages during configure
ACSimon33 May 4, 2026
fdee741
Make sure to net generate 64bit suffixed source multiple times
ACSimon33 May 4, 2026
3e31f5a
Remove old WIndows complex settings
ACSimon33 May 4, 2026
0fdfcd6
Warn the user if Index-64 API is build as extended API and as the def…
ACSimon33 May 4, 2026
de32008
Fix CMAKE while loops for older CMake versions
ACSimon33 May 4, 2026
9524bb7
Added _64 suffix to LAPACKE_lsame as well
ACSimon33 May 4, 2026
5a79404
Fix replaced string literals in _64 suffixed sources
ACSimon33 May 4, 2026
01b6937
NAG Fortran on Windows expected -i8 not /i8
ACSimon33 May 5, 2026
04643e1
Added CI pipeline to test _64 extended API on its own.
ACSimon33 May 11, 2026
b9ee49b
Merge branch 'master' into refactor_ext_64_api
ACSimon33 May 11, 2026
83fdf63
Don't generate _64 suffixed sources for XBLAS related routines, becau…
ACSimon33 May 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 47 additions & 8 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:

test-install-release:
# Use GNU compilers

# The CMake configure and build commands are platform agnostic and should work equally
# well on Windows or Mac. You can convert this to a matrix build if you need
# cross-platform coverage.
Expand All @@ -66,9 +66,9 @@ jobs:
fflags: [
"-Wall -Wno-unused-dummy-argument -Wno-unused-variable -Wno-unused-label -Werror=conversion -fimplicit-none -frecursive -fcheck=all",
"-Wall -Wno-unused-dummy-argument -Wno-unused-variable -Wno-unused-label -Werror=conversion -fimplicit-none -frecursive -fcheck=all -fopenmp" ]

steps:

- name: Checkout LAPACK
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2

Expand Down Expand Up @@ -103,7 +103,7 @@ jobs:
-D BUILD_SHARED_LIBS:BOOL=ON

- name: Build
# Execute tests defined by the CMake configuration.
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: cmake --build build --config ${{env.BUILD_TYPE}}

Expand All @@ -120,13 +120,52 @@ jobs:
- name: Install
run: cmake --build build --target install -j2

test-extended-api-only:
runs-on: ubuntu-latest

env:
BUILD_TYPE: Release
FFLAGS: "-Wall -Wno-unused-dummy-argument -Wno-unused-variable -Wno-unused-label -Werror=conversion -fimplicit-none -frecursive -fcheck=all"

strategy:
fail-fast: true
matrix:
shared_libs: [ OFF, ON ]

steps:

- name: Checkout LAPACK
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2

- name: Install ninja-build tool
uses: seanmiddleditch/gha-setup-ninja@16b940825621068d98711680b6c3ff92201f8fc0 # v3

- name: Configure CMake
run: >
cmake -B build -G Ninja
-D CMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
-D BUILD_SHARED_LIBS:BOOL=${{matrix.shared_libs}}
-D BUILD_DEFAULT_API:BOOL=OFF
-D BUILD_INDEX64_EXT_API:BOOL=ON
-D BUILD_TESTING:BOOL=ON
-D CBLAS:BOOL=ON
-D LAPACKE:BOOL=ON
-D LAPACKE_WITH_TMG:BOOL=ON

- name: Build
run: cmake --build build --config ${{env.BUILD_TYPE}}

- name: Test
working-directory: ${{github.workspace}}/build
run: ctest -C ${{env.BUILD_TYPE}} --schedule-random -j2 --output-on-failure --timeout 100

coverage:
runs-on: ubuntu-latest
runs-on: ubuntu-latest
env:
BUILD_TYPE: Coverage
FFLAGS: "-fopenmp"
steps:
steps:

- name: Checkout LAPACK
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2

Expand Down Expand Up @@ -198,7 +237,7 @@ jobs:

- name: Install ninja-build tool
uses: seanmiddleditch/gha-setup-ninja@16b940825621068d98711680b6c3ff92201f8fc0 # v3

- name: Install APT packages
run: |
sudo apt update
Expand Down
132 changes: 55 additions & 77 deletions BLAS/SRC/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,31 +31,31 @@

set(LAPACK_INSTALL_EXPORT_NAME ${BLASLIB}-targets)

set(SBLAS1 isamax.f sasum.f saxpy.f saxpby.f scopy.f sdot.f snrm2.f90
srot.f srotg.f90 sscal.f sswap.f sdsdot.f srotmg.f srotm.f)
set(SBLAS1
isamax.f sasum.f saxpy.f saxpby.f scopy.f sdot.f snrm2.f90 srot.f srotg.f90
sscal.f sswap.f sdsdot.f srotmg.f srotm.f)

set(CBLAS1 scabs1.f scasum.f scnrm2.f90 icamax.f90 caxpy.f caxpby.f ccopy.f
cdotc.f cdotu.f csscal.f crotg.f90 cscal.f cswap.f csrot.f)
set(CBLAS1
scabs1.f scasum.f scnrm2.f90 icamax.f90 caxpy.f caxpby.f ccopy.f cdotc.f
cdotu.f csscal.f crotg.f90 cscal.f cswap.f csrot.f)

set(DBLAS1 idamax.f dasum.f daxpy.f daxpby.f dcopy.f ddot.f dnrm2.f90
drot.f drotg.f90 dscal.f dsdot.f dswap.f drotmg.f drotm.f)
set(DBLAS1
idamax.f dasum.f daxpy.f daxpby.f dcopy.f ddot.f dnrm2.f90 drot.f drotg.f90
dscal.f dsdot.f dswap.f drotmg.f drotm.f)

set(DB1AUX sscal.f isamax.f)

set(ZBLAS1 dcabs1.f dzasum.f dznrm2.f90 izamax.f90 zaxpy.f zaxpby.f zcopy.f
zdotc.f zdotu.f zdscal.f zrotg.f90 zscal.f zswap.f zdrot.f)
set(ZBLAS1
dcabs1.f dzasum.f dznrm2.f90 izamax.f90 zaxpy.f zaxpby.f zcopy.f zdotc.f
zdotu.f zdscal.f zrotg.f90 zscal.f zswap.f zdrot.f)

set(CB1AUX
isamax.f idamax.f
sasum.f saxpy.f scopy.f sdot.f sgemm.f sgemv.f snrm2.f90 srot.f sscal.f
sswap.f)
isamax.f idamax.f sasum.f saxpy.f scopy.f sdot.f sgemm.f sgemv.f snrm2.f90
srot.f sscal.f sswap.f)

set(ZB1AUX
icamax.f90 idamax.f
cgemm.f cherk.f cscal.f ctrsm.f
dasum.f daxpy.f dcopy.f ddot.f dgemm.f dgemv.f dnrm2.f90 drot.f dscal.f
dswap.f
scabs1.f)
icamax.f90 idamax.f cgemm.f cherk.f cscal.f ctrsm.f dasum.f daxpy.f dcopy.f
ddot.f dgemm.f dgemv.f dnrm2.f90 drot.f dscal.f dswap.f scabs1.f)

#---------------------------------------------------------------------
# Auxiliary routines needed by both the Level 2 and Level 3 BLAS
Expand All @@ -65,38 +65,40 @@ set(ALLBLAS lsame.f xerbla.f xerbla_array.f)
#---------------------------------------------------------
# Level 2 BLAS
#---------------------------------------------------------
set(SBLAS2 sgemv.f sgbmv.f ssymv.f ssbmv.f sspmv.f
strmv.f stbmv.f stpmv.f strsv.f stbsv.f stpsv.f
sger.f ssyr.f sspr.f ssyr2.f sspr2.f
sskewsymv.f sskewsyr2.f)
set(SBLAS2
sgemv.f sgbmv.f ssymv.f ssbmv.f sspmv.f strmv.f stbmv.f stpmv.f strsv.f
stbsv.f stpsv.f sger.f ssyr.f sspr.f ssyr2.f sspr2.f sskewsymv.f sskewsyr2.f)

set(CBLAS2 cgemv.f cgbmv.f chemv.f chbmv.f chpmv.f
ctrmv.f ctbmv.f ctpmv.f ctrsv.f ctbsv.f ctpsv.f
cgerc.f cgeru.f cher.f chpr.f cher2.f chpr2.f)
set(CBLAS2
cgemv.f cgbmv.f chemv.f chbmv.f chpmv.f ctrmv.f ctbmv.f ctpmv.f ctrsv.f
ctbsv.f ctpsv.f cgerc.f cgeru.f cher.f chpr.f cher2.f chpr2.f)

set(DBLAS2 dgemv.f dgbmv.f dsymv.f dsbmv.f dspmv.f
dtrmv.f dtbmv.f dtpmv.f dtrsv.f dtbsv.f dtpsv.f
dger.f dsyr.f dspr.f dsyr2.f dspr2.f
dskewsymv.f dskewsyr2.f)
set(DBLAS2
dgemv.f dgbmv.f dsymv.f dsbmv.f dspmv.f dtrmv.f dtbmv.f dtpmv.f dtrsv.f
dtbsv.f dtpsv.f dger.f dsyr.f dspr.f dsyr2.f dspr2.f dskewsymv.f dskewsyr2.f)

set(ZBLAS2 zgemv.f zgbmv.f zhemv.f zhbmv.f zhpmv.f
ztrmv.f ztbmv.f ztpmv.f ztrsv.f ztbsv.f ztpsv.f
zgerc.f zgeru.f zher.f zhpr.f zher2.f zhpr2.f)
set(ZBLAS2
zgemv.f zgbmv.f zhemv.f zhbmv.f zhpmv.f ztrmv.f ztbmv.f ztpmv.f ztrsv.f
ztbsv.f ztpsv.f zgerc.f zgeru.f zher.f zhpr.f zher2.f zhpr2.f)

#---------------------------------------------------------
# Level 3 BLAS
#---------------------------------------------------------
set(SBLAS3 sgemm.f ssymm.f ssyrk.f ssyr2k.f strmm.f strsm.f sgemmtr.f
sskewsymm.f sskewsyr2k.f)
set(SBLAS3
sgemm.f ssymm.f ssyrk.f ssyr2k.f strmm.f strsm.f sgemmtr.f sskewsymm.f
sskewsyr2k.f)

set(CBLAS3 cgemm.f csymm.f csyrk.f csyr2k.f ctrmm.f ctrsm.f
chemm.f cherk.f cher2k.f cgemmtr.f)
set(CBLAS3
cgemm.f csymm.f csyrk.f csyr2k.f ctrmm.f ctrsm.f chemm.f cherk.f cher2k.f
cgemmtr.f)

set(DBLAS3 dgemm.f dsymm.f dsyrk.f dsyr2k.f dtrmm.f dtrsm.f dgemmtr.f
dskewsymm.f dskewsyr2k.f)
set(DBLAS3
dgemm.f dsymm.f dsyrk.f dsyr2k.f dtrmm.f dtrsm.f dgemmtr.f dskewsymm.f
dskewsyr2k.f)

set(ZBLAS3 zgemm.f zsymm.f zsyrk.f zsyr2k.f ztrmm.f ztrsm.f
zhemm.f zherk.f zher2k.f zgemmtr.f)
set(ZBLAS3
zgemm.f zsymm.f zsyrk.f zsyr2k.f ztrmm.f ztrsm.f zhemm.f zherk.f zher2k.f
zgemmtr.f)


set(SOURCES)
Expand All @@ -115,65 +117,41 @@ if(BUILD_COMPLEX16)
endif()
list(REMOVE_DUPLICATES SOURCES)

add_library(${BLASLIB}_obj OBJECT ${SOURCES})
set_target_properties(${BLASLIB}_obj PROPERTIES POSITION_INDEPENDENT_CODE ON)
if(BUILD_DEFAULT_API)
add_library(${BLASLIB}_obj OBJECT ${SOURCES})
endif()

if(BUILD_INDEX64_EXT_API)
set(SOURCES_64_F)
# Copy files so we can set source property specific to /${BLASLIB}_64_obj target
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${BLASLIB}_64_obj)
file(COPY ${SOURCES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${BLASLIB}_64_obj)
file(GLOB SOURCES_64_F ${CMAKE_CURRENT_BINARY_DIR}/${BLASLIB}_64_obj/*.f*)
add_library(${BLASLIB}_64_obj OBJECT ${SOURCES_64_F})
include(ExtendedAPIHelpers)
generate_64bit_suffixed_sources(${BLASLIB} SOURCES SOURCES_64)

add_library(${BLASLIB}_64_obj OBJECT ${SOURCES_64})
target_compile_options(${BLASLIB}_64_obj PRIVATE ${FOPT_ILP64})
set_target_properties(${BLASLIB}_64_obj PROPERTIES POSITION_INDEPENDENT_CODE ON)
#Add _64 suffix to all Fortran functions via macros
foreach(F IN LISTS SOURCES_64_F)
if(CMAKE_Fortran_COMPILER_ID STREQUAL "NAG" OR CMAKE_Fortran_COMPILER_ID MATCHES "Intel")
set_source_files_properties(${F} PROPERTIES COMPILE_FLAGS "-fpp")
else()
set_source_files_properties(${F} PROPERTIES COMPILE_FLAGS "-cpp")
endif()
file(STRINGS ${F} ${F}.lst)
list(FILTER ${F}.lst INCLUDE REGEX "subroutine|SUBROUTINE|external|EXTERNAL|function|FUNCTION")
list(FILTER ${F}.lst EXCLUDE REGEX "^!.*")
list(FILTER ${F}.lst EXCLUDE REGEX "^[*].*")
list(FILTER ${F}.lst EXCLUDE REGEX "end|END")
foreach(FUNC IN LISTS ${F}.lst)
string(REGEX REPLACE "^[a-zA-Z0-9_ *]*(subroutine|SUBROUTINE|external|EXTERNAL|function|FUNCTION)[ ]*[*]?" "" FUNC ${FUNC})
string(REGEX REPLACE "[(][a-zA-Z0-9_, )]*$" "" FUNC ${FUNC})
string(STRIP ${FUNC} FUNC)
list(APPEND COPT_64_F "${FUNC}=${FUNC}_64")
endforeach()
list(REMOVE_DUPLICATES COPT_64_F)
set_source_files_properties(${F} PROPERTIES COMPILE_DEFINITIONS "${COPT_64_F}")
endforeach()
endif()

add_library(${BLASLIB}
$<TARGET_OBJECTS:${BLASLIB}_obj>
$<$<BOOL:${BUILD_INDEX64_EXT_API}>: $<TARGET_OBJECTS:${BLASLIB}_64_obj>>)
$<$<BOOL:${BUILD_DEFAULT_API}>: $<TARGET_OBJECTS:${BLASLIB}_obj>>
$<$<BOOL:${BUILD_INDEX64_EXT_API}>: $<TARGET_OBJECTS:${BLASLIB}_64_obj>>)

# For flang, use C linker instead of Fortran linker to avoid macOS-specific flags
# that CMake adds (tested CMake 4.2).
if (CMAKE_Fortran_COMPILER_ID STREQUAL "LLVMFlang")
set_target_properties (${BLASLIB} PROPERTIES LINKER_LANGUAGE C)
if(CMAKE_Fortran_COMPILER_ID STREQUAL "LLVMFlang")
set_target_properties (${BLASLIB} PROPERTIES LINKER_LANGUAGE C)
endif()

set_target_properties(
${BLASLIB} PROPERTIES
VERSION ${LAPACK_VERSION}
SOVERSION ${LAPACK_MAJOR_VERSION}
POSITION_INDEPENDENT_CODE ON
)
lapack_install_library(${BLASLIB})

add_library(BLAS::BLAS ALIAS ${BLASLIB})
install(EXPORT ${BLASLIB}-targets
FILE ${BLASLIB}-targets.cmake
NAMESPACE BLAS::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${LAPACKLIB}-${LAPACK_VERSION}
COMPONENT Development
FILE ${BLASLIB}-targets.cmake
NAMESPACE BLAS::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${LAPACKLIB}-${LAPACK_VERSION}
COMPONENT Development
)

if( TEST_FORTRAN_COMPILER )
Expand Down
37 changes: 31 additions & 6 deletions BLAS/TESTING/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
macro(add_blas_test name src)
get_filename_component(baseNAME ${src} NAME_WE)
set(TEST_INPUT "${CMAKE_CURRENT_SOURCE_DIR}/${baseNAME}.in")
function(_add_blas_test name src test_input)
add_executable(${name} ${src})
target_link_libraries(${name} ${BLASLIB})
if(EXISTS "${TEST_INPUT}")
if(EXISTS "${test_input}")
add_test(NAME BLAS-${name} COMMAND "${CMAKE_COMMAND}"
-DTEST=$<TARGET_FILE:${name}>
-DINPUT=${TEST_INPUT}
-DINPUT=${test_input}
-DINTDIR=${CMAKE_CFG_INTDIR}
-P "${LAPACK_SOURCE_DIR}/TESTING/runtest.cmake")
else()
Expand All @@ -21,7 +19,34 @@ macro(add_blas_test name src)
if(CMAKE_Fortran_COMPILER_ID STREQUAL "NAG")
target_compile_options(${name} PRIVATE "-Onopropagate")
endif()
endmacro()
endfunction()

function(add_blas_test name source)
get_filename_component(baseNAME ${source} NAME_WE)
set(test_input "${CMAKE_CURRENT_SOURCE_DIR}/${baseNAME}.in")

if(BUILD_DEFAULT_API)
_add_blas_test(${name} ${source} "${test_input}")
endif()

if(BUILD_INDEX64_EXT_API)
include(ExtendedAPIHelpers)
generate_64bit_suffixed_sources(${name} source source_64 NO_STRING_REPLACEMENTS)
Comment on lines +24 to +34

# Create 64-bit version of test input if it exists, replacing output
# file names with their 64-bit counterparts
if(EXISTS "${test_input}")
file(READ "${test_input}" test_input_content)
string(REPLACE "'${baseNAME}.out'" "'${baseNAME}_64.out'"
test_input_content "${test_input_content}")
set(test_input_64 "${CMAKE_CURRENT_BINARY_DIR}/${baseNAME}_64.in")
file(WRITE "${test_input_64}" "${test_input_content}")
endif()

_add_blas_test(${name}_64 "${source_64}" "${test_input_64}")
target_compile_options(${name}_64 PRIVATE ${FOPT_ILP64})
endif()
endfunction()

if(BUILD_SINGLE)
add_blas_test(xblat1s sblat1.f)
Expand Down
14 changes: 8 additions & 6 deletions CBLAS/examples/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
add_executable(xexample1_CBLAS cblas_example1.c)
add_executable(xexample2_CBLAS cblas_example2.c)
if(BUILD_DEFAULT_API)
add_executable(xexample1_CBLAS cblas_example1.c)
add_executable(xexample2_CBLAS cblas_example2.c)

target_link_libraries(xexample1_CBLAS ${CBLASLIB})
target_link_libraries(xexample2_CBLAS ${CBLASLIB} ${BLAS_LIBRARIES})
target_link_libraries(xexample1_CBLAS ${CBLASLIB})
target_link_libraries(xexample2_CBLAS ${CBLASLIB} ${BLAS_LIBRARIES})

add_test(example1_CBLAS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/xexample1_CBLAS)
add_test(example2_CBLAS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/xexample2_CBLAS)
add_test(example1_CBLAS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/xexample1_CBLAS)
add_test(example2_CBLAS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/xexample2_CBLAS)
endif()

if(BUILD_INDEX64_EXT_API)
add_executable(xexample1_64_CBLAS cblas_example1_64.c)
Expand Down
2 changes: 0 additions & 2 deletions CBLAS/include/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ if(CBLAS)
install(FILES ${CBLAS_INCLUDE}
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
COMPONENT Development)

file(COPY cblas_test.h DESTINATION ${LAPACK_BINARY_DIR}/test_include)
endif()

# Create a header file for CBLAS routine mangling (cblas_mangling.h)
Expand Down
2 changes: 1 addition & 1 deletion CBLAS/include/cblas_64.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ void cblas_zcopy_64(const int64_t N, const void *X, const int64_t incX,
void *Y, const int64_t incY);
void cblas_zaxpy_64(const int64_t N, const void *alpha, const void *X,
const int64_t incX, void *Y, const int64_t incY);
void cblas_zaxbpy_64(const int64_t N, const void *alpha, const void *X,
void cblas_zaxpby_64(const int64_t N, const void *alpha, const void *X,
const int64_t incX, const void *beta, void *Y, const int64_t incY);


Expand Down
13 changes: 13 additions & 0 deletions CBLAS/include/cblas_globals.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#ifndef CBLAS_GLOBALS_H
#define CBLAS_GLOBALS_H

#if defined(CBLAS_DLL_IMPORTS)
#define CBLAS_GLOBAL_SYMBOL __declspec(dllimport)
#else
#define CBLAS_GLOBAL_SYMBOL
#endif

extern CBLAS_GLOBAL_SYMBOL int CBLAS_CallFromC;
extern CBLAS_GLOBAL_SYMBOL int RowMajorStrg;

#endif
Loading
Loading