| @@ -1,70 +1,74 @@ | |||||
| ## | |||||
| ## Author: Hank Anderson <hank@statease.com> | |||||
| ## Copyright: (c) Stat-Ease, Inc. | |||||
| ## Created: 12/29/14 | |||||
| ## Last Modified: 12/29/14 | |||||
| ## Description: Ported from the OpenBLAS/f_check perl script. | |||||
| ## This is triggered by prebuild.cmake and runs before any of the code is built. | |||||
| ## Appends Fortran information to config.h and Makefile.conf. | |||||
| # CMake vars set by this file: | |||||
| # F_COMPILER | |||||
| # FC | |||||
| # BU | |||||
| # NOFORTRAN | |||||
| # NEED2UNDERSCORES | |||||
| # FEXTRALIB | |||||
| # Defines set by this file: | |||||
| # BUNDERSCORE | |||||
| # NEEDBUNDERSCORE | |||||
| # NEED2UNDERSCORES | |||||
| include(CheckLanguage) | |||||
| check_language(Fortran) | |||||
| if(CMAKE_Fortran_COMPILER) | |||||
| enable_language(Fortran) | |||||
| else() | |||||
| set (NOFORTRAN 1) | |||||
| if (NOT NO_LAPACK) | |||||
| if (NOT XXXXX) | |||||
| message(STATUS "No Fortran compiler found, can build only BLAS and f2c-converted LAPACK") | |||||
| set(C_LAPACK 1) | |||||
| if (INTERFACE64) | |||||
| set (CCOMMON_OPT "${CCOMMON_OPT} -DLAPACK_ILP64") | |||||
| endif () | |||||
| set(TIMER "NONE") | |||||
| else () | |||||
| message(STATUS "No Fortran compiler found, can build only BLAS") | |||||
| endif() | |||||
| endif() | |||||
| endif() | |||||
| if (NOT ONLY_CBLAS) | |||||
| # run f_check (appends to TARGET files) | |||||
| # 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" | |||||
| "#define NEEDBUNDERSCORE 1\n" | |||||
| "#define NEED2UNDERSCORES 0\n") | |||||
| else () | |||||
| #When we only build CBLAS, we set NOFORTRAN=2 | |||||
| set(NOFORTRAN 2) | |||||
| set(NO_FBLAS 1) | |||||
| #set(F_COMPILER GFORTRAN) # CMake handles the fortran compiler | |||||
| set(BU "_") | |||||
| file(APPEND ${TARGET_CONF_TEMP} | |||||
| "#define BUNDERSCORE _\n" | |||||
| "#define NEEDBUNDERSCORE 1\n") | |||||
| endif() | |||||
| if (CMAKE_Fortran_COMPILER) | |||||
| get_filename_component(F_COMPILER ${CMAKE_Fortran_COMPILER} NAME_WE) | |||||
| string(TOUPPER ${F_COMPILER} F_COMPILER) | |||||
| endif() | |||||
| ## | |||||
| ## Author: Hank Anderson <hank@statease.com> | |||||
| ## Copyright: (c) Stat-Ease, Inc. | |||||
| ## Created: 12/29/14 | |||||
| ## Last Modified: 12/29/14 | |||||
| ## Description: Ported from the OpenBLAS/f_check perl script. | |||||
| ## This is triggered by prebuild.cmake and runs before any of the code is built. | |||||
| ## Appends Fortran information to config.h and Makefile.conf. | |||||
| # CMake vars set by this file: | |||||
| # F_COMPILER | |||||
| # FC | |||||
| # BU | |||||
| # NOFORTRAN | |||||
| # NEED2UNDERSCORES | |||||
| # FEXTRALIB | |||||
| # Defines set by this file: | |||||
| # BUNDERSCORE | |||||
| # NEEDBUNDERSCORE | |||||
| # NEED2UNDERSCORES | |||||
| include(CheckLanguage) | |||||
| check_language(Fortran) | |||||
| if(CMAKE_Fortran_COMPILER) | |||||
| enable_language(Fortran) | |||||
| else() | |||||
| set (NOFORTRAN 1) | |||||
| if (NOT NO_LAPACK) | |||||
| if (NOT XXXXX) | |||||
| message(STATUS "No Fortran compiler found, can build only BLAS and f2c-converted LAPACK") | |||||
| set(C_LAPACK 1) | |||||
| if (INTERFACE64) | |||||
| set (CCOMMON_OPT "${CCOMMON_OPT} -DLAPACK_ILP64") | |||||
| endif () | |||||
| set(TIMER "NONE") | |||||
| else () | |||||
| message(STATUS "No Fortran compiler found, can build only BLAS") | |||||
| endif() | |||||
| endif() | |||||
| endif() | |||||
| if (NOT ONLY_CBLAS) | |||||
| # run f_check (appends to TARGET files) | |||||
| # TODO: detect whether underscore needed, set #defines and BU appropriately - use try_compile | |||||
| # TODO: set FEXTRALIB flags a la f_check? | |||||
| if (NOT (${CMAKE_SYSTEM_NAME} MATCHES "Windows" AND ${CMAKE_Fortran_COMPILER_ID} MATCHES "IntelLLVM")) | |||||
| set(BU "_") | |||||
| file(APPEND ${TARGET_CONF_TEMP} | |||||
| "#define BUNDERSCORE _\n" | |||||
| "#define NEEDBUNDERSCORE 1\n" | |||||
| "#define NEED2UNDERSCORES 0\n") | |||||
| else () | |||||
| file(APPEND ${TARGET_CONF_TEMP} | |||||
| "#define NEEDBUNDERSCORE 0\n" | |||||
| "#define NEED2UNDERSCORES 0\n") | |||||
| endif() | |||||
| else () | |||||
| #When we only build CBLAS, we set NOFORTRAN=2 | |||||
| set(NOFORTRAN 2) | |||||
| set(NO_FBLAS 1) | |||||
| #set(F_COMPILER GFORTRAN) # CMake handles the fortran compiler | |||||
| set(BU "_") | |||||
| file(APPEND ${TARGET_CONF_TEMP} | |||||
| "#define BUNDERSCORE _\n" | |||||
| "#define NEEDBUNDERSCORE 1\n") | |||||
| endif() | |||||
| if (CMAKE_Fortran_COMPILER) | |||||
| get_filename_component(F_COMPILER ${CMAKE_Fortran_COMPILER} NAME_WE) | |||||
| string(TOUPPER ${F_COMPILER} F_COMPILER) | |||||
| endif() | |||||