Skip to content

Commit 6aac065

Browse files
committed
Fix typos and use CMake OpenMP support.
1 parent 7c1acc0 commit 6aac065

File tree

3 files changed

+42
-53
lines changed

3 files changed

+42
-53
lines changed

CMakeLists.txt

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,12 @@
33
##
44

55
cmake_minimum_required(VERSION 2.8.5)
6-
project(OpenBLAS C)
6+
project(OpenBLAS C ASM)
77
set(OpenBLAS_MAJOR_VERSION 0)
88
set(OpenBLAS_MINOR_VERSION 3)
99
set(OpenBLAS_PATCH_VERSION 0.dev)
1010
set(OpenBLAS_VERSION "${OpenBLAS_MAJOR_VERSION}.${OpenBLAS_MINOR_VERSION}.${OpenBLAS_PATCH_VERSION}")
1111

12-
enable_language(ASM)
13-
1412
# Adhere to GNU filesystem layout conventions
1513
include(GNUInstallDirs)
1614

@@ -176,6 +174,11 @@ add_subdirectory(utest)
176174
if (USE_THREAD)
177175
# Add threading library to linker
178176
find_package(Threads)
177+
if (THREADS_HAVE_PTHREAD_ARG)
178+
set_property(TARGET ${OpenBLAS_LIBNAME} PROPERTY COMPILE_OPTIONS "-pthread")
179+
set_property(TARGET ${OpenBLAS_LIBNAME} PROPERTY INTERFACE_COMPILE_OPTIONS "-pthread")
180+
endif()
181+
message("PTHREAD: ${CMAKE_THREAD_LIBS_INIT}")
179182
target_link_libraries(${OpenBLAS_LIBNAME} ${CMAKE_THREAD_LIBS_INIT})
180183
endif()
181184

@@ -219,26 +222,28 @@ install(TARGETS ${OpenBLAS_LIBNAME}
219222
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} )
220223

221224
# Install include files
222-
set (GENCONFIG_BIN ${CMAKE_BINARY_DIR}/gen_config_h${CMAKE_EXECUTABLE_SUFFIX})
225+
set (GENCONFIG_BIN ${CMAKE_BINARY_DIR}/gen_config_h${CMAKE_EXECUTABLE_SUFFIX})
223226

224-
execute_process(COMMAND ${GENCONFIG_BIN}
225-
${CMAKE_CURRENT_SOURCE_DIR}/config.h
226-
${CMAKE_CURRENT_SOURCE_DIR}/openblas_config_template.h
227-
OUTPUT_VARIABLE OPENBLAS_CONFIG_H_CONTENTS)
227+
execute_process(COMMAND ${GENCONFIG_BIN}
228+
${CMAKE_CURRENT_SOURCE_DIR}/config.h
229+
${CMAKE_CURRENT_SOURCE_DIR}/openblas_config_template.h
230+
OUTPUT_VARIABLE OPENBLAS_CONFIG_H_CONTENTS)
228231

229-
file(WRITE ${CMAKE_BINARY_DIR}/openblas_config.tmp "${OPENBLAS_CONFIG_H_CONTENTS}")
230-
configure_file(${CMAKE_BINARY_DIR}/openblas_config.tmp ${CMAKE_BINARY_DIR}/openblas_config.h COPYONLY)
232+
file(WRITE ${CMAKE_BINARY_DIR}/openblas_config.tmp "${OPENBLAS_CONFIG_H_CONTENTS}")
233+
configure_file(${CMAKE_BINARY_DIR}/openblas_config.tmp ${CMAKE_BINARY_DIR}/openblas_config.h COPYONLY)
231234

