Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
#! /bin/sh
. config/version
release=`echo "$pari_release"|sed 's/\./-/g'`
cat << EOT
;--- PARI/GP: NullSoft Installer configuration file
!include "MUI.nsh"
Name "PARI $pari_release_verbose"
!define dll "libpari.dll"
!define PARIver "Pari-$release"
EOT
cat << 'EOT'
;--No need to modify things below --
!define top ".."
!define cfgdir "${top}\config"
AutoCloseWindow false
RequestExecutionLevel highest
OutFile "Pari.exe"
InstallDir "$PROGRAMFILES\${PARIver}"
InstallDirRegKey HKLM "Software\${PARIver}" ""
!define MUI_ABORTWARNING
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "${top}\COPYING"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
!insertmacro MUI_LANGUAGE "English"
;--------------------------------
;Installer Sections
!define uninst "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PARIver}"
Section "pari (required)" SecCopy
SetOutPath "$INSTDIR"
File /oname=gp.exe "gp-dyn.exe"
File /oname=.gprc "${cfgdir}\cygwin-gprc"
File /oname=postinst "${cfgdir}\cygwin-postinst"
File "${top}\misc\tex2mail"
File "${dll}"
FILE "\cygwin\bin\cygcrypt-0.dll"
FILE "\cygwin\bin\cygiconv-2.dll"
FILE "\cygwin\bin\cygintl-8.dll"
File "\cygwin\bin\cyggmp-3.dll"
File "\cygwin\bin\cygncursesw-10.dll"
File "\cygwin\bin\cygreadline7.dll"
File "\cygwin\bin\cygperl5_10.dll"
File "\cygwin\bin\cyggcc_s-1.dll"
File "\cygwin\bin\cygssp-0.dll"
File "\cygwin\bin\cygwin1.dll"
File "\cygwin\bin\perl.exe"
File "\cygwin\bin\sh.exe"
File "\cygwin\bin\ln.exe"
SetOutPath "$INSTDIR\terminfo\c"
File /nonfatal "\cygwin\usr\share\terminfo\c\cygwin"
SetOutPath "$INSTDIR\terminfo\63"
File /nonfatal "\cygwin\usr\share\terminfo\63\cygwin"
SetOutPath "$INSTDIR"
CreateDirectory "$INSTDIR\..\bin"
ExecWait 'sh ./postinst'
Delete "ln.exe"
Delete "postinst"
WriteRegStr HKCU "Software\${PARIver}" "" $INSTDIR
WriteRegStr HKLM ${uninst} "DisplayName" "${PARIver} (remove only)"
WriteRegStr HKLM ${uninst} "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteUninstaller "$INSTDIR\Uninstall.exe"
SectionEnd
SectionGroup /e "Data files" SecDATA
Section "Elliptic curves files" SecELL
SetOutPath "$INSTDIR\data\elldata"
File "${top}\data\elldata\*"
SectionEnd
Section "Galois files" SecGAL
SetOutPath "$INSTDIR\data\galdata"
File "${top}\data\galdata\*"
SectionEnd
Section "Frobenius of elliptic curves files" SecSEA
SetOutPath "$INSTDIR\data\seadata"
File "${top}\data\seadata\*"
SectionEnd
Section "Galois polynomial files" SecGPL
SetOutPath "$INSTDIR\data\galpol"
File "${top}\data\galpol\*"
SectionEnd
SectionGroupEnd
Section "documentation" SecDOC
SetOutPath "$INSTDIR"
File "${top}\doc\gphelp"
SetOutPath $INSTDIR\doc
File "${top}\doc\translations"
File "${top}\doc\*.tex"
File "${top}\doc\*.pdf"
SectionEnd
Section "examples" SecEX
SetOutPath "$INSTDIR"
File "${top}\doc\gphelp"
SetOutPath $INSTDIR\examples
File "${top}\examples\EXPLAIN"
File "${top}\examples\Inputrc"
File "${top}\examples\*.gp"
File "${top}\examples\*.c"
File "${top}\examples\Makefile.cygwin-i686"
SectionEnd
Function .onInstSuccess
MessageBox MB_OK "Thank you for using PARI/GP! Double-click on 'gp' to start the calculator.$\r$\nTweak $INSTDIR\.gprc to customize GP: colors, script search path, etc."
ExecShell "open" "$INSTDIR"
FunctionEnd
!define short "$SMPROGRAMS\${PARIver}"
Section "shortcuts" SecSM
CreateDirectory "${short}"
CreateShortCut "${short}\gp.lnk" "$INSTDIR\gp.exe" "" "$INSTDIR\gp.exe" 0
CreateShortCut "${short}\users.lnk" "$INSTDIR\doc\users.pdf" "" "$INSTDIR\doc\users.pdf" 0
CreateShortCut "${short}\libpari.lnk" "$INSTDIR\doc\libpari.pdf" "" "$INSTDIR\doc\libpari.pdf" 0
CreateShortCut "${short}\tutorial.lnk" "$INSTDIR\doc\tutorial.pdf" "" "$INSTDIR\doc\tutorial.pdf" 0
CreateShortCut "${short}\refcard.lnk" "$INSTDIR\doc\refcard.pdf" "" "$INSTDIR\doc\refcard.pdf" 0
WriteINIStr "${short}\PARI pages.url" "InternetShortcut" "URL" "http://pari.math.u-bordeaux.fr"
CreateShortCut "${short}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
CreateShortCut "$DESKTOP\PARI.lnk" "$INSTDIR\gp.exe"
SectionEnd
;--------------------------------
;Descriptions
LangString DESC_SecCopy ${LANG_ENGLISH} "Copy pari files to application folder."
LangString DESC_DOC ${LANG_ENGLISH} "Install documentation and online help."
LangString DESC_EX ${LANG_ENGLISH} "Install sample GP scripts."
LangString DESC_DATA ${LANG_ENGLISH} "Data files pertaining to pari"
LangString DESC_ELL ${LANG_ENGLISH} "Install elliptic curves data files (for ellsearch and ellidentify)."
LangString DESC_GAL ${LANG_ENGLISH} "Install Galois data files (for polgalois in degree > 7)."
LangString DESC_SEA ${LANG_ENGLISH} "Install Modular polynomials (for ellap'SEA implementation)."
LangString DESC_GPL ${LANG_ENGLISH} "Install Galois polynomials data files (for galoisgetpol)."
LangString DESC_SM ${LANG_ENGLISH} "Add PARI shortcuts to Start Menu and desktop."
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecCopy} $(DESC_SecCopy)
!insertmacro MUI_DESCRIPTION_TEXT ${SecDATA} $(DESC_DATA)
!insertmacro MUI_DESCRIPTION_TEXT ${SecELL} $(DESC_ELL)
!insertmacro MUI_DESCRIPTION_TEXT ${SecGAL} $(DESC_GAL)
!insertmacro MUI_DESCRIPTION_TEXT ${SecSEA} $(DESC_SEA)
!insertmacro MUI_DESCRIPTION_TEXT ${SecGPL} $(DESC_GPL)
!insertmacro MUI_DESCRIPTION_TEXT ${SecSM} $(DESC_SM)
!insertmacro MUI_DESCRIPTION_TEXT ${SecDOC} $(DESC_DOC)
!insertmacro MUI_DESCRIPTION_TEXT ${SecEX} $(DESC_EX)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
;--------------------------------
Section "Uninstall"
Delete "$INSTDIR\gp.exe"
Delete "$INSTDIR\.gprc"
Delete "$INSTDIR\gphelp"
Delete "$INSTDIR\tex2mail"
Delete "$INSTDIR\${dll}"
Delete "$INSTDIR\cygcrypt-0.dll"
Delete "$INSTDIR\cygiconv-2.dll"
Delete "$INSTDIR\cygintl-8.dll"
Delete "$INSTDIR\cyggmp-3.dll"
Delete "$INSTDIR\cygncursesw-10.dll"
Delete "$INSTDIR\cygreadline7.dll"
Delete "$INSTDIR\cygperl5_10.dll"
Delete "$INSTDIR\cyggcc_s-1.dll"
Delete "$INSTDIR\cygssp-0.dll"
Delete "$INSTDIR\cygwin1.dll"
Delete "$INSTDIR\perl.exe"
Delete "$INSTDIR\sh.exe"
Delete "$INSTDIR\Uninstall.exe"
RMDir /r "$INSTDIR\doc"
RMDir /r "$INSTDIR\examples"
RMDir /r "$INSTDIR\data"
RMDir /r "$INSTDIR\terminfo"
DeleteRegKey HKLM ${uninst}
DeleteRegKey /ifempty HKLM "Software\${PARIver}"
RMDir /r "$SMPROGRAMS\${PARIver}"
Delete "$DESKTOP\PARI.lnk"
Delete "$INSTDIR\..\bin\sh"
RMDir "$INSTDIR\..\bin"
RMDir "$INSTDIR"
SectionEnd
EOT