70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			CMake
		
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.7 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()
 | |
| 
 | |
| get_filename_component(F_COMPILER ${CMAKE_Fortran_COMPILER} NAME_WE)
 | |
| string(TOUPPER ${F_COMPILER} F_COMPILER)
 | |
| 
 |