Skip to content

Commit 7cead56

Browse files
authored
Merge pull request #2753 from martin-frbg/issue2751
Add SYMBOLPREFIX and/or SYMBOLSUFFIX to cblas prototypes
2 parents dfe5d09 + 6794ac3 commit 7cead56

File tree

3 files changed

+31
-5
lines changed

3 files changed

+31
-5
lines changed

CMakeLists.txt

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ if (BUILD_SHARED_LIBS AND BUILD_RELAPACK)
249249
endif()
250250
endif()
251251

252-
if (BUILD_SHARED_LIBS AND NOT ${SYMBOLPREFIX}${SYMBOLSUFIX} STREQUAL "")
252+
if (BUILD_SHARED_LIBS AND NOT ${SYMBOLPREFIX}${SYMBOLSUFFIX} STREQUAL "")
253253
if (NOT DEFINED ARCH)
254254
set(ARCH_IN "x86_64")
255255
else()
@@ -358,10 +358,21 @@ endif()
358358

359359
if(NOT NO_CBLAS)
360360
message (STATUS "Generating cblas.h in ${CMAKE_INSTALL_INCLUDEDIR}")
361-
362361
set(CBLAS_H ${CMAKE_BINARY_DIR}/generated/cblas.h)
363362
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/cblas.h CBLAS_H_CONTENTS)
364363
string(REPLACE "common" "openblas_config" CBLAS_H_CONTENTS_NEW "${CBLAS_H_CONTENTS}")
364+
if (NOT ${SYMBOLPREFIX} STREQUAL "")
365+
string(REPLACE " cblas" " ${SYMBOLPREFIX}cblas" CBLAS_H_CONTENTS "${CBLAS_H_CONTENTS_NEW}")
366+
string(REPLACE " openblas" " ${SYMBOLPREFIX}openblas" CBLAS_H_CONTENTS_NEW "${CBLAS_H_CONTENTS}")
367+
string (REPLACE " ${SYMBOLPREFIX}openblas_complex" " openblas_complex" CBLAS_H_CONTENTS "${CBLAS_H_CONTENTS_NEW}")
368+
string(REPLACE " goto" " ${SYMBOLPREFIX}goto" CBLAS_H_CONTENTS_NEW "${CBLAS_H_CONTENTS}")
369+
endif()
370+
if (NOT ${SYMBOLSUFFIX} STREQUAL "")
371+
string(REGEX REPLACE "(cblas[^ (]*)" "\\1${SYMBOLSUFFIX}" CBLAS_H_CONTENTS "${CBLAS_H_CONTENTS_NEW}")
372+
string(REGEX REPLACE "(openblas[^ (]*)" "\\1${SYMBOLSUFFIX}" CBLAS_H_CONTENTS_NEW "${CBLAS_H_CONTENTS}")
373+
string(REGEX REPLACE "(openblas_complex[^ ]*)${SYMBOLSUFFIX}" "\\1" CBLAS_H_CONTENTS "${CBLAS_H_CONTENTS_NEW}")
374+
string(REGEX REPLACE "(goto[^ (]*)" "\\1${SYMBOLSUFFIX}" CBLAS_H_CONTENTS_NEW "${CBLAS_H_CONTENTS}")
375+
endif()
365376
file(WRITE ${CBLAS_H} "${CBLAS_H_CONTENTS_NEW}")
366377
install (FILES ${CBLAS_H} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
367378
endif()

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -365,11 +365,12 @@ clean ::
365365
@$(MAKE) -C kernel clean
366366
#endif
367367
@$(MAKE) -C reference clean
368-
@rm -f *.$(LIBSUFFIX) *.so *~ *.exe getarch getarch_2nd *.dll *.lib *.$(SUFFIX) *.dwf $(LIBPREFIX).$(LIBSUFFIX) $(LIBPREFIX)_p.$(LIBSUFFIX) $(LIBPREFIX).so.$(MAJOR_VERSION) *.lnk myconfig.h
368+
@rm -f *.$(LIBSUFFIX) *.so *~ *.exe getarch getarch_2nd *.dll *.lib *.$(SUFFIX) *.dwf $(LIBPREFIX).$(LIBSUFFIX) $(LIBPREFIX)_p.$(LIBSUFFIX) $(LIBPREFIX).so.$(MAJOR_VERSION) *.lnk myconfig.h *.so.renamed *.a.renamed *.so.0
369369
ifeq ($(OSNAME), Darwin)
370370
@rm -rf getarch.dSYM getarch_2nd.dSYM
371371
endif
372372
@rm -f Makefile.conf config.h Makefile_kernel.conf config_kernel.h st* *.dylib
373+
@rm -f cblas.tmp cblas.tmp2
373374
@touch $(NETLIB_LAPACK_DIR)/make.inc
374375
@$(MAKE) -C $(NETLIB_LAPACK_DIR) clean
375376
@rm -f $(NETLIB_LAPACK_DIR)/make.inc $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_mangling.h

Makefile.install

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,22 @@ install : lib.grd
4545

4646
ifndef NO_CBLAS
4747
@echo Generating cblas.h in $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
48-
@sed 's/common/openblas_config/g' cblas.h > "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/cblas.h"
48+
@cp cblas.h cblas.tmp
49+
ifdef SYMBOLPREFIX
50+
@sed 's/cblas[^( ]*/$(SYMBOLPREFIX)&/g' cblas.tmp > cblas.tmp2
51+
@sed 's/openblas[^( ]*/$(SYMBOLPREFIX)&/g' cblas.tmp2 > cblas.tmp
52+
#change back any openblas_complex_float and double that got hit
53+
@sed 's/$(SYMBOLPREFIX)openblas_complex_/openblas_complex_/g' cblas.tmp > cblas.tmp2
54+
@sed 's/goto[^( ]*/$(SYMBOLPREFIX)&/g' cblas.tmp2 > cblas.tmp
55+
endif
56+
ifdef SYMBOLSUFFIX
57+
@sed 's/cblas[^( ]*/&$(SYMBOLSUFFIX)/g' cblas.tmp > cblas.tmp2
58+
@sed 's/openblas[^( ]*/&$(SYMBOLSUFFIX)/g' cblas.tmp2 > cblas.tmp
59+
#change back any openblas_complex_float and double that got hit
60+
@sed 's/\(openblas_complex_\)\([^ ]*\)$(SYMBOLSUFFIX)/\1\2 /g' cblas.tmp > cblas.tmp2
61+
@sed 's/goto[^( ]*/&$(SYMBOLSUFFIX)/g' cblas.tmp2 > cblas.tmp
62+
endif
63+
@sed 's/common/openblas_config/g' cblas.tmp > "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/cblas.h"
4964
endif
5065

5166
ifneq ($(OSNAME), AIX)
@@ -168,4 +183,3 @@ endif
168183
@echo " endif ()" >> "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG_VERSION)"
169184
@echo "endif ()" >> "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG_VERSION)"
170185
@echo Install OK!
171-

0 commit comments

Comments
 (0)