diff --git a/CMakeLists.txt b/CMakeLists.txt index 4fdfb3ffa..2bc3a210c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -152,14 +152,15 @@ if(MSVC AND BUILD_SHARED_LIBS) if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 3.4) include("${PROJECT_SOURCE_DIR}/cmake/export.cmake") else() - # Creates verbose .def file (51KB vs 18KB) - set_target_properties(${OpenBLAS_LIBNAME} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS true) endif() endif() # Set output for libopenblas set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES LIBRARY_OUTPUT_NAME_DEBUG "${OpenBLAS_LIBNAME}_d") +# Creates verbose .def file (51KB vs 18KB) +set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE) + foreach (OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES}) string( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG ) diff --git a/appveyor.yml b/appveyor.yml index 1c0474d2d..4eaae5eed 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -24,23 +24,32 @@ skip_commits: message: /\[av skip\]/ environment: + global: + CONDA_INSTALL_LOCN: C:\\Miniconda36-x64 matrix: - COMPILER: clang-cl - DYNAMIC_ARCH: ON + WITH_FORTRAN: yes - COMPILER: clang-cl + DYNAMIC_ARCH: ON + WITH_FORTRAN: no - COMPILER: cl install: - - if [%COMPILER%]==[clang-cl] call C:\Miniconda36-x64\Scripts\activate.bat + - if [%COMPILER%]==[clang-cl] call %CONDA_INSTALL_LOCN%\Scripts\activate.bat - if [%COMPILER%]==[clang-cl] conda config --add channels conda-forge --force - - if [%COMPILER%]==[clang-cl] conda install --yes clangdev ninja cmake + - if [%WITH_FORTRAN%]==[yes] conda config --add channels isuruf/label/flang --force + - if [%COMPILER%]==[clang-cl] conda install --yes --quiet clangdev ninja cmake + - if [%WITH_FORTRAN%]==[yes] conda install --yes --quiet flangdev clangdev cmake - if [%COMPILER%]==[clang-cl] call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + - if [%COMPILER%]==[clang-cl] set "LIB=%CONDA_INSTALL_LOCN%\Library\lib;%LIB%" + - if [%COMPILER%]==[clang-cl] set "CPATH=%CONDA_INSTALL_LOCN%\Library\include;%CPATH%" before_build: - echo Running cmake... - cd c:\projects\OpenBLAS - if [%COMPILER%]==[cl] cmake -G "Visual Studio 12 Win64" . - - if [%COMPILER%]==[clang-cl] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl . + - if [%WITH_FORTRAN%]==[no] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl . + - if [%WITH_FORTRAN%]==[yes] cmake -G "NMake Makefiles" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl -DCMAKE_Fortran_COMPILER=flang -DBUILD_WITHOUT_LAPACK=no -DNOFORTRAN=0 . - if [%DYNAMIC_ARCH%]==[ON] cmake -DDYNAMIC_ARCH=ON . build_script: diff --git a/cmake/f_check.cmake b/cmake/f_check.cmake index 4848553d9..99e848748 100644 --- a/cmake/f_check.cmake +++ b/cmake/f_check.cmake @@ -20,12 +20,6 @@ # NEEDBUNDERSCORE # NEED2UNDERSCORES -if (MSVC) - # had to do this for MSVC, else CMake automatically assumes I have ifort... -hpa - include(CMakeForceCompiler) - CMAKE_FORCE_Fortran_COMPILER(gfortran GNU) -endif () - if (NOT NO_LAPACK) enable_language(Fortran) else() @@ -38,7 +32,6 @@ if (NOT ONLY_CBLAS) # TODO: detect whether underscore needed, set #defines and BU appropriately - use try_compile # TODO: set FEXTRALIB flags a la f_check? - set(BU "_") file(APPEND ${TARGET_CONF_TEMP} "#define BUNDERSCORE _\n" diff --git a/cmake/lapack.cmake b/cmake/lapack.cmake index e6cd5373d..0f8af52f3 100644 --- a/cmake/lapack.cmake +++ b/cmake/lapack.cmake @@ -132,7 +132,9 @@ set(CLASRC DEPRECATED/cgegs.f DEPRECATED/cgegv.f cgehd2.f cgehrd.f cgelq2.f cgelqf.f cgels.f cgelsd.f cgelss.f DEPRECATED/cgelsx.f cgelsy.f cgeql2.f cgeqlf.f cgeqp3.f DEPRECATED/cgeqpf.f cgeqr2.f cgeqr2p.f cgeqrf.f cgeqrfp.f cgerfs.f - cgerq2.f cgerqf.f cgesc2.f cgesdd.f cgesvd.f + cgerq2.f cgerqf.f cgesc2.f cgesdd.f cgesvd.f cgejsv.f cgesvdx.f cgesvj.f + cgetrf2.f cgges3.f cggev3.f cgghd3.f cggsvd3.f cggsvp3.f cpotrf2.f csysv_aa.f + csytrs_aa.f cgsvj0.f cgsvj1.f cunm22.f csytrf_aa.f clasyf_aa.f cgesvx.f cgetc2.f cgetri.f cggbak.f cggbal.f cgges.f cggesx.f cggev.f cggevx.f cggglm.f cgghrd.f cgglse.f cggqrf.f cggrqf.f @@ -362,6 +364,26 @@ set(ZLASRC zlarfy.f ) +set(SCATGEN slatm1.f slaran.f slarnd.f) + +set(SMATGEN slatms.f slatme.f slatmr.f slatmt.f + slagge.f slagsy.f slakf2.f slarge.f slaror.f slarot.f slatm2.f + slatm3.f slatm5.f slatm6.f slatm7.f slahilb.f) + +set(CMATGEN clatms.f clatme.f clatmr.f clatmt.f + clagge.f claghe.f clagsy.f clakf2.f clarge.f claror.f clarot.f + clatm1.f clarnd.f clatm2.f clatm3.f clatm5.f clatm6.f clahilb.f slatm7.f) + +set(DZATGEN dlatm1.f dlaran.f dlarnd.f) + +set(DMATGEN dlatms.f dlatme.f dlatmr.f dlatmt.f + dlagge.f dlagsy.f dlakf2.f dlarge.f dlaror.f dlarot.f dlatm2.f + dlatm3.f dlatm5.f dlatm6.f dlatm7.f dlahilb.f) + +set(ZMATGEN zlatms.f zlatme.f zlatmr.f zlatmt.f + zlagge.f zlaghe.f zlagsy.f zlakf2.f zlarge.f zlaror.f zlarot.f + zlatm1.f zlarnd.f zlatm2.f zlatm3.f zlatm5.f zlatm6.f zlahilb.f dlatm7.f) + set(LA_REL_SRC ${ALLAUX}) if (BUILD_SINGLE) list(APPEND LA_REL_SRC ${SLASRC} ${DSLASRC} ${SCLAUX}) @@ -379,9 +401,27 @@ if (BUILD_COMPLEX16) list(APPEND LA_REL_SRC ${ZLASRC} ${ZCLASRC} ${DZLAUX}) endif () +set(MATGEN_SRC "") +if(BUILD_SINGLE) + list(APPEND MATGEN_SRC ${SMATGEN} ${SCATGEN}) +endif() +if(BUILD_DOUBLE) + list(APPEND MATGEN_SRC ${ALLOBJ} ${DMATGEN} ${DZATGEN}) +endif() +if(BUILD_COMPLEX) + list(APPEND MATGEN_SRC ${ALLOBJ} ${CMATGEN} ${SCATGEN}) +endif() +if(BUILD_COMPLEX16) + list(APPEND MATGEN_SRC ${ALLOBJ} ${ZMATGEN} ${DZATGEN}) +endif() + + # add lapack-netlib folder to the sources set(LA_SOURCES "") foreach (LA_FILE ${LA_REL_SRC}) list(APPEND LA_SOURCES "${NETLIB_LAPACK_DIR}/SRC/${LA_FILE}") endforeach () +foreach (LA_FILE ${MATGEN_SRC}) + list(APPEND LA_SOURCES "${NETLIB_LAPACK_DIR}/TESTING/MATGEN/${LA_FILE}") +endforeach () set_source_files_properties(${LA_SOURCES} PROPERTIES COMPILE_FLAGS "${LAPACK_FFLAGS}") diff --git a/cmake/lapacke.cmake b/cmake/lapacke.cmake index fd5aee134..841dc4540 100644 --- a/cmake/lapacke.cmake +++ b/cmake/lapacke.cmake @@ -1,5 +1,5 @@ -set(C_SRC +set(CSRC lapacke_cbbcsd.c lapacke_cbbcsd_work.c lapacke_cbdsqr.c @@ -1839,6 +1839,12 @@ set(ZSRC lapacke_zhbevd_work.c lapacke_zhbevx.c lapacke_zhbevx_work.c + lapacke_zhbev_2stage.c + lapacke_zhbev_2stage_work.c + lapacke_zhbevd_2stage.c + lapacke_zhbevd_2stage_work.c + lapacke_zhbevx_2stage.c + lapacke_zhbevx_2stage_work.c lapacke_zhbgst.c lapacke_zhbgst_work.c lapacke_zhbgv.c @@ -2363,7 +2369,7 @@ lapacke_dpb_nancheck.c lapacke_sst_nancheck.c lapacke_dpb_trans.c lapacke_ssy_nancheck.c ) -set(LAPACKE_REL_SRC "") +set(LAPACKE_REL_SRC "${MATGEN}") if (BUILD_SINGLE) list(APPEND LAPACKE_REL_SRC ${SSRC}) endif ()