All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2] package/armadillo: allows to select between clapack, lapack or openblas
@ 2020-08-24 13:22 Gwenhael Goavec-Merou
  2020-08-24 20:36 ` Thomas Petazzoni
  0 siblings, 1 reply; 3+ messages in thread
From: Gwenhael Goavec-Merou @ 2020-08-24 13:22 UTC (permalink / raw)
  To: buildroot

From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>

armadillo can use clapack, lapack or openblas as BLAS and LAPACK provider.
This patch
- adds hidden variable to check dependencies/requirement for each of them
- a choice to select wich implementation to use, by default use on clapack
 when it's possible, else lapack, otherwhise openblas

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
---
Changes v1 -> v2:
- add openblas as blas provider
---
 package/armadillo/Config.in    | 50 ++++++++++++++++++++++++++++++++--
 package/armadillo/armadillo.mk | 11 +++++++-
 2 files changed, 57 insertions(+), 4 deletions(-)

diff --git a/package/armadillo/Config.in b/package/armadillo/Config.in
index b2b61a3233..0a65f5b966 100644
--- a/package/armadillo/Config.in
+++ b/package/armadillo/Config.in
@@ -1,3 +1,12 @@
+config BR2_PACKAGE_ARMADILLO_CLAPACK_SUPPORTS
+	bool
+	default y if (!BR2_m68k_cf && (!BR2_powerpc || BR2_TOOLCHAIN_USES_GLIBC))
+
+config BR2_PACKAGE_ARMADILLO_LAPACK_SUPPORTS
+	bool
+	default y if BR2_TOOLCHAIN_HAS_FORTRAN && \
+		BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS
+
 comment "armadillo needs a toolchain w/ C++"
 	depends on !BR2_INSTALL_LIBSTDCPP
 	depends on !BR2_powerpc
@@ -10,11 +19,46 @@ comment "armadillo needs a glibc toolchain w/ C++"
 config BR2_PACKAGE_ARMADILLO
 	bool "armadillo"
 	depends on BR2_INSTALL_LIBSTDCPP
-	depends on !BR2_powerpc || BR2_TOOLCHAIN_USES_GLIBC # clapack
-	depends on !BR2_m68k_cf # clapack
-	select BR2_PACKAGE_CLAPACK
+	depends on BR2_PACKAGE_ARMADILLO_CLAPACK_SUPPORTS || \
+		BR2_PACKAGE_ARMADILLO_LAPACK_SUPPORTS || \
+		BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS
 	help
 	  Armadillo: An Open Source C++ Linear Algebra Library for
 	  Fast Prototyping and Computationally Intensive Experiments.
 
 	  http://arma.sourceforge.net/
+
+if BR2_PACKAGE_ARMADILLO
+
+choice
+	prompt "blas library"
+	default BR2_PACKAGE_ARMADILLO_CLAPACK if \
+		BR2_PACKAGE_ARMADILLO_CLAPACK_SUPPORTS
+	default BR2_PACKAGE_ARMADILLO_LAPACK if \
+		BR2_PACKAGE_ARMADILLO_LAPACK_SUPPORTS && \
+		!BR2_PACKAGE_ARMADILLO_CLAPACK_SUPPORTS
+	default BR2_PACKAGE_ARMADILLO_OPENBLAS if \
+		!BR2_PACKAGE_ARMADILLO_LAPACK_SUPPORTS && \
+		!BR2_PACKAGE_ARMADILLO_CLAPACK_SUPPORTS && \
+		BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS
+	help
+	  Selects blas library to use
+
+config BR2_PACKAGE_ARMADILLO_CLAPACK
+	bool "clapack"
+	depends on BR2_PACKAGE_ARMADILLO_CLAPACK_SUPPORTS
+	select BR2_PACKAGE_CLAPACK
+
+config BR2_PACKAGE_ARMADILLO_LAPACK
+	bool "lapack"
+	depends on BR2_PACKAGE_ARMADILLO_LAPACK_SUPPORTS
+	select BR2_PACKAGE_LAPACK
+
+config BR2_PACKAGE_ARMADILLO_OPENBLAS
+	bool "openblas"
+	depends on BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS
+	select BR2_PACKAGE_OPENBLAS
+
+endchoice
+
+endif
diff --git a/package/armadillo/armadillo.mk b/package/armadillo/armadillo.mk
index 624b842ef6..1cc3d0c968 100644
--- a/package/armadillo/armadillo.mk
+++ b/package/armadillo/armadillo.mk
@@ -7,11 +7,20 @@
 ARMADILLO_VERSION = 9.900.2
 ARMADILLO_SOURCE = armadillo-$(ARMADILLO_VERSION).tar.xz
 ARMADILLO_SITE = https://downloads.sourceforge.net/project/arma
-ARMADILLO_DEPENDENCIES = clapack
 ARMADILLO_INSTALL_STAGING = YES
 ARMADILLO_LICENSE = Apache-2.0
 ARMADILLO_LICENSE_FILES = LICENSE.txt
 
+ifeq ($(BR2_PACKAGE_ARMADILLO_OPENBLAS),y)
+ARMADILLO_DEPENDENCIES = openblas
+else
+ifeq ($(BR2_PACKAGE_ARMADILLO_CLAPACK), y)
+ARMADILLO_DEPENDENCIES = clapack
+else
+ARMADILLO_DEPENDENCIES = lapack
+endif
+endif
+
 ARMADILLO_CONF_OPTS = -DDETECT_HDF5=false
 
 $(eval $(cmake-package))
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-08-26 13:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-24 13:22 [Buildroot] [PATCH v2] package/armadillo: allows to select between clapack, lapack or openblas Gwenhael Goavec-Merou
2020-08-24 20:36 ` Thomas Petazzoni
2020-08-26 13:16   ` Gwenhael Goavec-Merou

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.