Merge pull request #19372 from cotequeiroz/libgd
[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.21
9 PKG_RELEASE:=$(AUTORELEASE)
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:=f36ba3d7a60e7c8bcc54cd9aaa9b1223dd42eaf02c811791c37e8ca707c241ca
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 +INSTALL_GFORTRAN:libgfortran
31 endef
32
33 define Package/openblas/description
34 OpenBLAS is an optimized BLAS (Basic Linear Algebra Subprograms) library
35 based on GotoBLAS2 1.13 BSD version.
36 endef
37
38 define Package/openblas/config
39 menu "Configuration"
40 depends on PACKAGE_openblas
41
42 config OPENBLAS_TARGET_OVERRIDE
43 string
44 prompt "Manual CPU target override (from the OpenBLAS TargetList.txt file)"
45
46 endmenu
47 endef
48
49 OPENBLAS_TARGET=$(call qstrip,$(CONFIG_OPENBLAS_TARGET_OVERRIDE))
50 CPU_TYPE=$(call qstrip,$(CONFIG_CPU_TYPE))
51
52 ifeq ($(OPENBLAS_TARGET),)
53 # initialize to GENERIC as default
54 OPENBLAS_TARGET:=GENERIC
55
56 ifeq ($(ARCH),aarch64)
57 OPENBLAS_TARGET:=ARMV8
58 else ifeq ($(ARCH),arm)
59 OPENBLAS_TARGET:=ARMV5
60 else ifeq ($(ARCH),mips)
61 OPENBLAS_TARGET:=MIPS24K
62 else ifeq ($(ARCH),mipsel)
63 OPENBLAS_TARGET:=MIPS24K
64 else ifeq ($(ARCH),powerpc)
65 OPENBLAS_TARGET:=PPC440
66 else ifeq ($(ARCH),riscv64)
67 OPENBLAS_TARGET:=RISCV64_GENERIC
68 endif
69 endif # ifeq ($(OPENBLAS_TARGET),)
70
71 ifeq ($(CONFIG_ARCH_64BIT),y)
72 OPENBLAS_BINARY:=64
73 else
74 OPENBLAS_BINARY:=32
75 endif
76
77 MAKE_FLAGS += \
78 CROSS=1 \
79 HOSTCC=$(HOSTCC_NOCACHE) \
80 CROSS_SUFFIX=$(TARGET_CROSS) \
81 BINARY=$(OPENBLAS_BINARY) \
82 MAKE_NB_JOBS=-1 \
83 NUM_THREADS=2 \
84 PREFIX=/usr \
85 COMMON_OPT="" \
86 TARGET=$(call qstrip,$(OPENBLAS_TARGET))
87
88 ifneq ($(CONFIG_INSTALL_GFORTRAN),y)
89 MAKE_FLAGS += NOFORTRAN=1
90 endif
91
92 define Build/InstallDev
93 $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
94 $(INSTALL_DIR) $(1)/usr/include
95 $(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
96 $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
97 $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/
98 endef
99
100 define Package/openblas/install
101 $(INSTALL_DIR) $(1)/usr/lib
102 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libopenblas*.so* $(1)/usr/lib/
103 endef
104
105 $(eval $(call BuildPackage,openblas))