File tree Expand file tree Collapse file tree 2 files changed +22
-5
lines changed Expand file tree Collapse file tree 2 files changed +22
-5
lines changed Original file line number Diff line number Diff line change @@ -34,6 +34,8 @@ option(BUILD_RELAPACK "Build with ReLAPACK (recursive implementation of several
34
34
35
35
option (USE_LOCKING "Use locks even in single-threaded builds to make them callable from multiple threads" OFF )
36
36
37
+ option (USE_PERL "Use the older PERL scripts for build preparation instead of universal shell scripts" OFF )
38
+
37
39
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux" )
38
40
option (NO_AFFINITY "Disable support for CPU affinity masks to avoid binding processes from e.g. R or numpy/scipy to a single core" ON )
39
41
else ()
@@ -394,14 +396,23 @@ if (BUILD_SHARED_LIBS AND NOT ${SYMBOLPREFIX}${SYMBOLSUFFIX} STREQUAL "")
394
396
message (STATUS "adding suffix ${SYMBOLSUFFIX} to names of exported symbols in ${OpenBLAS_LIBNAME} " )
395
397
endif ()
396
398
399
+ if (NOT DEFINED USE_PERL )
397
400
add_custom_command (TARGET ${OpenBLAS_LIBNAME} _shared POST_BUILD
398
401
COMMAND ${PROJECT_SOURCE_DIR} /exports/gensymbol "objcopy" "${ARCH} " "${BU} " "${EXPRECISION_IN} " "${NO_CBLAS_IN} " "${NO_LAPACK_IN} " "${NO_LAPACKE_IN} " "${NEED2UNDERSCORES_IN} " "${ONLY_CBLAS_IN} " \"${SYMBOLPREFIX} \" \" ${SYMBOLSUFFIX} \" " ${BUILD_LAPACK_DEPRECATED} " > ${PROJECT_BINARY_DIR} /objcopy.def
399
402
COMMAND objcopy -v --redefine-syms ${PROJECT_BINARY_DIR} /objcopy.def ${PROJECT_BINARY_DIR} /lib/lib${OpenBLAS_LIBNAME} .so
400
403
COMMENT " renaming symbols "
401
404
)
405
+ else()
406
+ add_custom_command(TARGET ${OpenBLAS_LIBNAME} _shared POST_BUILD
407
+ COMMAND perl ${PROJECT_SOURCE_DIR} /exports/gensymbol.pl " objcopy " " ${ARCH} " " ${BU} " " ${EXPRECISION_IN} " " ${NO_CBLAS_IN} " " ${NO_LAPACK_IN} " " ${NO_LAPACKE_IN} " " ${NEED2UNDERSCORES_IN} " " ${ONLY_CBLAS_IN} " \" ${SYMBOLPREFIX} \" \" ${SYMBOLSUFFIX} \" " ${BUILD_LAPACK_DEPRECATED} " > ${PROJECT_BINARY_DIR} /objcopy.def
408
+ COMMAND objcopy -v --redefine-syms ${PROJECT_BINARY_DIR} /objcopy.def ${PROJECT_BINARY_DIR} /lib/lib${OpenBLAS_LIBNAME} .so
409
+ COMMENT " renaming symbols "
410
+ )
411
+ endif()
402
412
endif()
403
413
404
414
415
+
405
416
# Install project
406
417
407
418
# Install libraries
Original file line number Diff line number Diff line change @@ -15,6 +15,12 @@ TARGET_MAKE = Makefile.conf
15
15
TARGET_CONF = config.h
16
16
endif
17
17
18
+ ifdef USE_PERL
19
+ SCRIPTSUFFIX = .pl
20
+ else
21
+ SCRIPTSUFFIX =
22
+ endif
23
+
18
24
# CPUIDEMU = ../../cpuid/table.o
19
25
20
26
ifdef CPUIDEMU
@@ -53,10 +59,10 @@ all: getarch_2nd
53
59
./getarch_2nd 0 >> $(TARGET_MAKE)
54
60
./getarch_2nd 1 >> $(TARGET_CONF)
55
61
56
- $(TARGET_CONF): c_check f_check getarch
57
- ./c_check $(TARGET_MAKE) $(TARGET_CONF) $(CC) $(TARGET_FLAGS) $(CFLAGS)
62
+ $(TARGET_CONF): c_check$(SCRIPTSUFFIX) f_check$(SCRIPTSUFFIX) getarch
63
+ ./c_check$(SCRIPTSUFFIX) $(TARGET_MAKE) $(TARGET_CONF) $(CC) $(TARGET_FLAGS) $(CFLAGS)
58
64
ifneq ($(ONLY_CBLAS), 1)
59
- ./f_check $(TARGET_MAKE) $(TARGET_CONF) $(FC) $(TARGET_FLAGS)
65
+ ./f_check$(SCRIPTSUFFIX) $(TARGET_MAKE) $(TARGET_CONF) $(FC) $(TARGET_FLAGS)
60
66
else
61
67
#When we only build CBLAS, we set NOFORTRAN=2
62
68
echo "NOFORTRAN=2" >> $(TARGET_MAKE)
71
77
72
78
73
79
getarch : getarch.c cpuid.S dummy $(CPUIDEMU)
74
- avx512=$$(./c_check - - $(CC) $(TARGET_FLAGS) $(CFLAGS) | grep NO_AVX512); \
75
- rv64gv=$$(./c_check - - $(CC) $(TARGET_FLAGS) $(CFLAGS) | grep NO_RV64GV); \
80
+ avx512=$$(./c_check$(SCRIPTSUFFIX) - - $(CC) $(TARGET_FLAGS) $(CFLAGS) | grep NO_AVX512); \
81
+ rv64gv=$$(./c_check$(SCRIPTSUFFIX) - - $(CC) $(TARGET_FLAGS) $(CFLAGS) | grep NO_RV64GV); \
76
82
$(HOSTCC) $(HOST_CFLAGS) $(EXFLAGS) $${avx512:+-D$${avx512}} $${rv64gv:+-D$${rv64gv}} -o $(@F) getarch.c cpuid.S $(CPUIDEMU)
77
83
78
84
getarch_2nd : getarch_2nd.c $(TARGET_CONF) dummy
You can’t perform that action at this time.
0 commit comments