You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

Makefile.install 11 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. TOPDIR = .
  2. export GOTOBLAS_MAKEFILE = 1
  3. -include $(TOPDIR)/Makefile.conf_last
  4. include ./Makefile.system
  5. LNCMD = ln -fs
  6. ifdef THELIBNAME
  7. LIBNAME=$(THELIBNAME)
  8. LIBSONAME=$(THELIBSONAME)
  9. endif
  10. ifeq ($(FIXED_LIBNAME), 1)
  11. LNCMD = true
  12. endif
  13. ifeq ($(INTERFACE64),1)
  14. USE_64BITINT=1
  15. endif
  16. ifeq ($(USE_OPENMP),1)
  17. FOMP_OPT:= -fopenmp
  18. endif
  19. PREFIX ?= /opt/OpenBLAS
  20. OPENBLAS_INCLUDE_DIR := $(PREFIX)/include
  21. OPENBLAS_LIBRARY_DIR := $(PREFIX)/lib
  22. OPENBLAS_BINARY_DIR := $(PREFIX)/bin
  23. OPENBLAS_BUILD_DIR := $(CURDIR)
  24. OPENBLAS_CMAKE_DIR := $(OPENBLAS_LIBRARY_DIR)/cmake/$(LIBSONAMEBASE)
  25. OPENBLAS_CMAKE_CONFIG := OpenBLASConfig.cmake
  26. OPENBLAS_CMAKE_CONFIG_VERSION := OpenBLASConfigVersion.cmake
  27. OPENBLAS_PKGCONFIG_DIR := $(OPENBLAS_LIBRARY_DIR)/pkgconfig
  28. PKG_EXTRALIB := $(EXTRALIB)
  29. ifeq ($(INTERFACE64),1)
  30. SUFFIX64=64
  31. endif
  32. PKGFILE="$(DESTDIR)$(OPENBLAS_PKGCONFIG_DIR)/$(LIBSONAMEBASE)$(SUFFIX64).pc"
  33. ifeq ($(USE_OPENMP), 1)
  34. ifeq ($(C_COMPILER), PGI)
  35. PKG_EXTRALIB += -lomp
  36. else
  37. PKG_EXTRALIB += -lgomp
  38. endif
  39. endif
  40. .PHONY : install
  41. .NOTPARALLEL : install
  42. lib.grd :
  43. $(error OpenBLAS: Please run "make" firstly)
  44. install : lib.grd
  45. @-mkdir -p "$(DESTDIR)$(PREFIX)"
  46. @-mkdir -p "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)"
  47. @-mkdir -p "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)"
  48. @-mkdir -p "$(DESTDIR)$(OPENBLAS_BINARY_DIR)"
  49. @-mkdir -p "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)"
  50. @-mkdir -p "$(DESTDIR)$(OPENBLAS_PKGCONFIG_DIR)"
  51. @echo Generating openblas_config.h in $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
  52. #for inc
  53. @echo \#ifndef OPENBLAS_CONFIG_H > "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h"
  54. @echo \#define OPENBLAS_CONFIG_H >> "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h"
  55. @$(AWK) 'NF {print $$1, "OPENBLAS_"$$2, $$3}' config_last.h >> "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h"
  56. @echo \#define OPENBLAS_VERSION \" OpenBLAS $(VERSION) \" >> "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h"
  57. @cat openblas_config_template.h >> "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h"
  58. @echo \#endif \/\* OPENBLAS_CONFIG_H \*\/ >> "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h"
  59. @echo Generating f77blas.h in $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
  60. @echo \#ifndef OPENBLAS_F77BLAS_H > "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h"
  61. @echo \#define OPENBLAS_F77BLAS_H >> "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h"
  62. @echo \#include \"openblas_config.h\" >> "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h"
  63. @cat common_interface.h >> "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h"
  64. @echo \#endif >> "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h"
  65. ifndef NO_CBLAS
  66. @echo Generating cblas.h in $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
  67. @cp cblas.h cblas.tmp
  68. ifdef SYMBOLPREFIX
  69. @sed 's/cblas[^() ]*/$(SYMBOLPREFIX)&/g' cblas.tmp > cblas.tmp2
  70. @sed 's/openblas[^() ]*/$(SYMBOLPREFIX)&/g' cblas.tmp2 > cblas.tmp
  71. #change back any openblas_complex_float and double that got hit
  72. @sed 's/$(SYMBOLPREFIX)openblas_complex_/openblas_complex_/g' cblas.tmp > cblas.tmp2
  73. @sed 's/goto[^() ]*/$(SYMBOLPREFIX)&/g' cblas.tmp2 > cblas.tmp
  74. endif
  75. ifdef SYMBOLSUFFIX
  76. @sed 's/cblas[^() ]*/&$(SYMBOLSUFFIX)/g' cblas.tmp > cblas.tmp2
  77. @sed 's/openblas[^() ]*/&$(SYMBOLSUFFIX)/g' cblas.tmp2 > cblas.tmp
  78. #change back any openblas_complex_float and double that got hit
  79. @sed 's/\(openblas_complex_\)\([^ ]*\)$(SYMBOLSUFFIX)/\1\2 /g' cblas.tmp > cblas.tmp2
  80. @sed 's/goto[^() ]*/&$(SYMBOLSUFFIX)/g' cblas.tmp2 > cblas.tmp
  81. endif
  82. @sed 's/common/openblas_config/g' cblas.tmp > "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/cblas.h"
  83. endif
  84. ifneq ($(OSNAME), AIX)
  85. ifneq ($(NO_LAPACKE), 1)
  86. @echo Copying LAPACKE header files to $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
  87. @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapack.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapack.h"
  88. @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke.h"
  89. @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_config.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_config.h"
  90. @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_mangling_with_flags.h.in "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_mangling.h"
  91. @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_utils.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_utils.h"
  92. endif
  93. #for install static library
  94. ifneq ($(NO_STATIC),1)
  95. @echo Copying the static library to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
  96. @install -m644 $(LIBNAME) "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)"
  97. @cd "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" ; \
  98. $(LNCMD) $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX)
  99. endif
  100. #for install shared library
  101. ifneq ($(NO_SHARED),1)
  102. @echo Copying the shared library to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
  103. ifeq ($(OSNAME), $(filter $(OSNAME),Linux SunOS Android Haiku FreeBSD DragonFly))
  104. @install -m755 $(LIBSONAME) "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)"
  105. @cd "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" ; \
  106. $(LNCMD) $(LIBSONAME) $(LIBPREFIX).so ; \
  107. $(LNCMD) $(LIBSONAME) $(LIBPREFIX).so.$(MAJOR_VERSION)
  108. endif
  109. ifeq ($(OSNAME), $(filter $(OSNAME),OpenBSD NetBSD))
  110. @cp $(LIBSONAME) "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)"
  111. @cd "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" ; \
  112. $(LNCMD) $(LIBSONAME) $(LIBPREFIX).so
  113. endif
  114. ifeq ($(OSNAME), Darwin)
  115. @-cp $(LIBDYNNAME) "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)"
  116. @-install_name_tool -id "$(OPENBLAS_LIBRARY_DIR)/$(LIBPREFIX).$(MAJOR_VERSION).dylib" "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME)"
  117. @cd "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" ; \
  118. $(LNCMD) $(LIBDYNNAME) $(LIBPREFIX).dylib ; \
  119. $(LNCMD) $(LIBDYNNAME) $(LIBPREFIX).$(MAJOR_VERSION).dylib
  120. endif
  121. ifeq ($(OSNAME), WINNT)
  122. @-cp $(LIBDLLNAME) "$(DESTDIR)$(OPENBLAS_BINARY_DIR)"
  123. @-cp $(IMPLIBNAME) "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)"
  124. endif
  125. ifeq ($(OSNAME), CYGWIN_NT)
  126. @-cp $(LIBDLLNAME) "$(DESTDIR)$(OPENBLAS_BINARY_DIR)"
  127. @-cp $(IMPLIBNAME) "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)"
  128. endif
  129. endif
  130. else
  131. #install on AIX has different options syntax
  132. ifneq ($(NO_LAPACKE), 1)
  133. @echo Copying LAPACKE header files to $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
  134. @-installbsd -c -m 644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapack.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapack.h"
  135. @-installbsd -c -m 644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke.h"
  136. @-installbsd -c -m 644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_config.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_config.h"
  137. @-installbsd -c -m 644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_mangling_with_flags.h.in "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_mangling.h"
  138. @-installbsd -c -m 644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_utils.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_utils.h"
  139. endif
  140. #for install static library
  141. ifneq ($(NO_STATIC),1)
  142. @echo Copying the static library to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
  143. @installbsd -c -m 644 $(LIBNAME) "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)"
  144. @cd "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" ; \
  145. $(LNCMD) $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX)
  146. endif
  147. #for install shared library
  148. ifneq ($(NO_SHARED),1)
  149. @echo Copying the shared library to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
  150. @installbsd -c -m 755 $(LIBSONAME) "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)"
  151. @cd "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" ; \
  152. $(LNCMD) $(LIBSONAME) $(LIBPREFIX).so ; \
  153. $(LNCMD) $(LIBSONAME) $(LIBPREFIX).so.$(MAJOR_VERSION)
  154. endif
  155. endif
  156. #Generating openblas.pc
  157. ifeq ($(INTERFACE64),1)
  158. SUFFIX64=64
  159. endif
  160. PKGFILE="$(DESTDIR)$(OPENBLAS_PKGCONFIG_DIR)/$(LIBSONAMEBASE)$(SUFFIX64).pc"
  161. @echo Generating $(LIBSONAMEBASE)$(SUFFIX64).pc in "$(DESTDIR)$(OPENBLAS_PKGCONFIG_DIR)"
  162. @echo 'libdir='$(OPENBLAS_LIBRARY_DIR) > "$(PKGFILE)"
  163. @echo 'libprefix='$(LIBNAMEPREFIX) >> "$(PKGFILE)"
  164. @echo 'libnamesuffix='$(LIBNAMESUFFIX) >> "$(PKGFILE)"
  165. @echo 'libsuffix='$(SYMBOLSUFFIX) >> "$(PKGFILE)"
  166. @echo 'includedir='$(OPENBLAS_INCLUDE_DIR) >> "$(PKGFILE)"
  167. @echo 'omp_opt='$(FOMP_OPT) >> "$(PKGFILE)"
  168. @echo 'openblas_config= USE_64BITINT='$(INTERFACE64) 'DYNAMIC_ARCH='$(DYNAMIC_ARCH) 'DYNAMIC_OLDER='$(DYNAMIC_OLDER) 'NO_CBLAS='$(NO_CBLAS) 'NO_LAPACK='$(NO_LAPACK) 'NO_LAPACKE='$(NO_LAPACKE) 'NO_AFFINITY='$(NO_AFFINITY) 'USE_OPENMP='$(USE_OPENMP) $(TARGET) 'MAX_THREADS='$(NUM_THREADS)>> "$(PKGFILE)"
  169. @echo 'version='$(VERSION) >> "$(PKGFILE)"
  170. @echo 'extralib='$(PKG_EXTRALIB) >> "$(PKGFILE)"
  171. @cat openblas.pc.in >> "$(PKGFILE)"
  172. #Generating OpenBLASConfig.cmake
  173. @echo Generating $(OPENBLAS_CMAKE_CONFIG) in $(DESTDIR)$(OPENBLAS_CMAKE_DIR)
  174. @echo "SET(OpenBLAS_VERSION \"${VERSION}\")" > "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)"
  175. @echo "SET(OpenBLAS_INCLUDE_DIRS ${OPENBLAS_INCLUDE_DIR})" >> "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)"
  176. ifneq ($(NO_SHARED),1)
  177. #ifeq logical or
  178. ifeq ($(OSNAME), $(filter $(OSNAME),Linux FreeBSD NetBSD OpenBSD DragonFly))
  179. @echo "SET(OpenBLAS_LIBRARIES ${OPENBLAS_LIBRARY_DIR}/$(LIBPREFIX)$(SYMBOLSUFFIX).so)" >> "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)"
  180. endif
  181. ifeq ($(OSNAME), $(filter $(OSNAME),WINNT CYGWIN_NT))
  182. @echo "SET(OpenBLAS_LIBRARIES ${OPENBLAS_BINARY_DIR}/$(LIBDLLNAME))" >> "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)"
  183. endif
  184. ifeq ($(OSNAME), Darwin)
  185. @echo "SET(OpenBLAS_LIBRARIES ${OPENBLAS_LIBRARY_DIR}/$(LIBPREFIX).dylib)" >> "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)"
  186. endif
  187. else
  188. #only static
  189. @echo "SET(OpenBLAS_LIBRARIES ${OPENBLAS_LIBRARY_DIR}/$(LIBPREFIX).$(LIBSUFFIX))" >> "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)"
  190. endif
  191. #Generating OpenBLASConfigVersion.cmake
  192. @echo Generating $(OPENBLAS_CMAKE_CONFIG_VERSION) in $(DESTDIR)$(OPENBLAS_CMAKE_DIR)
  193. @echo "set (PACKAGE_VERSION \"${VERSION}\")" > "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG_VERSION)"
  194. @echo "if (PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)" >> "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG_VERSION)"
  195. @echo " set (PACKAGE_VERSION_COMPATIBLE FALSE)" >> "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG_VERSION)"
  196. @echo "else ()" >> "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG_VERSION)"
  197. @echo " set (PACKAGE_VERSION_COMPATIBLE TRUE)" >> "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG_VERSION)"
  198. @echo " if (PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)" >> "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG_VERSION)"
  199. @echo " set (PACKAGE_VERSION_EXACT TRUE)" >> "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG_VERSION)"
  200. @echo " endif ()" >> "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG_VERSION)"
  201. @echo "endif ()" >> "$(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG_VERSION)"
  202. @echo Install OK!