changeset 5470:c561daaad6eb

Add blas chooser * src/blas_switch.mk: new file * binary-dist-rules.mk: add blas_switch as a windows dep * index.html, dist-files.mk: add ref to blas_switch * tools/makeinst-script.sh.in: add start menu blas switch menu * installer-files/README.html: add not about blas_switch
author John Donoghue <john.donoghue@ieee.org>
date Wed, 24 Jun 2020 09:29:17 -0400
parents db6bbd842445
children 99169d3a16b2
files binary-dist-rules.mk dist-files.mk index.html installer-files/README.html src/blas_switch.mk tools/makeinst-script.sh.in
diffstat 6 files changed, 71 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/binary-dist-rules.mk	Wed Jun 24 09:29:15 2020 -0400
+++ b/binary-dist-rules.mk	Wed Jun 24 09:29:17 2020 -0400
@@ -25,7 +25,7 @@
 ifeq ($(MXE_WINDOWS_BUILD),yes)
   TAR_H_OPTION := -h
   WINDOWS_BINARY_DIST_DEPS := \
-    win7appid
+    win7appid blas_switch
 
   ifeq ($(USE_MSYS2),yes)
     WINDOWS_BINARY_DIST_DEPS += \
--- a/dist-files.mk	Wed Jun 24 09:29:15 2020 -0400
+++ b/dist-files.mk	Wed Jun 24 09:29:17 2020 -0400
@@ -15,6 +15,7 @@
   aubio.mk \
   bfd.mk \
   blas.mk \
+  blas_switch.mk \
   boost-1-intrinsics-fix.patch \
   boost-2-winerror.patch \
   boost-test.cpp \
--- a/index.html	Wed Jun 24 09:29:15 2020 -0400
+++ b/index.html	Wed Jun 24 09:29:17 2020 -0400
@@ -970,6 +970,10 @@
         <td class="website"><a href="http://www.netlib.org/blas/">blas</a></td>
     </tr>
     <tr>
+        <td class="package">blas_switch</td>
+        <td class="website"><a href="https://github.com/lostbard/blas_switch/">blas_switch</a></td>
+    </tr>
+    <tr>
         <td class="package">boost</td>
         <td class="website"><a href="http://www.boost.org/">Boost C++ Library</a></td>
     </tr>
--- a/installer-files/README.html	Wed Jun 24 09:29:15 2020 -0400
+++ b/installer-files/README.html	Wed Jun 24 09:29:17 2020 -0400
@@ -32,7 +32,7 @@
 <p>
 The choice of library may be changed after installation by copying
 either librefblas.dll or libopenblas.dll to the file libblas.dll in the bin
-folder of the Octave installation.
+folder of the Octave installation, or running blas_switch from the same folder.
 </p>
 <h2>Included Octave Forge Packages</h2>
 <p>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/blas_switch.mk	Wed Jun 24 09:29:17 2020 -0400
@@ -0,0 +1,61 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG             := blas_switch
+$(PKG)_IGNORE   :=
+$(PKG)_VERSION  := 0.0.7
+$(PKG)_CHECKSUM := b34a8b5aaf3a962cbdd6a16638aaf5f4c0fe66e1
+$(PKG)_SUBDIR   := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE     := $($(PKG)_SUBDIR).tar.gz
+$(PKG)_URL      := https://github.com/lostbard/$(PKG)/archive/v$($(PKG)_VERSION).tar.gz
+
+
+ifeq ($(ENABLE_QT5),yes)
+      $(PKG)_DEPS     := qt5
+else
+      $(PKG)_DEPS     := qt
+endif
+
+ifeq ($(MXE_NATIVE_MINGW_BUILD),yes)
+      $(PKG)_INSTALL_ROOT :=
+else
+      $(PKG)_INSTALL_ROOT := $(3)
+endif
+
+define $(PKG)_UPDATE
+    $(WGET) -q -O- 'https://github.com/lostbard/$(PKG)/tags' | \
+    $(SED) -n 's|.*releases/tag/v\([^"]*\).*|\1|p' | $(SORT) -V | \
+    tail -1
+endef
+
+ifneq ($(MXE_NATIVE_BUILD),yes)
+  ifeq ($(MXE_SYSTEM),mingw)
+    ifeq ($(ENABLE_QT5),yes)
+       $(PKG)_QMAKE_SPEC_OPTION := -spec '$(BUILD_TOOLS_PREFIX)/mkspecs/win32-g++'
+    else
+       $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_PREFIX)/mkspecs/win32-g++'
+    endif
+  endif
+  ifeq ($(MXE_SYSTEM),msvc)
+    # FIXME: compute "2010" suffix dynamically
+    $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_LIBDIR)/qt4/mkspecs/win32-msvc2010'
+  endif
+endif
+
+define $(PKG)_BUILD
+    cd '$(1)' && \
+      '$(MXE_QMAKE)' -makefile \
+        $($(PKG)_QMAKE_SPEC_OPTION) \
+        QMAKE_UIC='$(MXE_UIC)' \
+        QMAKE_MOC='$(MXE_MOC)' \
+        QMAKE_LFLAGS=$(MXE_LDFLAGS) \
+        QMAKE_CXXFLAGS='-std=c++11'
+
+    $(MAKE) -C '$(1)' -j '$(JOBS)'
+    $(MAKE) -C '$(1)' -j 1 install INSTALL_ROOT='$($(PKG)_INSTALL_ROOT)'
+
+    if [ $(MXE_WINDOWS_BUILD) = yes ]; then \
+      $(INSTALL) -d '$(HOST_BINDIR)'; \
+      mv '$(HOST_PREFIX)/qt5/bin/blas_switch.exe' '$(HOST_BINDIR)/blas_switch.exe'; \
+    fi
+endef
--- a/tools/makeinst-script.sh.in	Wed Jun 24 09:29:15 2020 -0400
+++ b/tools/makeinst-script.sh.in	Wed Jun 24 09:29:17 2020 -0400
@@ -470,6 +470,9 @@
   if [ -f $OCTAVE_SOURCE/cmdshell.bat ]; then 
     echo "CreateShortCut '\$SMPROGRAMS\\GNU Octave $VERSION\$MultiUser.Local\\Bash Shell.lnk' '\$INSTDIR\\cmdshell.bat' '' '' 0" >> $OUTFILE
   fi
+  if [ -e $OCTAVE_SOURCE/$OCTAVE_SUBDIR/bin/blas_switch.exe ]; then 
+    echo "CreateShortCut '\$SMPROGRAMS\\GNU Octave $VERSION\$MultiUser.Local\\Blas Switcher.lnk' '\$INSTDIR\\$OCTAVE_SUBDIR\\bin\\blas_switch.exe' '' '' 0" >> $OUTFILE
+  fi
   # if we have documentation files, create shortcuts
   if [ -d $OCTAVE_SOURCE/$OCTAVE_SUBDIR/share/doc/octave ]; then
     cat >> $OUTFILE << EOF