From: <lin...@us...> - 2008-09-24 20:11:34
|
Revision: 5311 http://octave.svn.sourceforge.net/octave/?rev=5311&view=rev Author: lindnerb Date: 2008-09-24 20:11:28 +0000 (Wed, 24 Sep 2008) Log Message: ----------- update to octave 3.0.2, add octave-forge build scripts, add new nsi installer script template Modified Paths: -------------- trunk/octave-forge/admin/Windows/mingw32/gcc43_common.sh trunk/octave-forge/admin/Windows/mingw32/gcc43_version.sh Added Paths: ----------- trunk/octave-forge/admin/Windows/mingw32/gcc43_build_forge.sh trunk/octave-forge/admin/Windows/mingw32/gcc43_create_package.sh trunk/octave-forge/admin/Windows/mingw32/octave.nsi.in Added: trunk/octave-forge/admin/Windows/mingw32/gcc43_build_forge.sh =================================================================== --- trunk/octave-forge/admin/Windows/mingw32/gcc43_build_forge.sh (rev 0) +++ trunk/octave-forge/admin/Windows/mingw32/gcc43_build_forge.sh 2008-09-24 20:11:28 UTC (rev 5311) @@ -0,0 +1,111 @@ +#!/usr/bin/sh + +source gcc43_common.sh +source gcc43_pkg_version.sh + + +# the packages installed +# in the form <package-name>-<version> +FORGEPACK="\ +general-1.0.7 \ +miscellaneous-1.0.7 \ +time-1.0.8 \ +optim-1.0.4 \ +signal-1.0.8 \ +audio-1.1.2 \ +benchmark-1.0.0 \ +bioinfo-0.1.1 \ +combinatorics-1.0.7 \ +communications-1.0.8 \ +control-1.0.7 \ +data-smoothing-1.1.1 \ +econometrics-1.0.7 \ +financial-0.3.0 \ +ga-0.9.4 \ +gsl-1.0.7 \ +ident-1.0.6 \ +image-1.0.8 \ +informationtheory-0.1.6 \ +io-1.0.7 \ +irsa-1.0.6 \ +linear-algebra-1.0.6 \ +missing-functions-1.0.1 \ +nnet-0.1.8 \ +odebvp-1.0.5 \ +odepkg-0.6.4 \ +optiminterp-0.3.1 \ +outliers-0.13.8 \ +physicalconstants-0.1.6 \ +plot-1.0.6 \ +sockets-1.0.5 \ +specfun-1.0.7 \ +special-matrix-1.0.6 \ +splines-1.0.6 \ +statistics-1.0.7 \ +strings-1.0.6 \ +struct-1.0.6 \ +vrml-1.0.7 \ +zenity-0.5.6 \ +fixed-0.7.8 \ +windows-1.0.6 \ +mapping-1.0.6 \ +integration-1.0.6 +" + +# OPTIM depends on MISCELLANEOUS +# SIGNAL depends on OPTIM +# COMMUNICATIONS depends on SIGNAL +# FINANCIAL depends on TIME + +# ann fixed parallel symbolic video ftp database octcdf + +# FTP requires ftplib +# IMAGE should find imagemagick +# DATABASE requires sql +# OCTCDF requires netcdf +# VIDEO requires pkg-config, libavcodec +# SYMBOLIC requires GINAC +# OPTIMINTERP requires the fortran libaries in FLIB <= **DONE!** +# DATA-SMOOTHING requires OPTIM + +AUTO="-auto" + +# path to forge packages source code +FORGESRCDIR='forge' + +# installation root path for m-files +FORGE_M_ROOT=${PACKAGE_ROOT}/share/octave/packages/ +# installation root path for .oct files +FORGE_OCT_ROOT=${PACKAGE_ROOT}/libexec/octave/packages/ + +FORGELOG=forge.log + +echo Installing forge packages for octave ${VER_OCTAVE} > ${FORGELOG} +echo The following packages are installed: >> ${FORGELOG} +for a in ${FORGEPACK}; do + echo " $a">>${FORGELOG} +done + +for a in $FORGEPACK; do + # the package under process + PACK=$a + + if [ -d ${FORGE_M_ROOT}/$PACK -o -d ${FORGE_OCT_ROOT}/$PACK ]; then + echo Forge Package "${PACK}" is already installed... + echo Forge Package "${PACK}" is already installed...>>${FORGELOG} + else + echo installing package "${PACK}" ... + + "${PACKAGE_ROOT}/bin/octave.exe" -q -f -H --eval "page_screen_output(0); pkg install -verbose ${AUTO} ${FORGESRCDIR}\\${PACK}.tar.gz" + + if [ -d ${FORGE_M_ROOT}/$PACK ]; then + echo Successfully installed $PACK >> ${FORGELOG} + else + echo ERROR INSTALLING PACKAGE $PACK >> ${FORGELOG} + fi + + if [ -d ${FORGE_OCT_ROOT}/$PACK ]; then + find ${FORGE_OCT_ROOT}/$PACK -name "*.oct" -exec strip ${STRIP_FLAGS} '{}' \; + fi + fi +done Modified: trunk/octave-forge/admin/Windows/mingw32/gcc43_common.sh =================================================================== --- trunk/octave-forge/admin/Windows/mingw32/gcc43_common.sh 2008-09-24 20:09:46 UTC (rev 5310) +++ trunk/octave-forge/admin/Windows/mingw32/gcc43_common.sh 2008-09-24 20:11:28 UTC (rev 5311) @@ -257,7 +257,12 @@ substvars() { echo Making $2 from $1 ... - ${SED} -e "s+@SRCDIR@+${TOPDIR}/${SRCDIR}+" \ + ${SED} \ + -e "s+@SRCDIR@+${TOPDIR}/${SRCDIR}+" \ + -e "s+@TOPDIR@+${TOPDIR}+" \ + -e "s+@GCC_VER@+${GCC_VER}+" \ + -e "s+@GCC_SYS@+${GCC_SYS}+" \ + -e "s+@REL@+${REL}+" \ $1 > $2 } substvars_post() { echo ; } Added: trunk/octave-forge/admin/Windows/mingw32/gcc43_create_package.sh =================================================================== --- trunk/octave-forge/admin/Windows/mingw32/gcc43_create_package.sh (rev 0) +++ trunk/octave-forge/admin/Windows/mingw32/gcc43_create_package.sh 2008-09-24 20:11:28 UTC (rev 5311) @@ -0,0 +1,109 @@ +#!/usr/bin/sh + +# This packages OCTAVE MINGW32 + +source gcc43_common.sh +source gcc43_pkg_version.sh + +# Name of the package we're building +PKG=octave-${PKG_VER}-${PKG_REL}_i686-pc-mingw32_gcc${GCC_VER}${GCC_SYS} +# Version of the package +#VER=${PKG_VER} +# Release No +#REL=${PKG_REL} +# URL to source code +URL= + +# --------------------------- +# The directory this script is located +# Make sure that we have a MSYS patch starting with a drive letter! +TOPDIR=`pwd -W | sed -e 's+^\([a-zA-z]\):/+/\1/+'` +# Name of the source package +PKGNAME=${PKG} +# Full package name including revision +FULLPKG=${PKGNAME} +# Name of the source code package +#SRCPKG=${PKGNAME} +# Name of the patch file +#PATCHFILE=${FULLPKG}.diff +# Name of the source code file +#SRCFILE=${PKGNAME}.tar.bz2 +# Directory where the source code is located +#SRCDIR=${TOPDIR}/${PKGNAME} +PKGFILE=${FULLPKG} + +SRCES="${PACKAGE_ROOT}/bin \ +${PACKAGE_ROOT}/doc \ +${PACKAGE_ROOT}/include \ +${PACKAGE_ROOT}/info \ +${PACKAGE_ROOT}/lib \ +${PACKAGE_ROOT}/libexec \ +${PACKAGE_ROOT}/man \ +${PACKAGE_ROOT}/share \ +${PACKAGE_ROOT}/mingw32 \ +${PACKAGE_ROOT}/msys \ +${PACKAGE_ROOT}/tools \ +${PACKAGE_ROOT}/license" + +# create zip package +#"${SEVENZIP}" $SEVENZIP_FLAGS ${TOPDIR}/${PKGFILE}.7z $SRCES + +WPACKAGE_ROOT=`cd ${PACKAGE_ROOT}; pwd -W | sed -e 's+/+\\\\\\\\+g'` + +echo WPACKAGE_ROOT=$WPACKAGE_ROOT + +rm -rf octave_nsi.log + +create_octave_forge_deps_nsi() +{ + # Create Dependency checks + DF=`find ${PACKAGE_ROOT}/share/octave/packages/ -name DESCRIPTION` + + for a in $DF; do + PACK=`echo $a | sed -e "s/^.*packages\/\([a-zA-Z]\+\)-.*$/\1/"` + sed -ne "s/^[dD]epends: *//p" $a | \ + awk -F ', ' '{c=split($0, s); for(n=1; n<=c; ++n) printf("%s\n", s[n]) }' | \ + sed -n -e "s/^octave.*$//" -e "s/^\([a-zA-Z0-9_]\+\).*$/\!insertmacro CheckDependency \${SEC_FORGE_${PACK}} \${SEC_FORGE_\1}/p" + done +} + +create_octave_forge_nsi() +{ + DF=`find ${PACKAGE_ROOT}/share/octave/packages/ -maxdepth 1 -mindepth 1` + + for a in $DF; do + PACKNAME=`echo $a | sed -ne "s+^.*/\(.\+\)-\([0-9]\.[0-9]\.[0-9]\)$+\1+p"` + PACKVER=`echo $a | sed -ne "s+^.*/\(.\+\)-\([0-9]\.[0-9]\.[0-9]\)$+\2+p"` + + PACKNAMEVER=$PACKNAME-$PACKVER + + echo Section /o \"$PACKNAME\" SEC_FORGE_$PACKNAME + echo; + + if [ -d ${PACKAGE_ROOT}/share/octave/packages/$PACKNAMEVER ]; then + echo " SetOutPath \"\$INSTDIR\\share\\octave\\packages\\$PACKNAMEVER\"" + echo " File /r \"\${PACKAGE_ROOT}\\share\\octave\\packages\\$PACKNAMEVER\\*.*\"" + fi + if [ -d ${PACKAGE_ROOT}/libexec/octave/packages/$PACKNAMEVER ]; then + echo " SetOutPath \"\$INSTDIR\\libexec\\octave\\packages\\$PACKNAMEVER\"" + echo " File /r \"\${PACKAGE_ROOT}\\libexec\\octave\\packages\\$PACKNAMEVER\\*.*\"" + fi + + echo; + echo SectionEnd + echo; + + done +} + +create_octave_forge_nsi > octave_forge.nsi +create_octave_forge_deps_nsi > octave_forge_deps.nsi + +# create installer package +sed \ + -e "s/@OCTAVE_VERSION@/${PKG_VER}/" \ + -e "s/@OCTAVE_RELEASE@/${PKG_REL}/" \ + -e "s/@GCC_VERSION@/${GCC_VER}/" \ + -e "s+@PACKAGE_ROOT@+${WPACKAGE_ROOT}+" \ + octave.nsi.in > octave.nsi +${MAKENSIS} octave.nsi | tee octave_nsi.log Modified: trunk/octave-forge/admin/Windows/mingw32/gcc43_version.sh =================================================================== --- trunk/octave-forge/admin/Windows/mingw32/gcc43_version.sh 2008-09-24 20:09:46 UTC (rev 5310) +++ trunk/octave-forge/admin/Windows/mingw32/gcc43_version.sh 2008-09-24 20:11:28 UTC (rev 5311) @@ -1,4 +1,4 @@ #!/usr/bin/sh # The version of Octave currently under build -VER_OCTAVE=3.0.1-3 \ No newline at end of file +VER_OCTAVE=3.0.2-3 \ No newline at end of file Added: trunk/octave-forge/admin/Windows/mingw32/octave.nsi.in =================================================================== --- trunk/octave-forge/admin/Windows/mingw32/octave.nsi.in (rev 0) +++ trunk/octave-forge/admin/Windows/mingw32/octave.nsi.in 2008-09-24 20:11:28 UTC (rev 5311) @@ -0,0 +1,490 @@ +# Octave NSIS Installation script + +!define OCTAVE_VERSION "@OCTAVE_VERSION@" +!define OCTAVE_RELEASE "@OCTAVE_RELEASE@" +!define GCC_VERSION "@GCC_VERSION@" +!define PACKAGE_ROOT "@PACKAGE_ROOT@" + +!define PRODUCT_NAME "GNU Octave" +!define PRODUCT_VERSION "${OCTAVE_VERSION}" + +;!define SMFOLDERNAME "GNU Octave ${OCTAVE_VERSION}" + +!include MUI2.nsh + +SetCompressor /SOLID lzma +SetCompressorDictSize 16 +SetDatablockOptimize on + +; This file is required on startup of installer +; to detect the CPU features present on the target system +; and to select the ATLAS library section accordingly +ReserveFile "${PACKAGE_ROOT}\bin\cpufeature.exe" + +; Welcome Page +!insertmacro MUI_PAGE_WELCOME + +; License page +!define MUI_LICENSEPAGE_TEXT_BOTTOM "Click Next to continue." +!define MUI_LICENSEPAGE_BUTTON "Next >" +!insertmacro MUI_PAGE_LICENSE "..\..\..\COPYING.GPL" + +; Detect CPU Type +; Page custom DetectCPUType + +; Directory page +!insertmacro MUI_PAGE_DIRECTORY + +; Components page +!define MUI_COMPONENTSPAGE_TEXT_TOP "Review the components that will be installed. Click Install to start the installation." +!define MUI_COMPONENTSPAGE_TEXT_COMPLIST "Review the components that will be installed.$\r$\nMIND: The appropriate ATLAS Libraries for this machine have already been selected by the installer.$\r$\nCHANGE ONLY WITH CAUTION" + +; The default text +;!define MUI_COMPONENTSPAGE_TEXT_TOP "Check the components you want to install an duncheck the components you don't want to install. Click Install to start the installation" +;!define MUI_COMPONENTSPAGE_TEXT_COMPLIST "Select components to install" + +!define MUI_PAGE_CUSTOMFUNCTION_LEAVE componentsLeave + +!insertmacro MUI_PAGE_COMPONENTS + +; Start menu page +var SMFOLDERNAME +;!define MUI_STARTMENUPAGE_NODISABLE +!define MUI_STARTMENUPAGE_DEFAULTFOLDER "GNU Octave ${OCTAVE_VERSION}" +;!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}" +;!define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}" +;!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${PRODUCT_STARTMENU_REGVAL}" +!insertmacro MUI_PAGE_STARTMENU "Startmenu" $SMFOLDERNAME + +; Instfiles page +!insertmacro MUI_PAGE_INSTFILES + +; Finish Page +!insertmacro MUI_PAGE_FINISH + +; Uninstaller pages +!insertmacro MUI_UNPAGE_WELCOME +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES +!insertmacro MUI_UNPAGE_FINISH + +; Language files +!insertmacro MUI_LANGUAGE "English" + +Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" + +OutFile "Octave-${OCTAVE_VERSION}-${OCTAVE_RELEASE}_i686-pc-mingw32_gcc${GCC_VERSION}_setup.exe" + +InstallDir "$PROGRAMFILES\Octave\${OCTAVE_VERSION}_gcc${GCC_VERSION}" + +ShowInstDetails show + +ShowUnInstDetails show + +XPStyle off + +ComponentText + +Function SetUserContext + + Push $0 + ClearErrors + UserInfo::GetName + IfErrors noadmin + UserInfo::GetAccountType + Pop $0 + StrCmp $0 "Admin" admin noadmin +admin: + SetShellVarContext all + Goto done +noadmin: + SetShellVarContext current + Goto done +done: + Pop $0 + +FunctionEnd + +Function un.SetUserContext + + Push $0 + ClearErrors + UserInfo::GetName + IfErrors noadmin + UserInfo::GetAccountType + Pop $0 + StrCmp $0 "Admin" admin noadmin +admin: + SetShellVarContext all + Goto done +noadmin: + SetShellVarContext current + Goto done +done: + Pop $0 + +FunctionEnd + +Section "Octave" SEC_OCTAVE + + ; octave executables + SetOutPath "$INSTDIR\bin" + File /r /x blas.dll /x cblas.dll /x lapack.dll "${PACKAGE_ROOT}\bin\*.*" + + SetOutPath "$INSTDIR\doc" + File /r "${PACKAGE_ROOT}\doc\*.*" + SetOutPath "$INSTDIR\include" + File /r "${PACKAGE_ROOT}\include\*.*" + ;SetOutPath "$INSTDIR\info" + ;File /r "${PACKAGE_ROOT}\share\info\*.*" + SetOutPath "$INSTDIR\lib" + File /r /x libblas.dll.a /x libcblas.dll.a /x liblapack.dll.a "${PACKAGE_ROOT}\lib\*.*" + SetOutPath "$INSTDIR\libexec" + File /r /x packages "${PACKAGE_ROOT}\libexec\*.*" + SetOutPath "$INSTDIR\license" + File /r "${PACKAGE_ROOT}\license\*.*" + ;SetOutPath "$INSTDIR\man" + ;File /r "${PACKAGE_ROOT}\man\*.*" + SetOutPath "$INSTDIR\mingw32" + File /r "${PACKAGE_ROOT}\mingw32\*.*" + SetOutPath "$INSTDIR\MSYS" + File /r "${PACKAGE_ROOT}\MSYS\*.*" + SetOutPath "$INSTDIR\share" + File /r /x packages /x octave_packages "${PACKAGE_ROOT}\share\*.*" + SetOutPath "$INSTDIR\staticlib" + File /r /x libblas.a /x libcblas.a /x liblapack.a "${PACKAGE_ROOT}\staticlib\*.*" + SetOutPath "$INSTDIR\tools" + File /r "${PACKAGE_ROOT}\tools\*.*" + + ; Shortcut's "Start In" Property ssems to be defined by the current output path... + SetOutPath "$INSTDIR\bin" + + ; Shortcuts + !insertmacro MUI_STARTMENU_WRITE_BEGIN Startmenu + CreateDirectory "$SMPROGRAMS\$SMFOLDERNAME" + CreateShortCut "$SMPROGRAMS\$SMFOLDERNAME\Octave.lnk" "$INSTDIR\bin\octave-${OCTAVE_VERSION}.exe" "" "$INSTDIR\bin\octave.ico" 0 + CreateShortCut "$SMPROGRAMS\$SMFOLDERNAME\WGnuplot.lnk" "$INSTDIR\bin\wgnuplot.exe" + CreateShortCut "$SMPROGRAMS\$SMFOLDERNAME\Notepad++.lnk" "$INSTDIR\tools\notepad++\notepad++.exe" + CreateShortCut "$SMPROGRAMS\$SMFOLDERNAME\Uninstall.lnk" "$INSTDIR\uninstaller.exe" + + CreateDirectory "$SMPROGRAMS\$SMFOLDERNAME\Documentation" + CreateDirectory "$SMPROGRAMS\$SMFOLDERNAME\Documentation\PDF" + CreateDirectory "$SMPROGRAMS\$SMFOLDERNAME\Documentation\HTML" + + CreateShortCut "$SMPROGRAMS\$SMFOLDERNAME\Documentation\Gnuplot.lnk" "$INSTDIR\doc\gnuplot\gnuplot.pdf" + + CreateShortCut "$SMPROGRAMS\$SMFOLDERNAME\Documentation\PDF\Octave.lnk" "$INSTDIR\doc\pdf\octave.pdf" + CreateShortCut "$SMPROGRAMS\$SMFOLDERNAME\Documentation\PDF\FAQ.lnk" "$INSTDIR\doc\pdf\octave-faq.pdf" + CreateShortCut "$SMPROGRAMS\$SMFOLDERNAME\Documentation\PDF\Quick Reference Card.lnk" "$INSTDIR\doc\pdf\refcard-a4.pdf" + CreateShortCut "$SMPROGRAMS\$SMFOLDERNAME\Documentation\PDF\Octave C++ API.lnk" "$INSTDIR\doc\pdf\liboctave.pdf" + + CreateShortCut "$SMPROGRAMS\$SMFOLDERNAME\Documentation\HTML\Octave.lnk" "$INSTDIR\doc\HTML\interpreter\index.html" + CreateShortCut "$SMPROGRAMS\$SMFOLDERNAME\Documentation\HTML\Octave C++ API.lnk" "$INSTDIR\doc\HTML\liboctave\index.html" + CreateShortCut "$SMPROGRAMS\$SMFOLDERNAME\Documentation\HTML\FAQ.lnk" "$INSTDIR\doc\HTML\faq\Octave-FAQ.html" + + CreateShortCut "$DESKTOP\Octave.lnk" "$INSTDIR\bin\octave-${OCTAVE_VERSION}.exe" "" "$INSTDIR\bin\octave.ico" 0 + + ; write some reg settings to have nice default look-and-feel + + WriteRegStr HKCU "Console\Octave" "FaceName" "Lucida Console" + WriteRegDWORD HKCU "Console\Octave" "FontFamily" 0x36 + WriteRegDWORD HKCU "Console\Octave" "FontSize" 0x000c0000 + WriteRegDWORD HKCU "Console\Octave" "FontWeight" 0x190 + WriteRegDWORD HKCU "Console\Octave" "FullScreen" 0x0 + WriteRegDWORD HKCU "Console\Octave" "InsertMode" 0x1 + WriteRegDWORD HKCU "Console\Octave" "QuickEdit" 0x1 + WriteRegDWORD HKCU "Console\Octave" "ScreenBufferSize" 0x0bb80078 + WriteRegDWORD HKCU "Console\Octave" "WindowSize" 0x00280078 + + !insertmacro MUI_STARTMENU_WRITE_END + + ; Uninstaller + WriteUninstaller $INSTDIR\uninstaller.exe + +SectionEnd + +#SectionGroup /e "Tools" SRCGRP_TOOLS + +#Section "Notepad++" SEC_NOTEPADPP +# SetOutPath "$INSTDIR\tools\notepad++" +# File /r "${PACKAGE_ROOT}\tools\notepad++\*.*" +#SectionEnd + +#Section "MinGW32" SEC_MINGW32 +# SetOutPath "$INSTDIR\mingw32" +# File /r "${PACKAGE_ROOT}\tools\mingw32\*.*" +#SectionEnd + +#Section "MSYS" SEC_MSYS +# SetOutPath "$INSTDIR\MSYS" +# File /r "${PACKAGE_ROOT}\tools\MSYS\*.*" +#SectionEnd + +#SectionGroupEnd + +SectionGroup /e "ATLAS Libraries" SECGRP_ATLAS + +Section /o "Generic" SEC_ATLAS_GENERIC + + SetOutPath "$INSTDIR\bin" + File "${PACKAGE_ROOT}\bin\blas.dll" + File "${PACKAGE_ROOT}\bin\cblas.dll" + File "${PACKAGE_ROOT}\bin\lapack.dll" + SetOutPath "$INSTDIR\lib" + File "${PACKAGE_ROOT}\lib\libblas.dll.a" + File "${PACKAGE_ROOT}\lib\libcblas.dll.a" + File "${PACKAGE_ROOT}\lib\liblapack.dll.a" + SetOutPath "$INSTDIR\staticlib" + File "${PACKAGE_ROOT}\staticlib\libblas.a" + File "${PACKAGE_ROOT}\staticlib\libcblas.a" + File "${PACKAGE_ROOT}\staticlib\liblapack.a" + +SectionEnd + +Section /o "MMX (PII)" SEC_ATLAS_P2 + + SetOutPath "$INSTDIR\bin" + File "${PACKAGE_ROOT}\ATLAS\ARCH_P2\bin\*.*" + SetOutPath "$INSTDIR\lib" + File "${PACKAGE_ROOT}\ATLAS\ARCH_P2\lib\*.*" + SetOutPath "$INSTDIR\staticlib" + File "${PACKAGE_ROOT}\ATLAS\ARCH_P2\staticlib\*.*" + +SectionEnd + +Section /o "SSE (PIII)" SEC_ATLAS_P3 + + SetOutPath "$INSTDIR\bin" + File "${PACKAGE_ROOT}\ATLAS\ARCH_P3\bin\*.*" + SetOutPath "$INSTDIR\lib" + File "${PACKAGE_ROOT}\ATLAS\ARCH_P3\lib\*.*" + SetOutPath "$INSTDIR\staticlib" + File "${PACKAGE_ROOT}\ATLAS\ARCH_P3\staticlib\*.*" + +SectionEnd + +Section /o "SSE2 (P4)" SEC_ATLAS_P4 + + SetOutPath "$INSTDIR\bin" + File "${PACKAGE_ROOT}\ATLAS\ARCH_P4SSE2\bin\*.*" + SetOutPath "$INSTDIR\lib" + File "${PACKAGE_ROOT}\ATLAS\ARCH_P4SSE2\lib\*.*" + SetOutPath "$INSTDIR\staticlib" + File "${PACKAGE_ROOT}\ATLAS\ARCH_P4SSE2\staticlib\*.*" + +SectionEnd + +Section /o "SSE3 (Core2Duo)" SEC_ATLAS_CORE2DUO + + SetOutPath "$INSTDIR\bin" + File "${PACKAGE_ROOT}\ATLAS\ARCH_Core2Duo\bin\*.*" + SetOutPath "$INSTDIR\lib" + File "${PACKAGE_ROOT}\ATLAS\ARCH_Core2Duo\lib\*.*" + SetOutPath "$INSTDIR\staticlib" + File "${PACKAGE_ROOT}\ATLAS\ARCH_Core2Duo\staticlib\*.*" + +SectionEnd + +#Section /o "ATLAS_PD" SEC_ATLAS_PENTIUMD +# +# SetOutPath "$INSTDIR\bin" +# File "${PACKAGE_ROOT}\ATLAS\ARCH_PentiumD\bin\*.*" +# SetOutPath "$INSTDIR\lib" +# File "${PACKAGE_ROOT}\ATLAS\ARCH_PentiumD\lib\*.*" +# SetOutPath "$INSTDIR\staticlib" +# File "${PACKAGE_ROOT}\ATLAS\ARCH_PentiumD\staticlib\*.*" +# +#SectionEnd + +SectionGroupEnd + +SectionGroup /e "Octave Forge" SECGRP_FORGE + +!include octave_forge.nsi + +SectionGroupEnd + +Section Uninstall + + !insertmacro MUI_STARTMENU_GETFOLDER "Startmenu" $SMFOLDERNAME + + Delete "$DESKTOP\Octave.lnk" + + Delete "$SMPROGRAMS\$SMFOLDERNAME\Octave.lnk" + Delete "$SMPROGRAMS\$SMFOLDERNAME\WGnuplot.lnk" + Delete "$SMPROGRAMS\$SMFOLDERNAME\Notepad++.lnk" + Delete "$SMPROGRAMS\$SMFOLDERNAME\Uninstall.lnk" + + Delete "$SMPROGRAMS\$SMFOLDERNAME\Documentation\Gnuplot.lnk" + + Delete "$SMPROGRAMS\$SMFOLDERNAME\Documentation\PDF\Octave.lnk" + Delete "$SMPROGRAMS\$SMFOLDERNAME\Documentation\PDF\FAQ.lnk" + Delete "$SMPROGRAMS\$SMFOLDERNAME\Documentation\PDF\Quick Reference Card.lnk" + Delete "$SMPROGRAMS\$SMFOLDERNAME\Documentation\PDF\Octave C++ API.lnk" + + Delete "$SMPROGRAMS\$SMFOLDERNAME\Documentation\HTML\Octave.lnk" + Delete "$SMPROGRAMS\$SMFOLDERNAME\Documentation\HTML\Octave C++ API.lnk" + Delete "$SMPROGRAMS\$SMFOLDERNAME\Documentation\HTML\FAQ.lnk" + + + RMDir "$SMPROGRAMS\$SMFOLDERNAME\Documentation\HTML" + RMDir "$SMPROGRAMS\$SMFOLDERNAME\Documentation\PDF" + RMDir "$SMPROGRAMS\$SMFOLDERNAME\Documentation" + RMDir "$SMPROGRAMS\$SMFOLDERNAME" + + RMDir /r "$INSTDIR" + +SectionEnd + +; http://download.intel.com/design/processor/applnots/24161832.pdf + +Function checkCPUfeature + +checksse3: + StrCpy $1 0 + ExecWait '"$TEMP\cpufeature.exe" -f sse3' $1 + StrCmp $1 1 0 checksse2 + !insertmacro SetSectionFlag ${SEC_ATLAS_CORE2DUO} ${SF_SELECTED} + StrCpy $9 ${SEC_ATLAS_CORE2DUO} + goto cpuend +checksse2: + StrCpy $1 0 + ExecWait '"$TEMP\cpufeature.exe" -f sse2' $1 + StrCmp $1 1 0 checksse + !insertmacro SetSectionFlag ${SEC_ATLAS_P4} ${SF_SELECTED} + StrCpy $9 ${SEC_ATLAS_P4} + goto cpuend +checksse: + StrCpy $1 0 + ExecWait '"$TEMP\cpufeature.exe" -f sse' $1 + StrCmp $1 1 0 checkmmx + !insertmacro SetSectionFlag ${SEC_ATLAS_P3} ${SF_SELECTED} + StrCpy $9 ${SEC_ATLAS_P3} + goto cpuend +checkmmx: + StrCpy $1 0 + ExecWait '"$TEMP\cpufeature.exe" -f mmx' $1 + StrCmp $1 1 0 setgeneric + !insertmacro SetSectionFlag ${SEC_ATLAS_P2} ${SF_SELECTED} + StrCpy $9 ${SEC_ATLAS_P2} + goto cpuend +setgeneric: + !insertmacro SetSectionFlag ${SEC_ATLAS_GENERIC} ${SF_SELECTED} + StrCpy $9 ${SEC_ATLAS_GENERIC} +cpuend: + +FunctionEnd + +Function .onSelChange + + !insertmacro StartRadioButtons $9 + !insertmacro RadioButton ${SEC_ATLAS_GENERIC} + !insertmacro RadioButton ${SEC_ATLAS_P2} + !insertmacro RadioButton ${SEC_ATLAS_P3} + !insertmacro RadioButton ${SEC_ATLAS_P4} + !insertmacro RadioButton ${SEC_ATLAS_CORE2DUO} + !insertmacro EndRadioButtons + +FunctionEnd + +Function .onInit + + Call DetectWinVer + + File /oname=$TEMP\cpufeature.exe "${PACKAGE_ROOT}\bin\cpufeature.exe" + Call checkCPUfeature + + !insertmacro SetSectionFlag ${SEC_OCTAVE} ${SF_RO} + + Call SetUserContext + +FunctionEnd + +Function un.onInit + + Call un.SetUserContext + +FunctionEnd + +Function DetectWinVer + Push $0 + Push $1 + ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion + IfErrors is_error is_winnt +is_winnt: + StrCpy $1 $0 1 + StrCmp $1 6 is_winxp + StrCmp $1 5 0 is_error + StrCmp $0 "5.0" is_win2k + StrCmp $0 "5.1" is_winxp + StrCmp $0 "5.2" is_winxp64 + Goto is_error +is_win2k: + Goto done +is_winxp64: +is_winxp: + Goto done +is_error: + StrCpy $1 $0 + ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" ProductName + IfErrors 0 +4 + ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion" Version + IfErrors 0 +2 + StrCpy $0 "Unknown" + MessageBox MB_ICONSTOP|MB_OK "This version of Octave cannot be installed on this system.$\r$\nSupported systems are Windows 2000 and Windows XP.$\r$\n$\r$\nCurrent system: $0 (version: $1)" + Abort +done: + Pop $1 + Pop $0 +FunctionEnd + +Var DEP_FLAG + +!macro CheckDependency pack1 pack2 + Push ${pack1} + Push ${pack2} + Call CheckDependency +!macroend + +Function CheckDependency + Exch $1 + Exch + Exch $0 + !insertmacro SectionFlagIsSet $0 ${SF_SELECTED} 0 done + !insertmacro SectionFlagIsSet $1 ${SF_SELECTED} done "" + StrCpy $DEP_FLAG 1 + !insertmacro SetSectionFlag $1 ${SF_SELECTED} +done: + Pop $0 + Pop $1 +FunctionEnd + +Function componentsLeave + + StrCpy $DEP_FLAG 0 + + # Check dependencies and ensure selection of required packages + !include "octave_forge_deps.nsi" + + StrCmp $DEP_FLAG 0 +2 + MessageBox MB_OK|MB_ICONINFORMATION "Some components were automatically selected to satisfy dependencies" + +FunctionEnd + +Section -Post + + ExecWait '"$INSTDIR\bin\octave.exe" -qfH --eval "pkg rebuild"' + +SectionEnd + + +; Section descriptions +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_OCTAVE} "Octave core files & libraries, dependency libraries, development files, mingw32 gcc, MSYS environment, notepad++ text editor and gnuplot" + !insertmacro MUI_DESCRIPTION_TEXT ${SECGRP_ATLAS} "Linear Algebra Libraries" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_ATLAS_GENERIC} "Generic BLAS+LAPACK. Works on all systems" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_ATLAS_P2} "BLAS+LAPACK with MMX. Works on Pentium II" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_ATLAS_P3} "BLAS+LAPACK with SSE. Works on Pentium III" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_ATLAS_P4} "BLAS+LAPACK with SSE2. Works on e.g. Pentium 4" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_ATLAS_CORE2DUO} "BLAS+LAPACK with SSE3. Works on e.g. Core2Duo, Pentium D, Pentium 4E" +!insertmacro MUI_FUNCTION_DESCRIPTION_END This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |