1#! /bin/sh
2. config/version
3bitsize=$1
4release=`echo "$pari_release"|sed  's/\./-/g'`
5cat << EOT
6;--- PARI/GP: NullSoft Installer configuration file
7!include "MUI.nsh"
8Name "PARI $pari_release_verbose (${bitsize}bit)"
9!define dll "libpari.dll"
10!define PARIver "Pari$bitsize-$release"
11EOT
12cat << 'EOT'
13!define top ".."
14!define tree "..\mingw"
15AutoCloseWindow false
16RequestExecutionLevel highest
17
18OutFile "..\${PARIver}.exe"
19InstallDir "$PROGRAMFILES\${PARIver}"
20InstallDirRegKey HKLM "Software\${PARIver}" ""
21
22!define MUI_ABORTWARNING
23
24!insertmacro MUI_PAGE_WELCOME
25!insertmacro MUI_PAGE_LICENSE "${top}\COPYING"
26!insertmacro MUI_PAGE_COMPONENTS
27!insertmacro MUI_PAGE_DIRECTORY
28!insertmacro MUI_PAGE_INSTFILES
29!insertmacro MUI_PAGE_FINISH
30
31!insertmacro MUI_UNPAGE_WELCOME
32!insertmacro MUI_UNPAGE_CONFIRM
33!insertmacro MUI_UNPAGE_INSTFILES
34!insertmacro MUI_UNPAGE_FINISH
35
36!insertmacro MUI_LANGUAGE "English"
37;--------------------------------
38;Installer Sections
39
40!define uninst "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PARIver}"
41
42Section "pari (required)" SecCopy
43  SetOutPath "$INSTDIR"
44  File "${tree}\bin\gp.exe"
45  File "${tree}\bin\${dll}"
46  File /oname=gphelp.pl "${tree}\bin\gphelp"
47  File /oname=gprc.txt "${tree}\gprc.mingw"
48
49  WriteRegStr HKCU "Software\${PARIver}" "" $INSTDIR
50  WriteRegStr HKLM ${uninst} "DisplayName" "${PARIver} (remove only)"
51  WriteRegStr HKLM ${uninst} "UninstallString" '"$INSTDIR\uninstall.exe"'
52
53  WriteUninstaller "$INSTDIR\Uninstall.exe"
54SectionEnd
55
56Section "Data files" SecGAL
57  SetOutPath "$INSTDIR"
58  File /r "${tree}\data"
59SectionEnd
60
61Section "documentation" SecDOC
62  CreateDirectory "$INSTDIR\etc"
63  SetOutPath "$INSTDIR"
64  File /r "${tree}\share\pari\doc"
65  File /r "${tree}\perl"
66  File /r "${tree}\share\pari\examples"
67  File /oname=gprc_dft.txt "${tree}\gprc.dft"
68SectionEnd
69
70Section "Development files" SecDEV
71  CreateDirectory "$INSTDIR\include"
72  CreateDirectory "$INSTDIR\lib"
73  SetOutPath "$INSTDIR"
74  File /r "${tree}\lib"
75  File /r "${tree}\include"
76SectionEnd
77
78Function .onInstSuccess
79  MessageBox MB_OK "Thank you for using PARI/GP! Double-click on 'gp' to start the calculator.$\r$\n"
80  ExecShell "open" "$INSTDIR"
81FunctionEnd
82
83!define short "$SMPROGRAMS\${PARIver}"
84
85Section "shortcuts" SecSM
86  CreateDirectory "${short}"
87  CreateShortCut "${short}\gp.lnk" "$INSTDIR\gp.exe" "" "$INSTDIR\gp.exe" 0
88  CreateShortCut "${short}\users.lnk" "$INSTDIR\doc\users.pdf" "" "$INSTDIR\doc\users.pdf" 0
89  CreateShortCut "${short}\libpari.lnk" "$INSTDIR\doc\libpari.pdf" "" "$INSTDIR\doc\libpari.pdf" 0
90  CreateShortCut "${short}\tutorial.lnk" "$INSTDIR\doc\tutorial.pdf" "" "$INSTDIR\doc\tutorial.pdf" 0
91  CreateShortCut "${short}\refcard.lnk" "$INSTDIR\doc\refcard.pdf" "" "$INSTDIR\doc\refcard.pdf" 0
92  WriteINIStr "${short}\PARI pages.url" "InternetShortcut" "URL" "http://pari.math.u-bordeaux.fr"
93  CreateShortCut "${short}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
94  CreateShortCut "$DESKTOP\PARI.lnk" "$INSTDIR\gp.exe"
95SectionEnd
96
97;--------------------------------
98;Descriptions
99
100LangString DESC_SecCopy ${LANG_ENGLISH} "Copy pari files to application folder."
101LangString DESC_DOC ${LANG_ENGLISH} "Install documentation and online help."
102LangString DESC_EX ${LANG_ENGLISH} "Install sample GP scripts."
103LangString DESC_GAL ${LANG_ENGLISH} "Install Pari package files."
104LangString DESC_DEV ${LANG_ENGLISH} "Add libpari development files."
105LangString DESC_SM ${LANG_ENGLISH} "Add PARI shortcuts to Start Menu and desktop."
106
107!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
108  !insertmacro MUI_DESCRIPTION_TEXT ${SecCopy} $(DESC_SecCopy)
109  !insertmacro MUI_DESCRIPTION_TEXT ${SecGAL} $(DESC_GAL)
110  !insertmacro MUI_DESCRIPTION_TEXT ${SecSM} $(DESC_SM)
111  !insertmacro MUI_DESCRIPTION_TEXT ${SecDOC} $(DESC_DOC)
112  !insertmacro MUI_DESCRIPTION_TEXT ${SecDEV} $(DESC_DEV)
113!insertmacro MUI_FUNCTION_DESCRIPTION_END
114
115;--------------------------------
116Section "Uninstall"
117  Delete "$INSTDIR\gp.exe"
118  Delete "$INSTDIR\gphelp.pl"
119  Delete "$INSTDIR\gprc_dft.txt"
120  Delete "$INSTDIR\${dll}"
121
122  RMDir /r "$INSTDIR\perl"
123  RMDir /r "$INSTDIR\etc"
124  RMDir /r "$INSTDIR\doc"
125  RMDir /r "$INSTDIR\examples"
126  RMDir /r "$INSTDIR\data"
127  RMDir /r "$INSTDIR\include"
128  RMDir /r "$INSTDIR\lib"
129  Delete "$INSTDIR\Uninstall.exe"
130
131  DeleteRegKey HKLM ${uninst}
132  DeleteRegKey /ifempty HKLM "Software\${PARIver}"
133
134  RMDir /r "$SMPROGRAMS\${PARIver}"
135  Delete "$DESKTOP\PARI.lnk"
136  RMDir "$INSTDIR"
137SectionEnd
138EOT
139