Corrected fortran compiler name variables.

Fixed some typos.

Updated c_check to set ARCH and BINARY64/32.

Added version variables.
This commit is contained in:
Hank Anderson 2015-02-03 14:21:22 -06:00
parent be1ce38f24
commit 30be551502
8 changed files with 77 additions and 41 deletions

View File

@ -4,6 +4,10 @@
cmake_minimum_required(VERSION 2.8.4) cmake_minimum_required(VERSION 2.8.4)
project(OpenBLAS) project(OpenBLAS)
set(OpenBLAS_MAJOR_VERSION 0)
set(OpenBLAS_MINOR_VERSION 2)
set(OpenBLAS_PATCH_VERSION 13)
set(OpenBLAS_VERSION "${OpenBLAS_MAJOR_VERSION}.${OpenBLAS_MINOR_VERSION}.${OpenBLAS_PATCH_VERSION}")
# is this necessary? lapack-netlib has its own fortran checks in its CMakeLists.txt # is this necessary? lapack-netlib has its own fortran checks in its CMakeLists.txt
#enable_language(Fortran) #enable_language(Fortran)

View File

@ -12,7 +12,7 @@ if (${ARCH} STREQUAL "x86" OR ${ARCH} STREQUAL "x86_64")
endif () endif ()
if (NOT NO_EXPRECISION) if (NOT NO_EXPRECISION)
if (${Fortran_COMPILER_NAME} MATCHES "gfortran.*") if (${CMAKE_Fortran_COMPILER} MATCHES "gfortran.*")
# N.B. I'm not sure if CMake differentiates between GCC and LSB -hpa # N.B. I'm not sure if CMake differentiates between GCC and LSB -hpa
if (${CMAKE_C_COMPILER} STREQUAL "GNU" OR ${CMAKE_C_COMPILER} STREQUAL "LSB") if (${CMAKE_C_COMPILER} STREQUAL "GNU" OR ${CMAKE_C_COMPILER} STREQUAL "LSB")
set(EXPRECISION 1) set(EXPRECISION 1)
@ -86,7 +86,7 @@ if (${ARCH} STREQUAL "ia64")
set(NO_BINARY_MODE 1) set(NO_BINARY_MODE 1)
set(BINARY_DEFINED 1) set(BINARY_DEFINED 1)
if (${Fortran_COMPILER_NAME} MATCHES "gfortran.*") if (${CMAKE_Fortran_COMPILER} MATCHES "gfortran.*")
if (${CMAKE_C_COMPILER} STREQUAL "GNU") if (${CMAKE_C_COMPILER} STREQUAL "GNU")
# EXPRECISION = 1 # EXPRECISION = 1
# CCOMMON_OPT += -DEXPRECISION # CCOMMON_OPT += -DEXPRECISION

View File

@ -4,6 +4,26 @@
## This is triggered by prebuild.cmake and runs before any of the code is built. ## This is triggered by prebuild.cmake and runs before any of the code is built.
## Creates config.h and Makefile.conf. ## Creates config.h and Makefile.conf.
# CMake vars set by this file:
# OSNAME (use CMAKE_SYSTEM_NAME)
# ARCH
# C_COMPILER (use CMAKE_C_COMPILER)
# BINARY32
# BINARY64
# FU
# CROSS_SUFFIX
# CROSS
# CEXTRALIB
# Defines set by this file:
# OS_
# ARCH_
# C_
# __32BIT__
# __64BIT__
# FUNDERSCORE
# PTHREAD_CREATE_FUNC
# N.B. c_check (and ctest.c) is not cross-platform, so instead try to use CMake variables. # N.B. c_check (and ctest.c) is not cross-platform, so instead try to use CMake variables.
# TODO: detect NEED_FU # TODO: detect NEED_FU
@ -23,17 +43,25 @@ if (NOT DEFINED BINARY)
endif () endif ()
endif () endif ()
if (BINARY EQUAL 64)
set(BINARY64 1)
else ()
set(BINARY32 1)
endif ()
# CMake docs define these: # CMake docs define these:
# CMAKE_SYSTEM_PROCESSOR - The name of the CPU CMake is building for. # CMAKE_SYSTEM_PROCESSOR - The name of the CPU CMake is building for.
# CMAKE_HOST_SYSTEM_PROCESSOR - The name of the CPU CMake is running on. # CMAKE_HOST_SYSTEM_PROCESSOR - The name of the CPU CMake is running on.
set(HOST_ARCH ${CMAKE_SYSTEM_PROCESSOR}) #
if (${HOST_ARCH} STREQUAL "AMD64") # TODO: CMAKE_SYSTEM_PROCESSOR doesn't seem to be correct - instead get it from the compiler a la c_check
set(HOST_ARCH "X86_64") set(ARCH ${CMAKE_SYSTEM_PROCESSOR})
if (${ARCH} STREQUAL "AMD64")
set(ARCH "X86_64")
endif () endif ()
# If you are using a 32-bit compiler on a 64-bit system CMAKE_SYSTEM_PROCESSOR will be wrong # If you are using a 32-bit compiler on a 64-bit system CMAKE_SYSTEM_PROCESSOR will be wrong
if (${HOST_ARCH} STREQUAL "X86_64" AND BINARY EQUAL 32) if (${ARCH} STREQUAL "X86_64" AND BINARY EQUAL 32)
set(HOST_ARCH X86) set(ARCH X86)
endif () endif ()
set(COMPILER_ID ${CMAKE_CXX_COMPILER_ID}) set(COMPILER_ID ${CMAKE_CXX_COMPILER_ID})
@ -43,7 +71,7 @@ endif ()
file(WRITE ${TARGET_CONF} file(WRITE ${TARGET_CONF}
"#define OS_${HOST_OS}\t1\n" "#define OS_${HOST_OS}\t1\n"
"#define ARCH_${HOST_ARCH}\t1\n" "#define ARCH_${ARCH}\t1\n"
"#define C_${COMPILER_ID}\t1\n" "#define C_${COMPILER_ID}\t1\n"
"#define __${BINARY}BIT__\t1\n" "#define __${BINARY}BIT__\t1\n"
"#define FUNDERSCORE\t${NEED_FU}\n") "#define FUNDERSCORE\t${NEED_FU}\n")

