Skip to content

Commit f56e4b6

Browse files
authored
Merge pull request #3633 from martin-frbg/perl_fallback
Add back original PERL-based build scripts and add option USE_PERL
2 parents c4b52ef + 5cb0d23 commit f56e4b6

File tree

9 files changed

+4880
-21
lines changed

9 files changed

+4880
-21
lines changed

CMakeLists.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ option(BUILD_RELAPACK "Build with ReLAPACK (recursive implementation of several
3434

3535
option(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+
3739
if(${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)
3941
else()
@@ -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()
402412
endif()
403413
404414
415+
405416
# Install project
406417
407418
# Install libraries

Makefile.prebuild

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ TARGET_MAKE = Makefile.conf
1515
TARGET_CONF = config.h
1616
endif
1717

18+
ifdef USE_PERL
19+
SCRIPTSUFFIX = .pl
20+
else
21+
SCRIPTSUFFIX =
22+
endif
23+
1824
# CPUIDEMU = ../../cpuid/table.o
1925

2026
ifdef 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)
5864
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)
6066
else
6167
#When we only build CBLAS, we set NOFORTRAN=2
6268
echo "NOFORTRAN=2" >> $(TARGET_MAKE)
@@ -71,8 +77,8 @@ endif
7177

7278

7379
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); \
7682
$(HOSTCC) $(HOST_CFLAGS) $(EXFLAGS) $${avx512:+-D$${avx512}} $${rv64gv:+-D$${rv64gv}} -o $(@F) getarch.c cpuid.S $(CPUIDEMU)
7783

7884
getarch_2nd : getarch_2nd.c $(TARGET_CONF) dummy

0 commit comments

Comments
 (0)