232-
install (FILES ${CMAKE_BINARY_DIR}/openblas_config.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
235+
install (FILES ${CMAKE_BINARY_DIR}/openblas_config.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
233236

234-
message(STATUS "Generating f77blas.h in ${CMAKE_INSTALL_INCLUDEDIR}")
237+
if(NOT NOFORTRAN)
238+
message(STATUS "Generating f77blas.h in ${CMAKE_INSTALL_INCLUDEDIR}")
235239

236-
file(WRITE ${CMAKE_BINARY_DIR}/f77blas.h "")
237-
file(APPEND ${CMAKE_BINARY_DIR}/f77blas.h "#ifndef OPENBLAS_F77BLAS_H\n#define OPENBLAS_F77BLAS_H\n#include \"openblas_config.h\"\n")
238-
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/common_interface.h COMMON_INTERFACE_H_CONTENTS)
239-
file(APPEND ${CMAKE_BINARY_DIR}/f77blas.h "${COMMON_INTERFACE_H_CONTENTS}")
240-
file(APPEND ${CMAKE_BINARY_DIR}/f77blas.h "#endif")
241-
install (FILES ${CMAKE_BINARY_DIR}/f77blas.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
240+
file(WRITE ${CMAKE_BINARY_DIR}/f77blas.h "")
241+
file(APPEND ${CMAKE_BINARY_DIR}/f77blas.h "#ifndef OPENBLAS_F77BLAS_H\n#define OPENBLAS_F77BLAS_H\n#include \"openblas_config.h\"\n")
242+
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/common_interface.h COMMON_INTERFACE_H_CONTENTS)
243+
file(APPEND ${CMAKE_BINARY_DIR}/f77blas.h "${COMMON_INTERFACE_H_CONTENTS}")
244+
file(APPEND ${CMAKE_BINARY_DIR}/f77blas.h "#endif")
245+
install (FILES ${CMAKE_BINARY_DIR}/f77blas.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
246+
endif()
242247

243248
if(NOT NO_CBLAS)
244249
message (STATUS "Generating cblas.h in ${CMAKE_INSTALL_INCLUDEDIR}")

cmake/arch.cmake

Lines changed: 9 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -33,32 +33,15 @@ if (${CMAKE_C_COMPILER_ID} STREQUAL "Intel")
3333
endif ()
3434

3535
if (USE_OPENMP)
36-
37-
if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_C_COMPILER_ID} STREQUAL "LSB")
38-
set(CCOMMON_OPT "${CCOMMON_OPT} -fopenmp")
39-
endif ()
40-
41-
if (${CMAKE_C_COMPILER_ID} STREQUAL "Clang")
42-
message(WARNING "Clang doesn't support OpenMP yet.")
43-
set(CCOMMON_OPT "${CCOMMON_OPT} -fopenmp")
44-
endif ()
45-
46-
if (${CMAKE_C_COMPILER_ID} STREQUAL "Intel")
47-
set(CCOMMON_OPT "${CCOMMON_OPT} -openmp")
48-
endif ()
49-
50-
if (${CMAKE_C_COMPILER_ID} STREQUAL "PGI")
51-
set(CCOMMON_OPT "${CCOMMON_OPT} -mp")
52-
endif ()
53-
54-
if (${CMAKE_C_COMPILER_ID} STREQUAL "OPEN64")
55-
set(CCOMMON_OPT "${CCOMMON_OPT} -mp")
56-
set(CEXTRALIB "${CEXTRALIB} -lstdc++")
57-
endif ()
58-
59-
if (${CMAKE_C_COMPILER_ID} STREQUAL "PATHSCALE")
60-
set(CCOMMON_OPT "${CCOMMON_OPT} -mp")
61-
endif ()
36+
# USE_SIMPLE_THREADED_LEVEL3 = 1
37+
# NO_AFFINITY = 1
38+
find_package(OpenMP)
39+
if (OpenMP_FOUND)
40+
set(CCOMMON_OPT "${CCOMMON_OPT} ${OpenMP_C_FLAGS} -DUSE_OPENMP")
41+
set(FCOMMON_OPT "${FCOMMON_OPT} ${OpenMP_Fortran_FLAGS}")
42+
elseif (UNIX)
43+
set(USE_OPENMP 0)
44+
endif()
6245
endif ()
6346

6447

cmake/system.cmake

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ if (DEFINED BINARY AND DEFINED TARGET AND BINARY EQUAL 32)
2727
endif ()
2828

2929
if (DEFINED TARGET)
30-
message(STATUS "Targetting the ${TARGET} architecture.")
30+
message(STATUS "Targeting the ${TARGET} architecture.")
3131
set(GETARCH_FLAGS "-DFORCE_${TARGET}")
3232
endif ()
3333

@@ -92,6 +92,12 @@ elseif(NOT DEFINED USE_THREAD)
9292
set(USE_THREAD 1)
9393
endif ()
9494

95+
# TODO: Fix. Isn't working. Was never working in CMake.
96+
# Undefined reference to get_num_procs, blas_thread_shutdown, ...
97+
if (UNIX)
98+
set(USE_THREAD 0)
99+
endif()
100+
95101
if (USE_THREAD)
96102
message(STATUS "Multi-threading enabled with ${NUM_THREADS} threads.")
97103
endif ()
@@ -166,6 +172,8 @@ if (NO_AVX2)
166172
endif ()
167173

168174
if (USE_THREAD)
175+
# USE_SIMPLE_THREADED_LEVEL3 = 1
176+
# NO_AFFINITY = 1
169177
set(CCOMMON_OPT "${CCOMMON_OPT} -DSMP_SERVER")
170178

171179
if (${ARCH} STREQUAL "mips64")
@@ -174,16 +182,9 @@ if (USE_THREAD)
174182
endif ()
175183
endif ()
176184

177-
if (USE_OPENMP)
178-
# USE_SIMPLE_THREADED_LEVEL3 = 1
179-
# NO_AFFINITY = 1
180-
set(CCOMMON_OPT "${CCOMMON_OPT} -DUSE_OPENMP")
181-
endif ()
182-
183185
if (BIGNUMA)
184186
set(CCOMMON_OPT "${CCOMMON_OPT} -DBIGNUMA")
185187
endif ()
186-
187188
endif ()
188189

189190
if (NO_WARMUP)
@@ -298,7 +299,7 @@ set(LAPACK_FPFLAGS "${LAPACK_FPFLAGS} ${FPFLAGS}")
298299

299300
#Disable -fopenmp for LAPACK Fortran codes on Windows.
300301
if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
301-
set(FILTER_FLAGS "-fopenmp;-mp;-openmp;-xopenmp=parralel")
302+
set(FILTER_FLAGS "-fopenmp;-mp;-openmp;-xopenmp=parallel")
302303
foreach (FILTER_FLAG ${FILTER_FLAGS})
303304
string(REPLACE ${FILTER_FLAG} "" LAPACK_FFLAGS ${LAPACK_FFLAGS})
304305
string(REPLACE ${FILTER_FLAG} "" LAPACK_FPFLAGS ${LAPACK_FPFLAGS})

0 commit comments

Comments
 (0)