38947885812450034d5cbfe78d7254987edd29d3
[feed/packages.git] / libs / openblas / Makefile
1 #
2 # Copyright (C) 2021 Alexandru Ardelean <ardeleanalex@gmail.com>
3 #
4
5 include $(TOPDIR)/rules.mk
6
7 PKG_NAME:=OpenBLAS
8 PKG_VERSION:=0.3.23
9 PKG_RELEASE:=1
10
11 PKG_SOURCE:=OpenBLAS-$(PKG_VERSION).tar.gz
12 PKG_SOURCE_URL:=https://github.com/xianyi/OpenBLAS/releases/download/v$(PKG_VERSION)/
13 PKG_HASH:=5d9491d07168a5d00116cdc068a40022c3455bf9293c7cb86a65b1054d7e5114
14 PKG_LICENSE:=BSD 3-Clause
15 PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
16
17 PKG_BUILD_PARALLEL:=1
18 PKG_INSTALL:=1
19
20 include $(INCLUDE_DIR)/package.mk
21
22 define Package/openblas
23 SECTION:=libs
24 CATEGORY:=Libraries
25 TITLE:=An optimized library for BLAS (Basic Linear Algebra Subprograms)
26 URL:=https://www.openblas.net/
27 DEPENDS:= \
28 @!arc \
29 @!powerpc \
30 @!SOFT_FLOAT \
31 +INSTALL_GFORTRAN:libgfortran
32 endef
33
34 define Package/openblas/description
35 OpenBLAS is an optimized BLAS (Basic Linear Algebra Subprograms) library
36 based on GotoBLAS2 1.13 BSD version.
37 endef
38
39 define Package/openblas/config
40 menu "Configuration"
41 depends on PACKAGE_openblas
42
43 config OPENBLAS_TARGET_OVERRIDE
44 string
45 prompt "Manual CPU target override (from the OpenBLAS TargetList.txt file)"
46
47 endmenu
48 endef
49
50 OPENBLAS_TARGET=$(call qstrip,$(CONFIG_OPENBLAS_TARGET_OVERRIDE))
51 CPU_TYPE=$(call qstrip,$(CONFIG_CPU_TYPE))
52
53 ifeq ($(OPENBLAS_TARGET),)
54 # initialize to GENERIC as default
55 OPENBLAS_TARGET:=GENERIC
56
57 ifeq ($(ARCH),aarch64)
58 OPENBLAS_TARGET:=ARMV8
59 else ifeq ($(ARCH),arm)
60 OPENBLAS_TARGET:=ARMV5
61 else ifeq ($(ARCH),mips)
62 OPENBLAS_TARGET:=MIPS24K
63 else ifeq ($(ARCH),mipsel)
64 OPENBLAS_TARGET:=MIPS24K
65 else ifeq ($(ARCH),powerpc)
66 OPENBLAS_TARGET:=PPC440
67 else ifeq ($(ARCH),riscv64)
68 OPENBLAS_TARGET:=RISCV64_GENERIC
69 endif
70 endif # ifeq ($(OPENBLAS_TARGET),)
71
72 ifeq ($(CONFIG_ARCH_64BIT),y)
73 OPENBLAS_BINARY:=64
74 else
75 OPENBLAS_BINARY:=32
76 endif
77
78 MAKE_FLAGS += \
79 CROSS=1 \
80 CC=$(TARGET_CC_NOCACHE) \
81 CXX=$(TARGET_CXX_NOCACHE) \
82 HOSTCC=$(HOSTCC_NOCACHE) \
83 CROSS_SUFFIX=$(TARGET_CROSS) \
84 BINARY=$(OPENBLAS_BINARY) \
85 MAKE_NB_JOBS=-1 \
86 NUM_THREADS=2 \
87 PREFIX=/usr \
88 COMMON_OPT="" \
89 TARGET=$(call qstrip,$(OPENBLAS_TARGET))
90
91 ifneq ($(CONFIG_INSTALL_GFORTRAN),y)
92 MAKE_FLAGS += NOFORTRAN=1
93 endif
94
95 define Build/InstallDev
96 $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
97 $(INSTALL_DIR) $(1)/usr/include
98 $(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
99 $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
100 $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/
101 endef
102
103 define Package/openblas/install
104 $(INSTALL_DIR) $(1)/usr/lib
105 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libopenblas*.so* $(1)/usr/lib/
106 endef
107
108 $(eval $(call BuildPackage,openblas))