1IF(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le")
2MESSAGE(STATUS "Power8+ system using xlC/xlc/xlf")
3
4ADD_DEFINITIONS( -Drestrict=__restrict__ )
5
6# Clean up flags
7
8IF(CMAKE_C_FLAGS MATCHES "-qhalt=e")
9  SET(CMAKE_C_FLAGS "")
10ENDIF()
11IF(CMAKE_CXX_FLAGS MATCHES "-qhalt=e")
12  SET(CMAKE_CXX_FLAGS "")
13ENDIF()
14
15SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__forceinline=inline")
16
17# Suppress compile warnings
18SET(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS} -Wno-deprecated -Wno-unused-value")
19SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated -Wno-unused-value")
20
21# Set extra optimization specific flags
22SET( CMAKE_C_FLAGS_RELEASE   "-O3 -DNDEBUG" )
23SET( CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" )
24SET( CMAKE_C_FLAGS_RELWITHDEBINFO   "-g -O3" )
25SET( CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g -O3" )
26
27IF(QMC_OMP)
28  SET(ENABLE_OPENMP 1)
29  SET(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS} -qsmp=omp")
30  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -qsmp=omp")
31  IF(ENABLE_OFFLOAD)
32    set(OPENMP_OFFLOAD_COMPILE_OPTIONS "-qoffload")
33  ENDIF(ENABLE_OFFLOAD)
34ELSE(QMC_OMP)
35  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -qnothreaded")
36ENDIF(QMC_OMP)
37
38# Add static flags if necessary
39IF(QMC_BUILD_STATIC)
40    SET(CMAKE_CXX_LINK_FLAGS " -static")
41ENDIF(QMC_BUILD_STATIC)
42
43ENDIF(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le")
44