71 lines
1.8 KiB
CMake
71 lines
1.8 KiB
CMake
##
|
|
## 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()
|