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 5.2 kB

10 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. TOPDIR = .
  2. export GOTOBLAS_MAKEFILE = 1
  3. -include $(TOPDIR)/Makefile.conf_last
  4. include ./Makefile.system
  5. PREFIX ?= /opt/OpenBLAS
  6. OPENBLAS_INCLUDE_DIR := $(PREFIX)/include
  7. OPENBLAS_LIBRARY_DIR := $(PREFIX)/lib
  8. OPENBLAS_BINARY_DIR := $(PREFIX)/bin
  9. OPENBLAS_BUILD_DIR := $(CURDIR)
  10. OPENBLAS_CMAKE_DIR := $(OPENBLAS_LIBRARY_DIR)/cmake/openblas
  11. OPENBLAS_CMAKE_CONFIG := OpenBLASConfig.cmake
  12. .PHONY : install
  13. .NOTPARALLEL : install
  14. lib.grd :
  15. $(error OpenBLAS: Please run "make" firstly)
  16. install : lib.grd
  17. @-mkdir -p $(DESTDIR)$(PREFIX)
  18. @-mkdir -p $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
  19. @-mkdir -p $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
  20. @-mkdir -p $(DESTDIR)$(OPENBLAS_BINARY_DIR)
  21. @-mkdir -p $(DESTDIR)$(OPENBLAS_CMAKE_DIR)
  22. @echo Generating openblas_config.h in $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
  23. #for inc
  24. @echo \#ifndef OPENBLAS_CONFIG_H > $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h
  25. @echo \#define OPENBLAS_CONFIG_H >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h
  26. @awk 'NF {print $$1, "OPENBLAS_"$$2, $$3}' config_last.h >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h
  27. @echo \#define OPENBLAS_VERSION \" OpenBLAS $(VERSION) \" >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h
  28. @cat openblas_config_template.h >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h
  29. @echo \#endif \/\* OPENBLAS_CONFIG_H \*\/ >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h
  30. @echo Generating f77blas.h in $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
  31. @echo \#ifndef OPENBLAS_F77BLAS_H > $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h
  32. @echo \#define OPENBLAS_F77BLAS_H >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h
  33. @echo \#include \"openblas_config.h\" >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h
  34. @cat common_interface.h >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h
  35. @echo \#endif >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h
  36. ifndef NO_CBLAS
  37. @echo Generating cblas.h in $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
  38. @sed 's/common/openblas_config/g' cblas.h > $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/cblas.h
  39. endif
  40. ifndef NO_LAPACKE
  41. @echo Copying LAPACKE header files to $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
  42. @-install -pm644 $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke.h $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke.h
  43. @-install -pm644 $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_config.h $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_config.h
  44. @-install -pm644 $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_mangling_with_flags.h $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_mangling.h
  45. @-install -pm644 $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_utils.h $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_utils.h
  46. endif
  47. #for install static library
  48. ifndef NO_STATIC
  49. @echo Copying the static library to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
  50. @install -pm644 $(LIBNAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
  51. @cd $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) ; \
  52. ln -fs $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX)
  53. endif
  54. #for install shared library
  55. ifndef NO_SHARED
  56. @echo Copying the shared library to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
  57. ifeq ($(OSNAME), Linux)
  58. @install -pm755 $(LIBSONAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
  59. @cd $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) ; \
  60. ln -fs $(LIBSONAME) $(LIBPREFIX).so ; \
  61. ln -fs $(LIBSONAME) $(LIBPREFIX).so.$(MAJOR_VERSION)
  62. endif
  63. ifeq ($(OSNAME), FreeBSD)
  64. @cp $(LIBSONAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
  65. @cd $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) ; \
  66. ln -fs $(LIBSONAME) $(LIBPREFIX).so
  67. endif
  68. ifeq ($(OSNAME), NetBSD)
  69. @cp $(LIBSONAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
  70. @cd $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) ; \
  71. ln -fs $(LIBSONAME) $(LIBPREFIX).so
  72. endif
  73. ifeq ($(OSNAME), Darwin)
  74. @-cp $(LIBDYNNAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
  75. @-install_name_tool -id $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME)
  76. @cd $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) ; \
  77. ln -fs $(LIBDYNNAME) $(LIBPREFIX).dylib
  78. endif
  79. ifeq ($(OSNAME), WINNT)
  80. @-cp $(LIBDLLNAME) $(DESTDIR)$(OPENBLAS_BINARY_DIR)
  81. @-cp $(LIBDLLNAME).a $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
  82. endif
  83. ifeq ($(OSNAME), CYGWIN_NT)
  84. @-cp $(LIBDLLNAME) $(OPENBLAS_BINARY_DIR)
  85. endif
  86. endif
  87. #Generating OpenBLASConfig.cmake
  88. @echo Generating $(OPENBLAS_CMAKE_CONFIG) in $(DESTDIR)$(OPENBLAS_CMAKE_DIR)
  89. @echo "SET(OpenBLAS_VERSION \"${VERSION}\")" > $(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)
  90. @echo "SET(OpenBLAS_INCLUDE_DIRS ${OPENBLAS_INCLUDE_DIR})" >> $(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)
  91. ifndef NO_SHARED
  92. #ifeq logical or
  93. ifeq ($(OSNAME), $(filter $(OSNAME),Linux FreeBSD NetBSD))
  94. @echo "SET(OpenBLAS_LIBRARIES ${OPENBLAS_LIBRARY_DIR}/$(LIBPREFIX).so)" >> $(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)
  95. endif
  96. ifeq ($(OSNAME), $(filter $(OSNAME),WINNT CYGWIN_NT))
  97. @echo "SET(OpenBLAS_LIBRARIES ${OPENBLAS_BINARY_DIR}/$(LIBDLLNAME))" >> $(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)
  98. endif
  99. ifeq ($(OSNAME), Darwin)
  100. @echo "SET(OpenBLAS_LIBRARIES ${OPENBLAS_LIBRARY_DIR}/$(LIBPREFIX).dylib)" >> $(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)
  101. endif
  102. else
  103. #only static
  104. @echo "SET(OpenBLAS_LIBRARIES ${OPENBLAS_LIBRARY_DIR}/$(LIBPREFIX).$(LIBSUFFIX))" >> $(DESTDIR)$(OPENBLAS_CMAKE_DIR)/$(OPENBLAS_CMAKE_CONFIG)
  105. endif
  106. @echo Install OK!