File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -34,6 +34,8 @@ option(BUILD_RELAPACK "Build with ReLAPACK (recursive implementation of several
3434
3535option (USE_LOCKING "Use locks even in single-threaded builds to make them callable from multiple threads" OFF )
3636
37+ option (USE_PERL "Use the older PERL scripts for build preparation instead of universal shell scripts" OFF )
38+
3739if (${CMAKE_SYSTEM_NAME} MATCHES "Linux" )
3840 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 )
3941else ()
@@ -394,14 +396,23 @@ if (BUILD_SHARED_LIBS AND NOT ${SYMBOLPREFIX}${SYMBOLSUFFIX} STREQUAL "")
394396 message (STATUS "adding suffix ${SYMBOLSUFFIX} to names of exported symbols in ${OpenBLAS_LIBNAME} " )
395397 endif ()
396398
399+ if (NOT DEFINED USE_PERL)
397400 add_custom_command (TARGET ${OpenBLAS_LIBNAME} _shared POST_BUILD
398401 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
399402 COMMAND objcopy -v --redefine-syms ${PROJECT_BINARY_DIR} /objcopy.def ${PROJECT_BINARY_DIR} /lib/lib${OpenBLAS_LIBNAME} .so
400403 COMMENT " renaming symbols "
401404 )
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()
402412endif()
403413
404414
415+
405416# Install project
406417
407418# Install libraries
Original file line number Diff line number Diff line change @@ -15,6 +15,12 @@ TARGET_MAKE = Makefile.conf
1515TARGET_CONF = config.h
1616endif
1717
18+ ifdef USE_PERL
19+ SCRIPTSUFFIX = .pl
20+ else
21+ SCRIPTSUFFIX =
22+ endif
23+
1824# CPUIDEMU = ../../cpuid/table.o
1925
2026ifdef CPUIDEMU
@@ -53,10 +59,10 @@ all: getarch_2nd
5359 ./getarch_2nd 0 >> $(TARGET_MAKE)
5460 ./getarch_2nd 1 >> $(TARGET_CONF)
5561
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)
5864ifneq ($(ONLY_CBLAS), 1)
59- ./f_check $(TARGET_MAKE) $(TARGET_CONF) $(FC) $(TARGET_FLAGS)
65+ ./f_check$(SCRIPTSUFFIX) $(TARGET_MAKE) $(TARGET_CONF) $(FC) $(TARGET_FLAGS)
6066else
6167#When we only build CBLAS, we set NOFORTRAN=2
6268 echo "NOFORTRAN=2" >> $(TARGET_MAKE)
7177
7278
7379getarch : 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); \
7682 $(HOSTCC) $(HOST_CFLAGS) $(EXFLAGS) $${avx512:+-D$${avx512}} $${rv64gv:+-D$${rv64gv}} -o $(@F) getarch.c cpuid.S $(CPUIDEMU)
7783
7884getarch_2nd : getarch_2nd.c $(TARGET_CONF) dummy
You can’t perform that action at this time.
0 commit comments