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") | |||