View File

@ -6,8 +6,8 @@
if (${CMAKE_C_COMPILER} STREQUAL "GNU" OR ${CMAKE_C_COMPILER} STREQUAL "LSB" OR ${CMAKE_C_COMPILER} STREQUAL "Clang") if (${CMAKE_C_COMPILER} STREQUAL "GNU" OR ${CMAKE_C_COMPILER} STREQUAL "LSB" OR ${CMAKE_C_COMPILER} STREQUAL "Clang")
set(CCOMMON_OPT "${CCOMMON_OPT} -Wall") set(CCOMMON_OPT "${CCOMMON_OPT} -Wall")
COMMON_PROF += -fno-inline set(COMMON_PROF "${COMMON_PROF} -fno-inline")
NO_UNINITIALIZED_WARN = -Wno-uninitialized set(NO_UNINITIALIZED_WARN "-Wno-uninitialized")
if (QUIET_MAKE) if (QUIET_MAKE)
set(CCOMMON_OPT "${CCOMMON_OPT} ${NO_UNINITIALIZED_WARN} -Wno-unused") set(CCOMMON_OPT "${CCOMMON_OPT} ${NO_UNINITIALIZED_WARN} -Wno-unused")
@ -89,8 +89,8 @@ if (${CMAKE_C_COMPILER} STREQUAL "OPEN64")
else () else ()
set(CCOMMON_OPT "${CCOMMON_OPT} -m64") set(CCOMMON_OPT "${CCOMMON_OPT} -m64")
endif () endif ()
endif endif ()
endif endif ()
if (${CMAKE_C_COMPILER} STREQUAL "SUN") if (${CMAKE_C_COMPILER} STREQUAL "SUN")
set(CCOMMON_OPT "${CCOMMON_OPT} -w") set(CCOMMON_OPT "${CCOMMON_OPT} -w")

View File

