1#! /bin/sh
2. config/version
3release=`echo "$pari_release"|sed  's/\./-/g'`
4cat << EOT
5;--- PARI/GP: NullSoft Installer configuration file
6!include "MUI.nsh"
7Name "PARI $pari_release_verbose"
8!define dll "libpari.dll"
9!define PARIver "Pari-$release"
10EOT
11cat << 'EOT'
12;--No need to modify things below --
13!define top ".."
14!define cfgdir "${top}\config"
15AutoCloseWindow false
16RequestExecutionLevel highest
17
18OutFile "Pari.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 /oname=gp.exe "gp-dyn.exe"
45  File /oname=.gprc "${cfgdir}\cygwin-gprc"
46  File /oname=postinst "${cfgdir}\cygwin-postinst"
47  File "${top}\misc\tex2mail"
48  File "${dll}"
49  FILE "\cygwin\bin\cygcrypt-0.dll"
50  FILE "\cygwin\bin\cygiconv-2.dll"
51  FILE "\cygwin\bin\cygintl-8.dll"
52  File "\cygwin\bin\cyggmp-3.dll"
53  File "\cygwin\bin\cygncursesw-10.dll"
54  File "\cygwin\bin\cygreadline7.dll"
55  File "\cygwin\bin\cygperl5_10.dll"
56  File "\cygwin\bin\cyggcc_s-1.dll"
57  File "\cygwin\bin\cygssp-0.dll"
58  File "\cygwin\bin\cygwin1.dll"
59  File "\cygwin\bin\perl.exe"
60  File "\cygwin\bin\sh.exe"
61  File "\cygwin\bin\ln.exe"
62  SetOutPath "$INSTDIR\terminfo\c"
63  File /nonfatal "\cygwin\usr\share\terminfo\c\cygwin"
64  SetOutPath "$INSTDIR\terminfo\63"
65  File /nonfatal "\cygwin\usr\share\terminfo\63\cygwin"
66  SetOutPath "$INSTDIR"
67  CreateDirectory "$INSTDIR\..\bin"
68  ExecWait 'sh ./postinst'
69  Delete "ln.exe"
70  Delete "postinst"
71
72  WriteRegStr HKCU "Software\${PARIver}" "" $INSTDIR
73  WriteRegStr HKLM ${uninst} "DisplayName" "${PARIver} (remove only)"
74  WriteRegStr HKLM ${uninst} "UninstallString" '"$INSTDIR\uninstall.exe"'
75
76  WriteUninstaller "$INSTDIR\Uninstall.exe"
77SectionEnd
78
79SectionGroup /e "Data files" SecDATA
80Section "Elliptic curves files" SecELL
81  SetOutPath "$INSTDIR\data\elldata"
82  File "${top}\data\elldata\*"
83SectionEnd
84
85Section "Galois files" SecGAL
86  SetOutPath "$INSTDIR\data\galdata"
87  File "${top}\data\galdata\*"
88SectionEnd
89
90Section "Frobenius of elliptic curves files" SecSEA
91  SetOutPath "$INSTDIR\data\seadata"
92  File "${top}\data\seadata\*"
93SectionEnd
94
95Section "Galois polynomial files" SecGPL
96  SetOutPath "$INSTDIR\data\galpol"
97  File "${top}\data\galpol\*"
98SectionEnd
99SectionGroupEnd
100
101Section "documentation" SecDOC
102  SetOutPath "$INSTDIR"
103  File "${top}\doc\gphelp"
104  SetOutPath $INSTDIR\doc
105  File "${top}\doc\translations"
106  File "${top}\doc\*.tex"
107  File "${top}\doc\*.pdf"
108SectionEnd
109
110Section "examples" SecEX
111  SetOutPath "$INSTDIR"
112  File "${top}\doc\gphelp"
113  SetOutPath $INSTDIR\examples
114  File "${top}\examples\EXPLAIN"
115  File "${top}\examples\Inputrc"
116  File "${top}\examples\*.gp"
117  File "${top}\examples\*.c"
118  File "${top}\examples\Makefile.cygwin-i686"
119SectionEnd
120
121Function .onInstSuccess
122  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."
123  ExecShell "open" "$INSTDIR"
124FunctionEnd
125
126!define short "$SMPROGRAMS\${PARIver}"
127
128Section "shortcuts" SecSM
129  CreateDirectory "${short}"
130  CreateShortCut "${short}\gp.lnk" "$INSTDIR\gp.exe" "" "$INSTDIR\gp.exe" 0
131  CreateShortCut "${short}\users.lnk" "$INSTDIR\doc\users.pdf" "" "$INSTDIR\doc\users.pdf" 0
132  CreateShortCut "${short}\libpari.lnk" "$INSTDIR\doc\libpari.pdf" "" "$INSTDIR\doc\libpari.pdf" 0
133  CreateShortCut "${short}\tutorial.lnk" "$INSTDIR\doc\tutorial.pdf" "" "$INSTDIR\doc\tutorial.pdf" 0
134  CreateShortCut "${short}\refcard.lnk" "$INSTDIR\doc\refcard.pdf" "" "$INSTDIR\doc\refcard.pdf" 0
135  WriteINIStr "${short}\PARI pages.url" "InternetShortcut" "URL" "http://pari.math.u-bordeaux.fr"
136  CreateShortCut "${short}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
137  CreateShortCut "$DESKTOP\PARI.lnk" "$INSTDIR\gp.exe"
138SectionEnd
139
140;--------------------------------
141;Descriptions
142
143LangString DESC_SecCopy ${LANG_ENGLISH} "Copy pari files to application folder."
144LangString DESC_DOC ${LANG_ENGLISH} "Install documentation and online help."
145LangString DESC_EX ${LANG_ENGLISH} "Install sample GP scripts."
146LangString DESC_DATA ${LANG_ENGLISH} "Data files pertaining to pari"
147LangString DESC_ELL ${LANG_ENGLISH} "Install elliptic curves data files (for ellsearch and ellidentify)."
148LangString DESC_GAL ${LANG_ENGLISH} "Install Galois data files (for polgalois in degree > 7)."
149LangString DESC_SEA ${LANG_ENGLISH} "Install Modular polynomials (for ellap'SEA implementation)."
150LangString DESC_GPL ${LANG_ENGLISH} "Install Galois polynomials data files (for galoisgetpol)."
151LangString DESC_SM ${LANG_ENGLISH} "Add PARI shortcuts to Start Menu and desktop."
152
153!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
154  !insertmacro MUI_DESCRIPTION_TEXT ${SecCopy} $(DESC_SecCopy)
155  !insertmacro MUI_DESCRIPTION_TEXT ${SecDATA} $(DESC_DATA)
156  !insertmacro MUI_DESCRIPTION_TEXT ${SecELL} $(DESC_ELL)
157  !insertmacro MUI_DESCRIPTION_TEXT ${SecGAL} $(DESC_GAL)
158  !insertmacro MUI_DESCRIPTION_TEXT ${SecSEA} $(DESC_SEA)
159  !insertmacro MUI_DESCRIPTION_TEXT ${SecGPL} $(DESC_GPL)
160  !insertmacro MUI_DESCRIPTION_TEXT ${SecSM} $(DESC_SM)
161  !insertmacro MUI_DESCRIPTION_TEXT ${SecDOC} $(DESC_DOC)
162  !insertmacro MUI_DESCRIPTION_TEXT ${SecEX} $(DESC_EX)
163!insertmacro MUI_FUNCTION_DESCRIPTION_END
164
165;--------------------------------
166Section "Uninstall"
167  Delete "$INSTDIR\gp.exe"
168  Delete "$INSTDIR\.gprc"
169  Delete "$INSTDIR\gphelp"
170  Delete "$INSTDIR\tex2mail"
171  Delete "$INSTDIR\${dll}"
172  Delete "$INSTDIR\cygcrypt-0.dll"
173  Delete "$INSTDIR\cygiconv-2.dll"
174  Delete "$INSTDIR\cygintl-8.dll"
175  Delete "$INSTDIR\cyggmp-3.dll"
176  Delete "$INSTDIR\cygncursesw-10.dll"
177  Delete "$INSTDIR\cygreadline7.dll"
178  Delete "$INSTDIR\cygperl5_10.dll"
179  Delete "$INSTDIR\cyggcc_s-1.dll"
180  Delete "$INSTDIR\cygssp-0.dll"
181  Delete "$INSTDIR\cygwin1.dll"
182  Delete "$INSTDIR\perl.exe"
183  Delete "$INSTDIR\sh.exe"
184
185  Delete "$INSTDIR\Uninstall.exe"
186  RMDir /r "$INSTDIR\doc"
187  RMDir /r "$INSTDIR\examples"
188  RMDir /r "$INSTDIR\data"
189  RMDir /r "$INSTDIR\terminfo"
190
191  DeleteRegKey HKLM ${uninst}
192  DeleteRegKey /ifempty HKLM "Software\${PARIver}"
193
194  RMDir /r "$SMPROGRAMS\${PARIver}"
195  Delete "$DESKTOP\PARI.lnk"
196  Delete "$INSTDIR\..\bin\sh"
197  RMDir "$INSTDIR\..\bin"
198  RMDir "$INSTDIR"
199SectionEnd
200EOT
201