## ## Author: Hank Anderson ## 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() get_filename_component(F_COMPILER ${CMAKE_Fortran_COMPILER} NAME_WE) string(TOUPPER ${F_COMPILER} F_COMPILER)