@ -7,8 +7,20 @@
## This is triggered by prebuild.cmake and runs before any of the code is built. ## This is triggered by prebuild.cmake and runs before any of the code is built.
## Appends Fortran information to config.h and Makefile.conf. ## Appends Fortran information to config.h and Makefile.conf.
# CMake vars set by this file:
# F_COMPILER
# FC
# BU
# NOFORTRAN
# NEED2UNDERSCORES
# FEXTRALIB
if (NOT ${ONLY_CBLAS}) # Defines set by this file:
# BUNDERSCORE
# NEEDBUNDERSCORE
# NEED2UNDERSCORES
if (NOT ONLY_CBLAS)
# N.B. f_check is not cross-platform, so instead try to use CMake variables # N.B. f_check is not cross-platform, so instead try to use CMake variables
# run f_check (appends to TARGET files) # run f_check (appends to TARGET files)
# message(STATUS "Running f_check...") # message(STATUS "Running f_check...")
@ -30,6 +42,7 @@ else ()
#When we only build CBLAS, we set NOFORTRAN=2 #When we only build CBLAS, we set NOFORTRAN=2
set(NOFORTRAN 2) set(NOFORTRAN 2)
set(NO_FBLAS 1) set(NO_FBLAS 1)
#set(F_COMPILER GFORTRAN) # CMake handles the fortran compiler
set(BU "_") set(BU "_")
file(APPEND ${TARGET_CONF} file(APPEND ${TARGET_CONF}
"#define BUNDERSCORE _\n" "#define BUNDERSCORE _\n"

View File

@ -3,7 +3,7 @@
## Description: Ported from portion of OpenBLAS/Makefile.system ## Description: Ported from portion of OpenBLAS/Makefile.system
## Sets Fortran related variables. ## Sets Fortran related variables.
if (${Fortran_COMPILER_NAME} STREQUAL "G77") if (${CMAKE_Fortran_COMPILER} STREQUAL "G77")
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_G77") set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_G77")
set(FCOMMON_OPT "${FCOMMON_OPT} -Wall") set(FCOMMON_OPT "${FCOMMON_OPT} -Wall")
if (NOT NO_BINARY_MODE) if (NOT NO_BINARY_MODE)
@ -15,7 +15,7 @@ if (${Fortran_COMPILER_NAME} STREQUAL "G77")
endif () endif ()
endif () endif ()
if (${Fortran_COMPILER_NAME} STREQUAL "G95") if (${CMAKE_Fortran_COMPILER} STREQUAL "G95")
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_G95") set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_G95")
set(FCOMMON_OPT "${FCOMMON_OPT} -Wall") set(FCOMMON_OPT "${FCOMMON_OPT} -Wall")
if (NOT NO_BINARY_MODE) if (NOT NO_BINARY_MODE)
@ -27,7 +27,7 @@ if (${Fortran_COMPILER_NAME} STREQUAL "G95")
endif () endif ()
endif () endif ()
if (${Fortran_COMPILER_NAME} STREQUAL "GFORTRAN") if (${CMAKE_Fortran_COMPILER} STREQUAL "GFORTRAN")
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_GFORT") set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_GFORT")
set(FCOMMON_OPT "${FCOMMON_OPT} -Wall") set(FCOMMON_OPT "${FCOMMON_OPT} -Wall")
#Don't include -lgfortran, when NO_LAPACK=1 or lsbcc #Don't include -lgfortran, when NO_LAPACK=1 or lsbcc
@ -58,7 +58,7 @@ if (${Fortran_COMPILER_NAME} STREQUAL "GFORTRAN")
endif () endif ()
endif () endif ()
if (${Fortran_COMPILER_NAME} STREQUAL "INTEL") if (${CMAKE_Fortran_COMPILER} STREQUAL "INTEL")
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_INTEL") set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_INTEL")
if (INTERFACE64) if (INTERFACE64)
set(FCOMMON_OPT "${FCOMMON_OPT} -i8") set(FCOMMON_OPT "${FCOMMON_OPT} -i8")
@ -68,14 +68,14 @@ if (${Fortran_COMPILER_NAME} STREQUAL "INTEL")
endif () endif ()
endif () endif ()
if (${Fortran_COMPILER_NAME} STREQUAL "FUJITSU") if (${CMAKE_Fortran_COMPILER} STREQUAL "FUJITSU")
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_FUJITSU") set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_FUJITSU")
if (USE_OPENMP) if (USE_OPENMP)
set(FCOMMON_OPT "${FCOMMON_OPT} -openmp") set(FCOMMON_OPT "${FCOMMON_OPT} -openmp")
endif () endif ()
endif () endif ()
if (${Fortran_COMPILER_NAME} STREQUAL "IBM") if (${CMAKE_Fortran_COMPILER} STREQUAL "IBM")
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_IBM") set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_IBM")
# FCOMMON_OPT += -qarch=440 # FCOMMON_OPT += -qarch=440
if (BINARY64) if (BINARY64)
@ -91,7 +91,7 @@ if (${Fortran_COMPILER_NAME} STREQUAL "IBM")
endif () endif ()
endif () endif ()
if (${Fortran_COMPILER_NAME} STREQUAL "PGI") if (${CMAKE_Fortran_COMPILER} STREQUAL "PGI")
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_PGI") set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_PGI")
set(COMMON_PROF "${COMMON_PROF} -DPGICOMPILER") set(COMMON_PROF "${COMMON_PROF} -DPGICOMPILER")
if (BINARY64) if (BINARY64)
@ -107,7 +107,7 @@ if (${Fortran_COMPILER_NAME} STREQUAL "PGI")
endif () endif ()
endif () endif ()
if (${Fortran_COMPILER_NAME} STREQUAL "PATHSCALE") if (${CMAKE_Fortran_COMPILER} STREQUAL "PATHSCALE")
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_PATHSCALE") set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_PATHSCALE")
if (BINARY64) if (BINARY64)
if (INTERFACE64) if (INTERFACE64)
@ -134,7 +134,7 @@ if (${Fortran_COMPILER_NAME} STREQUAL "PATHSCALE")
endif () endif ()
endif () endif ()
if (${Fortran_COMPILER_NAME} STREQUAL "OPEN64") if (${CMAKE_Fortran_COMPILER} STREQUAL "OPEN64")
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_OPEN64") set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_OPEN64")
if (BINARY64) if (BINARY64)
@ -172,7 +172,7 @@ if (${Fortran_COMPILER_NAME} STREQUAL "OPEN64")
endif () endif ()
endif () endif ()
if (${Fortran_COMPILER_NAME} "SUN") if (${CMAKE_Fortran_COMPILER} STREQUAL "SUN")
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_SUN") set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_SUN")
if (${ARCH} STREQUAL "x86") if (${ARCH} STREQUAL "x86")
set(FCOMMON_OPT "${FCOMMON_OPT} -m32") set(FCOMMON_OPT "${FCOMMON_OPT} -m32")
@ -184,7 +184,7 @@ if (${Fortran_COMPILER_NAME} "SUN")
endif () endif ()
endif () endif ()
if (${Fortran_COMPILER_NAME} STREQUAL "COMPAQ") if (${CMAKE_Fortran_COMPILER} STREQUAL "COMPAQ")
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_COMPAQ") set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_COMPAQ")
if (USE_OPENMP) if (USE_OPENMP)
set(FCOMMON_OPT "${FCOMMON_OPT} -openmp") set(FCOMMON_OPT "${FCOMMON_OPT} -openmp")

