From: Jeffrey Altman Date: Thu, 15 Jan 2004 04:13:37 +0000 (+0000) Subject: nsis-run-time-lib-fixes-20040114 X-Git-Tag: openafs-devel-1_3_60~106 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=80747b803f6923040545496c040ba67aee542355;p=packages%2Fo%2Fopenafs.git nsis-run-time-lib-fixes-20040114 - Update the installer script to properly install the required runtime libraries for all compilers - Update the AddToPath and RemoveToPath files --- diff --git a/src/WINNT/install/NSIS/OpenAFS.nsi b/src/WINNT/install/NSIS/OpenAFS.nsi index 67a70121d..c429f4199 100644 --- a/src/WINNT/install/NSIS/OpenAFS.nsi +++ b/src/WINNT/install/NSIS/OpenAFS.nsi @@ -21,11 +21,19 @@ !endif ; End DEBUG !define MUI_VERSION ${AFS_VERSION} !else ; v2.0b4 +!ifndef RELEASE !ifndef DEBUG ; !DEBUG on v2.0b4 Name "OpenAFS ${AFS_VERSION} ${__DATE__} ${__TIME__}" !else ; DEBUG on v2.0b4 Name "OpenAFS ${AFS_VERSION} ${__DATE__} ${__TIME__} Checked/Debug" !endif ; End DEBUG/!DEBUG +!else +!ifndef DEBUG ; !DEBUG on v2.0b4 +Name "OpenAFS ${AFS_VERSION}" +!else ; DEBUG on v2.0b4 +Name "OpenAFS ${AFS_VERSION} Checked/Debug" +!endif ; End DEBUG/!DEBUG +!endif VIProductVersion "${AFS_VERSION}.00" VIAddVersionKey "ProductName" "OpenAFS" VIAddVersionKey "CompanyName" "OpenAFS.org" @@ -82,6 +90,7 @@ VIAddVersionKey "PrivateBuild" "Checked/Debug" !define AFS_CLIENT_LIBDIR "${AFS_DESTDIR}\lib" !define AFS_SERVER_BUILDDIR "${AFS_DESTDIR}\root.server\usr\afs\bin" !define AFS_ETC_BUILDDIR "${AFS_DESTDIR}\etc" + !define SYSTEMDIR "$%SystemRoot%\System32" ;-------------------------------- ;Modern UI Configuration @@ -805,29 +814,82 @@ Section "AFS Control Center" secControl SetOutPath "$INSTDIR\Common" !IFDEF DEBUG !IFDEF CL_1310 - File "${AFS_WININSTALL_DIR}\msvcr71d.dll" - File "${AFS_WININSTALL_DIR}\msvcr71d.pdb" + File "${SYSTEMDIR}\msvcr71d.dll" + File "${SYSTEMDIR}\msvcr71d.pdb" + File "${SYSTEMDIR}\msvcp71d.dll" + File "${SYSTEMDIR}\msvcp71d.pdb" + File "${SYSTEMDIR}\mfc71d.dll" + File "${SYSTEMDIR}\mfc71d.pdb" + File "${SYSTEMDIR}\MFC71CHS.DLL" + File "${SYSTEMDIR}\MFC71CHT.DLL" + File "${SYSTEMDIR}\MFC71DEU.DLL" + File "${SYSTEMDIR}\MFC71ENU.DLL" + File "${SYSTEMDIR}\MFC71ESP.DLL" + File "${SYSTEMDIR}\MFC71FRA.DLL" + File "${SYSTEMDIR}\MFC71ITA.DLL" + File "${SYSTEMDIR}\MFC71JPN.DLL" + File "${SYSTEMDIR}\MFC71KOR.DLL" !ELSE !IFDEF CL_1300 - File "${AFS_WININSTALL_DIR}\msvcrtd.dll" - File "${AFS_WININSTALL_DIR}\msvcrtd.pdb" + File "${SYSTEMDIR}\msvcr70d.dll" + File "${SYSTEMDIR}\msvcr70d.pdb" + File "${SYSTEMDIR}\msvcp70d.dll" + File "${SYSTEMDIR}\msvcp70d.pdb" + File "${SYSTEMDIR}\mfc70d.dll" + File "${SYSTEMDIR}\mfc70d.pdb" + File "${SYSTEMDIR}\MFC70CHS.DLL" + File "${SYSTEMDIR}\MFC70CHT.DLL" + File "${SYSTEMDIR}\MFC70DEU.DLL" + File "${SYSTEMDIR}\MFC70ENU.DLL" + File "${SYSTEMDIR}\MFC70ESP.DLL" + File "${SYSTEMDIR}\MFC70FRA.DLL" + File "${SYSTEMDIR}\MFC70ITA.DLL" + File "${SYSTEMDIR}\MFC70JPN.DLL" + File "${SYSTEMDIR}\MFC70KOR.DLL" !ELSE - File "${AFS_WININSTALL_DIR}\msvcrtd.dll" - File "${AFS_WININSTALL_DIR}\msvcrtd.pdb" + File "${SYSTEMDIR}\mfc42d.dll" + File "${SYSTEMDIR}\mfc42d.pdb" + File "${SYSTEMDIR}\msvcp60d.dll" + File "${SYSTEMDIR}\msvcp60d.pdb" + File "${SYSTEMDIR}\msvcrtd.dll" + File "${SYSTEMDIR}\msvcrtd.pdb" !ENDIF !ENDIF !ELSE !IFDEF CL_1310 - File "${AFS_WININSTALL_DIR}\msvcr71.dll" + File "${SYSTEMDIR}\mfc71.dll" + File "${SYSTEMDIR}\msvcr71.dll" + File "${SYSTEMDIR}\msvcp71.dll" + File "${SYSTEMDIR}\MFC71CHS.DLL" + File "${SYSTEMDIR}\MFC71CHT.DLL" + File "${SYSTEMDIR}\MFC71DEU.DLL" + File "${SYSTEMDIR}\MFC71ENU.DLL" + File "${SYSTEMDIR}\MFC71ESP.DLL" + File "${SYSTEMDIR}\MFC71FRA.DLL" + File "${SYSTEMDIR}\MFC71ITA.DLL" + File "${SYSTEMDIR}\MFC71JPN.DLL" + File "${SYSTEMDIR}\MFC71KOR.DLL" !ELSE !IFDEF CL_1300 - File "${AFS_WININSTALL_DIR}\msvcrt.dll" + File "${SYSTEMDIR}\mfc70.dll" + File "${SYSTEMDIR}\msvcr70.dll" + File "${SYSTEMDIR}\msvcp70.dll" + File "${SYSTEMDIR}\MFC70CHS.DLL" + File "${SYSTEMDIR}\MFC70CHT.DLL" + File "${SYSTEMDIR}\MFC70DEU.DLL" + File "${SYSTEMDIR}\MFC70ENU.DLL" + File "${SYSTEMDIR}\MFC70ESP.DLL" + File "${SYSTEMDIR}\MFC70FRA.DLL" + File "${SYSTEMDIR}\MFC70ITA.DLL" + File "${SYSTEMDIR}\MFC70JPN.DLL" + File "${SYSTEMDIR}\MFC70KOR.DLL" !ELSE - File "${AFS_WININSTALL_DIR}\msvcrt.dll" -!ENDIF + File "${SYSTEMDIR}\mfc42.dll" + File "${SYSTEMDIR}\msvcp60.dll" + File "${SYSTEMDIR}\msvcrt.dll" !ENDIF !ENDIF - +!ENDIF ;Store install folder WriteRegStr HKCU "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "PathName" $INSTDIR WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "VersionString" ${AFS_VERSION} @@ -1550,17 +1612,80 @@ StartRemove: Delete /REBOOTOK "$INSTDIR\Common\afsptsadmin.pdb" !IFDEF CL_1310 - Delete /REBOOTOK "$INSTDIR\Common\msvcr71d.dll" - Delete /REBOOTOK "$INSTDIR\Common\msvcr71d.pdb" + File "${SYSTEMDIR}\msvcr71d.dll" + File "${SYSTEMDIR}\msvcr71d.pdb" + File "${SYSTEMDIR}\msvcp71d.dll" + File "${SYSTEMDIR}\msvcp71d.pdb" + File "${SYSTEMDIR}\mfc71d.dll" + File "${SYSTEMDIR}\mfc71d.pdb" + File "${SYSTEMDIR}\MFC71CHS.DLL" + File "${SYSTEMDIR}\MFC71CHT.DLL" + File "${SYSTEMDIR}\MFC71DEU.DLL" + File "${SYSTEMDIR}\MFC71ENU.DLL" + File "${SYSTEMDIR}\MFC71ESP.DLL" + File "${SYSTEMDIR}\MFC71FRA.DLL" + File "${SYSTEMDIR}\MFC71ITA.DLL" + File "${SYSTEMDIR}\MFC71JPN.DLL" + File "${SYSTEMDIR}\MFC71KOR.DLL" +!ELSE +!IFDEF CL_1300 + File "${SYSTEMDIR}\msvcr70d.dll" + File "${SYSTEMDIR}\msvcr70d.pdb" + File "${SYSTEMDIR}\msvcp70d.dll" + File "${SYSTEMDIR}\msvcp70d.pdb" + File "${SYSTEMDIR}\mfc70d.dll" + File "${SYSTEMDIR}\mfc70d.pdb" + File "${SYSTEMDIR}\MFC70CHS.DLL" + File "${SYSTEMDIR}\MFC70CHT.DLL" + File "${SYSTEMDIR}\MFC70DEU.DLL" + File "${SYSTEMDIR}\MFC70ENU.DLL" + File "${SYSTEMDIR}\MFC70ESP.DLL" + File "${SYSTEMDIR}\MFC70FRA.DLL" + File "${SYSTEMDIR}\MFC70ITA.DLL" + File "${SYSTEMDIR}\MFC70JPN.DLL" + File "${SYSTEMDIR}\MFC70KOR.DLL" !ELSE - Delete /REBOOTOK "$INSTDIR\Common\msvcrtd.dll" - Delete /REBOOTOK "$INSTDIR\Common\msvcrtd.pdb" + File "${SYSTEMDIR}\mfc42d.dll" + File "${SYSTEMDIR}\mfc42d.pdb" + File "${SYSTEMDIR}\msvcp60d.dll" + File "${SYSTEMDIR}\msvcp60d.pdb" + File "${SYSTEMDIR}\msvcrtd.dll" + File "${SYSTEMDIR}\msvcrtd.pdb" +!ENDIF !ENDIF !ELSE !IFDEF CL_1310 - Delete /REBOOTOK "$INSTDIR\Common\msvcr71.dll" + File "${SYSTEMDIR}\mfc71.dll" + File "${SYSTEMDIR}\msvcr71.dll" + File "${SYSTEMDIR}\msvcp71.dll" + File "${SYSTEMDIR}\MFC71CHS.DLL" + File "${SYSTEMDIR}\MFC71CHT.DLL" + File "${SYSTEMDIR}\MFC71DEU.DLL" + File "${SYSTEMDIR}\MFC71ENU.DLL" + File "${SYSTEMDIR}\MFC71ESP.DLL" + File "${SYSTEMDIR}\MFC71FRA.DLL" + File "${SYSTEMDIR}\MFC71ITA.DLL" + File "${SYSTEMDIR}\MFC71JPN.DLL" + File "${SYSTEMDIR}\MFC71KOR.DLL" +!ELSE +!IFDEF CL_1300 + File "${SYSTEMDIR}\mfc70.dll" + File "${SYSTEMDIR}\msvcr70.dll" + File "${SYSTEMDIR}\msvcp70.dll" + File "${SYSTEMDIR}\MFC70CHS.DLL" + File "${SYSTEMDIR}\MFC70CHT.DLL" + File "${SYSTEMDIR}\MFC70DEU.DLL" + File "${SYSTEMDIR}\MFC70ENU.DLL" + File "${SYSTEMDIR}\MFC70ESP.DLL" + File "${SYSTEMDIR}\MFC70FRA.DLL" + File "${SYSTEMDIR}\MFC70ITA.DLL" + File "${SYSTEMDIR}\MFC70JPN.DLL" + File "${SYSTEMDIR}\MFC70KOR.DLL" !ELSE - Delete /REBOOTOK "$INSTDIR\Common\msvcrt.dll" + File "${SYSTEMDIR}\mfc42.dll" + File "${SYSTEMDIR}\msvcp60.dll" + File "${SYSTEMDIR}\msvcrt.dll" +!ENDIF !ENDIF !ENDIF @@ -1670,17 +1795,80 @@ StartRemove: !IFDEF DEBUG !IFDEF CL_1310 - Delete /REBOOTOK "$INSTDIR\Common\msvcr71d.dll" - Delete /REBOOTOK "$INSTDIR\Common\msvcr71d.pdb" + File "${SYSTEMDIR}\msvcr71d.dll" + File "${SYSTEMDIR}\msvcr71d.pdb" + File "${SYSTEMDIR}\msvcp71d.dll" + File "${SYSTEMDIR}\msvcp71d.pdb" + File "${SYSTEMDIR}\mfc71d.dll" + File "${SYSTEMDIR}\mfc71d.pdb" + File "${SYSTEMDIR}\MFC71CHS.DLL" + File "${SYSTEMDIR}\MFC71CHT.DLL" + File "${SYSTEMDIR}\MFC71DEU.DLL" + File "${SYSTEMDIR}\MFC71ENU.DLL" + File "${SYSTEMDIR}\MFC71ESP.DLL" + File "${SYSTEMDIR}\MFC71FRA.DLL" + File "${SYSTEMDIR}\MFC71ITA.DLL" + File "${SYSTEMDIR}\MFC71JPN.DLL" + File "${SYSTEMDIR}\MFC71KOR.DLL" +!ELSE +!IFDEF CL_1300 + File "${SYSTEMDIR}\msvcr70d.dll" + File "${SYSTEMDIR}\msvcr70d.pdb" + File "${SYSTEMDIR}\msvcp70d.dll" + File "${SYSTEMDIR}\msvcp70d.pdb" + File "${SYSTEMDIR}\mfc70d.dll" + File "${SYSTEMDIR}\mfc70d.pdb" + File "${SYSTEMDIR}\MFC70CHS.DLL" + File "${SYSTEMDIR}\MFC70CHT.DLL" + File "${SYSTEMDIR}\MFC70DEU.DLL" + File "${SYSTEMDIR}\MFC70ENU.DLL" + File "${SYSTEMDIR}\MFC70ESP.DLL" + File "${SYSTEMDIR}\MFC70FRA.DLL" + File "${SYSTEMDIR}\MFC70ITA.DLL" + File "${SYSTEMDIR}\MFC70JPN.DLL" + File "${SYSTEMDIR}\MFC70KOR.DLL" !ELSE - Delete /REBOOTOK "$INSTDIR\Common\msvcrtd.dll" - Delete /REBOOTOK "$INSTDIR\Common\msvcrtd.pdb" + File "${SYSTEMDIR}\mfc42d.dll" + File "${SYSTEMDIR}\mfc42d.pdb" + File "${SYSTEMDIR}\msvcp60d.dll" + File "${SYSTEMDIR}\msvcp60d.pdb" + File "${SYSTEMDIR}\msvcrtd.dll" + File "${SYSTEMDIR}\msvcrtd.pdb" +!ENDIF !ENDIF !ELSE !IFDEF CL_1310 - Delete /REBOOTOK "$INSTDIR\Common\msvcr71.dll" + File "${SYSTEMDIR}\mfc71.dll" + File "${SYSTEMDIR}\msvcr71.dll" + File "${SYSTEMDIR}\msvcp71.dll" + File "${SYSTEMDIR}\MFC71CHS.DLL" + File "${SYSTEMDIR}\MFC71CHT.DLL" + File "${SYSTEMDIR}\MFC71DEU.DLL" + File "${SYSTEMDIR}\MFC71ENU.DLL" + File "${SYSTEMDIR}\MFC71ESP.DLL" + File "${SYSTEMDIR}\MFC71FRA.DLL" + File "${SYSTEMDIR}\MFC71ITA.DLL" + File "${SYSTEMDIR}\MFC71JPN.DLL" + File "${SYSTEMDIR}\MFC71KOR.DLL" !ELSE - Delete /REBOOTOK "$INSTDIR\Common\msvcrt.dll" +!IFDEF CL_1300 + File "${SYSTEMDIR}\mfc70.dll" + File "${SYSTEMDIR}\msvcr70.dll" + File "${SYSTEMDIR}\msvcp70.dll" + File "${SYSTEMDIR}\MFC70CHS.DLL" + File "${SYSTEMDIR}\MFC70CHT.DLL" + File "${SYSTEMDIR}\MFC70DEU.DLL" + File "${SYSTEMDIR}\MFC70ENU.DLL" + File "${SYSTEMDIR}\MFC70ESP.DLL" + File "${SYSTEMDIR}\MFC70FRA.DLL" + File "${SYSTEMDIR}\MFC70ITA.DLL" + File "${SYSTEMDIR}\MFC70JPN.DLL" + File "${SYSTEMDIR}\MFC70KOR.DLL" +!ELSE + File "${SYSTEMDIR}\mfc42.dll" + File "${SYSTEMDIR}\msvcp60.dll" + File "${SYSTEMDIR}\msvcrt.dll" +!ENDIF !ENDIF !ENDIF Delete /REBOOTOK "$INSTDIR\Common\*" @@ -2349,17 +2537,80 @@ Function AFSLangFiles File "${AFS_SERVER_BUILDDIR}\afsptsadmin.dll" !IFDEF DEBUG !IFDEF CL_1310 - File "${AFS_WININSTALL_DIR}\msvcr71d.dll" - File "${AFS_WININSTALL_DIR}\msvcr71d.pdb" + File "${SYSTEMDIR}\msvcr71d.dll" + File "${SYSTEMDIR}\msvcr71d.pdb" + File "${SYSTEMDIR}\msvcp71d.dll" + File "${SYSTEMDIR}\msvcp71d.pdb" + File "${SYSTEMDIR}\mfc71d.dll" + File "${SYSTEMDIR}\mfc71d.pdb" + File "${SYSTEMDIR}\MFC71CHS.DLL" + File "${SYSTEMDIR}\MFC71CHT.DLL" + File "${SYSTEMDIR}\MFC71DEU.DLL" + File "${SYSTEMDIR}\MFC71ENU.DLL" + File "${SYSTEMDIR}\MFC71ESP.DLL" + File "${SYSTEMDIR}\MFC71FRA.DLL" + File "${SYSTEMDIR}\MFC71ITA.DLL" + File "${SYSTEMDIR}\MFC71JPN.DLL" + File "${SYSTEMDIR}\MFC71KOR.DLL" +!ELSE +!IFDEF CL_1300 + File "${SYSTEMDIR}\msvcr70d.dll" + File "${SYSTEMDIR}\msvcr70d.pdb" + File "${SYSTEMDIR}\msvcp70d.dll" + File "${SYSTEMDIR}\msvcp70d.pdb" + File "${SYSTEMDIR}\mfc70d.dll" + File "${SYSTEMDIR}\mfc70d.pdb" + File "${SYSTEMDIR}\MFC70CHS.DLL" + File "${SYSTEMDIR}\MFC70CHT.DLL" + File "${SYSTEMDIR}\MFC70DEU.DLL" + File "${SYSTEMDIR}\MFC70ENU.DLL" + File "${SYSTEMDIR}\MFC70ESP.DLL" + File "${SYSTEMDIR}\MFC70FRA.DLL" + File "${SYSTEMDIR}\MFC70ITA.DLL" + File "${SYSTEMDIR}\MFC70JPN.DLL" + File "${SYSTEMDIR}\MFC70KOR.DLL" !ELSE - File "${AFS_WININSTALL_DIR}\msvcrtd.dll" - File "${AFS_WININSTALL_DIR}\msvcrtd.pdb" + File "${SYSTEMDIR}\mfc42d.dll" + File "${SYSTEMDIR}\mfc42d.pdb" + File "${SYSTEMDIR}\msvcp60d.dll" + File "${SYSTEMDIR}\msvcp60d.pdb" + File "${SYSTEMDIR}\msvcrtd.dll" + File "${SYSTEMDIR}\msvcrtd.pdb" +!ENDIF !ENDIF !ELSE !IFDEF CL_1310 - File "${AFS_WININSTALL_DIR}\msvcr71.dll" + File "${SYSTEMDIR}\mfc71.dll" + File "${SYSTEMDIR}\msvcr71.dll" + File "${SYSTEMDIR}\msvcp71.dll" + File "${SYSTEMDIR}\MFC71CHS.DLL" + File "${SYSTEMDIR}\MFC71CHT.DLL" + File "${SYSTEMDIR}\MFC71DEU.DLL" + File "${SYSTEMDIR}\MFC71ENU.DLL" + File "${SYSTEMDIR}\MFC71ESP.DLL" + File "${SYSTEMDIR}\MFC71FRA.DLL" + File "${SYSTEMDIR}\MFC71ITA.DLL" + File "${SYSTEMDIR}\MFC71JPN.DLL" + File "${SYSTEMDIR}\MFC71KOR.DLL" +!ELSE +!IFDEF CL_1300 + File "${SYSTEMDIR}\mfc70.dll" + File "${SYSTEMDIR}\msvcr70.dll" + File "${SYSTEMDIR}\msvcp70.dll" + File "${SYSTEMDIR}\MFC70CHS.DLL" + File "${SYSTEMDIR}\MFC70CHT.DLL" + File "${SYSTEMDIR}\MFC70DEU.DLL" + File "${SYSTEMDIR}\MFC70ENU.DLL" + File "${SYSTEMDIR}\MFC70ESP.DLL" + File "${SYSTEMDIR}\MFC70FRA.DLL" + File "${SYSTEMDIR}\MFC70ITA.DLL" + File "${SYSTEMDIR}\MFC70JPN.DLL" + File "${SYSTEMDIR}\MFC70KOR.DLL" !ELSE - File "${AFS_WININSTALL_DIR}\msvcrt.dll" + File "${SYSTEMDIR}\mfc42.dll" + File "${SYSTEMDIR}\msvcp60.dll" + File "${SYSTEMDIR}\msvcrt.dll" +!ENDIF !ENDIF !ENDIF @@ -2465,13 +2716,82 @@ DoGerman: ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1033.pdb" ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1033.pdb" !IFDEF CL_1310 - File "${AFS_WININSTALL_DIR}\msvcr71d.dll" - File "${AFS_WININSTALL_DIR}\msvcr71d.pdb" + File "${SYSTEMDIR}\msvcr71d.dll" + File "${SYSTEMDIR}\msvcr71d.pdb" + File "${SYSTEMDIR}\msvcp71d.dll" + File "${SYSTEMDIR}\msvcp71d.pdb" + File "${SYSTEMDIR}\mfc71d.dll" + File "${SYSTEMDIR}\mfc71d.pdb" + File "${SYSTEMDIR}\MFC71CHS.DLL" + File "${SYSTEMDIR}\MFC71CHT.DLL" + File "${SYSTEMDIR}\MFC71DEU.DLL" + File "${SYSTEMDIR}\MFC71ENU.DLL" + File "${SYSTEMDIR}\MFC71ESP.DLL" + File "${SYSTEMDIR}\MFC71FRA.DLL" + File "${SYSTEMDIR}\MFC71ITA.DLL" + File "${SYSTEMDIR}\MFC71JPN.DLL" + File "${SYSTEMDIR}\MFC71KOR.DLL" +!ELSE +!IFDEF CL_1300 + File "${SYSTEMDIR}\msvcr70d.dll" + File "${SYSTEMDIR}\msvcr70d.pdb" + File "${SYSTEMDIR}\msvcp70d.dll" + File "${SYSTEMDIR}\msvcp70d.pdb" + File "${SYSTEMDIR}\mfc70d.dll" + File "${SYSTEMDIR}\mfc70d.pdb" + File "${SYSTEMDIR}\MFC70CHS.DLL" + File "${SYSTEMDIR}\MFC70CHT.DLL" + File "${SYSTEMDIR}\MFC70DEU.DLL" + File "${SYSTEMDIR}\MFC70ENU.DLL" + File "${SYSTEMDIR}\MFC70ESP.DLL" + File "${SYSTEMDIR}\MFC70FRA.DLL" + File "${SYSTEMDIR}\MFC70ITA.DLL" + File "${SYSTEMDIR}\MFC70JPN.DLL" + File "${SYSTEMDIR}\MFC70KOR.DLL" !ELSE - File "${AFS_WININSTALL_DIR}\msvcrtd.dll" - File "${AFS_WININSTALL_DIR}\msvcrtd.pdb" + File "${SYSTEMDIR}\mfc42d.dll" + File "${SYSTEMDIR}\mfc42d.pdb" + File "${SYSTEMDIR}\msvcp60d.dll" + File "${SYSTEMDIR}\msvcp60d.pdb" + File "${SYSTEMDIR}\msvcrtd.dll" + File "${SYSTEMDIR}\msvcrtd.pdb" +!ENDIF +!ENDIF +!ELSE +!IFDEF CL_1310 + File "${SYSTEMDIR}\mfc71.dll" + File "${SYSTEMDIR}\msvcr71.dll" + File "${SYSTEMDIR}\msvcp71.dll" + File "${SYSTEMDIR}\MFC71CHS.DLL" + File "${SYSTEMDIR}\MFC71CHT.DLL" + File "${SYSTEMDIR}\MFC71DEU.DLL" + File "${SYSTEMDIR}\MFC71ENU.DLL" + File "${SYSTEMDIR}\MFC71ESP.DLL" + File "${SYSTEMDIR}\MFC71FRA.DLL" + File "${SYSTEMDIR}\MFC71ITA.DLL" + File "${SYSTEMDIR}\MFC71JPN.DLL" + File "${SYSTEMDIR}\MFC71KOR.DLL" +!ELSE +!IFDEF CL_1300 + File "${SYSTEMDIR}\mfc70.dll" + File "${SYSTEMDIR}\msvcr70.dll" + File "${SYSTEMDIR}\msvcp70.dll" + File "${SYSTEMDIR}\MFC70CHS.DLL" + File "${SYSTEMDIR}\MFC70CHT.DLL" + File "${SYSTEMDIR}\MFC70DEU.DLL" + File "${SYSTEMDIR}\MFC70ENU.DLL" + File "${SYSTEMDIR}\MFC70ESP.DLL" + File "${SYSTEMDIR}\MFC70FRA.DLL" + File "${SYSTEMDIR}\MFC70ITA.DLL" + File "${SYSTEMDIR}\MFC70JPN.DLL" + File "${SYSTEMDIR}\MFC70KOR.DLL" +!ELSE + File "${SYSTEMDIR}\mfc42.dll" + File "${SYSTEMDIR}\msvcp60.dll" + File "${SYSTEMDIR}\msvcrt.dll" +!ENDIF +!ENDIF !ENDIF -!endif goto done DoSpanish: @@ -2674,29 +2994,64 @@ FunctionEnd Function AddToPath Exch $0 Push $1 - + Push $2 + Push $3 + + # don't add if the path doesn't exist + IfFileExists $0 "" AddToPath_done + + ReadEnvStr $1 PATH + Push "$1;" + Push "$0;" + Call StrStr + Pop $2 + StrCmp $2 "" "" AddToPath_done + Push "$1;" + Push "$0\;" + Call StrStr + Pop $2 + StrCmp $2 "" "" AddToPath_done + GetFullPathName /SHORT $3 $0 + Push "$1;" + Push "$3;" + Call StrStr + Pop $2 + StrCmp $2 "" "" AddToPath_done + Push "$1;" + Push "$3\;" + Call StrStr + Pop $2 + StrCmp $2 "" "" AddToPath_done + Call IsNT Pop $1 StrCmp $1 1 AddToPath_NT ; Not on NT StrCpy $1 $WINDIR 2 FileOpen $1 "$1\autoexec.bat" a - FileSeek $1 0 END - GetFullPathName /SHORT $0 $0 - FileWrite $1 "$\r$\nSET PATH=%PATH%;$0$\r$\n" + FileSeek $1 -1 END + FileReadByte $1 $2 + IntCmp $2 26 0 +2 +2 # DOS EOF + FileSeek $1 -1 END # write over EOF + FileWrite $1 "$\r$\nSET PATH=%PATH%;$3$\r$\n" FileClose $1 + SetRebootFlag true Goto AddToPath_done AddToPath_NT: ReadRegStr $1 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH" + StrCpy $2 $1 1 -1 # copy last char + StrCmp $2 ";" 0 +2 # if last char == ; + StrCpy $1 $1 -1 # remove last char StrCmp $1 "" AddToPath_NTdoIt StrCpy $0 "$1;$0" - Goto AddToPath_NTdoIt AddToPath_NTdoIt: WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH" $0 SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000 - + AddToPath_done: + Pop $3 + Pop $2 Pop $1 Pop $0 FunctionEnd @@ -2711,7 +3066,11 @@ Function un.RemoveFromPath Push $2 Push $3 Push $4 - + Push $5 + Push $6 + + IntFmt $6 "%c" 26 # DOS EOF + Call un.IsNT Pop $1 StrCmp $1 1 unRemoveFromPath_NT @@ -2722,18 +3081,23 @@ Function un.RemoveFromPath FileOpen $2 $4 w GetFullPathName /SHORT $0 $0 StrCpy $0 "SET PATH=%PATH%;$0" - SetRebootFlag true Goto unRemoveFromPath_dosLoop - + unRemoveFromPath_dosLoop: FileRead $1 $3 - StrCmp $3 "$0$\r$\n" unRemoveFromPath_dosLoop - StrCmp $3 "$0$\n" unRemoveFromPath_dosLoop - StrCmp $3 "$0" unRemoveFromPath_dosLoop + StrCpy $5 $3 1 -1 # read last char + StrCmp $5 $6 0 +2 # if DOS EOF + StrCpy $3 $3 -1 # remove DOS EOF so we can compare + StrCmp $3 "$0$\r$\n" unRemoveFromPath_dosLoopRemoveLine + StrCmp $3 "$0$\n" unRemoveFromPath_dosLoopRemoveLine + StrCmp $3 "$0" unRemoveFromPath_dosLoopRemoveLine StrCmp $3 "" unRemoveFromPath_dosLoopEnd FileWrite $2 $3 Goto unRemoveFromPath_dosLoop - + unRemoveFromPath_dosLoopRemoveLine: + SetRebootFlag true + Goto unRemoveFromPath_dosLoop + unRemoveFromPath_dosLoopEnd: FileClose $2 FileClose $1 @@ -2744,25 +3108,34 @@ Function un.RemoveFromPath Goto unRemoveFromPath_done unRemoveFromPath_NT: - StrLen $2 $0 ReadRegStr $1 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH" + StrCpy $5 $1 1 -1 # copy last char + StrCmp $5 ";" +2 # if last char != ; + StrCpy $1 "$1;" # append ; Push $1 - Push $0 - Call un.StrStr ; Find $0 in $1 - Pop $0 ; pos of our dir - IntCmp $0 -1 unRemoveFromPath_done + Push "$0;" + Call un.StrStr ; Find `$0;` in $1 + Pop $2 ; pos of our dir + StrCmp $2 "" unRemoveFromPath_done ; else, it is in path - StrCpy $3 $1 $0 ; $3 now has the part of the path before our dir - IntOp $2 $2 + $0 ; $2 now contains the pos after our dir in the path (';') - IntOp $2 $2 + 1 ; $2 now containts the pos after our dir and the semicolon. - StrLen $0 $1 - StrCpy $1 $1 $0 $2 - StrCpy $3 "$3$1" + # $0 - path to add + # $1 - path var + StrLen $3 "$0;" + StrLen $4 $2 + StrCpy $5 $1 -$4 # $5 is now the part before the path to remove + StrCpy $6 $2 "" $3 # $6 is now the part after the path to remove + StrCpy $3 $5$6 + + StrCpy $5 $3 1 -1 # copy last char + StrCmp $5 ";" 0 +2 # if last char == ; + StrCpy $3 $3 -1 # remove last char WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH" $3 SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000 - + unRemoveFromPath_done: + Pop $6 + Pop $5 Pop $4 Pop $3 Pop $2 @@ -2775,7 +3148,8 @@ FunctionEnd ; otherwise. ; Output: head of the stack ;==================================================== -Function IsNT +!macro IsNT un +Function ${un}IsNT Push $0 ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion StrCmp $0 "" 0 IsNT_yes @@ -2789,12 +3163,13 @@ Function IsNT Pop $0 Push 1 FunctionEnd +!macroend +!insertmacro IsNT "" +!insertmacro IsNT "un." ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Uninstall sutff +; Uninstall stuff ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - - ;==================================================== ; StrStr - Finds a given string in another given string. ; Returns -1 if not found and the pos if found. @@ -2802,62 +3177,39 @@ FunctionEnd ; second in the stack - string to find in ; Output: head of the stack ;==================================================== -Function un.StrStr - Push $0 - Exch - Pop $0 ; $0 now have the string to find - Push $1 - Exch 2 - Pop $1 ; $1 now have the string to find in - Exch - Push $2 - Push $3 - Push $4 - Push $5 - - StrCpy $2 -1 - StrLen $3 $0 - StrLen $4 $1 - IntOp $4 $4 - $3 - - unStrStr_loop: - IntOp $2 $2 + 1 - IntCmp $2 $4 0 0 unStrStrReturn_notFound - StrCpy $5 $1 $3 $2 - StrCmp $5 $0 unStrStr_done unStrStr_loop - - unStrStrReturn_notFound: - StrCpy $2 -1 - - unStrStr_done: - Pop $5 - Pop $4 - Pop $3 - Exch $2 - Exch 2 - Pop $0 - Pop $1 +!macro StrStr un +Function ${un}StrStr +Exch $R1 ; st=haystack,old$R1, $R1=needle + Exch ; st=old$R1,haystack + Exch $R2 ; st=old$R1,old$R2, $R2=haystack + Push $R3 + Push $R4 + Push $R5 + StrLen $R3 $R1 + StrCpy $R4 0 + ; $R1=needle + ; $R2=haystack + ; $R3=len(needle) + ; $R4=cnt + ; $R5=tmp + loop: + StrCpy $R5 $R2 $R3 $R4 + StrCmp $R5 $R1 done + StrCmp $R5 "" done + IntOp $R4 $R4 + 1 + Goto loop +done: + StrCpy $R1 $R2 "" $R4 + Pop $R5 + Pop $R4 + Pop $R3 + Pop $R2 + Exch $R1 FunctionEnd +!macroend +!insertmacro StrStr "" +!insertmacro StrStr "un." -;==================================================== -; IsNT - Returns 1 if the current system is NT, 0 -; otherwise. -; Output: head of the stack -;==================================================== -Function un.IsNT - Push $0 - ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion - StrCmp $0 "" 0 unIsNT_yes - ; we are not NT. - Pop $0 - Push 0 - Return - - unIsNT_yes: - ; NT!!! - Pop $0 - Push 1 -FunctionEnd !ifdef ADDSHAREDDLLUSED ; AddSharedDLL @@ -2914,6 +3266,8 @@ FunctionEnd FunctionEnd !endif + + !ifdef INSTALL_LOOPBACK Function afs.InstallMSLoopback GetTempFileName $R0