2 ## Author: Hank Anderson <hank@statease.com>
3 ## Description: Ported from portion of OpenBLAS/Makefile.system
4 ## Detects the OS and sets appropriate variables.
6 if (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
7 set(ENV{MACOSX_DEPLOYMENT_TARGET} "10.2") # TODO: should be exported as an env var
11 if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
15 if (${CMAKE_SYSTEM_NAME} STREQUAL "NetBSD")
19 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
20 set(EXTRALIB "${EXTRALIB} -lm")
24 if (${CMAKE_SYSTEM_NAME} STREQUAL "AIX")
25 set(EXTRALIB "${EXTRALIB} -lm")
28 # TODO: this is probably meant for mingw, not other windows compilers
29 if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
34 set(EXTRALIB "${EXTRALIB} -defaultlib:advapi32")
36 # probably not going to use these
41 if (${CMAKE_C_COMPILER_ID} STREQUAL "Clang")
42 set(CCOMMON_OPT "${CCOMMON_OPT} -DMS_ABI")
45 if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
47 # Test for supporting MS_ABI
48 # removed string parsing in favor of CMake's version comparison -hpa
49 execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
50 if (${GCC_VERSION} VERSION_GREATER 4.7 OR ${GCC_VERSION} VERSION_EQUAL 4.7)
52 # It is compatible with MSVC ABI.
53 set(CCOMMON_OPT "${CCOMMON_OPT} -DMS_ABI")
57 # Ensure the correct stack alignment on Win32
58 # http://permalink.gmane.org/gmane.comp.lib.openblas.general/97
59 if (${ARCH} STREQUAL "x86")
60 if (NOT MSVC AND NOT ${CMAKE_C_COMPILER_ID} STREQUAL "Clang")
61 set(CCOMMON_OPT "${CCOMMON_OPT} -mincoming-stack-boundary=2")
63 set(FCOMMON_OPT "${FCOMMON_OPT} -mincoming-stack-boundary=2")
68 if (${CMAKE_SYSTEM_NAME} STREQUAL "Interix")
72 set(INTERIX_TOOL_DIR STREQUAL "/opt/gcc.3.3/i586-pc-interix3/bin")
80 if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows" AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Interix")
82 set(EXTRALIB "${EXTRALIB} -lpthread")
87 set(CCOMMON_OPT "${CCOMMON_OPT} -DQUAD_PRECISION")
91 if (${ARCH} STREQUAL "x86")
96 set(CCOMMON_OPT "${CCOMMON_OPT} -DUTEST_CHECK")
101 # TODO: need some way to get $(*F) (target filename)
102 set(CCOMMON_OPT "${CCOMMON_OPT} -DSANITY_CHECK -DREFNAME=$(*F)f${BU}")