diff --git a/CMakeLists.txt b/CMakeLists.txt index 96c2a43642..25928f1218 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -708,6 +708,39 @@ if(NOT NO_LAPACKE) COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/lapack-netlib/LAPACKE/include/lapacke_mangling_with_flags.h.in "${CMAKE_BINARY_DIR}/lapacke_mangling.h" ) install (FILES ${CMAKE_BINARY_DIR}/lapacke_mangling.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + if (NOT (x${SYMBOLPREFIX}${SYMBOLSUFFIX} STREQUAL "x")) + message (STATUS "Generating lapacke.h in ${CMAKE_INSTALL_INCLUDEDIR}") + set(LAPACKE_H ${CMAKE_BINARY_DIR}/generated/lapacke.h) + file(READ ${CMAKE_CURRENT_SOURCE_DIR}/lapack-netlib/LAPACKE/include/lapacke.h LAPACKE_H_CONTENTS) + if (NOT ${SYMBOLPREFIX} STREQUAL "") + string(REGEX REPLACE "(LAPACKE_*)" " ${SYMBOLPREFIX}\\1" LAPACKE_H_CONTENTS_NEW "${LAPACKE_H_CONTENTS}") + string(REPLACE "_ ${SYMBOLPREFIX}LAPACKE_H_" "_LAPACKE_H_" LAPACKE_H_CONTENTS ${LAPACKE_H_CONTENTS_NEW}) + string(REPLACE "${SYMBOLPREFIX}LAPACKE_malloc" "LAPACKE_malloc" LAPACKE_H_CONTENTS_NEW ${LAPACKE_H_CONTENTS}) + string(REPLACE "${SYMBOLPREFIX}LAPACKE_free" "LAPACKE_free" LAPACKE_H_CONTENTS ${LAPACKE_H_CONTENTS_NEW}) + set(LAPACKE_H_CONTENTS_NEW ${LAPACKE_H_CONTENTS}) + endif() + if (NOT ${SYMBOLSUFFIX} STREQUAL "") + string(REGEX REPLACE "(${SYMBOLPREFIX}LAPACKE_[a-z1-9]*[^ (]*)" "\\1${SYMBOLSUFFIX}" LAPACKE_H_CONTENTS_NEW "${LAPACKE_H_CONTENTS}") + string(REPLACE "#define${SYMBOLSUFFIX}" "#define" LAPACKE_H_CONTENTS ${LAPACKE_H_CONTENTS_NEW}) + string(REPLACE "LAPACKE_malloc${SYMBOLSUFFIX}" "LAPACKE_malloc" LAPACKE_H_CONTENTS_NEW ${LAPACKE_H_CONTENTS}) + string(REPLACE "LAPACKE_free${SYMBOLSUFFIX}" "LAPACKE_free" LAPACKE_H_CONTENTS ${LAPACKE_H_CONTENTS_NEW}) + set(LAPACKE_H_CONTENTS_NEW ${LAPACKE_H_CONTENTS}) + endif() + file(WRITE ${LAPACKE_H} "${LAPACKE_H_CONTENTS_NEW}") + install (FILES ${LAPACKE_H} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + message (STATUS "Generating lapack.h in ${CMAKE_INSTALL_INCLUDEDIR}") + set(LAPACK_H ${CMAKE_BINARY_DIR}/generated/lapack.h) + file(READ ${CMAKE_CURRENT_SOURCE_DIR}/lapack-netlib/LAPACKE/include/lapack.h LAPACK_H_CONTENTS) + if (NOT ${SYMBOLPREFIX} STREQUAL "") + string(REGEX REPLACE "(LAPACK_[a-z1-9]*[ \(][.\)]*)" "${SYMBOLPREFIX}\\1" LAPACK_H_CONTENTS_NEW "${LAPACK_H_CONTENTS}") + set(LAPACK_H_CONTENTS ${LAPACK_H_CONTENTS_NEW}) + endif() + if (NOT ${SYMBOLSUFFIX} STREQUAL "") + string(REGEX REPLACE "(${SYMBOLPREFIX}LAPACK_[a-z1-9]*)([ \(].\)" "\\1${SYMBOLSUFFIX}\\2" LAPACK_H_CONTENTS_NEW "${LAPACK_H_CONTENTS}") + endif() + file(WRITE ${LAPACK_H} "${LAPACK_H_CONTENTS_NEW}") + install (FILES ${LAPACK_H} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +endif() endif() # Install pkg-config files diff --git a/Makefile.install b/Makefile.install index 3c8d47642b..5fc6b9560c 100644 --- a/Makefile.install +++ b/Makefile.install @@ -93,9 +93,27 @@ endif ifneq ($(OSNAME), AIX) ifneq ($(NO_LAPACKE), 1) + @cp $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke.h lapacke_h.tmp +ifdef SYMBOLPREFIX + @sed 's/LAPACKE_[a-z1-9].[^() ]*/$(SYMBOLPREFIX)&/g' lapacke_h.tmp > lapacke.tmp2 + @mv lapacke.tmp2 lapacke_h.tmp +endif +ifdef SYMBOLSUFFIX + @sed 's/LAPACKE_[a-z1-9].[^() ]*/&$(SYMBOLSUFFIX)/g' lapacke_h.tmp > lapacke.tmp2 + @mv lapacke.tmp2 lapacke_h.tmp +endif + @-install -m644 lapacke_h.tmp "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke.h" @echo Copying LAPACKE header files to $(DESTDIR)$(OPENBLAS_INCLUDE_DIR) - @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapack.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapack.h" - @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke.h" + @cp $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapack.h lapack_h.tmp +ifdef SYMBOLPREFIX + @sed 's/LAPACK_[a-z1-9]*(\.\.\.)/$(SYMBOLPREFIX)&/g' lapack_h.tmp > lapack.tmp2 + @mv lapack.tmp2 lapack_h.tmp +endif +ifdef SYMBOLSUFFIX + @sed 's/\(#define $(SYMBOLPREFIX)LAPACK_[a-z1-9].*\)\((...)\)/\1$(SYMBOLSUFFIX)\2/g' lapack_h.tmp > lapack.tmp2 + @mv lapack.tmp2 lapack_h.tmp +endif + @-install -m644 lapack_h.tmp "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapack.h" @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_config.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_config.h" @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_mangling_with_flags.h.in "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_mangling.h" @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_utils.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_utils.h"