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