Initial draft PR is: https://github.com/openwrt/packages/pull/11894 This one is a bit more complete, and follows packaging practices. For now, disabling builds on ARC and PowerPC. Will require more work to get them going. Explicitly disabling OpenMP support, so that it doesn't get picked by accident. Later we may use the `CPU_TYPE` parameter to tweak things a little further. Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
106 lines
2.5 KiB
Makefile
106 lines
2.5 KiB
Makefile
#
|
|
# Copyright (C) 2021 Alexandru Ardelean <ardeleanalex@gmail.com>
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=OpenBLAS
|
|
PKG_VERSION:=0.3.15
|
|
PKG_RELEASE:=$(AUTORELEASE)
|
|
|
|
PKG_SOURCE:=OpenBLAS-$(PKG_VERSION).tar.gz
|
|
PKG_SOURCE_URL:=https://github.com/xianyi/OpenBLAS/releases/download/v$(PKG_VERSION)/
|
|
PKG_HASH:=30a99dec977594b387a17f49904523e6bc8dd88bd247266e83485803759e4bbe
|
|
PKG_LICENSE:=BSD 3-Clause
|
|
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
|
|
|
|
PKG_BUILD_PARALLEL:=1
|
|
PKG_INSTALL:=1
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Package/openblas
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
TITLE:=An optimized library for BLAS (Basic Linear Algebra Subprograms)
|
|
URL:=https://www.openblas.net/
|
|
DEPENDS:= \
|
|
@!arc \
|
|
@!powerpc \
|
|
+INSTALL_GFORTRAN:libgfortran
|
|
endef
|
|
|
|
define Package/openblas/description
|
|
OpenBLAS is an optimized BLAS (Basic Linear Algebra Subprograms) library
|
|
based on GotoBLAS2 1.13 BSD version.
|
|
endef
|
|
|
|
define Package/openblas/config
|
|
menu "Configuration"
|
|
depends on PACKAGE_openblas
|
|
|
|
config OPENBLAS_TARGET_OVERRIDE
|
|
string
|
|
prompt "Manual CPU target override (from the OpenBLAS TargetList.txt file)"
|
|
|
|
endmenu
|
|
endef
|
|
|
|
OPENBLAS_TARGET=$(call qstrip,$(CONFIG_OPENBLAS_TARGET_OVERRIDE))
|
|
|
|
ifeq ($(OPENBLAS_TARGET),)
|
|
ifeq ($(ARCH),aarch64)
|
|
OPENBLAS_TARGET:=ARMV8
|
|
else ifeq ($(ARCH),arm)
|
|
OPENBLAS_TARGET:=ARMV5
|
|
else ifeq ($(ARCH),mips)
|
|
OPENBLAS_TARGET:=MIPS24K
|
|
else ifeq ($(ARCH),mipsel)
|
|
OPENBLAS_TARGET:=MIPS24K
|
|
else ifeq ($(ARCH),powerpc)
|
|
OPENBLAS_TARGET:=PPC440
|
|
else ifeq ($(ARCH),mips64)
|
|
OPENBLAS_TARGET:=I6400
|
|
else ifeq ($(ARCH),mips64el)
|
|
OPENBLAS_TARGET:=I6400
|
|
else ifeq ($(ARCH),i386)
|
|
OPENBLAS_TARGET:=GENERIC
|
|
else ifeq ($(ARCH),x86_64)
|
|
OPENBLAS_TARGET:=GENERIC
|
|
endif
|
|
endif # ifeq ($(OPENBLAS_TARGET),)
|
|
|
|
ifeq ($(CONFIG_ARCH_64BIT),y)
|
|
OPENBLAS_BINARY:=64
|
|
else
|
|
OPENBLAS_BINARY:=32
|
|
endif
|
|
|
|
MAKE_FLAGS += \
|
|
CROSS=1 \
|
|
HOSTCC=$(HOSTCC) \
|
|
CROSS_SUFFIX=$(TARGET_CROSS) \
|
|
BINARY=$(OPENBLAS_BINARY) \
|
|
NUM_THREADS=2 \
|
|
PREFIX=/usr \
|
|
COMMON_OPT="" \
|
|
TARGET=$(call qstrip,$(OPENBLAS_TARGET))
|
|
|
|
ifneq ($(CONFIG_INSTALL_GFORTRAN),y)
|
|
MAKE_FLAGS += NOFORTRAN=1
|
|
endif
|
|
|
|
define Build/InstallDev
|
|
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
|
$(INSTALL_DIR) $(1)/usr/include
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/
|
|
endef
|
|
|
|
define Package/openblas/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libopenblas*.so* $(1)/usr/lib/
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,openblas))
|