1 # sdcc.nsi - NSIS installer script for SDCC
3 # Copyright (c) 2003 Borut Razem
5 # This file is part of sdcc.
7 # This software is provided 'as-is', without any express or implied
8 # warranty. In no event will the authors be held liable for any damages
9 # arising from the use of this software.
11 # Permission is granted to anyone to use this software for any purpose,
12 # including commercial applications, and to alter it and redistribute it
13 # freely, subject to the following restrictions:
15 # 1. The origin of this software must not be misrepresented; you must not
16 # claim that you wrote the original software. If you use this software
17 # in a product, an acknowledgment in the product documentation would be
18 # appreciated but is not required.
19 # 2. Altered source versions must be plainly marked as such, and must not be
20 # misrepresented as being the original software.
21 # 3. This notice may not be removed or altered from any source distribution.
24 # borut.razem@siol.net
30 !define SDCC_ROOT "..\.."
35 !system "dir ${SDCC_ROOT}\device > NUL" <> 0
36 !define DEV_ROOT "${SDCC_ROOT}"
38 !system "dir ${SDCC_ROOT}\device > NUL" = 0
39 !define DEV_ROOT "${SDCC_ROOT}\device"
42 !system "unix2dos ${SDCC_ROOT}\doc\ChangeLog_head.txt" = 0
43 !system "unix2dos ${SDCC_ROOT}\doc\README.TXT" = 0
45 InstType "Full (Bin, Doc, Lib, Src)"
46 InstType "Medium (Bin, Doc, Lib)"
47 InstType "Compact (Bin, Doc)"
49 ;--------------------------------
52 Var MUI_STARTMENUPAGE_VARIABLE
54 ;--------------------------------
55 !define MUI_ABORTWARNING
56 !insertmacro MUI_PAGE_WELCOME
57 !define MUI_LICENSEPAGE_RADIOBUTTONS
58 !insertmacro MUI_PAGE_LICENSE "${SDCC_ROOT}\COPYING.TXT"
59 !define MUI_STARTMENUPAGE_DEFAULTFOLDER "SDCC"
60 !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM"
61 !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\SDCC"
62 !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "NSIS:StartMenuDir"
63 !define MUI_STARTMENUPAGE_NODISABLE
64 !insertmacro MUI_PAGE_STARTMENU Application $MUI_STARTMENUPAGE_VARIABLE
65 !insertmacro MUI_PAGE_COMPONENTS
66 !insertmacro MUI_PAGE_DIRECTORY
67 !insertmacro MUI_PAGE_INSTFILES
68 !insertmacro MUI_PAGE_FINISH
69 !insertmacro MUI_UNPAGE_INSTFILES
70 !insertmacro MUI_LANGUAGE "English"
75 InstallDir "$PROGRAMFILES\SDCC"
77 ShowUnInstDetails show
80 MessageBox MB_YESNO|MB_ICONQUESTION "This will install $(^Name). Do you wish to continue?" IDYES +2
87 File "${SDCC_ROOT}\COPYING.TXT"
90 Section "SDCC application files"
92 SetOutPath "$INSTDIR\bin"
93 File "${SDCC_ROOT}\bin\*.exe"
96 Section "SDCC documentation"
98 SetOutPath "$INSTDIR\doc"
99 File "${SDCC_ROOT}\doc\ChangeLog_head.txt"
100 File "${SDCC_ROOT}\doc\README.TXT"
103 Section "SDCC include files"
105 SetOutPath "$INSTDIR\include\asm\default"
106 File "${DEV_ROOT}\include\asm\default\features.h"
107 SetOutPath "$INSTDIR\include\asm\gbz80"
108 File "${DEV_ROOT}\include\asm\gbz80\features.h"
109 SetOutPath "$INSTDIR\include\asm\z80"
110 File "${DEV_ROOT}\include\asm\z80\features.h"
111 SetOutPath "$INSTDIR\include"
112 File "${DEV_ROOT}\include\*.h"
115 Section "SDCC DS390 library"
117 SetOutPath "$INSTDIR\lib\ds390"
118 File "${DEV_ROOT}\lib\ds390\*.asm"
119 File "${DEV_ROOT}\lib\ds390\*.rel"
120 File "${DEV_ROOT}\lib\ds390\*.lib"
123 Section "SDCC DS400 library"
125 SetOutPath "$INSTDIR\lib\ds400"
126 File "${DEV_ROOT}\lib\ds400\*.asm"
127 File "${DEV_ROOT}\lib\ds400\*.rel"
128 File "${DEV_ROOT}\lib\ds400\*.lib"
131 Section "SDCC GBZ80 library"
133 SetOutPath "$INSTDIR\lib\gbz80"
134 File "${DEV_ROOT}\lib\gbz80\*.asm"
135 File "${DEV_ROOT}\lib\gbz80\*.o"
136 File "${DEV_ROOT}\lib\gbz80\*.lib"
139 Section "SDCC Z80 library"
141 SetOutPath "$INSTDIR\lib\z80"
142 File "${DEV_ROOT}\lib\z80\*.asm"
143 File "${DEV_ROOT}\lib\z80\*.o"
144 File "${DEV_ROOT}\lib\z80\*.lib"
147 Section "SDCC large model library"
149 SetOutPath "$INSTDIR\lib\large"
150 File "${DEV_ROOT}\lib\large\*.asm"
151 File "${DEV_ROOT}\lib\large\*.rel"
152 File "${DEV_ROOT}\lib\large\*.lib"
155 Section "SDCC small model library"
157 SetOutPath "$INSTDIR\lib\small"
158 File "${DEV_ROOT}\lib\small\*.asm"
159 File "${DEV_ROOT}\lib\small\*.rel"
160 File "${DEV_ROOT}\lib\small\*.lib"
163 Section "SDCC HC08 library"
165 SetOutPath "$INSTDIR\lib\hc08"
166 File "${DEV_ROOT}\lib\hc08\*.asm"
167 File "${DEV_ROOT}\lib\hc08\*.rel"
168 File "${DEV_ROOT}\lib\hc08\*.lib"
171 Section "SDCC library sources"
173 SetOutPath "$INSTDIR\lib\src\ds390\examples"
174 File "${DEV_ROOT}\lib\src\ds390\examples\MOVED"
176 SetOutPath "$INSTDIR\lib\src\ds390"
177 File "${DEV_ROOT}\lib\src\ds390\*.c"
178 File "${DEV_ROOT}\lib\src\ds390\libds390.lib"
179 File "${DEV_ROOT}\lib\src\ds390\Makefile"
180 File "${DEV_ROOT}\lib\src\ds390\Makefile.dep"
182 SetOutPath "$INSTDIR\lib\src\ds400"
183 File "${DEV_ROOT}\lib\src\ds400\*.c"
184 File "${DEV_ROOT}\lib\src\ds400\libds400.lib"
185 File "${DEV_ROOT}\lib\src\ds400\Makefile"
186 File "${DEV_ROOT}\lib\src\ds400\Makefile.dep"
188 SetOutPath "$INSTDIR\lib\src\gbz80"
189 File "${DEV_ROOT}\lib\src\gbz80\*.c"
190 File "${DEV_ROOT}\lib\src\gbz80\*.s"
191 File "${DEV_ROOT}\lib\src\gbz80\gbz80.lib"
192 File "${DEV_ROOT}\lib\src\gbz80\Makefile"
193 File "${DEV_ROOT}\lib\src\gbz80\README"
195 SetOutPath "$INSTDIR\lib\src\z80"
196 File "${DEV_ROOT}\lib\src\z80\*.c"
197 File "${DEV_ROOT}\lib\src\z80\*.s"
198 File "${DEV_ROOT}\lib\src\z80\Makefile"
199 File "${DEV_ROOT}\lib\src\z80\README"
200 File "${DEV_ROOT}\lib\src\z80\z80.lib"
202 SetOutPath "$INSTDIR\lib\src\hc08"
203 File "${DEV_ROOT}\lib\src\hc08\*.c"
204 File "${DEV_ROOT}\lib\src\hc08\Makefile"
205 File "${DEV_ROOT}\lib\src\hc08\hc08.lib"
207 SetOutPath "$INSTDIR\lib\src"
208 File "${DEV_ROOT}\lib\src\*.c"
212 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
213 CreateDirectory "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE"
214 CreateShortCut "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\SDCC on the Web.lnk" "$INSTDIR\sdcc.url"
215 CreateShortCut "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\Uninstall SDCC.lnk" "$INSTDIR\uninstall.exe"
216 CreateShortCut "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\Documentation.lnk" "$INSTDIR\doc\README.TXT" "" "$INSTDIR\sdcc.ico" "" "" "" ""
217 CreateShortCut "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\Change Log.lnk" "$INSTDIR\doc\ChangeLog_head.txt" "" "$INSTDIR\sdcc.ico" "" "" "" ""
218 CreateShortCut "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\GPL 2 License.lnk" "$INSTDIR\COPYING.TXT"
219 !insertmacro MUI_STARTMENU_WRITE_END
223 WriteIniStr "$INSTDIR\sdcc.url" "InternetShortcut" "URL" "http://sdcc.sourceforge.net/"
227 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\SDCC" "DisplayName" "SDCC"
228 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\SDCC" "UninstallString" "$INSTDIR\uninstall.exe"
229 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\SDCC" "Publisher" "sdcc.sourceforge.net"
230 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\SDCC" "URLInfoAbout" "http://sdcc.sourceforge.net/"
231 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\SDCC" "HelpLink" "http://sdcc.sourceforge.net/"
232 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\SDCC" "URLUpdateInfo" "http://sdcc.sourceforge.net/"
233 WriteUninstaller "$INSTDIR\uninstall.exe"
237 #### Uninstaller code ####
240 MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" IDYES +2
244 Function un.onUninstSuccess
246 MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer."
250 !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_STARTMENUPAGE_VARIABLE
252 Delete "$INSTDIR\sdcc.url"
254 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\SDCC" "NSIS:StartMenuDir"
255 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\SDCC"
257 Delete "$INSTDIR\uninstall.exe"
258 Delete "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\GPL 2 License.lnk"
259 Delete "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\Change Log.lnk"
260 Delete "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\Documentation.lnk"
261 Delete "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\Uninstall SDCC.lnk"
262 Delete "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\SDCC on the Web.lnk"
264 Delete "$INSTDIR\lib\src\hc08\*.c"
265 Delete "$INSTDIR\lib\src\hc08\hc08.lib"
266 Delete "$INSTDIR\lib\src\hc08\Makefile"
268 Delete "$INSTDIR\lib\src\z80\*.c"
269 Delete "$INSTDIR\lib\src\z80\*.s"
270 Delete "$INSTDIR\lib\src\z80\z80.lib"
271 Delete "$INSTDIR\lib\src\z80\README"
272 Delete "$INSTDIR\lib\src\z80\Makefile"
274 Delete "$INSTDIR\lib\src\gbz80\*.c"
275 Delete "$INSTDIR\lib\src\gbz80\*.s"
276 Delete "$INSTDIR\lib\src\gbz80\gbz80.lib"
277 Delete "$INSTDIR\lib\src\gbz80\README"
278 Delete "$INSTDIR\lib\src\gbz80\Makefile"
280 Delete "$INSTDIR\lib\src\ds390\*.c"
281 Delete "$INSTDIR\lib\src\ds390\libds390.lib"
282 Delete "$INSTDIR\lib\src\ds390\Makefile.dep"
283 Delete "$INSTDIR\lib\src\ds390\Makefile"
284 Delete "$INSTDIR\lib\src\ds390\examples\MOVED"
286 Delete "$INSTDIR\lib\src\ds400\*.c"
287 Delete "$INSTDIR\lib\src\ds400\libds400.lib"
288 Delete "$INSTDIR\lib\src\ds400\Makefile.dep"
289 Delete "$INSTDIR\lib\src\ds400\Makefile"
291 Delete "$INSTDIR\lib\src\*.c"
293 Delete "$INSTDIR\lib\hc08\*.rel"
294 Delete "$INSTDIR\lib\hc08\*.asm"
295 Delete "$INSTDIR\lib\hc08\*.lib"
297 Delete "$INSTDIR\lib\z80\*.o"
298 Delete "$INSTDIR\lib\z80\*.asm"
299 Delete "$INSTDIR\lib\z80\*.lib"
301 Delete "$INSTDIR\lib\small\*.asm"
302 Delete "$INSTDIR\lib\small\*.rel"
303 Delete "$INSTDIR\lib\small\*.lib"
305 Delete "$INSTDIR\lib\large\*.asm"
306 Delete "$INSTDIR\lib\large\*.rel"
307 Delete "$INSTDIR\lib\large\*.lib"
309 Delete "$INSTDIR\lib\gbz80\*.asm"
310 Delete "$INSTDIR\lib\gbz80\*.o"
311 Delete "$INSTDIR\lib\gbz80\*.lib"
313 Delete "$INSTDIR\lib\ds390\*.asm"
314 Delete "$INSTDIR\lib\ds390\*.rel"
315 Delete "$INSTDIR\lib\ds390\*.lib"
317 Delete "$INSTDIR\lib\ds400\*.asm"
318 Delete "$INSTDIR\lib\ds400\*.rel"
319 Delete "$INSTDIR\lib\ds400\*.lib"
321 Delete "$INSTDIR\include\asm\z80\*.h"
322 Delete "$INSTDIR\include\asm\gbz80\*.h"
323 Delete "$INSTDIR\include\asm\default\*.h"
324 Delete "$INSTDIR\include\*.h"
326 Delete "$INSTDIR\doc\README.TXT"
327 Delete "$INSTDIR\doc\ChangeLog_head.txt"
329 Delete "$INSTDIR\bin\*.exe"
331 Delete "$INSTDIR\COPYING.TXT"
332 Delete "$INSTDIR\sdcc.ico"
334 RMDir "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE"
336 RMDir "$INSTDIR\lib\src\z80"
337 RMDir "$INSTDIR\lib\src\gbz80"
338 RMDir "$INSTDIR\lib\src\ds390\examples"
339 RMDir "$INSTDIR\lib\src\ds390"
340 RMDir "$INSTDIR\lib\src\ds400"
341 RMDir "$INSTDIR\lib\src\hc08"
342 RMDir "$INSTDIR\lib\src"
344 RMDir "$INSTDIR\lib\z80"
345 RMDir "$INSTDIR\lib\small"
346 RMDir "$INSTDIR\lib\large"
347 RMDir "$INSTDIR\lib\gbz80"
348 RMDir "$INSTDIR\lib\ds390"
349 RMDir "$INSTDIR\lib\ds400"
350 RMDir "$INSTDIR\lib\hc08"
353 RMDir "$INSTDIR\include\asm\z80"
354 RMDir "$INSTDIR\include\asm\gbz80"
355 RMDir "$INSTDIR\include\asm\default"
356 RMDir "$INSTDIR\include\asm"
357 RMDir "$INSTDIR\include"