changeset 3471:6a97f4d1dedb

installer: Add ref BLAS/OpenBLAS install option * Makefile.in: Add rule for ALL blas libraries * binary-dist-rules.mk: add blas packages to installed dependancies and copy libblas to refblas. * makeinst-script.sh: Add dropdown list to options page to select BLAS and set selected to libblas.dll. * installer-files/README.html: Add information on the BLAS libs.
author John Donoghue <john.donoghue@ieee.org>
date Tue, 28 Jan 2014 22:52:05 -0500
parents 22cf662c5584
children 3f500a3bf813
files Makefile.in binary-dist-rules.mk installer-files/README.html makeinst-script.sh
diffstat 4 files changed, 45 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.in	Tue Jan 28 18:23:35 2014 -0500
+++ b/Makefile.in	Tue Jan 28 22:52:05 2014 -0500
@@ -372,6 +372,8 @@
 OCTAVE_FORGE_BASE_URL := 'http://sourceforge.net/projects/octave/files/Octave Forge Packages/Individual Package Releases'
 OCTAVE_FORGE_PACKAGES := $(addprefix of-,miscellaneous struct optim specfun general signal communications image io statistics control geometry windows odepkg linear-algebra sockets zenity actuarial data-smoothing fuzzy-logic-toolkit quaternion fits fl-core tsa dicom)
 
+BLAS_PACKAGES := blas openblas
+
 MAKE_SHARED_FROM_STATIC := \
   $(TOP_DIR)/tools/make-shared-from-static $(MAKE_SHARED_FROM_STATIC_OPTIONS)
 
@@ -445,6 +447,9 @@
 .PHONY: octave-forge-packages
 octave-forge-packages: $(OCTAVE_FORGE_PACKAGES)
 
+.PHONY: blas-packages
+blas-packages: $(BLAS_PACKAGES)
+
 configure: configure.ac
 	autoconf
 
--- a/binary-dist-rules.mk	Tue Jan 28 18:23:35 2014 -0500
+++ b/binary-dist-rules.mk	Tue Jan 28 22:52:05 2014 -0500
@@ -20,6 +20,7 @@
 
 BINARY_DIST_DEPS := \
   $(OCTAVE_TARGET) \
+  blas-packages \
   octave-forge-packages \
   units \
   transfig \
@@ -88,6 +89,8 @@
     && tar -c $(TAR_H_OPTION) -f - notepad++ | ( cd $(OCTAVE_DIST_DIR) ; tar xpf - )
   echo "  README.html..."
   cp $(TOP_DIR)/installer-files/README.html $(OCTAVE_DIST_DIR)/
+  echo "  refblas..."
+  cp $(OCTAVE_DIST_DIR)/bin/libblas.dll $(OCTAVE_DIST_DIR)/bin/librefblas.dll
 endef
 endif
 
--- a/installer-files/README.html	Tue Jan 28 18:23:35 2014 -0500
+++ b/installer-files/README.html	Tue Jan 28 22:52:05 2014 -0500
@@ -24,6 +24,16 @@
 for more information about the release and how you can help us with
 GUI development and speed up the 4.0 release.
 </p>
+<h2>BLAS Library selection</h2>
+<p>
+During the install, a BLAS library was selected. The installer contains 2 BLAS implementations,
+the <a href="http://www.netlib.org/blas/">NetLib reference BLAS</a> and 
+<a href="http://www.openblas.net/">OpenBLAS</a>.
+</p>
+<p>
+Either can be selected after the install by copying librefblas.dll or libopenblas.dll 
+to libblas.dll in the bin folder of the Octave installation.
+</p>
 <h2>Included Octave Forge Packages</h2>
 <p>
 A number of Octave-forge packages have been included with this install Octave, 
--- a/makeinst-script.sh	Tue Jan 28 18:23:35 2014 -0500
+++ b/makeinst-script.sh	Tue Jan 28 22:52:05 2014 -0500
@@ -71,6 +71,12 @@
 
 ; custom dialogs
 !include nsDialogs.nsh
+!macro __DropList_GetCurSel CONTROL VAR
+        SendMessage \${CONTROL} \${CB_GETCURSEL} 0 0 \${VAR}
+!macroend
+
+!define DropList_GetCurSel \`!insertmacro __DropList_GetCurSel\`
+
 ; additional logic
 !include LogicLib.nsh
 
@@ -123,6 +129,8 @@
 Var InstallShortcutsCtrl
 Var RegisterOctaveFileType
 Var RegisterOctaveFileTypeCtrl
+Var InstallBlasLibCtrl
+Var InstallBlasLib
 
 Function octaveOptionsPage 
   Push \$0
@@ -145,6 +153,15 @@
   Pop \$RegisterOctaveFileTypeCtrl
   \${NSD_SetState} \$RegisterOctaveFileTypeCtrl \${BST_CHECKED}
 
+  \${NSD_CreateLabel} 0 70 110u 12u "BLAS library implementation:"
+  Pop \$0
+
+  \${NSD_CreateDropList} 120u 70 100u 80u ""
+  Pop \$InstallBlasLibCtrl
+  \${NSD_CB_AddString} \$InstallBlasLibCtrl "Reference BLAS"
+  \${NSD_CB_AddString} \$InstallBlasLibCtrl "OpenBLAS"
+  \${NSD_CB_SelectString} \$InstallBlasLibCtrl "Reference BLAS"
+
   !insertmacro MUI_HEADER_TEXT "Install Options" "Choose options for installing"
   nsDialogs::Show  
   Pop \$0
@@ -154,6 +171,7 @@
   \${NSD_GetState} \$InstallAllUsersCtrl \$InstallAllUsers
   \${NSD_GetState} \$InstallShortcutsCtrl \$InstallShortcuts
   \${NSD_GetState} \$RegisterOctaveFileTypeCtrl \$RegisterOctaveFileType
+  \${DropList_GetCurSel} \$InstallBlasLibCtrl \$InstallBlasLib
 FunctionEnd
 
 ######################################################################
@@ -244,6 +262,15 @@
     CreateShortCut "\$desktop\\Octave-$VERSION (Experimental GUI).lnk" "\$INSTDIR\\bin\\octave-gui.exe" "" "\$INSTDIR\\$ICON" 0
   \${Endif}
 
+  ; BLAS set up
+  \${If} \$InstallBlasLib == 1
+    ; OpenBLAS
+    CopyFiles /SILENT "\$INSTDIR\\bin\\libopenblas.dll" "\$INSTDIR\\bin\\libblas.dll"
+  \${Else}
+    ; Reference BLAS
+    CopyFiles /SILENT "\$INSTDIR\\bin\\librefblas.dll" "\$INSTDIR\\bin\\libblas.dll"
+  \${EndIf}
+
 SectionEnd
 
 Section "FileTypeRego"