View File

@ -6,19 +6,10 @@
## Next it runs f_check and appends some fortran information to the files. ## Next it runs f_check and appends some fortran information to the files.
## Finally it runs getarch and getarch_2nd for even more environment information. ## Finally it runs getarch and getarch_2nd for even more environment information.
# List of vars set by this file and included files: # CMake vars set by this file:
# OSNAME # CORE
# ARCH
# C_COMPILER
# BINARY32
# BINARY64
# CEXTRALIB
# F_COMPILER
# FC
# BU
# CORE <- REQUIRED
# LIBCORE # LIBCORE
# NUM_CORES <- REQUIRED # NUM_CORES
# HAVE_MMX # HAVE_MMX
# HAVE_SSE # HAVE_SSE
# HAVE_SSE2 # HAVE_SSE2

View File

@ -150,7 +150,7 @@ if (NEED_PIC)
set(CCOMMON_OPT "${CCOMMON_OPT} -fPIC") set(CCOMMON_OPT "${CCOMMON_OPT} -fPIC")
endif () endif ()
if (${Fortran_COMPILER_NAME} STREQUAL "SUN") if (${CMAKE_Fortran_COMPILER} STREQUAL "SUN")
set(FCOMMON_OPT "${FCOMMON_OPT} -pic") set(FCOMMON_OPT "${FCOMMON_OPT} -pic")
else () else ()
set(FCOMMON_OPT "${FCOMMON_OPT} -fPIC") set(FCOMMON_OPT "${FCOMMON_OPT} -fPIC")
@ -186,7 +186,7 @@ endif ()
if (SMP) if (SMP)
set(CCOMMON_OPT "${CCOMMON_OPT} -DSMP_SERVER") set(CCOMMON_OPT "${CCOMMON_OPT} -DSMP_SERVER")
if (${ARCH} STERQUAL "mips64") if (${ARCH} STREQUAL "mips64")
if (NOT ${CORE} STREQUAL "LOONGSON3B") if (NOT ${CORE} STREQUAL "LOONGSON3B")
set(USE_SIMPLE_THREADED_LEVEL3 1) set(USE_SIMPLE_THREADED_LEVEL3 1)
endif () endif ()
@ -299,7 +299,7 @@ if (MIXED_MEMORY_ALLOCATION)
set(CCOMMON_OPT "${CCOMMON_OPT} -DMIXED_MEMORY_ALLOCATION") set(CCOMMON_OPT "${CCOMMON_OPT} -DMIXED_MEMORY_ALLOCATION")
endif () endif ()
if (${OSNAME} STREQUAL "SunOS") if (${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
set(TAR gtar) set(TAR gtar)
set(PATCH gpatch) set(PATCH gpatch)
set(GREP ggrep) set(GREP ggrep)
@ -315,8 +315,8 @@ endif ()
set(AWK awk) set(AWK awk)
set(REVISION "-r${VERSION}") set(REVISION "-r${OpenBLAS_VERSION}")
string(REGEX MATCH "[0-9]+\\." MAJOR_VERSION "${VERSION}") set(MAJOR_VERSION ${OpenBLAS_MAJOR_VERSION})
if (DEBUG) if (DEBUG)
set(COMMON_OPT "${COMMON_OPT} -g") set(COMMON_OPT "${COMMON_OPT} -g")