windows-nsis-vs2008-runtime-20080715
[openafs.git] / src / WINNT / install / NSIS / NTMakefile
1 RELDIR=WINNT\install\NSIS
2 !INCLUDE ..\..\..\config\NTMakefile.$(SYS_NAME)
3 !INCLUDE ..\..\..\config\NTMakefile.version
4
5 EXEDIR = $(DESTDIR)\WinInstall\Config
6 NSISDIR = C:\Program Files\NSIS
7
8 # Revise the rule for compiling sources to use static libraries
9 C2OBJ   = $(cc) /Fo$@ /Fd$*.pdb $(cflags) $(cdebug) $(cvars) $(afscflags) $(afscdefs) /c
10
11 LOOPBACK_LIBS = wbemuuid.lib setupapi.lib msi.lib ole32.lib shell32.lib oleaut32.lib user32.lib
12
13 !IFNDEF MSIDNNLS
14 !ERROR Please set IDNMREDISTDIR to the directory where Microsoft IDN Mitigation APIs Redistributables are to be found.
15 # $(MSIDNNLS)\REDIST\idndl.(platform).exe should exist.
16 !ENDIF
17
18 $(OUT)\Service.obj: Service.cpp
19            $(C2OBJ) Service.cpp
20
21 $(OUT)\Service.res: Service.rc AFS_component_version_number.h
22
23 $(EXEDIR)\Service.exe: $(OUT)\Service.obj $(OUT)\Service.res
24       $(EXECONLINK) 
25       $(_VC_MANIFEST_EMBED_EXE)
26         $(CODESIGN_USERLAND)
27
28 $(OUT)\Killer.res: Killer.rc AFS_component_version_number.h
29
30 $(OUT)\Killer.obj: Killer.cpp
31       $(C2OBJ) Killer.cpp
32
33 $(EXEDIR)\Killer.exe: $(OUT)\Killer.obj $(OUT)\Killer.res
34       $(EXECONLINK) 
35         $(_VC_MANIFEST_EMBED_EXE)
36         $(CODESIGN_USERLAND)
37
38 $(OUT)\AdminGroup.res: AdminGroup.rc AFS_component_version_number.h
39
40 $(OUT)\AdminGroup.obj: AdminGroup.cpp
41       $(C2OBJ) AdminGroup.cpp
42
43 $(EXEDIR)\AdminGroup.exe: $(OUT)\AdminGroup.obj $(OUT)\AdminGroup.res
44       $(EXECONLINK) 
45         $(_VC_MANIFEST_EMBED_EXE)
46         $(CODESIGN_USERLAND)
47
48 !IF ("$(AFSDEV_BUILDTYPE)"=="FREE")
49 !IF ("$(CPU)" == "i386")
50 ARCH=x86
51 !ELSE IF ("$(CPU)" == "amd64")
52 ARCH=x64
53 !ELSE
54 ARCH=$(CPU)
55 !ENDIF
56 !ELSE
57 !IF ("$(CPU)" == "i386")
58 ARCH=Intel
59 !ELSE IF ("$(CPU)" == "amd64")
60 ARCH=x64
61 !ELSE
62 ARCH=$(CPU)
63 !ENDIF
64 !ENDIF
65
66 !IF ("$(CPU)" == "i386")
67 IDNMREDIST=$(MSIDNNLS)\REDIST\idndl.x86.exe
68 !ELSE IF ("$(CPU)" == "amd64")
69 IDNMREDIST=$(MSIDNNLS)\REDIST\idndl.amd64.exe
70 !ELSE
71 ! error Unknown CPU value
72 !ENDIF
73
74 !if ("$(AFSVER_CL)"=="1400") || ("$(AFSVER_CL)"=="1500")
75 MSVCMSI=$(EXEDIR)\vcruntime-$(AFSVER_CL)$(AFSDEV_BUILDTYPE).msi
76
77 $(MSVCMSI): $(OUT)\vcruntime.wixobj
78         light -out $@ $**
79         $(CODESIGN_USERLAND)
80
81 $(OUT)\vcruntime.wixobj: vcruntime.wxs
82         candle -out $@ $** -dPlatform=$(ARCH) -dConfig=Debug -dVCVer=$(AFSVER_CL)
83
84 !else
85 MSVCMSI=
86 !endif
87
88 runtime: $(MSVCMSI)
89
90
91 prebuild:
92 !IF ("$(AFSDEV_BUILDTYPE)" == "FREE")
93 !IF ("$(AFSVER_CL)"=="1400")
94    $(COPY) "%VSINSTALLDIR%\SDK\v2.0\BootStrapper\Packages\vcredist_$(ARCH)\vcredist_$(ARCH).exe" $(EXEDIR)
95 !ELSE IF ("$(AFSVER_CL)"=="1310")
96    $(COPY) %SystemRoot%\System32\Msvcr71.dll $(EXEDIR)
97    $(COPY) %SystemRoot%\System32\MFC71.DLL $(EXEDIR)
98 !ELSE IF ("$(AFSVER_CL)"=="1300")
99    $(COPY) %SystemRoot%\System32\Msvcp70.dll $(EXEDIR)
100    $(COPY) %SystemRoot%\System32\MSVCRT.DLL $(EXEDIR)
101    $(COPY) %SystemRoot%\System32\MFC70.DLL $(EXEDIR)
102 !ELSE IF ("$(AFSVER_CL)"=="1200")
103    $(COPY) %SystemRoot%\System32\MSVCRT.DLL $(EXEDIR)
104    $(COPY) %SystemRoot%\System32\MFC42.DLL $(EXEDIR)
105 !ELSE
106 !ERROR Unknown Compiler Version
107 !ENDIF
108 !ELSE # NOT FREE - CHECKED
109 !IF ("$(AFSVER_CL)"=="1500")
110 # Do nothing
111 !ELSE IF ("$(AFSVER_CL)"=="1400")
112 # Do nothing.
113 !ELSE IF ("$(AFSVER_CL)"=="1310")
114    $(COPY) %SystemRoot%\System32\Msvcr71d.dll $(EXEDIR)
115    $(COPY) %SystemRoot%\System32\Msvcr71d.pdb $(EXEDIR)
116    $(COPY) %SystemRoot%\System32\MFC71D.DLL $(EXEDIR)
117    $(COPY) %SystemRoot%\System32\MFC71D.pdb $(EXEDIR)
118 !ELSE IF ("$(AFSVER_CL)"=="1300")
119    $(COPY) %SystemRoot%\System32\Msvcp70d.dll $(EXEDIR)
120    $(COPY) %SystemRoot%\System32\Msvcp70d.pdb $(EXEDIR)
121    $(COPY) %SystemRoot%\System32\MSVCRTD.DLL $(EXEDIR)
122    $(COPY) %SystemRoot%\System32\MSVCRTD.pdb $(EXEDIR)
123    $(COPY) %SystemRoot%\System32\MFC70D.DLL $(EXEDIR)
124    $(COPY) %SystemRoot%\System32\MFC70D.pdb $(EXEDIR)
125 !ELSE IF ("$(AFSVER_CL)"=="1200")
126    $(COPY) %SystemRoot%\System32\MSVCRTD.DLL $(EXEDIR)
127    $(COPY) %SystemRoot%\System32\MSVCRTD.pdb $(EXEDIR)
128    $(COPY) %SystemRoot%\System32\MFC42D.DLL $(EXEDIR)
129    $(COPY) %SystemRoot%\System32\MFC42D.pdb $(EXEDIR)
130 !ELSE
131 !ERROR Unknown Compiler Version
132 !ENDIF
133 !ENDIF
134    $(DEL) $(OUT)\nsi-includes.nsi
135    echo !define AFS_DESTDIR $(DESTDIR) > $(OUT)\nsi-includes.nsi
136    echo !define AFS_VERSION $(AFSPRODUCT_VERSION) >> $(OUT)\nsi-includes.nsi
137    echo !define AFS_MAJORVERSION $(AFSPRODUCT_VER_MAJOR) >>$(OUT)\nsi-includes.nsi
138    echo !define AFS_MINORVERSION $(AFSPRODUCT_VER_MINOR) >>$(OUT)\nsi-includes.nsi
139    echo !define AFS_PATCHLEVEL $(AFSPRODUCT_VER_PATCH) >>$(OUT)\nsi-includes.nsi
140    echo !define IDNMREDIST "$(IDNMREDIST)" >>$(OUT)\nsi-includes.nsi
141    $(DESTDIR)\bin\util_cr.exe _echo "!define " >>$(OUT)\nsi-includes.nsi 
142    "$(NSISDIR)\makensis.exe" /VERSION >>$(OUT)\nsi-includes.nsi          
143    echo. >>$(OUT)\nsi-includes.nsi                                       
144 !if ("$(AFSVER_CL)" == "1500")
145    echo !define CL_1500 1 >> $(OUT)\nsi-includes.nsi
146    echo !define MSVCMSI "$(MSVCMSI)" >> $(OUT)\nsi-includes.nsi
147 !else if ("$(AFSVER_CL)" == "1400")
148    echo !define CL_1400 1 >> $(OUT)\nsi-includes.nsi
149    echo !define MSVCMSI "$(MSVCMSI)" >> $(OUT)\nsi-includes.nsi
150 !else if ("$(AFSVER_CL)" == "1310")
151    echo !define CL_1310 1 >> $(OUT)\nsi-includes.nsi
152 !else if ("$(AFSVER_CL)" == "1300")
153    echo !define CL_1300 1 >> $(OUT)\nsi-includes.nsi
154 !endif
155 !if ("$(AFSIFS)" == "TRUE")
156    echo !define AFSIFS 1 >> $(OUT)\nsi-includes.nsi
157 !endif
158 !if ("$(AFSDEV_BUILDTYPE)" == "CHECKED")
159    echo !define DEBUG 1 >>$(OUT)\nsi-includes.nsi
160 !endif
161
162 !if ("$(AFSDEV_BUILDTYPE)" == "CHECKED")
163 NSISEXE=$(DESTDIR)\WinInstall\OpenAFSforWindows-DEBUG.exe
164 !else
165 NSISEXE=$(DESTDIR)\WinInstall\OpenAFSforWindows.exe
166 !endif
167
168 $(NSISEXE): prebuild $(MSVCMSI)
169         "$(NSISDIR)\makensis.exe" /DINCLUDEDIR=$(OUT) OpenAFS.nsi
170         $(CODESIGN_USERLAND)
171
172 install: $(OUT)\Service.obj $(EXEDIR)\Service.exe $(OUT)\Killer.obj $(EXEDIR)\Killer.exe $(EXEDIR)\AdminGroup.exe runtime $(NSISEXE)
173
174 clean::
175    $(DEL) $(OUT)\Service.obj
176    $(DEL) $(OUT)\Service.res
177    $(DEL) $(EXEDIR)\Service.exe
178    $(DEL) $(OUT)\Killer.obj
179    $(DEL) $(OUT)\Killer.res
180    $(DEL) $(EXEDIR)\Killer.exe
181    $(DEL) $(OUT)\AdminGroup.obj
182    $(DEL) $(OUT)\AdminGroup.res
183    $(DEL) $(EXEDIR)\AdminGroup.exe
184    $(DEL) nsi-include.nsi
185    $(DEL) AFS_component_version_number.h
186 #   $(DEL) $(EXEDIR)\Msvcr71.dll
187 #   $(DEL) $(EXEDIR)\MFC42.DLL
188 !if ("$(AFSVER_CL)"=="1400") && ("$(AFSDEV_BUILDTYPE)"!="FREE")
189    $(DEL) $(OUT)\vcruntime.wixobj
190    $(DEL) $(MSVCMSI)
191 !endif
192    $(DEL) $(NSISEXE)