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