Fixed some typos. Updated c_check to set ARCH and BINARY64/32. Added version variables.tags/v0.2.15^2
@@ -4,6 +4,10 @@ | |||
cmake_minimum_required(VERSION 2.8.4) | |||
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 | |||
#enable_language(Fortran) | |||
@@ -12,7 +12,7 @@ if (${ARCH} STREQUAL "x86" OR ${ARCH} STREQUAL "x86_64") | |||
endif () | |||
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 | |||
if (${CMAKE_C_COMPILER} STREQUAL "GNU" OR ${CMAKE_C_COMPILER} STREQUAL "LSB") | |||
set(EXPRECISION 1) | |||
@@ -86,7 +86,7 @@ if (${ARCH} STREQUAL "ia64") | |||
set(NO_BINARY_MODE 1) | |||
set(BINARY_DEFINED 1) | |||
if (${Fortran_COMPILER_NAME} MATCHES "gfortran.*") | |||
if (${CMAKE_Fortran_COMPILER} MATCHES "gfortran.*") | |||
if (${CMAKE_C_COMPILER} STREQUAL "GNU") | |||
# EXPRECISION = 1 | |||
# CCOMMON_OPT += -DEXPRECISION | |||
@@ -4,6 +4,26 @@ | |||
## This is triggered by prebuild.cmake and runs before any of the code is built. | |||
## 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. | |||
# TODO: detect NEED_FU | |||
@@ -23,17 +43,25 @@ if (NOT DEFINED BINARY) | |||
endif () | |||
endif () | |||
if (BINARY EQUAL 64) | |||
set(BINARY64 1) | |||
else () | |||
set(BINARY32 1) | |||
endif () | |||
# CMake docs define these: | |||
# 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. | |||
set(HOST_ARCH ${CMAKE_SYSTEM_PROCESSOR}) | |||
if (${HOST_ARCH} STREQUAL "AMD64") | |||
set(HOST_ARCH "X86_64") | |||
# | |||
# TODO: CMAKE_SYSTEM_PROCESSOR doesn't seem to be correct - instead get it from the compiler a la c_check | |||
set(ARCH ${CMAKE_SYSTEM_PROCESSOR}) | |||
if (${ARCH} STREQUAL "AMD64") | |||
set(ARCH "X86_64") | |||
endif () | |||
# 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) | |||
set(HOST_ARCH X86) | |||
if (${ARCH} STREQUAL "X86_64" AND BINARY EQUAL 32) | |||
set(ARCH X86) | |||
endif () | |||
set(COMPILER_ID ${CMAKE_CXX_COMPILER_ID}) | |||
@@ -43,7 +71,7 @@ endif () | |||
file(WRITE ${TARGET_CONF} | |||
"#define OS_${HOST_OS}\t1\n" | |||
"#define ARCH_${HOST_ARCH}\t1\n" | |||
"#define ARCH_${ARCH}\t1\n" | |||
"#define C_${COMPILER_ID}\t1\n" | |||
"#define __${BINARY}BIT__\t1\n" | |||
"#define FUNDERSCORE\t${NEED_FU}\n") | |||
@@ -6,8 +6,8 @@ | |||
if (${CMAKE_C_COMPILER} STREQUAL "GNU" OR ${CMAKE_C_COMPILER} STREQUAL "LSB" OR ${CMAKE_C_COMPILER} STREQUAL "Clang") | |||
set(CCOMMON_OPT "${CCOMMON_OPT} -Wall") | |||
COMMON_PROF += -fno-inline | |||
NO_UNINITIALIZED_WARN = -Wno-uninitialized | |||
set(COMMON_PROF "${COMMON_PROF} -fno-inline") | |||
set(NO_UNINITIALIZED_WARN "-Wno-uninitialized") | |||
if (QUIET_MAKE) | |||
set(CCOMMON_OPT "${CCOMMON_OPT} ${NO_UNINITIALIZED_WARN} -Wno-unused") | |||
@@ -89,8 +89,8 @@ if (${CMAKE_C_COMPILER} STREQUAL "OPEN64") | |||
else () | |||
set(CCOMMON_OPT "${CCOMMON_OPT} -m64") | |||
endif () | |||
endif | |||
endif | |||
endif () | |||
endif () | |||
if (${CMAKE_C_COMPILER} STREQUAL "SUN") | |||
set(CCOMMON_OPT "${CCOMMON_OPT} -w") | |||
@@ -7,8 +7,20 @@ | |||
## 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 | |||
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 | |||
# run f_check (appends to TARGET files) | |||
# message(STATUS "Running f_check...") | |||
@@ -30,6 +42,7 @@ 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} | |||
"#define BUNDERSCORE _\n" | |||
@@ -3,7 +3,7 @@ | |||
## Description: Ported from portion of OpenBLAS/Makefile.system | |||
## 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(FCOMMON_OPT "${FCOMMON_OPT} -Wall") | |||
if (NOT NO_BINARY_MODE) | |||
@@ -15,7 +15,7 @@ if (${Fortran_COMPILER_NAME} STREQUAL "G77") | |||
endif () | |||
endif () | |||
if (${Fortran_COMPILER_NAME} STREQUAL "G95") | |||
if (${CMAKE_Fortran_COMPILER} STREQUAL "G95") | |||
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_G95") | |||
set(FCOMMON_OPT "${FCOMMON_OPT} -Wall") | |||
if (NOT NO_BINARY_MODE) | |||
@@ -27,7 +27,7 @@ if (${Fortran_COMPILER_NAME} STREQUAL "G95") | |||
endif () | |||
endif () | |||
if (${Fortran_COMPILER_NAME} STREQUAL "GFORTRAN") | |||
if (${CMAKE_Fortran_COMPILER} STREQUAL "GFORTRAN") | |||
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_GFORT") | |||
set(FCOMMON_OPT "${FCOMMON_OPT} -Wall") | |||
#Don't include -lgfortran, when NO_LAPACK=1 or lsbcc | |||
@@ -58,7 +58,7 @@ if (${Fortran_COMPILER_NAME} STREQUAL "GFORTRAN") | |||
endif () | |||
endif () | |||
if (${Fortran_COMPILER_NAME} STREQUAL "INTEL") | |||
if (${CMAKE_Fortran_COMPILER} STREQUAL "INTEL") | |||
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_INTEL") | |||
if (INTERFACE64) | |||
set(FCOMMON_OPT "${FCOMMON_OPT} -i8") | |||
@@ -68,14 +68,14 @@ if (${Fortran_COMPILER_NAME} STREQUAL "INTEL") | |||
endif () | |||
endif () | |||
if (${Fortran_COMPILER_NAME} STREQUAL "FUJITSU") | |||
if (${CMAKE_Fortran_COMPILER} STREQUAL "FUJITSU") | |||
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_FUJITSU") | |||
if (USE_OPENMP) | |||
set(FCOMMON_OPT "${FCOMMON_OPT} -openmp") | |||
endif () | |||
endif () | |||
if (${Fortran_COMPILER_NAME} STREQUAL "IBM") | |||
if (${CMAKE_Fortran_COMPILER} STREQUAL "IBM") | |||
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_IBM") | |||
# FCOMMON_OPT += -qarch=440 | |||
if (BINARY64) | |||
@@ -91,7 +91,7 @@ if (${Fortran_COMPILER_NAME} STREQUAL "IBM") | |||
endif () | |||
endif () | |||
if (${Fortran_COMPILER_NAME} STREQUAL "PGI") | |||
if (${CMAKE_Fortran_COMPILER} STREQUAL "PGI") | |||
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_PGI") | |||
set(COMMON_PROF "${COMMON_PROF} -DPGICOMPILER") | |||
if (BINARY64) | |||
@@ -107,7 +107,7 @@ if (${Fortran_COMPILER_NAME} STREQUAL "PGI") | |||
endif () | |||
endif () | |||
if (${Fortran_COMPILER_NAME} STREQUAL "PATHSCALE") | |||
if (${CMAKE_Fortran_COMPILER} STREQUAL "PATHSCALE") | |||
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_PATHSCALE") | |||
if (BINARY64) | |||
if (INTERFACE64) | |||
@@ -134,7 +134,7 @@ if (${Fortran_COMPILER_NAME} STREQUAL "PATHSCALE") | |||
endif () | |||
endif () | |||
if (${Fortran_COMPILER_NAME} STREQUAL "OPEN64") | |||
if (${CMAKE_Fortran_COMPILER} STREQUAL "OPEN64") | |||
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_OPEN64") | |||
if (BINARY64) | |||
@@ -172,7 +172,7 @@ if (${Fortran_COMPILER_NAME} STREQUAL "OPEN64") | |||
endif () | |||
endif () | |||
if (${Fortran_COMPILER_NAME} "SUN") | |||
if (${CMAKE_Fortran_COMPILER} STREQUAL "SUN") | |||
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_SUN") | |||
if (${ARCH} STREQUAL "x86") | |||
set(FCOMMON_OPT "${FCOMMON_OPT} -m32") | |||
@@ -184,7 +184,7 @@ if (${Fortran_COMPILER_NAME} "SUN") | |||
endif () | |||
endif () | |||
if (${Fortran_COMPILER_NAME} STREQUAL "COMPAQ") | |||
if (${CMAKE_Fortran_COMPILER} STREQUAL "COMPAQ") | |||
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_COMPAQ") | |||
if (USE_OPENMP) | |||
set(FCOMMON_OPT "${FCOMMON_OPT} -openmp") | |||
@@ -6,19 +6,10 @@ | |||
## 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. | |||
# List of vars set by this file and included files: | |||
# OSNAME | |||
# ARCH | |||
# C_COMPILER | |||
# BINARY32 | |||
# BINARY64 | |||
# CEXTRALIB | |||
# F_COMPILER | |||
# FC | |||
# BU | |||
# CORE <- REQUIRED | |||
# CMake vars set by this file: | |||
# CORE | |||
# LIBCORE | |||
# NUM_CORES <- REQUIRED | |||
# NUM_CORES | |||
# HAVE_MMX | |||
# HAVE_SSE | |||
# HAVE_SSE2 | |||
@@ -150,7 +150,7 @@ if (NEED_PIC) | |||
set(CCOMMON_OPT "${CCOMMON_OPT} -fPIC") | |||
endif () | |||
if (${Fortran_COMPILER_NAME} STREQUAL "SUN") | |||
if (${CMAKE_Fortran_COMPILER} STREQUAL "SUN") | |||
set(FCOMMON_OPT "${FCOMMON_OPT} -pic") | |||
else () | |||
set(FCOMMON_OPT "${FCOMMON_OPT} -fPIC") | |||
@@ -186,7 +186,7 @@ endif () | |||
if (SMP) | |||
set(CCOMMON_OPT "${CCOMMON_OPT} -DSMP_SERVER") | |||
if (${ARCH} STERQUAL "mips64") | |||
if (${ARCH} STREQUAL "mips64") | |||
if (NOT ${CORE} STREQUAL "LOONGSON3B") | |||
set(USE_SIMPLE_THREADED_LEVEL3 1) | |||
endif () | |||
@@ -299,7 +299,7 @@ if (MIXED_MEMORY_ALLOCATION) | |||
set(CCOMMON_OPT "${CCOMMON_OPT} -DMIXED_MEMORY_ALLOCATION") | |||
endif () | |||
if (${OSNAME} STREQUAL "SunOS") | |||
if (${CMAKE_SYSTEM_NAME} STREQUAL "SunOS") | |||
set(TAR gtar) | |||
set(PATCH gpatch) | |||
set(GREP ggrep) | |||
@@ -315,8 +315,8 @@ endif () | |||
set(AWK awk) | |||
set(REVISION "-r${VERSION}") | |||
string(REGEX MATCH "[0-9]+\\." MAJOR_VERSION "${VERSION}") | |||
set(REVISION "-r${OpenBLAS_VERSION}") | |||
set(MAJOR_VERSION ${OpenBLAS_MAJOR_VERSION}) | |||
if (DEBUG) | |||
set(COMMON_OPT "${COMMON_OPT} -g") | |||