winnt-nsis-installer-update-20030903
[openafs.git] / src / WINNT / install / NSIS / OpenAFS.nsi
1 ;OpenAFS Install Script for NSIS
2 ;
3 ; Written by Rob Murawski <rsm4@ieee.org>
4 ;
5 ;Based on:
6 ;NSIS Modern User Interface version 1.63
7 ;MultiLanguage Example Script
8 ;Written by Joost Verburg
9
10 !define MUI_PRODUCT "OpenAFS for Windows" ;Define your own software name here
11 ;!define MUI_VERSION "1.2.11" ;Define your own software version here
12 ;!define MUI_MAJORVERSION 1
13 ;!define MUI_MINORVERSION 2
14 ;!define MUI_PATCHLEVEL 110
15 !include nsi-includes.nsi
16
17 !include "MUI.nsh"
18 !include Sections.nsh
19
20 ;--------------------------------
21 ;Configuration
22
23   ;General
24   OutFile "OpenAFSforWindows.exe"
25   SilentInstall normal
26   SetCompressor bzip2
27   !define MUI_ICON "..\..\client_cpa\afs_conf.ico"
28   !define MUI_UNICON "c:\Program Files\NSIS\Contrib\Icons\normal-uninstall.ico"
29   !define AFS_COMPANY_NAME "OpenAFS"
30   !define AFS_PRODUCT_NAME "OpenAFS"
31   !define AFS_REGKEY_ROOT "Software\TransarcCorporation"
32   CRCCheck force
33
34   ;Folder selection page
35   InstallDir "$PROGRAMFILES\OpenAFS\AFS"
36   
37   ;Remember install folder
38   InstallDirRegKey HKCU "Software\TransarcCorporation" ""
39   
40   ;Remember the installer language
41   !define MUI_LANGDLL_REGISTRY_ROOT "HKCU" 
42   !define MUI_LANGDLL_REGISTRY_KEY "Software\TransarcCorporation" 
43   !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
44   
45   ;Where are the files?
46   !define AFS_CLIENT_BUILDDIR "${AFS_DESTDIR}\root.client\usr\vice\etc"
47   !define AFS_WININSTALL_DIR "${AFS_DESTDIR}\WinInstall\Config"
48   !define AFS_BUILD_INCDIR "${AFS_DESTDIR}\include"
49   !define AFS_CLIENT_LIBDIR "${AFS_DESTDIR}\lib"
50   !define AFS_SERVER_BUILDDIR "${AFS_DESTDIR}\root.server\usr\afs\bin"
51   !define AFS_ETC_BUILDDIR "${AFS_DESTDIR}\etc"
52   
53 ;--------------------------------
54 ;Modern UI Configuration
55
56   !define MUI_CUSTOMPAGECOMMANDS
57   !define MUI_WELCOMEPAGE
58   !define MUI_COMPONENTSPAGE
59   !define MUI_COMPONENTSPAGE_SMALLDESC
60   !define MUI_DIRECTORYPAGE
61
62   !define MUI_ABORTWARNING
63   !define MUI_FINISHPAGE
64   
65   !define MUI_UNINSTALLER
66   !define MUI_UNCONFIRMPAGE
67
68   
69   !insertmacro MUI_PAGECOMMAND_WELCOME
70   !insertmacro MUI_PAGECOMMAND_COMPONENTS
71   !insertmacro MUI_PAGECOMMAND_DIRECTORY
72   Page custom AFSPageGetCellServDB
73   Page custom AFSPageGetCellName
74   !insertmacro MUI_PAGECOMMAND_INSTFILES
75   !insertmacro MUI_PAGECOMMAND_FINISH
76   
77 ;--------------------------------
78 ;Languages
79
80   !insertmacro MUI_LANGUAGE "English"
81   ;!insertmacro MUI_LANGUAGE "French"
82   !insertmacro MUI_LANGUAGE "German"
83   !insertmacro MUI_LANGUAGE "Spanish"
84   !insertmacro MUI_LANGUAGE "SimpChinese"
85   !insertmacro MUI_LANGUAGE "TradChinese"    
86   !insertmacro MUI_LANGUAGE "Japanese"
87   ;!insertmacro MUI_LANGUAGE "Korean"
88   ;!insertmacro MUI_LANGUAGE "Italian"
89   ;!insertmacro MUI_LANGUAGE "Dutch"
90   ;!insertmacro MUI_LANGUAGE "Danish"
91   ;!insertmacro MUI_LANGUAGE "Greek"
92   ;!insertmacro MUI_LANGUAGE "Russian"
93   !insertmacro MUI_LANGUAGE "PortugueseBR"
94   ;!insertmacro MUI_LANGUAGE "Polish"
95   ;!insertmacro MUI_LANGUAGE "Ukrainian"
96   ;!insertmacro MUI_LANGUAGE "Czech"
97   ;!insertmacro MUI_LANGUAGE "Slovak"
98   ;!insertmacro MUI_LANGUAGE "Croatian"
99   ;!insertmacro MUI_LANGUAGE "Bulgarian"
100   ;!insertmacro MUI_LANGUAGE "Hungarian"
101   ;!insertmacro MUI_LANGUAGE "Thai"
102   ;!insertmacro MUI_LANGUAGE "Romanian"
103   ;!insertmacro MUI_LANGUAGE "Macedonian"
104   ;!insertmacro MUI_LANGUAGE "Turkish"
105   
106 ;--------------------------------
107 ;Language Strings
108     
109   ;Descriptions
110   LangString DESC_SecCopyUI ${LANG_ENGLISH} "OpenAFS for Windows: English"
111   ;LangString DESC_SecCopyUI ${LANG_FRENCH} "OpenAFS for Windows: French"
112   LangString DESC_SecCopyUI ${LANG_GERMAN} "OpenAFS for Windows: German"
113   LangString DESC_SecCopyUI ${LANG_SPANISH} "OpenAFS for Windows: Spanish"
114   LangString DESC_SecCopyUI ${LANG_SIMPCHINESE} "OpenAFS for Windows: Simplified Chinese"
115   LangString DESC_SecCopyUI ${LANG_TRADCHINESE} "OpenAFS for Windows: Traditional Chinese description"
116   LangString DESC_SecCopyUI ${LANG_JAPANESE} "OpenAFS for Windows: Japanese description"
117   LangString DESC_SecCopyUI ${LANG_KOREAN} "OpenAFS for Windows: Korean description"
118   ;LangString DESC_SecCopyUI ${LANG_ITALIAN} "OpenAFS for Windows: Italian description"
119   ;LangString DESC_SecCopyUI ${LANG_DUTCH} "OpenAFS for Windows: Dutch description"
120   ;LangString DESC_SecCopyUI ${LANG_DANISH} "OpenAFS for Windows: Danish description"
121   ;LangString DESC_SecCopyUI ${LANG_GREEK} "OpenAFS for Windows: Greek description"
122   ;LangString DESC_SecCopyUI ${LANG_RUSSIAN} "OpenAFS for Windows: Russian description"
123   LangString DESC_SecCopyUI ${LANG_PORTUGUESEBR} "OpenAFS for Windows: Portuguese (Brasil) description"
124   ;LangString DESC_SecCopyUI ${LANG_POLISH} "OpenAFS for Windows: Polish description"
125   ;LangString DESC_SecCopyUI ${LANG_UKRAINIAN} "OpenAFS for Windows: Ukrainian description"
126   ;LangString DESC_SecCopyUI ${LANG_CZECH} "OpenAFS for Windows: Czechian description"
127   ;LangString DESC_SecCopyUI ${LANG_SLOVAK} "OpenAFS for Windows: Slovakian description"
128   ;LangString DESC_SecCopyUI ${LANG_CROATIAN} "OpenAFS for Windows: Slovakian description"
129   ;LangString DESC_SecCopyUI ${LANG_BULGARIAN} "OpenAFS for Windows: Bulgarian description"
130   ;LangString DESC_SecCopyUI ${LANG_HUNGARIAN} "OpenAFS for Windows: Hungarian description"
131   ;LangString DESC_SecCopyUI ${LANG_THAI} "OpenAFS for Windows: Thai description"
132   ;LangString DESC_SecCopyUI ${LANG_ROMANIAN} "OpenAFS for Windows: Romanian description"
133   ;LangString DESC_SecCopyUI ${LANG_MACEDONIAN} "OpenAFS for Windows: Macedonian description"
134   ;LangString DESC_SecCopyUI ${LANG_TURKISH} "OpenAFS for Windows: Turkish description"
135
136   LangString DESC_SecClient ${LANG_ENGLISH} "OpenAFS Client: Allows you to access AFS from your Windows PC."
137   LangString DESC_SecClient ${LANG_GERMAN} "OpenAFS Client: Allows you to access AFS from your Windows PC."
138   LangString DESC_SecClient ${LANG_SPANISH} "OpenAFS Client: Allows you to access AFS from your Windows PC."
139   LangString DESC_SecClient ${LANG_SIMPCHINESE} "OpenAFS Client: Allows you to access AFS from your Windows PC."
140   LangString DESC_SecClient ${LANG_TRADCHINESE} "OpenAFS Client: Allows you to access AFS from your Windows PC."
141   LangString DESC_SecClient ${LANG_JAPANESE} "OpenAFS Client: Allows you to access AFS from your Windows PC."
142   LangString DESC_SecClient ${LANG_KOREAN} "OpenAFS Client: Allows you to access AFS from your Windows PC."
143   LangString DESC_SecClient ${LANG_PORTUGUESEBR} "OpenAFS Client: Allows you to access AFS from your Windows PC."
144   
145   LangString DESC_SecServer ${LANG_ENGLISH} "OpenAFS Server: Allows you to run an AFS file server."
146   LangString DESC_SecServer ${LANG_GERMAN} "OpenAFS Server: Allows you to run an AFS file server."
147   LangString DESC_SecServer ${LANG_SPANISH} "OpenAFS Server: Allows you to run an AFS file server."
148   LangString DESC_SecServer ${LANG_SIMPCHINESE} "OpenAFS Server: Allows you to run an AFS file server."
149   LangString DESC_SecServer ${LANG_TRADCHINESE} "OpenAFS Server: Allows you to run an AFS file server."
150   LangString DESC_SecServer ${LANG_JAPANESE} "OpenAFS Server: Allows you to run an AFS file server."
151   LangString DESC_SecServer ${LANG_KOREAN} "OpenAFS Server: Allows you to run an AFS file server."
152   LangString DESC_SecServer ${LANG_PORTUGUESEBR} "OpenAFS Server: Allows you to run an AFS file server."
153   
154   LangString DESC_SecControl ${LANG_ENGLISH} "OpenAFS Control Center: GUI utilities for managing and configuring AFS."
155   LangString DESC_SecControl ${LANG_GERMAN} "OpenAFS Control Center: GUI utilities for managing and configuring AFS."
156   LangString DESC_SecControl ${LANG_SPANISH} "OpenAFS Control Center: GUI utilities for managing and configuring AFS."
157   LangString DESC_SecControl ${LANG_SIMPCHINESE} "OpenAFS Control Center: GUI utilities for managing and configuring AFS."
158   LangString DESC_SecControl ${LANG_TRADCHINESE} "OpenAFS Control Center: GUI utilities for managing and configuring AFS."
159   LangString DESC_SecControl ${LANG_JAPANESE} "OpenAFS Control Center: GUI utilities for managing and configuring AFS."
160   LangString DESC_SecControl ${LANG_KOREAN} "OpenAFS Control Center: GUI utilities for managing and configuring AFS."
161   LangString DESC_SecControl ${LANG_PORTUGUESEBR} "OpenAFS Control Center: GUI utilities for managing and configuring AFS."
162   
163   LangString DESC_SecDocs ${LANG_ENGLISH} "OpenAFS Supplemental Documentation: Additional documentation for using OpenAFS."
164   LangString DESC_SecDocs ${LANG_GERMAN} "OpenAFS Supplemental Documentation: Additional documentation for using OpenAFS."
165   LangString DESC_SecDocs ${LANG_SPANISH} "OpenAFS Supplemental Documentation: Additional documentation for using OpenAFS."
166   LangString DESC_SecDocs ${LANG_SIMPCHINESE} "OpenAFS Supplemental Documentation: Additional documentation for using OpenAFS."
167   LangString DESC_SecDocs ${LANG_TRADCHINESE} "OpenAFS Supplemental Documentation: Additional documentation for using OpenAFS."
168   LangString DESC_SecDocs ${LANG_JAPANESE} "OpenAFS Supplemental Documentation: Additional documentation for using OpenAFS."
169   LangString DESC_SecDocs ${LANG_KOREAN} "OpenAFS Supplemental Documentation: Additional documentation for using OpenAFS."
170   LangString DESC_SecDocs ${LANG_PORTUGUESEBR} "OpenAFS Supplemental Documentation: Additional documentation for using OpenAFS."
171   
172 ; Popup error messages
173   LangString CellError ${LANG_ENGLISH} "You must specify a valid CellServDB file to copy during install"
174   LangString CellError ${LANG_GERMAN} "You must specify a valid CellServDB file to copy during the install"
175   LangString CellError ${LANG_SPANISH} "You must specify a valid CellServDB file to copy during the install"
176   LangString CellError ${LANG_SIMPCHINESE} "You must specify a valid CellServDB file to copy during the install"
177   LangString CellError ${LANG_TRADCHINESE} "You must specify a valid CellServDB file to copy during the install"
178   LangString CellError ${LANG_JAPANESE} "You must specify a valid CellServDB file to copy during the install"
179   LangString CellError ${LANG_KOREAN} "You must specify a valid CellServDB file to copy during the install"
180   LangString CellError ${LANG_PORTUGUESEBR} "You must specify a valid CellServDB file to copy during the install"
181   
182   
183 ; Upgrade/re-install strings
184    LangString UPGRADE_CLIENT ${LANG_ENGLISH} "Upgrade AFS Client"
185    LangString UPGRADE_CLIENT ${LANG_GERMAN} "Upgrade AFS Client"
186    LangString UPGRADE_CLIENT ${LANG_SPANISH} "Upgrade AFS Client"
187    LangString UPGRADE_CLIENT ${LANG_SIMPCHINESE} "Upgrade AFS Client"
188    LangString UPGRADE_CLIENT ${LANG_TRADCHINESE} "Upgrade AFS Client"
189    LangString UPGRADE_CLIENT ${LANG_JAPANESE} "Upgrade AFS Client"
190    LangString UPGRADE_CLIENT ${LANG_KOREAN} "Upgrade AFS Client"
191    LangString UPGRADE_CLIENT ${LANG_PORTUGUESEBR} "Upgrade AFS Client"
192    
193    
194    LangString REINSTALL_SERVER ${LANG_ENGLISH} "Re-install AFS Server"
195    LangString REINSTALL_SERVER ${LANG_GERMAN} "Re-install AFS Server"
196    LangString REINSTALL_SERVER ${LANG_SPANISH} "Re-install AFS Server"
197    LangString REINSTALL_SERVER ${LANG_SIMPCHINESE} "Re-install AFS Server"
198    LangString REINSTALL_SERVER ${LANG_TRADCHINESE} "Re-install AFS Server"
199    LangString REINSTALL_SERVER ${LANG_JAPANESE} "Re-install AFS Server"
200    LangString REINSTALL_SERVER ${LANG_KOREAN} "Re-install AFS Server"
201    LangString REINSTALL_SERVER ${LANG_PORTUGUESEBR} "Re-install AFS Server"
202   
203 ;--------------------------------
204 ; Macros
205 ; Macro - Upgrade DLL File
206  ; Written by Joost Verburg
207  ; ------------------------
208  ;
209  ; Example of usage:
210  ; !insertmacro UpgradeDLL "dllname.dll" "$SYSDIR\dllname.dll"
211  ;
212  ; !define UPGRADEDLL_NOREGISTER if you want to upgrade a DLL which cannot be registered
213  ;
214  ; Note that this macro sets overwrite to ON (the default) when it has been inserted.
215  ; If you are using another setting, set it again after inserting the macro.
216
217
218  !macro UpgradeDLL LOCALFILE DESTFILE
219
220    Push $R0
221    Push $R1
222    Push $R2
223    Push $R3
224
225    ;------------------------
226    ;Check file and version
227
228    IfFileExists "${DESTFILE}" "" "copy_${LOCALFILE}"
229
230    ClearErrors
231      GetDLLVersionLocal "${LOCALFILE}" $R0 $R1
232      GetDLLVersion "${DESTFILE}" $R2 $R3
233    IfErrors "upgrade_${LOCALFILE}"
234
235    IntCmpU $R0 $R2 "" "done_${LOCALFILE}" "upgrade_${LOCALFILE}"
236    IntCmpU $R1 $R3 "done_${LOCALFILE}" "done_${LOCALFILE}" "upgrade_${LOCALFILE}"
237
238    ;------------------------
239    ;Let's upgrade the DLL!
240
241    SetOverwrite try
242
243    "upgrade_${LOCALFILE}:"
244      !ifndef UPGRADEDLL_NOREGISTER
245        ;Unregister the DLL
246        UnRegDLL "${DESTFILE}"
247      !endif
248
249    ;------------------------
250    ;Try to copy the DLL directly
251
252    ClearErrors
253      StrCpy $R0 "${DESTFILE}"
254      Call ":file_${LOCALFILE}"
255    IfErrors "" "noreboot_${LOCALFILE}"
256
257    ;------------------------
258    ;DLL is in use. Copy it to a temp file and Rename it on reboot.
259
260    GetTempFileName $R0
261      Call ":file_${LOCALFILE}"
262    Rename /REBOOTOK $R0 "${DESTFILE}"
263
264    ;------------------------
265    ;Register the DLL on reboot
266
267    !ifndef UPGRADEDLL_NOREGISTER
268      WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\RunOnce" \
269      "Register ${DESTFILE}" '"$SYSDIR\rundll32.exe" "${DESTFILE},DllRegisterServer"'
270    !endif
271
272    Goto "done_${LOCALFILE}"
273
274    ;------------------------
275    ;DLL does not exist - just extract
276
277    "copy_${LOCALFILE}:"
278      StrCpy $R0 "${DESTFILE}"
279      Call ":file_${LOCALFILE}"
280
281    ;------------------------
282    ;Register the DLL
283
284    "noreboot_${LOCALFILE}:"
285      !ifndef UPGRADEDLL_NOREGISTER
286        RegDLL "${DESTFILE}"
287      !endif
288
289    ;------------------------
290    ;Done
291
292    "done_${LOCALFILE}:"
293
294    Pop $R3
295    Pop $R2
296    Pop $R1
297    Pop $R0
298
299    ;------------------------
300    ;End
301
302    Goto "end_${LOCALFILE}"
303
304    ;------------------------
305    ;Called to extract the DLL
306
307    "file_${LOCALFILE}:"
308      File /oname=$R0 "${LOCALFILE}"
309      Return
310
311    "end_${LOCALFILE}:"
312
313   ;------------------------
314   ;Set overwrite to default
315   ;(was set to TRY above)
316
317   SetOverwrite on
318
319  !macroend
320
321
322 ;--------------------------------
323 ;Reserve Files
324   
325   ;Things that need to be extracted on first (keep these lines before any File command!)
326   ;Only useful for BZIP2 compression
327   !insertmacro MUI_RESERVEFILE_LANGDLL
328   
329 ;--------------------------------
330 ;Installer Sections
331
332 ;----------------------
333 ; OpenAFS CLIENT
334 Section "AFS Client" SecClient
335
336   SetShellVarContext all
337    ; Do client components
338   SetOutPath "$INSTDIR\Client\Program"
339   File "${AFS_CLIENT_BUILDDIR}\afsshare.exe"
340   File "${AFS_BUILD_INCDIR}\afs\cm_config.h"
341   File "${AFS_CLIENT_BUILDDIR}\libosi.dll"
342   File "${AFS_BUILD_INCDIR}\afs\kautils.h"
343   File "${AFS_CLIENT_BUILDDIR}\libafsconf.dll"
344   File "${AFS_CLIENT_BUILDDIR}\klog.exe"
345   File "${AFS_CLIENT_BUILDDIR}\tokens.exe"
346   File "${AFS_CLIENT_BUILDDIR}\unlog.exe"
347   File "${AFS_CLIENT_BUILDDIR}\fs.exe"
348   File "${AFS_CLIENT_LIBDIR}\libafsconf.lib"
349   File "${AFS_CLIENT_LIBDIR}\afsauthent.lib"
350   File "${AFS_CLIENT_BUILDDIR}\afscreds.exe"
351   File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext.dll"
352   File "${AFS_BUILD_INCDIR}\afs\auth.h"
353   File "${AFS_CLIENT_BUILDDIR}\afsd_service.exe"
354   File "${AFS_CLIENT_BUILDDIR}\afslogon.dll"
355   File "${AFS_CLIENT_BUILDDIR}\symlink.exe"
356   File "${AFS_DESTDIR}\bin\kpasswd.exe"
357   File "${AFS_SERVER_BUILDDIR}\pts.exe"
358   File "${AFS_SERVER_BUILDDIR}\bos.exe"
359   File "${AFS_SERVER_BUILDDIR}\kas.exe"
360   File "${AFS_SERVER_BUILDDIR}\vos.exe"
361   File "${AFS_SERVER_BUILDDIR}\udebug.exe"
362   File "${AFS_DESTDIR}\bin\translate_et.exe"
363   File "${AFS_DESTDIR}\etc\rxdebug.exe"
364   File "${AFS_DESTDIR}\etc\backup.exe"
365   
366   
367   ; Client_headers
368    SetOutPath "$INSTDIR\Client\Program\Include"
369    File "${AFS_BUILD_INCDIR}\lock.h"
370    File "${AFS_BUILD_INCDIR}\lwp.h"
371    File "${AFS_BUILD_INCDIR}\preempt.h"
372    File "${AFS_BUILD_INCDIR}\timer.h"
373    File "${AFS_BUILD_INCDIR}\des.h"
374    File "${AFS_BUILD_INCDIR}\des_conf.h"
375    File "${AFS_BUILD_INCDIR}\mit-cpyright.h"
376    ;File "${AFS_BUILD_INCDIR}\des-odd.h"
377    File "${AFS_BUILD_INCDIR}\crypt.h"
378    File "${AFS_BUILD_INCDIR}\pthread.h"
379    File "${AFS_BUILD_INCDIR}\dbrpc.h"
380    File "${AFS_BUILD_INCDIR}\basic.h"
381    File "${AFS_BUILD_INCDIR}\osidebug.h"
382    File "${AFS_BUILD_INCDIR}\osiltype.h"
383    File "${AFS_BUILD_INCDIR}\osistatl.h"
384    File "${AFS_BUILD_INCDIR}\trylock.h"
385    File "${AFS_BUILD_INCDIR}\main.h"
386    File "${AFS_BUILD_INCDIR}\osibasel.h"
387    File "${AFS_BUILD_INCDIR}\osifd.h"
388    File "${AFS_BUILD_INCDIR}\osiqueue.h"
389    File "${AFS_BUILD_INCDIR}\osiutils.h"
390    File "${AFS_BUILD_INCDIR}\osi.h"
391    File "${AFS_BUILD_INCDIR}\osidb.h"
392    File "${AFS_BUILD_INCDIR}\osilog.h"
393    File "${AFS_BUILD_INCDIR}\osisleep.h"
394    File "${AFS_BUILD_INCDIR}\perf.h"
395    File "${AFS_BUILD_INCDIR}\ubik.h"
396    File "${AFS_BUILD_INCDIR}\ubik_int.h"
397    
398    
399    
400    SetOutPath "$INSTDIR\Client\Program\Include\afs"
401    File "${AFS_BUILD_INCDIR}\afs\afs_args.h"
402    File "${AFS_BUILD_INCDIR}\afs\debug.h"
403    File "${AFS_BUILD_INCDIR}\afs\param.h"
404    File "${AFS_BUILD_INCDIR}\afs\afs_sysnames.h"
405    ;File "${AFS_BUILD_INCDIR}\afs\permit_xprt.h"
406    File "${AFS_BUILD_INCDIR}\afs\stds.h"
407    File "${AFS_BUILD_INCDIR}\afs\icl.h"
408    File "${AFS_BUILD_INCDIR}\afs\procmgmt.h"
409    File "${AFS_BUILD_INCDIR}\afs\afsutil.h"
410    File "${AFS_BUILD_INCDIR}\afs\assert.h"
411    File "${AFS_BUILD_INCDIR}\afs\dirent.h"
412    File "${AFS_BUILD_INCDIR}\afs\errors.h"
413    File "${AFS_BUILD_INCDIR}\afs\itc.h"
414    File "${AFS_BUILD_INCDIR}\afs\vice.h"
415    File "${AFS_BUILD_INCDIR}\afs\pthread_glock.h"
416    File "${AFS_BUILD_INCDIR}\afs\errmap_nt.h"
417    File "${AFS_BUILD_INCDIR}\afs\dirpath.h"
418    File "${AFS_BUILD_INCDIR}\afs\ktime.h"
419    File "${AFS_BUILD_INCDIR}\afs\fileutil.h"
420    File "${AFS_BUILD_INCDIR}\afs\secutil_nt.h"
421    File "${AFS_BUILD_INCDIR}\afs\com_err.h"
422    File "${AFS_BUILD_INCDIR}\afs\error_table.h"
423    ;File "${AFS_BUILD_INCDIR}\afs\mit_sipb-cr.h"
424    File "${AFS_BUILD_INCDIR}\afs\cmd.h"
425    File "${AFS_BUILD_INCDIR}\afs\rxgen_consts.h"
426    File "${AFS_BUILD_INCDIR}\afs\afsint.h"
427    File "${AFS_BUILD_INCDIR}\afs\afscbint.h"
428    File "${AFS_BUILD_INCDIR}\afs\audit.h"
429    File "${AFS_BUILD_INCDIR}\afs\acl.h"
430    File "${AFS_BUILD_INCDIR}\afs\prs_fs.h"
431    File "${AFS_BUILD_INCDIR}\afs\afsd.h"
432    File "${AFS_BUILD_INCDIR}\afs\cm.h"
433    File "${AFS_BUILD_INCDIR}\afs\cm_buf.h"
434    File "${AFS_BUILD_INCDIR}\afs\cm_cell.h"
435    File "${AFS_BUILD_INCDIR}\afs\cm_config.h"
436    File "${AFS_BUILD_INCDIR}\afs\cm_conn.h"
437    File "${AFS_BUILD_INCDIR}\afs\cm_ioctl.h"
438    File "${AFS_BUILD_INCDIR}\afs\cm_scache.h"
439    File "${AFS_BUILD_INCDIR}\afs\cm_server.h"
440    File "${AFS_BUILD_INCDIR}\afs\cm_user.h"
441    File "${AFS_BUILD_INCDIR}\afs\cm_utils.h"
442    File "${AFS_BUILD_INCDIR}\afs\fs_utils.h"
443    File "${AFS_BUILD_INCDIR}\afs\krb.h"
444    File "${AFS_BUILD_INCDIR}\afs\krb_prot.h"
445    File "${AFS_BUILD_INCDIR}\afs\smb.h"
446    File "${AFS_BUILD_INCDIR}\afs\smb3.h"
447    File "${AFS_BUILD_INCDIR}\afs\smb_iocons.h"
448    File "${AFS_BUILD_INCDIR}\afs\smb_ioctl.h"
449    File "${AFS_BUILD_INCDIR}\afs\afsrpc.h"
450    File "${AFS_BUILD_INCDIR}\afs\afssyscalls.h"
451    File "${AFS_BUILD_INCDIR}\afs\pioctl_nt.h"
452    File "${AFS_BUILD_INCDIR}\afs\auth.h"
453    File "${AFS_BUILD_INCDIR}\afs\cellconfig.h"
454    File "${AFS_BUILD_INCDIR}\afs\keys.h"
455    File "${AFS_BUILD_INCDIR}\afs\ptserver.h"
456    File "${AFS_BUILD_INCDIR}\afs\ptint.h"
457    File "${AFS_BUILD_INCDIR}\afs\pterror.h"
458    File "${AFS_BUILD_INCDIR}\afs\ptint.h"
459    File "${AFS_BUILD_INCDIR}\afs\pterror.h"
460    File "${AFS_BUILD_INCDIR}\afs\ptclient.h"
461    File "${AFS_BUILD_INCDIR}\afs\prserver.h"
462    File "${AFS_BUILD_INCDIR}\afs\print.h"
463    File "${AFS_BUILD_INCDIR}\afs\prerror.h"
464    File "${AFS_BUILD_INCDIR}\afs\prclient.h"
465    File "${AFS_BUILD_INCDIR}\afs\kautils.h"
466    File "${AFS_BUILD_INCDIR}\afs\kauth.h"
467    File "${AFS_BUILD_INCDIR}\afs\kaport.h"
468    File "${AFS_BUILD_INCDIR}\afs\vl_opcodes.h"
469    File "${AFS_BUILD_INCDIR}\afs\vlserver.h"
470    File "${AFS_BUILD_INCDIR}\afs\vldbint.h"
471    File "${AFS_BUILD_INCDIR}\afs\usd.h"
472    File "${AFS_BUILD_INCDIR}\afs\bubasics.h"
473    File "${AFS_BUILD_INCDIR}\afs\butc.h"
474    File "${AFS_BUILD_INCDIR}\afs\bumon.h"
475    File "${AFS_BUILD_INCDIR}\afs\butm.h"
476    File "${AFS_BUILD_INCDIR}\afs\tcdata.h"
477    File "${AFS_BUILD_INCDIR}\afs\budb.h"
478    ;File "${AFS_BUILD_INCDIR}\afs\budb_errors.h"
479    File "${AFS_BUILD_INCDIR}\afs\budb_client.h"
480    File "${AFS_BUILD_INCDIR}\afs\dir.h"
481    File "${AFS_BUILD_INCDIR}\afs\fssync.h"
482    File "${AFS_BUILD_INCDIR}\afs\ihandle.h"
483    File "${AFS_BUILD_INCDIR}\afs\nfs.h"
484    File "${AFS_BUILD_INCDIR}\afs\ntops.h"
485    File "${AFS_BUILD_INCDIR}\afs\partition.h"
486    File "${AFS_BUILD_INCDIR}\afs\viceinode.h"
487    File "${AFS_BUILD_INCDIR}\afs\vnode.h"
488    File "${AFS_BUILD_INCDIR}\afs\volume.h"
489    File "${AFS_BUILD_INCDIR}\afs\voldefs.h"
490    File "${AFS_BUILD_INCDIR}\afs\volser.h"
491    File "${AFS_BUILD_INCDIR}\afs\volint.h"
492    File "${AFS_BUILD_INCDIR}\afs\fs_stats.h"
493    File "${AFS_BUILD_INCDIR}\afs\bosint.h"
494    File "${AFS_BUILD_INCDIR}\afs\bnode.h"
495    
496    
497    SetOutPath "$INSTDIR\Client\Program\Include\rx"
498    File "${AFS_BUILD_INCDIR}\rx\rx.h"
499    File "${AFS_BUILD_INCDIR}\rx\rx_packet.h"
500    File "${AFS_BUILD_INCDIR}\rx\rx_user.h"
501    File "${AFS_BUILD_INCDIR}\rx\rx_event.h"
502    File "${AFS_BUILD_INCDIR}\rx\rx_queue.h"
503    File "${AFS_BUILD_INCDIR}\rx\rx_globals.h"
504    File "${AFS_BUILD_INCDIR}\rx\rx_clock.h"
505    File "${AFS_BUILD_INCDIR}\rx\rx_misc.h"
506    File "${AFS_BUILD_INCDIR}\rx\rx_multi.h"
507    File "${AFS_BUILD_INCDIR}\rx\rx_null.h"
508    File "${AFS_BUILD_INCDIR}\rx\rx_lwp.h"
509    File "${AFS_BUILD_INCDIR}\rx\rx_pthread.h"
510    File "${AFS_BUILD_INCDIR}\rx\rx_xmit_nt.h"
511    File "${AFS_BUILD_INCDIR}\rx\xdr.h"
512    File "${AFS_BUILD_INCDIR}\rx\rxkad.h"
513    
514    
515
516    ; Client Sample
517    SetOutPath "$INSTDIR\Client\Program\Sample"
518    File "..\..\afsd\sample\token.c"
519    
520    Call AFSLangFiles
521    
522    ; Do SYSTEM32 DIR
523    SetOutPath "$SYSDIR"
524    File "${AFS_CLIENT_BUILDDIR}\afs_cpa.cpl"
525    ;File "${SDK_DIR}\REDIST\msvcrt.dll"
526    !insertmacro UpgradeDLL "${AFS_WININSTALL_DIR}\mfc42.dll" "$SYSDIR\mfc42.dll"
527    
528   ; Do WINDOWSDIR components
529   ; Get AFS CellServDB file
530   Call afs.GetCellServDB
531   
532   ReadINIStr $R0 $0 "Field 2" "State"
533   StrCmp $R0 "1" UsePkg DontUsePkg
534  UsePkg:
535    SetOutPath "$WINDIR"
536    File "afsdcell.ini"
537 DontUsePkg:
538    ReadINIStr $R0 $0 "Field 6" "State"
539    StrCmp $R0 "1" UseFile DontUseFile
540 UseFile:
541    ReadINIStr $R0 $0 "Field 7" "State"
542    CopyFiles $R0 "$WINDIR\afsdcell.ini"
543 DontUseFile:
544    
545   ;Store install folder
546   WriteRegStr HKCU "${AFS_REGKEY_ROOT}\Client" "" $INSTDIR
547   Call AFSCommon.Install
548   
549   
550   ; Write registry entries
551   WriteRegStr HKCR "*\shellex\ContextMenuHandlers\AFS Client Shell Extension" "" "{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
552   WriteRegStr HKCR "CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}" "(Default)" "AFS Client Shell Extension"
553   WriteRegStr HKCR "CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32" "" "$INSTDIR\Client\Program\afs_shl_ext.dll"
554   WriteRegStr HKCR "CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32" "ThreadingModel" "Apartment"
555   WriteRegStr HKCR "FOLDER\shellex\ContextMenuHandlers\AFS Client Shell Extension" "" "{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
556   
557   ; AFS Reg entries
558   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion"
559   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "VersionString" ${MUI_VERSION}
560   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "Title" "AFS Client"
561   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "Description" "AFS Client"
562   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "PathName" "$INSTDIR\Client\Program"
563   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "Software Type" "File System"
564   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "MajorVersion" ${MUI_MAJORVERSION}
565   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "MinorVersion" ${MUI_MINORVERSION}
566   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "PatchLevel" ${MUI_PATCHLEVEL}
567   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${MUI_VERSION}" "VersionString" ${MUI_VERSION}
568   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${MUI_VERSION}" "Title" "AFS Client"
569   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${MUI_VERSION}" "Description" "AFS Client"
570   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${MUI_VERSION}" "Software Type" "File System"
571   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${MUI_VERSION}" "PathName" "$INSTDIR\Client\Program"
572   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\${MUI_VERSION}" "MajorVersion" ${MUI_MAJORVERSION}
573   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\${MUI_VERSION}" "MinorVersion" ${MUI_MINORVERSION}
574   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\${MUI_VERSION}" "PatchLevel" ${MUI_PATCHLEVEL}
575
576   ; Daemon entries
577   WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon" "(Default)" ""
578   WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "AuthentProviderPath" "$INSTDIR\Client\Program\afslogon.dll"
579   WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "Class" 2
580   WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "LogonOptions" 0
581   WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "LogonScript" "$INSTDIR\Client\Program\afscreds.exe -:%s -x"
582   WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "Name" "OpenAFSDaemon"
583   WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "ProviderPath" "$INSTDIR\Client\Program\afslogon.dll"
584    
585    ; Set network settings
586   WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\NetBT\Parameters" "SmbDeviceEnabled" 0
587   
588   ;Write start menu entries
589   CreateDirectory "$SMPROGRAMS\OpenAFS\Client"
590   CreateShortCut "$SMPROGRAMS\OpenAFS\Uninstall OpenAFS.lnk" "$INSTDIR\Uninstall.exe"
591   CreateShortCut "$SMPROGRAMS\OpenAFS\Client\Authentication.lnk" "$INSTDIR\Client\Program\afscreds.exe"
592   CreateShortCut "$SMSTARTUP\AFS Credentials.lnk" "$INSTDIR\Client\Program\afscreds.exe"
593
594   Push "$INSTDIR\Client\Program"
595   Call AddToPath
596   Push "$INSTDIR\Common"
597   Call AddToPath
598   
599   ; Create the AFS service
600   GetTempFileName $R0
601   File /oname=$R0 "${AFS_WININSTALL_DIR}\Service.exe"
602   ExecWait "net stop TransarcAFSDaemon"
603   ExecWait '$R0 u TransarcAFSDaemon'
604   ExecWait '$R0 TransarcAFSDaemon "$INSTDIR\Client\Program\afsd_service.exe" "OpenAFS Client Service"'
605   Delete $R0
606
607   ;Write cell name
608   ReadINIStr $R0 $1 "Field 2" "State"
609   WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "Cell" $R0
610   WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "ShowTrayIcon" 1
611   
612   SetRebootFlag true
613   
614   WriteUninstaller "$INSTDIR\Uninstall.exe"
615   
616 SectionEnd
617
618 ;------------------------
619 ; OpenAFS SERVER  
620 Section "AFS Server" SecServer
621
622   SetShellVarContext all
623
624   CreateDirectory "$INSTDIR\Server\usr\afs\etc"
625   CreateDirectory "$INSTDIR\Server\usr\afs\local"
626   CreateDirectory "$INSTDIR\Server\usr\afs\logs"
627   
628   SetOutPath "$INSTDIR\Server\usr\afs\bin"  
629   File "${AFS_SERVER_BUILDDIR}\afskill.exe"
630   File "${AFS_SERVER_BUILDDIR}\afssvrcfg.exe"
631   File "${AFS_SERVER_BUILDDIR}\bosctlsvc.exe"
632   File "${AFS_SERVER_BUILDDIR}\bosserver.exe"
633   File "${AFS_SERVER_BUILDDIR}\buserver.exe"
634   File "${AFS_ETC_BUILDDIR}\butc.exe"
635   File "${AFS_SERVER_BUILDDIR}\fileserver.exe"
636   File "${AFS_ETC_BUILDDIR}\fms.exe"
637   File "${AFS_SERVER_BUILDDIR}\kaserver.exe"
638   File "${AFS_SERVER_BUILDDIR}\ptserver.exe"
639   File "${AFS_SERVER_BUILDDIR}\salvager.exe"
640   File "${AFS_SERVER_BUILDDIR}\upclient.exe"
641   File "${AFS_SERVER_BUILDDIR}\upserver.exe"
642   File "${AFS_SERVER_BUILDDIR}\vlserver.exe"
643   File "${AFS_SERVER_BUILDDIR}\volinfo.exe"
644   File "${AFS_SERVER_BUILDDIR}\volserver.exe"
645  
646  ;AFS Server common files
647  SetOutPath "$INSTDIR\Common"
648  File "${AFS_SERVER_BUILDDIR}\afsvosadmin.dll"
649  File "${AFS_SERVER_BUILDDIR}\afsbosadmin.dll"
650  File "${AFS_SERVER_BUILDDIR}\afscfgadmin.dll"
651  File "${AFS_SERVER_BUILDDIR}\afskasadmin.dll"
652  File "${AFS_SERVER_BUILDDIR}\afsptsadmin.dll"
653  SetOutPath "$INSTDIR\Common"
654    Call AFSLangFiles
655    
656    SetOutPath "$WINDIR"
657    File "${AFS_SERVER_BUILDDIR}\afsserver.cpl"
658    
659   ;Store install folder
660   WriteRegStr HKCU "${AFS_REGKEY_ROOT}\AFS Server" "" $INSTDIR
661   
662   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion"
663   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "VersionString" ${MUI_VERSION}
664   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "Title" "AFS Server"
665   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "Description" "AFS Server for Windows"
666   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "PathName" "$INSTDIR\Server"
667   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "Software Type" "File System"
668   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "MajorVersion" ${MUI_MAJORVERSION}
669   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "MinorVersion" ${MUI_MINORVERSION}
670   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "PatchLevel" ${MUI_PATCHLEVEL}
671   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${MUI_VERSION}" "VersionString" ${MUI_VERSION}
672   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${MUI_VERSION}" "Title" "AFS Server"
673   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${MUI_VERSION}" "Description" "AFS Server for Windows"
674   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${MUI_VERSION}" "Software Type" "File System"
675   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${MUI_VERSION}" "PathName" "$INSTDIR\Server"
676   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\${MUI_VERSION}" "MajorVersion" ${MUI_MAJORVERSION}
677   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\${MUI_VERSION}" "MinorVersion" ${MUI_MINORVERSION}
678   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\${MUI_VERSION}" "PatchLevel" ${MUI_PATCHLEVEL}
679
680   ; Install the service
681   GetTempFileName $R0
682   File /oname=$R0 "${AFS_WININSTALL_DIR}\Service.exe"
683   ExecWait "net stop TransarcAFSServer"
684   ExecWait '$R0 u TransarcAFSServer'
685   ExecWait '$R0 TransarcAFSServer "$INSTDIR\Server\usr\afs\bin\bosctlsvc.exe" "OpenAFS AFS Server"'
686   Delete $R0
687   
688   CreateDirectory "$SMPROGRAMS\OpenAFS\Server"
689   CreateShortCut "$SMPROGRAMS\OpenAFS\Server\Configuration Wizard.lnk" "$INSTDIR\Server\usr\afs\bin\afssvrcfg.exe" "/wizard"
690   
691   WriteUninstaller "$INSTDIR\Uninstall.exe"
692
693 SectionEnd
694
695
696 ;----------------------------
697 ; OpenAFS Control Center
698 Section "AFS Control Center" SecControl
699
700   SetShellVarContext all
701
702    SetOutPath "$INSTDIR\Control Center"
703   File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager.exe"
704   File "${AFS_SERVER_BUILDDIR}\TaAfsAdmSvr.exe"
705   File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager.exe"
706    
707  ;AFS Server common files
708  Call AFSCommon.Install
709  Call AFSLangFiles
710  SetOutPath "$INSTDIR\Common"
711
712   SetOutPath "$INSTDIR\Common"
713   File "${AFS_WININSTALL_DIR}\Msvcr71.dll"
714       
715    
716    ;Store install folder
717   WriteRegStr HKCU "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "PathName" $INSTDIR
718   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "VersionString" ${MUI_VERSION}
719   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "MajorVersion" ${MUI_MAJORVERSION}
720   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "MinorVersion" ${MUI_MINORVERSION}
721   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "PatchLevel" ${MUI_PATCHLEVEL}
722   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${MUI_VERSION}" "VersionString" ${MUI_VERSION}
723   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${MUI_VERSION}" "MajorVersion" ${MUI_MAJORVERSION}
724   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${MUI_VERSION}" "MinorVersion" ${MUI_MINORVERSION}
725   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${MUI_VERSION}" "PatchLevel" ${MUI_PATCHLEVEL}
726   
727
728   ;Write start menu entries
729   CreateDirectory "$SMPROGRAMS\OpenAFS\Control Center"
730   CreateShortCut "$SMPROGRAMS\OpenAFS\Control Center\Account Manager.lnk" "$INSTDIR\Control Center\TaAfsAccountManager.exe"
731   CreateShortCut "$SMPROGRAMS\OpenAFS\Control Center\Server Manager.lnk" "$INSTDIR\Control Center\TaAfsServerManager.exe"
732   
733   WriteUninstaller "$INSTDIR\Uninstall.exe"
734
735 SectionEnd   
736
737
738 ;----------------------------
739 ; OpenAFS Supplemental Documentation
740 Section "Supplemental Documentation" SecDocs
741   SetShellVarContext all
742
743    StrCmp $LANGUAGE ${LANG_ENGLISH} DoEnglish
744    StrCmp $LANGUAGE ${LANG_GERMAN} DoGerman
745    StrCmp $LANGUAGE ${LANG_SPANISH} DoSpanish
746    StrCmp $LANGUAGE ${LANG_JAPANESE} DoJapanese
747    ;StrCmp $LANGUAGE ${LANG_KOREAN} DoKorean
748    StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} DoPortugueseBR
749    StrCmp $LANGUAGE ${LANG_SIMPCHINESE} DoSimpChinese
750    StrCmp $LANGUAGE ${LANG_TRADCHINESE} DoTradChinese
751    
752    
753 DoEnglish:
754    SetOutPath "$INSTDIR\Documentation\html"
755    File "..\..\doc\install\Documentation\en_US\html\*"
756    SetOutPath "$INSTDIR\Documentation\html\CmdRef"
757    File "..\..\doc\install\Documentation\en_US\html\CmdRef\*"
758    SetOutPath "$INSTDIR\Documentation\html\InstallGd"
759    File "..\..\doc\install\Documentation\en_US\html\InstallGd\*"
760    SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
761    File "..\..\doc\install\Documentation\en_US\html\ReleaseNotes\*"
762    SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
763    File "..\..\doc\install\Documentation\en_US\html\SysAdminGd\*"
764    goto DoneLanguage
765    
766 DoGerman:
767    SetOutPath "$INSTDIR\Documentation"
768    File "..\..\doc\install\Documentation\de_DE\README.TXT"
769    SetOutPath "$INSTDIR\Documentation\html"
770    File "..\..\doc\install\Documentation\de_DE\html\*"
771    ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
772    ;File "..\..\doc\install\Documentation\de_DE\html\CmdRef\*"
773    SetOutPath "$INSTDIR\Documentation\html\InstallGd"
774    File "..\..\doc\install\Documentation\de_DE\html\InstallGd\*"
775    ;SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
776    ;File "..\..\doc\install\Documentation\de_DE\html\ReleaseNotes\*"
777    ;SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
778    ;File "..\..\doc\install\Documentation\de_DE\html\SysAdminGd\*"
779    goto DoneLanguage
780    
781 DoSpanish:
782    SetOutPath "$INSTDIR\Documentation"
783    File "..\..\doc\install\Documentation\es_ES\README.TXT"
784    SetOutPath "$INSTDIR\Documentation\html"
785    File "..\..\doc\install\Documentation\es_ES\html\*"
786    ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
787    ;File "..\..\doc\install\Documentation\es_ES\html\CmdRef\*"
788    SetOutPath "$INSTDIR\Documentation\html\InstallGd"
789    File "..\..\doc\install\Documentation\es_ES\html\InstallGd\*"
790    ;SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
791    ;File "..\..\doc\install\Documentation\es_ES\html\ReleaseNotes\*"
792    ;SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
793    ;File "..\..\doc\install\Documentation\es_ES\html\SysAdminGd\*"
794    goto DoneLanguage
795
796 DoJapanese:
797    SetOutPath "$INSTDIR\Documentation"
798    File "..\..\doc\install\Documentation\ja_JP\README.TXT"
799    SetOutPath "$INSTDIR\Documentation\html"
800    File "..\..\doc\install\Documentation\ja_JP\html\*"
801    SetOutPath "$INSTDIR\Documentation\html\CmdRef"
802    File "..\..\doc\install\Documentation\ja_JP\html\CmdRef\*"
803    SetOutPath "$INSTDIR\Documentation\html\InstallGd"
804    File "..\..\doc\install\Documentation\ja_JP\html\InstallGd\*"
805    SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
806    File "..\..\doc\install\Documentation\ja_JP\html\ReleaseNotes\*"
807    SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
808    File "..\..\doc\install\Documentation\ja_JP\html\SysAdminGd\*"
809    goto DoneLanguage
810    
811 DoKorean:
812    SetOutPath "$INSTDIR\Documentation"
813    File "..\..\doc\install\Documentation\ko_KR\README.TXT"
814    SetOutPath "$INSTDIR\Documentation\html"
815    File "..\..\doc\install\Documentation\ko_KR\html\*"
816    ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
817    ;File "..\..\doc\install\Documentation\ko_KR\html\CmdRef\*"
818    SetOutPath "$INSTDIR\Documentation\html\InstallGd"
819    File "..\..\doc\install\Documentation\ko_KR\html\InstallGd\*"
820    SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
821    File "..\..\doc\install\Documentation\ko_KR\html\ReleaseNotes\*"
822    SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
823    File "..\..\doc\install\Documentation\ko_KR\html\SysAdminGd\*"
824    goto DoneLanguage
825    
826 DoPortugueseBR:
827    SetOutPath "$INSTDIR\Documentation"
828    File "..\..\doc\install\Documentation\pt_BR\README.TXT"
829    SetOutPath "$INSTDIR\Documentation\html"
830    File "..\..\doc\install\Documentation\pt_BR\html\*"
831    ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
832    ;File "..\..\doc\install\Documentation\pt_BR\html\CmdRef\*"
833    SetOutPath "$INSTDIR\Documentation\html\InstallGd"
834    File "..\..\doc\install\Documentation\pt_BR\html\InstallGd\*"
835    SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
836    File "..\..\doc\install\Documentation\pt_BR\html\ReleaseNotes\*"
837    ;SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
838    ;File "..\..\doc\install\Documentation\pt_BR\html\SysAdminGd\*"
839    goto DoneLanguage
840
841 DoSimpChinese:
842    SetOutPath "$INSTDIR\Documentation"
843    File "..\..\doc\install\Documentation\zh_CN\README.TXT"
844    SetOutPath "$INSTDIR\Documentation\html"
845    File "..\..\doc\install\Documentation\zh_CN\html\*"
846    ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
847    ;File "..\..\doc\install\Documentation\zh_CN\html\CmdRef\*"
848    SetOutPath "$INSTDIR\Documentation\html\InstallGd"
849    File "..\..\doc\install\Documentation\zh_CN\html\InstallGd\*"
850    SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
851    File "..\..\doc\install\Documentation\zh_CN\html\ReleaseNotes\*"
852    ;SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
853    ;File "..\..\doc\install\Documentation\zh_CN\html\SysAdminGd\*"
854    goto DoneLanguage
855    
856 DoTradChinese:
857    SetOutPath "$INSTDIR\Documentation"
858    File "..\..\doc\install\Documentation\zh_TW\README.TXT"
859    SetOutPath "$INSTDIR\Documentation\html"
860    File "..\..\doc\install\Documentation\zh_TW\html\*"
861    ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
862    ;File "..\..\doc\install\Documentation\zh_TW\html\CmdRef\*"
863    SetOutPath "$INSTDIR\Documentation\html\InstallGd"
864    File "..\..\doc\install\Documentation\zh_TW\html\InstallGd\*"
865    SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
866    File "..\..\doc\install\Documentation\zh_TW\html\ReleaseNotes\*"
867    ;SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
868    ;File "..\..\doc\install\Documentation\zh_TW\html\SysAdminGd\*"
869    goto DoneLanguage
870    
871    
872 DoneLanguage:
873    ;Store install folder
874   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation" "" $INSTDIR
875   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion" "VersionString" ${MUI_VERSION}
876   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion" "MajorVersion" ${MUI_MAJORVERSION}
877   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion" "MinorVersion" ${MUI_MINORVERSION}
878   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion" "PatchLevel" ${MUI_PATCHLEVEL}
879   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\${MUI_VERSION}" "VersionString" ${MUI_VERSION}
880   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\${MUI_VERSION}" "MajorVersion" ${MUI_MAJORVERSION}
881   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\${MUI_VERSION}" "MinorVersion" ${MUI_MINORVERSION}
882   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\${MUI_VERSION}" "PatchLevel" ${MUI_PATCHLEVEL}
883
884   ; Write start menu shortcut
885   SetOutPath "$SMPROGRAMS\OpenAFS"
886   CreateShortCut "$SMPROGRAMS\OpenAFS\Documentation.lnk" "$INSTDIR\Documentation\html\index.htm"
887   
888   
889   WriteUninstaller "$INSTDIR\Uninstall.exe"
890   CreateShortCut "$SMPROGRAMS\OpenAFS\Uninstall OpenAFS.lnk" "$INSTDIR\Uninstall.exe"
891 SectionEnd  
892   
893 ;Display the Finish header
894 ;Insert this macro after the sections if you are not using a finish page
895 ;!insertmacro MUI_SECTIONS_FINISHHEADER
896
897 ;--------------------------------
898 ;Installer Functions
899
900 Function .onInit
901
902   !insertmacro MUI_LANGDLL_DISPLAY
903   
904   ; Set the default install options
905         Push $0
906
907    Call ShouldClientInstall
908    Pop $R2
909    
910    StrCmp $R2 "0" NoClient
911    StrCmp $R2 "2" UpgradeClient
912    
913         StrCpy $1 ${secClient} ; Gotta remember which section we are at now...
914         SectionGetFlags ${secClient} $0
915         IntOp $0 $0 | ${SF_SELECTED}
916         SectionSetFlags ${secClient} $0
917         # !insertmacro SelectSection ${secClient}
918    goto skipClient
919 NoClient:
920         StrCpy $1 ${secClient} ; Gotta remember which section we are at now...
921         SectionGetFlags ${secClient} $0
922         IntOp $0 $0 | ${SECTION_OFF}
923         SectionSetFlags ${secClient} $0
924    goto skipClient
925 UpgradeClient:
926         SectionGetFlags ${secClient} $0
927         IntOp $0 $0 | ${SF_SELECTED}
928         SectionSetFlags ${secClient} $0
929    SectionSetText ${secClient} $(UPGRADE_CLIENT)
930    goto skipClient
931
932    
933 skipClient:   
934    
935    
936    Call IsServerInstalled
937    Pop $R2
938    StrCmp $R2 "0" NoServer
939    
940         SectionGetFlags ${secServer} $0
941         IntOp $0 $0 & ${SF_SELECTED}
942         SectionSetFlags ${secServer} $0
943         # !insertmacro UnselectSection ${secServer}
944    goto skipServer
945
946 NoServer:
947         SectionGetFlags ${secServer} $0
948         IntOp $0 $0 & ${SECTION_OFF}
949         SectionSetFlags ${secServer} $0
950         # !insertmacro UnselectSection ${secServer}
951    
952 skipServer:   
953         SectionGetFlags ${secControl} $0
954         IntOp $0 $0 & ${SECTION_OFF}
955         SectionSetFlags ${secControl} $0
956         # !insertmacro UnselectSection ${secControl}
957
958         SectionGetFlags ${secDocs} $0
959         IntOp $0 $0 | ${SF_SELECTED}
960         SectionSetFlags ${secDocs} $0
961         # !insertmacro UnselectSection ${secDocs}
962
963         Pop $0
964   
965   
966   
967   GetTempFilename $0
968   File /oname=$0 CellServPage.ini
969   GetTempFilename $1
970   File /oname=$1 AFSCell.ini
971    
972   
973 FunctionEnd
974
975
976
977
978
979 ;--------------------------------
980 ; These are our cleanup functions
981 Function .onInstFailed
982 Delete $0
983
984 FunctionEnd
985
986 Function .onInstSuccess
987 Delete $0
988
989 FunctionEnd
990
991
992 ;--------------------------------
993 ;Descriptions
994
995 !insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN
996   !insertmacro MUI_DESCRIPTION_TEXT ${SecServer} $(DESC_SecServer)
997   !insertmacro MUI_DESCRIPTION_TEXT ${SecClient} $(DESC_SecClient)
998   !insertmacro MUI_DESCRIPTION_TEXT ${SecControl} $(DESC_SecControl)
999   !insertmacro MUI_DESCRIPTION_TEXT ${SecDocs} $(DESC_SecDocs)
1000 !insertmacro MUI_FUNCTIONS_DESCRIPTION_END
1001  
1002 ;--------------------------------
1003 ;Uninstaller Section
1004
1005 Section "Uninstall"
1006   
1007   SetShellVarContext all
1008   ; Delete the AFS service
1009   GetTempFileName $R0
1010   File /oname=$R0 "${AFS_WININSTALL_DIR}\Service.exe"
1011   ExecWait "net stop TransarcAFSDaemon"
1012   ExecWait "net stop TransarcAFSServer"
1013   ExecWait '$R0 u TransarcAFSDaemon'
1014   ExecWait '$R0 u TransarcAFSServer'
1015   Delete $R0
1016   
1017   Push "$INSTDIR\Client\Program"
1018   Call un.RemoveFromPath
1019   Push "$INSTDIR\Common"
1020   Call un.RemoveFromPath
1021   
1022   ; Delete documentation
1023   Delete "$INSTDIR\Documentation\README.TXT"
1024   Delete "$INSTDIR\Documentation\html\*"
1025   Delete "$INSTDIR\Documentation\html\CmdRef\*"
1026   Delete "$INSTDIR\Documentation\html\InstallGd\*"
1027   Delete "$INSTDIR\Documentation\html\ReleaseNotes\*"
1028   Delete "$INSTDIR\Documentation\html\SysAdminGd\*"
1029
1030   Delete "$WINDIR\afs_cpa.cpl"
1031   
1032    Call un.IsSilent
1033    Pop $R1
1034    StrCmp $R1 "/S" SkipAsk
1035   IfFileExists "$WINDIR\afsdcell.ini" CellExists SkipDelCell
1036   CellExists:
1037   MessageBox MB_YESNO "Would you like to keep your Cell file?" IDYES SkipDelCell
1038   SkipAsk:
1039   Delete "$WINDIR\afsdcell.ini"
1040
1041   SkipDelCell:
1042    StrCmp $R1 "/S" SkipAsk2  
1043   MessageBox MB_YESNO "Would you like to keep your submount file?" IDYES SkipSubFile
1044   SkipAsk2:
1045   Delete "$WINDIR\afsdsbmt.ini"
1046   
1047   SkipSubFile:
1048   Delete "$WINDIR\afsd_init.log"
1049   Delete "$INSTDIR\Uninstall.exe"
1050
1051   ; Remove server
1052   Delete "$INSTDIR\Server\usr\afs\bin\afskill.exe"
1053   Delete "$INSTDIR\Server\usr\afs\bin\afssvrcfg.exe"
1054   Delete "$INSTDIR\Server\usr\afs\bin\bosctlsvc.exe"
1055   Delete "$INSTDIR\Server\usr\afs\bin\bosserver.exe"
1056   Delete "$INSTDIR\Server\usr\afs\bin\buserver.exe"
1057   Delete "$INSTDIR\Server\usr\afs\bin\butc.exe"
1058   Delete "$INSTDIR\Server\usr\afs\bin\fileserver.exe"
1059   Delete "$INSTDIR\Server\usr\afs\bin\fms.exe"
1060   Delete "$INSTDIR\Server\usr\afs\bin\kaserver.exe"
1061   Delete "$INSTDIR\Server\usr\afs\bin\ptserver.exe"
1062   Delete "$INSTDIR\Server\usr\afs\bin\salvager.exe"
1063   Delete "$INSTDIR\Server\usr\afs\bin\ServerUninst.dll"
1064   Delete "$INSTDIR\Server\usr\afs\bin\upclient.exe"
1065   Delete "$INSTDIR\Server\usr\afs\bin\upserver.exe"
1066   Delete "$INSTDIR\Server\usr\afs\bin\vlserver.exe"
1067   Delete "$INSTDIR\Server\usr\afs\bin\volinfo.exe"
1068   Delete "$INSTDIR\Server\usr\afs\bin\volserver.exe"
1069   RMDir /r "$INSTDIR\Server\usr\afs\bin"
1070   RmDir /r "$INSTDIR\Server\usr\afs\etc"
1071   RmDir /r "$INSTDIR\Server\usr\afs\local"
1072   RMDIR /r "$INSTDIR\Server\usr\afs\logs"
1073   
1074   Delete /REBOOTOK "$WINDIR\afsserver.cpl"
1075   Delete /REBOOTOK "$WINDIR\afs_cpa.cpl"
1076   
1077   RMDir /r "$INSTDIR\Documentation\html\CmdRef"
1078   RMDir /r "$INSTDIR\Documentation\html\InstallGd"
1079   RMDir /r "$INSTDIR\Documentation\html\ReleaseNotes"
1080   RMDir /r "$INSTDIR\Documentation\html\SysAdminGd"
1081   RMDIr /r "$INSTDIR\Documentation\html"
1082   
1083   RMDir "$INSTDIR\Documentation"
1084   ; Delete DOC short cut
1085   RMDir /r "$INSTDIR\Client\Program"
1086   RMDir /r "$INSTDIR\Client"
1087   
1088   Delete /REBOOTOK "$INSTDIR\Common\msvcr71.dll"
1089   Delete /REBOOTOK "$INSTDIR\Common\*"
1090   RMDir /r "$INSTDIR\Common"
1091
1092   Delete "$SMPROGRAMS\OpenAFS\Documentation.lnk"
1093
1094   ; Remove control center
1095   Delete "$INSTDIR\Control Center\TaAfsAccountManager.exe"
1096   Delete "$INSTDIR\Control Center\TaAfsAdmSvr.exe"
1097   Delete "$INSTDIR\Control Center\TaAfsServerManager.exe"
1098   Delete "$INSTDIR\Control Center\CCUninst.dll"
1099   RMDir "$INSTDIR\Control Center"
1100   
1101   RMDir "$INSTDIR"
1102
1103   Delete "$SMPROGRAMS\OpenAFS\Uninstall OpenAFS.lnk"
1104   Delete "$SMPROGRAMS\OpenAFS\Client\Authentication.lnk"
1105   Delete "$SMPROGRAMS\OpenAFS\Control Center\Account Manager.lnk"
1106   Delete "$SMPROGRAMS\OpenAFS\Control Center\Server Manager.lnk"
1107   RMDIR "$SMPROGRAMS\OpenAFS\Control Center"
1108   RMDir /r "$SMPROGRAMS\OpenAFS\Client"
1109   RMDir /r "$SMPROGRAMS\OpenAFS"
1110   
1111   ReadRegStr $R0 HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon" "CachePath"
1112   IfErrors +2
1113   Delete "$R0\AFSCache"
1114   Delete "C:\AFSCache"
1115   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion"
1116   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Client"
1117   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion"
1118   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation"
1119   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion"
1120   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Control Center"
1121   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion"
1122   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Server"
1123   DeleteRegKey /ifempty HKLM "${AFS_REGKEY_ROOT}"
1124   DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS"
1125   DeleteRegValue HKLM "SYSTEM\CurrentControlSet\Services\NetBT\Parameters" "SmbDeviceEnabled"
1126  
1127   
1128   ;Display the Finish header
1129   !insertmacro MUI_UNFINISHHEADER
1130
1131 SectionEnd
1132
1133 ;--------------------------------
1134 ;Uninstaller Functions
1135
1136 Function un.onInit
1137
1138   ;Get language from registry
1139   ReadRegStr $LANGUAGE HKCU "Software\OpenAFS\AFS" "Installer Language"
1140   
1141 FunctionEnd
1142
1143
1144 ;------------------------------
1145 ; Get the CellServDB file from the Internet
1146
1147 Function afs.GetCellServDB
1148
1149 ;Check if we should download CellServDB
1150 ReadINIStr $R0 $0 "Field 4" "State"
1151 StrCmp $R0 "0" CheckIncl
1152
1153    ReadINIStr $R0 $0 "Field 5" "State"
1154    NSISdl::download $R0 "$WINDIR\afsdcell.ini"
1155    Pop $R0 ;Get the return value
1156    StrCmp $R0 "success" +2
1157       MessageBox MB_OK|MB_ICONSTOP "Download failed: $R0"
1158    goto done
1159 CheckIncl:
1160    ReadINIStr $R0 $0 "Field 3" "State"
1161    StrCmp $R0 "0" CheckOther
1162    SetOutPath "$WINDIR"
1163    File "afsdcell.ini"
1164    goto done
1165    
1166 CheckOther:
1167    ReadINIStr $R0 $0 "Field 7" "State"
1168    CopyFiles $R0 "$WINDIR\afsdcell.ini"
1169    
1170 done:
1171
1172 FunctionEnd
1173
1174
1175
1176 ;-------------------------------
1177 ;Do the page to get the CellServDB
1178
1179 Function AFSPageGetCellServDB
1180   ; Set the install options here
1181   
1182 startOver:
1183   WriteINIStr $0 "Field 2" "Flags" "DISABLED"
1184   WriteINIStr $0 "Field 3" "State" "1"
1185   
1186   InstallOptions::dialog $0
1187   Pop $R1
1188   StrCmp $R1 "cancel" exit
1189   StrCmp $R1 "back" done
1190   StrCmp $R1 "success" done
1191 exit: Quit
1192 done:
1193
1194    ; Check that if a file is set, a filename is entered...
1195    ReadINIStr $R0 $0 "Field 6" "State"
1196    StrCmp $R0 "1" CheckFileName Skip
1197 CheckFileName:
1198    ReadINIStr $R0 $0 "Field 7" "State"
1199    IfFileExists $R0 Skip
1200
1201    MessageBox MB_OK|MB_ICONSTOP $(CellError)
1202    WriteINIStr $0 "Field 6" "State" "0"
1203    goto startOver
1204    
1205    Skip:
1206    
1207 FunctionEnd
1208
1209
1210 Function AFSPageGetCellName
1211    Call IsSilent
1212    Pop $R1
1213    StrCmp $R1 "/S" exit
1214   InstallOptions::dialog $1
1215   Pop $R1
1216   StrCmp $R1 "cancel" exit
1217   StrCmp $R1 "back" done
1218   StrCmp $R1 "success" done
1219 exit: Quit
1220 done:
1221 FunctionEnd
1222
1223 ;-------------
1224 ; Common install routines for each module
1225 Function AFSCommon.Install
1226
1227 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "DisplayName" "OpenAFS for Windows"
1228 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "UninstallString" "$INSTDIR\uninstall.exe"
1229 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "DisplayVersion" "${MUI_VERSION}"
1230 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "URLInfoAbout" "http://www.openafs.org/"
1231
1232 FunctionEnd
1233
1234
1235 ; Check if install should be silent
1236 Function IsSilent
1237   Push $0
1238   Push $CMDLINE
1239   Push "/S"
1240   Call StrStr
1241   Pop $0
1242   StrCpy $0 $0 3
1243   StrCmp $0 "/S" silent
1244   StrCmp $0 "/S " silent
1245     StrCpy $0 0
1246     Goto notsilent
1247   silent: StrCpy $0 1
1248   notsilent: Exch $0
1249 FunctionEnd
1250
1251
1252
1253 ; Check if uninstall should be silent
1254 Function un.IsSilent
1255   Push $0
1256   Push $CMDLINE
1257   Push "/S"
1258   Call un.StrStr
1259   Pop $0
1260   StrCpy $0 $0 3
1261   StrCmp $0 "/S" silent
1262   StrCmp $0 "/S " silent
1263     StrCpy $0 0
1264     Goto notsilent
1265   silent: StrCpy $0 1
1266   notsilent: Exch $0
1267 FunctionEnd
1268
1269
1270
1271 ; StrStr function
1272 Function StrStr
1273   Exch $R1 ; st=haystack,old$R1, $R1=needle
1274   Exch    ; st=old$R1,haystack
1275   Exch $R2 ; st=old$R1,old$R2, $R2=haystack
1276   Push $R3
1277   Push $R4
1278   Push $R5
1279   StrLen $R3 $R1
1280   StrCpy $R4 0
1281   ; $R1=needle
1282   ; $R2=haystack
1283   ; $R3=len(needle)
1284   ; $R4=cnt
1285   ; $R5=tmp
1286   loop:
1287     StrCpy $R5 $R2 $R3 $R4
1288     StrCmp $R5 $R1 done
1289     StrCmp $R5 "" done
1290     IntOp $R4 $R4 + 1
1291     Goto loop
1292   done:
1293   StrCpy $R1 $R2 "" $R4
1294   Pop $R5
1295   Pop $R4
1296   Pop $R3
1297   Pop $R2
1298   Exch $R1
1299 FunctionEnd
1300
1301 ;-------------------
1302 ; Get the currently installed version and place it on the stack
1303 ; Modifies: Nothing
1304 Function GetInstalledVersion
1305    Push $R0
1306    Push $R1
1307    Push $R4
1308    
1309    ReadRegDWORD $R0 HKLM "Software\TransarcCorporation\$R2\CurrentVersion" "VersionString"
1310    StrCmp $R0 "" NotTransarc
1311    
1312    
1313 NotTransarc:
1314    ReadRegDWORD $R0 HKLM "${AFS_REGKEY_ROOT}\$R2\CurrentVersion" "VersionString"
1315    StrCmp $R0 "" done
1316    
1317 done:
1318    Pop $R4
1319    Pop $R1
1320    Exch $R0
1321 FunctionEnd
1322
1323
1324 ;-------------------------------
1325 ; Check if the client should be checked for default install
1326 Function ShouldClientInstall
1327    Push $R0
1328    StrCpy $R2 "Client"
1329    Call GetInstalledVersion
1330    Pop $R0
1331    
1332    StrCmp $R0 "" NotInstalled
1333    
1334    StrCpy $R0 "0"
1335    Exch $R0
1336    goto end
1337    
1338 NotInstalled:
1339    StrCpy $R0 "1"
1340    Exch $R0
1341 end:   
1342 FunctionEnd
1343
1344
1345 ; See if AFS Client is installed
1346 Function IsServerInstalled
1347    Push $R0
1348    StrCpy $R2 "AFS Server"
1349    Call GetInstalledVersion
1350    Pop $R0
1351    
1352    StrCmp $R0 "" NotInstalled
1353    
1354    StrCpy $R0 "1"
1355    Exch $R0
1356    goto end
1357    
1358 NotInstalled:
1359    StrCpy $R0 "0"
1360    Exch $R0
1361 end:   
1362 FunctionEnd
1363
1364
1365 ; See if AFS Server is installed
1366 Function IsClientInstalled
1367    Push $R0
1368    StrCpy $R2 "AFS Client"
1369    Call GetInstalledVersion
1370    Pop $R0
1371    
1372    StrCmp $R0 "" NotInstalled
1373    
1374    StrCpy $R0 "1"
1375    Exch $R0
1376    goto end
1377    
1378 NotInstalled:
1379    StrCpy $R0 "0"
1380    Exch $R0
1381 end:   
1382 FunctionEnd
1383
1384
1385
1386 ; See if AFS Documentation is installed
1387 Function IsDocumentationInstalled
1388    Push $R0
1389    StrCpy $R2 "AFS Supplemental Documentation"
1390    Call GetInstalledVersion
1391    Pop $R0
1392    
1393    StrCmp $R0 "" NotInstalled
1394    
1395    StrCpy $R0 "1"
1396    Exch $R0
1397    goto end
1398    
1399 NotInstalled:
1400    StrCpy $R0 "0"
1401    Exch $R0
1402 end:   
1403 FunctionEnd
1404
1405
1406 ; See if COntrol Center is installed
1407 Function IsControlInstalled
1408    Push $R0
1409    StrCpy $R2 "Control_Center"
1410    Call GetInstalledVersion
1411    Pop $R0
1412    
1413    StrCmp $R0 "" NotInstalled
1414    
1415    StrCpy $R0 "1"
1416    Exch $R0
1417    goto end
1418    
1419 NotInstalled:
1420    StrCpy $R0 "0"
1421    Exch $R0
1422 end:   
1423 FunctionEnd
1424
1425
1426 ; GetParameters
1427 ; input, none
1428 ; output, top of stack (replaces, with e.g. whatever)
1429 ; modifies no other variables.
1430
1431 Function GetParameters
1432   Push $R0
1433   Push $R1
1434   Push $R2
1435   StrCpy $R0 $CMDLINE 1
1436   StrCpy $R1 '"'
1437   StrCpy $R2 1
1438   StrCmp $R0 '"' loop
1439     StrCpy $R1 ' ' ; we're scanning for a space instead of a quote
1440   loop:
1441     StrCpy $R0 $CMDLINE 1 $R2
1442     StrCmp $R0 $R1 loop2
1443     StrCmp $R0 "" loop2
1444     IntOp $R2 $R2 + 1
1445     Goto loop
1446   loop2:
1447     IntOp $R2 $R2 + 1
1448     StrCpy $R0 $CMDLINE 1 $R2
1449     StrCmp $R0 " " loop2
1450   StrCpy $R0 $CMDLINE "" $R2
1451   Pop $R2
1452   Pop $R1
1453   Exch $R0
1454 FunctionEnd
1455
1456
1457 ;Check to see if any AFS component is installed
1458 Function IsAnyAFSInstalled
1459
1460 FunctionEnd
1461
1462
1463 ;Install English Language Files
1464 Function AFSLangFiles
1465    ; Common files
1466    SetOutPath "$INSTDIR\Common"
1467    File "${AFS_CLIENT_BUILDDIR}\afs_config.exe"
1468    File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext.dll"
1469    File "${AFS_SERVER_BUILDDIR}\afsadminutil.dll"
1470    File "${AFS_DESTDIR}\lib\afsauthent.dll"
1471    File "${AFS_DESTDIR}\lib\afspthread.dll"
1472    File "${AFS_DESTDIR}\lib\afsrpc.dll"
1473    File "${AFS_SERVER_BUILDDIR}\afsclientadmin.dll"
1474    File "${AFS_SERVER_BUILDDIR}\afsprocmgmt.dll"
1475    File "${AFS_SERVER_BUILDDIR}\afsvosadmin.dll"
1476    File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib.dll"
1477    File "${AFS_SERVER_BUILDDIR}\afsvosadmin.dll"
1478    File "${AFS_SERVER_BUILDDIR}\afsbosadmin.dll"
1479    File "${AFS_SERVER_BUILDDIR}\afscfgadmin.dll"
1480    File "${AFS_SERVER_BUILDDIR}\afskasadmin.dll"
1481    File "${AFS_SERVER_BUILDDIR}\afsptsadmin.dll"
1482    File "${AFS_WININSTALL_DIR}\Msvcr71.dll"
1483
1484    StrCmp $LANGUAGE ${LANG_ENGLISH} DoEnglish
1485    StrCmp $LANGUAGE ${LANG_GERMAN} DoGerman
1486    StrCmp $LANGUAGE ${LANG_SPANISH} DoSpanish
1487    StrCmp $LANGUAGE ${LANG_JAPANESE} DoJapanese
1488    ;StrCmp $LANGUAGE ${LANG_KOREAN} DoKorean
1489    StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} DoPortugueseBR
1490    StrCmp $LANGUAGE ${LANG_SIMPCHINESE} DoSimpChinese
1491    StrCmp $LANGUAGE ${LANG_TRADCHINESE} DoTradChinese
1492    
1493 DoEnglish:
1494
1495    SetOutPath "$INSTDIR\Documentation"
1496    File "..\..\doc\install\Documentation\en_US\README.TXT"
1497
1498    SetOutPath "$INSTDIR\Common"
1499    File "${AFS_CLIENT_BUILDDIR}\afs_config_1033.dll"
1500    File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1033.dll"
1501    File "${AFS_CLIENT_BUILDDIR}\afscreds_1033.dll"
1502    File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1033.dll"
1503    File "${AFS_SERVER_BUILDDIR}\afseventmsg_1033.dll"
1504    ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1033.dll"
1505    File "${AFS_SERVER_BUILDDIR}\afsserver_1033.dll"
1506    File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1033.dll"
1507    File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1033.dll"
1508    File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1033.dll"
1509    File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1033.dll"
1510    File "..\..\doc\help\en_US\afs-cc.CNT"
1511    File "..\..\doc\help\en_US\afs-cc.hlp"
1512    File "..\..\doc\help\en_US\afs-light.CNT"
1513    File "..\..\doc\help\en_US\afs-light.hlp"
1514    File "..\..\doc\help\en_US\afs-nt.CNT"
1515    File "..\..\doc\help\en_US\afs-nt.HLP"
1516    File "..\..\doc\help\en_US\taafscfg.CNT"
1517    File "..\..\doc\help\en_US\taafscfg.hlp"
1518    File "..\..\doc\help\en_US\taafssvrmgr.CNT"
1519    File "..\..\doc\help\en_US\taafssvrmgr.hlp"
1520    File "..\..\doc\help\en_US\taafsusrmgr.CNT"
1521    File "..\..\doc\help\en_US\taafsusrmgr.hlp"
1522    goto done
1523
1524 DoGerman:
1525
1526    SetOutPath "$INSTDIR\Documentation"
1527    File "..\..\doc\install\Documentation\de_DE\README.TXT"
1528
1529    SetOutPath "$INSTDIR\Common"
1530    File "${AFS_CLIENT_BUILDDIR}\afs_config_1032.dll"
1531    File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1032.dll"
1532    File "${AFS_CLIENT_BUILDDIR}\afscreds_1032.dll"
1533    File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1032.dll"
1534    File "${AFS_SERVER_BUILDDIR}\afseventmsg_1032.dll"
1535    ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1032.dll"
1536    File "${AFS_SERVER_BUILDDIR}\afsserver_1032.dll"
1537    File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1032.dll"
1538    File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1032.dll"
1539    File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1032.dll"
1540    File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1032.dll"
1541    File "..\..\doc\help\de_DE\afs-cc.CNT"
1542    File "..\..\doc\help\de_DE\afs-cc.hlp"
1543    File "..\..\doc\help\de_DE\afs-light.CNT"
1544    File "..\..\doc\help\de_DE\afs-light.hlp"
1545    File "..\..\doc\help\de_DE\afs-nt.CNT"
1546    File "..\..\doc\help\de_DE\afs-nt.HLP"
1547    File "..\..\doc\help\de_DE\taafscfg.CNT"
1548    File "..\..\doc\help\de_DE\taafscfg.hlp"
1549    File "..\..\doc\help\de_DE\taafssvrmgr.CNT"
1550    File "..\..\doc\help\de_DE\taafssvrmgr.hlp"
1551    File "..\..\doc\help\de_DE\taafsusrmgr.CNT"
1552    File "..\..\doc\help\de_DE\taafsusrmgr.hlp"
1553    goto done   
1554
1555 DoSpanish:
1556
1557    SetOutPath "$INSTDIR\Documentation"
1558    File "..\..\doc\install\Documentation\es_ES\README.TXT"
1559
1560    SetOutPath "$INSTDIR\Common"
1561    File "${AFS_CLIENT_BUILDDIR}\afs_config_1034.dll"
1562    File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1034.dll"
1563    File "${AFS_CLIENT_BUILDDIR}\afscreds_1034.dll"
1564    File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1034.dll"
1565    File "${AFS_SERVER_BUILDDIR}\afseventmsg_1034.dll"
1566    ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1034.dll"
1567    File "${AFS_SERVER_BUILDDIR}\afsserver_1034.dll"
1568    File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1034.dll"
1569    File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1034.dll"
1570    File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1034.dll"
1571    File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1034.dll"
1572    File "..\..\doc\help\es_ES\afs-cc.CNT"
1573    File "..\..\doc\help\es_ES\afs-cc.hlp"
1574    File "..\..\doc\help\es_ES\afs-light.CNT"
1575    File "..\..\doc\help\es_ES\afs-light.hlp"
1576    File "..\..\doc\help\es_ES\afs-nt.CNT"
1577    File "..\..\doc\help\es_ES\afs-nt.HLP"
1578    File "..\..\doc\help\es_ES\taafscfg.CNT"
1579    File "..\..\doc\help\es_ES\taafscfg.hlp"
1580    File "..\..\doc\help\es_ES\taafssvrmgr.CNT"
1581    File "..\..\doc\help\es_ES\taafssvrmgr.hlp"
1582    File "..\..\doc\help\es_ES\taafsusrmgr.CNT"
1583    File "..\..\doc\help\es_ES\taafsusrmgr.hlp"
1584    goto done
1585
1586 DoJapanese:
1587
1588    SetOutPath "$INSTDIR\Documentation"
1589    File "..\..\doc\install\Documentation\ja_JP\README.TXT"
1590
1591    SetOutPath "$INSTDIR\Common"
1592    File "${AFS_CLIENT_BUILDDIR}\afs_config_1041.dll"
1593    File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1041.dll"
1594    File "${AFS_CLIENT_BUILDDIR}\afscreds_1041.dll"
1595    File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1041.dll"
1596    File "${AFS_SERVER_BUILDDIR}\afseventmsg_1041.dll"
1597    ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1041.dll"
1598    File "${AFS_SERVER_BUILDDIR}\afsserver_1041.dll"
1599    File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1041.dll"
1600    File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1041.dll"
1601    File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1041.dll"
1602    File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1041.dll"
1603    File "..\..\doc\help\ja_JP\afs-cc.CNT"
1604    File "..\..\doc\help\ja_JP\afs-cc.hlp"
1605    File "..\..\doc\help\ja_JP\afs-light.CNT"
1606    File "..\..\doc\help\ja_JP\afs-light.hlp"
1607    File "..\..\doc\help\ja_JP\afs-nt.CNT"
1608    File "..\..\doc\help\ja_JP\afs-nt.HLP"
1609    File "..\..\doc\help\ja_JP\taafscfg.CNT"
1610    File "..\..\doc\help\ja_JP\taafscfg.hlp"
1611    File "..\..\doc\help\ja_JP\taafssvrmgr.CNT"
1612    File "..\..\doc\help\ja_JP\taafssvrmgr.hlp"
1613    File "..\..\doc\help\ja_JP\taafsusrmgr.CNT"
1614    File "..\..\doc\help\ja_JP\taafsusrmgr.hlp"
1615    goto done
1616    
1617 DoKorean:
1618
1619    SetOutPath "$INSTDIR\Documentation"
1620    File "..\..\doc\install\Documentation\ko_KR\README.TXT"
1621
1622    SetOutPath "$INSTDIR\Common"
1623    File "${AFS_CLIENT_BUILDDIR}\afs_config_1042.dll"
1624    File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1042.dll"
1625    File "${AFS_CLIENT_BUILDDIR}\afscreds_1042.dll"
1626    File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1042.dll"
1627    File "${AFS_SERVER_BUILDDIR}\afseventmsg_1042.dll"
1628    ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1042.dll"
1629    File "${AFS_SERVER_BUILDDIR}\afsserver_1042.dll"
1630    File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1042.dll"
1631    File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1042.dll"
1632    File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1042.dll"
1633    File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1042.dll"
1634    File "..\..\doc\help\ko_KR\afs-cc.CNT"
1635    File "..\..\doc\help\ko_KR\afs-cc.hlp"
1636    File "..\..\doc\help\ko_KR\afs-light.CNT"
1637    File "..\..\doc\help\ko_KR\afs-light.hlp"
1638    File "..\..\doc\help\ko_KR\afs-nt.CNT"
1639    File "..\..\doc\help\ko_KR\afs-nt.HLP"
1640    File "..\..\doc\help\ko_KR\taafscfg.CNT"
1641    File "..\..\doc\help\ko_KR\taafscfg.hlp"
1642    File "..\..\doc\help\ko_KR\taafssvrmgr.CNT"
1643    File "..\..\doc\help\ko_KR\taafssvrmgr.hlp"
1644    File "..\..\doc\help\ko_KR\taafsusrmgr.CNT"
1645    File "..\..\doc\help\ko_KR\taafsusrmgr.hlp"
1646    goto done
1647
1648
1649 DoPortugueseBR:
1650
1651    SetOutPath "$INSTDIR\Documentation"
1652    File "..\..\doc\install\Documentation\pt_BR\README.TXT"
1653
1654    SetOutPath "$INSTDIR\Common"
1655    File "${AFS_CLIENT_BUILDDIR}\afs_config_1046.dll"
1656    File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1046.dll"
1657    File "${AFS_CLIENT_BUILDDIR}\afscreds_1046.dll"
1658    File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1046.dll"
1659    File "${AFS_SERVER_BUILDDIR}\afseventmsg_1046.dll"
1660    ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1046.dll"
1661    File "${AFS_SERVER_BUILDDIR}\afsserver_1046.dll"
1662    File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1046.dll"
1663    File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1046.dll"
1664    File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1046.dll"
1665    File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1046.dll"
1666    File "..\..\doc\help\pt_BR\afs-cc.CNT"
1667    File "..\..\doc\help\pt_BR\afs-cc.hlp"
1668    File "..\..\doc\help\pt_BR\afs-light.CNT"
1669    File "..\..\doc\help\pt_BR\afs-light.hlp"
1670    File "..\..\doc\help\pt_BR\afs-nt.CNT"
1671    File "..\..\doc\help\pt_BR\afs-nt.HLP"
1672    File "..\..\doc\help\pt_BR\taafscfg.CNT"
1673    File "..\..\doc\help\pt_BR\taafscfg.hlp"
1674    File "..\..\doc\help\pt_BR\taafssvrmgr.CNT"
1675    File "..\..\doc\help\pt_BR\taafssvrmgr.hlp"
1676    File "..\..\doc\help\pt_BR\taafsusrmgr.CNT"
1677    File "..\..\doc\help\pt_BR\taafsusrmgr.hlp"
1678    goto done
1679    
1680 DoSimpChinese:
1681
1682    SetOutPath "$INSTDIR\Documentation"
1683    File "..\..\doc\install\Documentation\zh_CN\README.TXT"
1684
1685    SetOutPath "$INSTDIR\Common"
1686    File "${AFS_CLIENT_BUILDDIR}\afs_config_2052.dll"
1687    File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_2052.dll"
1688    File "${AFS_CLIENT_BUILDDIR}\afscreds_2052.dll"
1689    File "${AFS_CLIENT_BUILDDIR}\afs_cpa_2052.dll"
1690    File "${AFS_SERVER_BUILDDIR}\afseventmsg_2052.dll"
1691    ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_2052.dll"
1692    File "${AFS_SERVER_BUILDDIR}\afsserver_2052.dll"
1693    File "${AFS_SERVER_BUILDDIR}\afssvrcfg_2052.dll"
1694    File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_2052.dll"
1695    File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_2052.dll"
1696    File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_2052.dll"
1697    File "..\..\doc\help\zh_CN\afs-cc.CNT"
1698    File "..\..\doc\help\zh_CN\afs-cc.hlp"
1699    File "..\..\doc\help\zh_CN\afs-light.CNT"
1700    File "..\..\doc\help\zh_CN\afs-light.hlp"
1701    File "..\..\doc\help\zh_CN\afs-nt.CNT"
1702    File "..\..\doc\help\zh_CN\afs-nt.HLP"
1703    File "..\..\doc\help\zh_CN\taafscfg.CNT"
1704    File "..\..\doc\help\zh_CN\taafscfg.hlp"
1705    File "..\..\doc\help\zh_CN\taafssvrmgr.CNT"
1706    File "..\..\doc\help\zh_CN\taafssvrmgr.hlp"
1707    File "..\..\doc\help\zh_CN\taafsusrmgr.CNT"
1708    File "..\..\doc\help\zh_CN\taafsusrmgr.hlp"
1709    goto done
1710    
1711 DoTradChinese:
1712
1713    SetOutPath "$INSTDIR\Documentation"
1714    File "..\..\doc\install\Documentation\zh_TW\README.TXT"
1715
1716    SetOutPath "$INSTDIR\Common"
1717    File "${AFS_CLIENT_BUILDDIR}\afs_config_1028.dll"
1718    File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1028.dll"
1719    File "${AFS_CLIENT_BUILDDIR}\afscreds_1028.dll"
1720    File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1028.dll"
1721    File "${AFS_SERVER_BUILDDIR}\afseventmsg_1028.dll"
1722    ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1028.dll"
1723    File "${AFS_SERVER_BUILDDIR}\afsserver_1028.dll"
1724    File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1028.dll"
1725    File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1028.dll"
1726    File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1028.dll"
1727    File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1028.dll"
1728    File "..\..\doc\help\zh_TW\afs-cc.CNT"
1729    File "..\..\doc\help\zh_TW\afs-cc.hlp"
1730    File "..\..\doc\help\zh_TW\afs-light.CNT"
1731    File "..\..\doc\help\zh_TW\afs-light.hlp"
1732    File "..\..\doc\help\zh_TW\afs-nt.CNT"
1733    File "..\..\doc\help\zh_TW\afs-nt.HLP"
1734    File "..\..\doc\help\zh_TW\taafscfg.CNT"
1735    File "..\..\doc\help\zh_TW\taafscfg.hlp"
1736    File "..\..\doc\help\zh_TW\taafssvrmgr.CNT"
1737    File "..\..\doc\help\zh_TW\taafssvrmgr.hlp"
1738    File "..\..\doc\help\zh_TW\taafsusrmgr.CNT"
1739    File "..\..\doc\help\zh_TW\taafsusrmgr.hlp"
1740    goto done
1741    
1742 done:
1743 FunctionEnd
1744
1745
1746
1747 ;====================================================
1748 ; AddToPath - Adds the given dir to the search path.
1749 ;        Input - head of the stack
1750 ;        Note - Win9x systems requires reboot
1751 ;====================================================
1752 Function AddToPath
1753   Exch $0
1754   Push $1
1755   
1756   Call IsNT
1757   Pop $1
1758   StrCmp $1 1 AddToPath_NT
1759     ; Not on NT
1760     StrCpy $1 $WINDIR 2
1761     FileOpen $1 "$1\autoexec.bat" a
1762     FileSeek $1 0 END
1763     GetFullPathName /SHORT $0 $0
1764     FileWrite $1 "$\r$\nSET PATH=%PATH%;$0$\r$\n"
1765     FileClose $1
1766     Goto AddToPath_done
1767
1768   AddToPath_NT:
1769     ReadRegStr $1 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH"
1770     StrCmp $1 "" AddToPath_NTdoIt
1771       StrCpy $0 "$1;$0"
1772       Goto AddToPath_NTdoIt
1773     AddToPath_NTdoIt:
1774       WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH" $0
1775       SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
1776   
1777   AddToPath_done:
1778     Pop $1
1779     Pop $0
1780 FunctionEnd
1781
1782 ;====================================================
1783 ; RemoveFromPath - Remove a given dir from the path
1784 ;     Input: head of the stack
1785 ;====================================================
1786 Function un.RemoveFromPath
1787   Exch $0
1788   Push $1
1789   Push $2
1790   Push $3
1791   Push $4
1792   
1793   Call un.IsNT
1794   Pop $1
1795   StrCmp $1 1 unRemoveFromPath_NT
1796     ; Not on NT
1797     StrCpy $1 $WINDIR 2
1798     FileOpen $1 "$1\autoexec.bat" r
1799     GetTempFileName $4
1800     FileOpen $2 $4 w
1801     GetFullPathName /SHORT $0 $0
1802     StrCpy $0 "SET PATH=%PATH%;$0"
1803     SetRebootFlag true
1804     Goto unRemoveFromPath_dosLoop
1805     
1806     unRemoveFromPath_dosLoop:
1807       FileRead $1 $3
1808       StrCmp $3 "$0$\r$\n" unRemoveFromPath_dosLoop
1809       StrCmp $3 "$0$\n" unRemoveFromPath_dosLoop
1810       StrCmp $3 "$0" unRemoveFromPath_dosLoop
1811       StrCmp $3 "" unRemoveFromPath_dosLoopEnd
1812       FileWrite $2 $3
1813       Goto unRemoveFromPath_dosLoop
1814     
1815     unRemoveFromPath_dosLoopEnd:
1816       FileClose $2
1817       FileClose $1
1818       StrCpy $1 $WINDIR 2
1819       Delete "$1\autoexec.bat"
1820       CopyFiles /SILENT $4 "$1\autoexec.bat"
1821       Delete $4
1822       Goto unRemoveFromPath_done
1823
1824   unRemoveFromPath_NT:
1825     StrLen $2 $0
1826     ReadRegStr $1 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH"
1827     Push $1
1828     Push $0
1829     Call un.StrStr ; Find $0 in $1
1830     Pop $0 ; pos of our dir
1831     IntCmp $0 -1 unRemoveFromPath_done
1832       ; else, it is in path
1833       StrCpy $3 $1 $0 ; $3 now has the part of the path before our dir
1834       IntOp $2 $2 + $0 ; $2 now contains the pos after our dir in the path (';')
1835       IntOp $2 $2 + 1 ; $2 now containts the pos after our dir and the semicolon.
1836       StrLen $0 $1
1837       StrCpy $1 $1 $0 $2
1838       StrCpy $3 "$3$1"
1839
1840       WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH" $3
1841       SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
1842   
1843   unRemoveFromPath_done:
1844     Pop $4
1845     Pop $3
1846     Pop $2
1847     Pop $1
1848     Pop $0
1849 FunctionEnd
1850
1851 ;====================================================
1852 ; IsNT - Returns 1 if the current system is NT, 0
1853 ;        otherwise.
1854 ;     Output: head of the stack
1855 ;====================================================
1856 Function IsNT
1857   Push $0
1858   ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
1859   StrCmp $0 "" 0 IsNT_yes
1860   ; we are not NT.
1861   Pop $0
1862   Push 0
1863   Return
1864
1865   IsNT_yes:
1866     ; NT!!!
1867     Pop $0
1868     Push 1
1869 FunctionEnd
1870
1871 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1872 ; Uninstall sutff
1873 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1874
1875
1876 ;====================================================
1877 ; StrStr - Finds a given string in another given string.
1878 ;               Returns -1 if not found and the pos if found.
1879 ;          Input: head of the stack - string to find
1880 ;                      second in the stack - string to find in
1881 ;          Output: head of the stack
1882 ;====================================================
1883 Function un.StrStr
1884   Push $0
1885   Exch
1886   Pop $0 ; $0 now have the string to find
1887   Push $1
1888   Exch 2
1889   Pop $1 ; $1 now have the string to find in
1890   Exch
1891   Push $2
1892   Push $3
1893   Push $4
1894   Push $5
1895
1896   StrCpy $2 -1
1897   StrLen $3 $0
1898   StrLen $4 $1
1899   IntOp $4 $4 - $3
1900
1901   unStrStr_loop:
1902     IntOp $2 $2 + 1
1903     IntCmp $2 $4 0 0 unStrStrReturn_notFound
1904     StrCpy $5 $1 $3 $2
1905     StrCmp $5 $0 unStrStr_done unStrStr_loop
1906
1907   unStrStrReturn_notFound:
1908     StrCpy $2 -1
1909
1910   unStrStr_done:
1911     Pop $5
1912     Pop $4
1913     Pop $3
1914     Exch $2
1915     Exch 2
1916     Pop $0
1917     Pop $1
1918 FunctionEnd
1919
1920 ;====================================================
1921 ; IsNT - Returns 1 if the current system is NT, 0
1922 ;        otherwise.
1923 ;     Output: head of the stack
1924 ;====================================================
1925 Function un.IsNT
1926   Push $0
1927   ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
1928   StrCmp $0 "" 0 unIsNT_yes
1929   ; we are not NT.
1930   Pop $0
1931   Push 0
1932   Return
1933
1934   unIsNT_yes:
1935     ; NT!!!
1936     Pop $0
1937     Push 1
1938 FunctionEnd
1939
1940 ; AddSharedDLL
1941  ;
1942  ; Increments a shared DLLs reference count.
1943  ; Use by passing one item on the stack (the full path of the DLL).
1944  ;
1945  ; Usage:
1946  ;   Push $SYSDIR\myDll.dll
1947  ;   Call AddSharedDLL
1948  ;
1949
1950  Function AddSharedDLL
1951    Exch $R1
1952    Push $R0
1953    ReadRegDword $R0 HKLM Software\Microsoft\Windows\CurrentVersion\SharedDLLs $R1
1954    IntOp $R0 $R0 + 1
1955    WriteRegDWORD HKLM Software\Microsoft\Windows\CurrentVersion\SharedDLLs $R1 $R0
1956    Pop $R0
1957    Pop $R1
1958  FunctionEnd
1959
1960  
1961 ; un.RemoveSharedDLL
1962  ;
1963  ; Decrements a shared DLLs reference count, and removes if necessary.
1964  ; Use by passing one item on the stack (the full path of the DLL).
1965  ; Note: for use in the main installer (not the uninstaller), rename the
1966  ; function to RemoveSharedDLL.
1967  ;
1968  ; Usage:
1969  ;   Push $SYSDIR\myDll.dll
1970  ;   Call un.RemoveSharedDLL
1971  ;
1972
1973  Function un.RemoveSharedDLL
1974    Exch $R1
1975    Push $R0
1976    ReadRegDword $R0 HKLM Software\Microsoft\Windows\CurrentVersion\SharedDLLs $R1
1977    StrCmp $R0 "" remove
1978      IntOp $R0 $R0 - 1
1979      IntCmp $R0 0 rk rk uk
1980      rk:
1981        DeleteRegValue HKLM Software\Microsoft\Windows\CurrentVersion\SharedDLLs $R1
1982      goto Remove
1983      uk:
1984        WriteRegDWORD HKLM Software\Microsoft\Windows\CurrentVersion\SharedDLLs $R1 $R0
1985      Goto noremove
1986    remove:
1987      Delete /REBOOTOK $R1
1988    noremove:
1989    Pop $R0
1990    Pop $R1
1991  FunctionEnd
1992