Windows: NSIS installer requires the architecture for CL=1400
[openafs.git] / src / WINNT / install / NSIS / NTMakefile
index e6177eb..5b13447 100644 (file)
@@ -3,7 +3,9 @@ RELDIR=WINNT\install\NSIS
 !INCLUDE ..\..\..\config\NTMakefile.version
 
 EXEDIR = $(DESTDIR)\WinInstall\Config
+!IFNDEF NSISDIR
 NSISDIR = C:\Program Files\NSIS
+!ENDIF
 
 # Revise the rule for compiling sources to use static libraries
 C2OBJ   = $(cc) /Fo$@ /Fd$*.pdb $(cflags) $(cdebug) $(cvars) $(afscflags) $(afscdefs) /c
@@ -24,6 +26,7 @@ $(EXEDIR)\Service.exe: $(OUT)\Service.obj $(OUT)\Service.res
       $(EXECONLINK) 
       $(_VC_MANIFEST_EMBED_EXE)
         $(CODESIGN_USERLAND)
+        $(SYMSTORE_IMPORT)
 
 $(OUT)\Killer.res: Killer.rc AFS_component_version_number.h
 
@@ -34,6 +37,7 @@ $(EXEDIR)\Killer.exe: $(OUT)\Killer.obj $(OUT)\Killer.res
       $(EXECONLINK) 
         $(_VC_MANIFEST_EMBED_EXE)
         $(CODESIGN_USERLAND)
+        $(SYMSTORE_IMPORT)
 
 $(OUT)\AdminGroup.res: AdminGroup.rc AFS_component_version_number.h
 
@@ -44,23 +48,32 @@ $(EXEDIR)\AdminGroup.exe: $(OUT)\AdminGroup.obj $(OUT)\AdminGroup.res
       $(EXECONLINK) 
         $(_VC_MANIFEST_EMBED_EXE)
         $(CODESIGN_USERLAND)
+        $(SYMSTORE_IMPORT)
 
 !IF ("$(AFSDEV_BUILDTYPE)"=="FREE")
 !IF ("$(CPU)" == "i386")
+MSI_PLATFORM=Intel
 ARCH=x86
 !ELSE IF ("$(CPU)" == "amd64")
+MSI_PLATFORM=x64
 ARCH=x64
 !ELSE
+MSI_PLATFORM=$(CPU)
 ARCH=$(CPU)
 !ENDIF
+MSI_CONFIG=Retail
 !ELSE
 !IF ("$(CPU)" == "i386")
-ARCH=Intel
+MSI_PLATFORM=Intel
+ARCH=x86
 !ELSE IF ("$(CPU)" == "amd64")
+MSI_PLATFORM=x64
 ARCH=x64
 !ELSE
+MSI_PLATFORM=$(CPU)
 ARCH=$(CPU)
 !ENDIF
+MSI_CONFIG=Debug
 !ENDIF
 
 !IF ("$(CPU)" == "i386")
@@ -71,6 +84,23 @@ IDNMREDIST=$(MSIDNNLS)\REDIST\idndl.amd64.exe
 ! error Unknown CPU value
 !ENDIF
 
+!if ("$(AFSVER_CL)"=="1400") || ("$(AFSVER_CL)"=="1500")
+MSVCMSI=$(EXEDIR)\vcruntime-$(AFSVER_CL)$(AFSDEV_BUILDTYPE).msi
+
+$(MSVCMSI): $(OUT)\vcruntime.wixobj
+       light -out $@ $**
+       $(CODESIGN_USERLAND)
+
+$(OUT)\vcruntime.wixobj: vcruntime.wxs
+       candle -out $@ $** -dPlatform=$(MSI_PLATFORM) -dConfig=$(MSI_CONFIG) -dVCVer=$(AFSVER_CL)
+
+!else
+MSVCMSI=
+!endif
+
+runtime: $(MSVCMSI)
+
+
 prebuild:
 !IF ("$(AFSDEV_BUILDTYPE)" == "FREE")
 !IF ("$(AFSVER_CL)"=="1400")
@@ -89,7 +119,9 @@ prebuild:
 !ERROR Unknown Compiler Version
 !ENDIF
 !ELSE # NOT FREE - CHECKED
-!IF ("$(AFSVER_CL)"=="1400")
+!IF ("$(AFSVER_CL)"=="1500")
+# Do nothing
+!ELSE IF ("$(AFSVER_CL)"=="1400")
 # Do nothing.
 !ELSE IF ("$(AFSVER_CL)"=="1310")
    $(COPY) %SystemRoot%\System32\Msvcr71d.dll $(EXEDIR)
@@ -122,9 +154,12 @@ prebuild:
    $(DESTDIR)\bin\util_cr.exe _echo "!define " >>$(OUT)\nsi-includes.nsi 
    "$(NSISDIR)\makensis.exe" /VERSION >>$(OUT)\nsi-includes.nsi          
    echo. >>$(OUT)\nsi-includes.nsi                                       
-!if ("$(AFSVER_CL)" == "1400")
+!if ("$(AFSVER_CL)" == "1500")
+   echo !define CL_1500 1 >> $(OUT)\nsi-includes.nsi
+   echo !define MSVCMSI "$(MSVCMSI)" >> $(OUT)\nsi-includes.nsi
+!else if ("$(AFSVER_CL)" == "1400")
    echo !define CL_1400 1 >> $(OUT)\nsi-includes.nsi
-   echo !define VCREDISTNAME vcredist_$(ARCH).exe >> $(OUT)\nsi-includes.nsi
+   echo !define MSVCMSI "$(MSVCMSI)" >> $(OUT)\nsi-includes.nsi
 !else if ("$(AFSVER_CL)" == "1310")
    echo !define CL_1310 1 >> $(OUT)\nsi-includes.nsi
 !else if ("$(AFSVER_CL)" == "1300")
@@ -137,29 +172,13 @@ prebuild:
    echo !define DEBUG 1 >>$(OUT)\nsi-includes.nsi
 !endif
 
-!if ("$(AFSVER_CL)"=="1400") && ("$(AFSDEV_BUILDTYPE)"!="FREE")
-MSVCMSI=$(EXEDIR)\vcruntime.msi
-
-$(MSVCMSI): $(OUT)\vcruntime.wixobj
-       light -out $@ $**
-       $(CODESIGN_USERLAND)
-
-$(OUT)\vcruntime.wixobj: vcruntime.wxs
-       candle -out $@ $** -dPlatform=$(ARCH) -dConfig=Debug
-
-!else
-MSVCMSI=
-!endif
-
-runtime: $(MSVCMSI)
-
 !if ("$(AFSDEV_BUILDTYPE)" == "CHECKED")
 NSISEXE=$(DESTDIR)\WinInstall\OpenAFSforWindows-DEBUG.exe
 !else
 NSISEXE=$(DESTDIR)\WinInstall\OpenAFSforWindows.exe
 !endif
 
-$(NSISEXE): prebuild
+$(NSISEXE): prebuild $(MSVCMSI)
        "$(NSISDIR)\makensis.exe" /DINCLUDEDIR=$(OUT) OpenAFS.nsi
        $(CODESIGN_USERLAND)