windows-nsis-install-idn-redist-20080626
[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
27 $(OUT)\Killer.res: Killer.rc AFS_component_version_number.h
28
29 $(OUT)\Killer.obj: Killer.cpp
30       $(C2OBJ) Killer.cpp
31
32 $(EXEDIR)\Killer.exe: $(OUT)\Killer.obj $(OUT)\Killer.res
33       $(EXECONLINK) 
34         $(_VC_MANIFEST_EMBED_EXE)
35
36 $(OUT)\AdminGroup.res: AdminGroup.rc AFS_component_version_number.h
37
38 $(OUT)\AdminGroup.obj: AdminGroup.cpp
39       $(C2OBJ) AdminGroup.cpp
40
41 $(EXEDIR)\AdminGroup.exe: $(OUT)\AdminGroup.obj $(OUT)\AdminGroup.res
42       $(EXECONLINK) 
43         $(_VC_MANIFEST_EMBED_EXE)
44
45 !IF ("$(AFSDEV_BUILDTYPE)"=="FREE")
46 !IF ("$(CPU)" == "i386")
47 ARCH=x86
48 !ELSE IF ("$(CPU)" == "amd64")
49 ARCH=x64
50 !ELSE
51 ARCH=$(CPU)
52 !ENDIF
53 !ELSE
54 !IF ("$(CPU)" == "i386")
55 ARCH=Intel
56 !ELSE IF ("$(CPU)" == "amd64")
57 ARCH=x64
58 !ELSE
59 ARCH=$(CPU)
60 !ENDIF
61 !ENDIF
62
63 !IF ("$(CPU)" == "i386")
64 IDNMREDIST=$(MSIDNNLS)\REDIST\idndl.x86.exe
65 !ELSE IF ("$(CPU)" == "amd64")
66 IDNMREDIST=$(MSIDNNLS)\REDIST\idndl.amd64.exe
67 !ELSE
68 ! error Unknown CPU value
69 !ENDIF
70
71 prebuild:
72 !IF ("$(AFSDEV_BUILDTYPE)" == "FREE")
73 !IF ("$(AFSVER_CL)"=="1400")
74    $(COPY) "%VSINSTALLDIR%\SDK\v2.0\BootStrapper\Packages\vcredist_$(ARCH)\vcredist_$(ARCH).exe" $(EXEDIR)
75 !ELSE IF ("$(AFSVER_CL)"=="1310")
76    $(COPY) %SystemRoot%\System32\Msvcr71.dll $(EXEDIR)
77    $(COPY) %SystemRoot%\System32\MFC71.DLL $(EXEDIR)
78 !ELSE IF ("$(AFSVER_CL)"=="1300")
79    $(COPY) %SystemRoot%\System32\Msvcp70.dll $(EXEDIR)
80    $(COPY) %SystemRoot%\System32\MSVCRT.DLL $(EXEDIR)
81    $(COPY) %SystemRoot%\System32\MFC70.DLL $(EXEDIR)
82 !ELSE IF ("$(AFSVER_CL)"=="1200")
83    $(COPY) %SystemRoot%\System32\MSVCRT.DLL $(EXEDIR)
84    $(COPY) %SystemRoot%\System32\MFC42.DLL $(EXEDIR)
85 !ELSE
86 !ERROR Unknown Compiler Version
87 !ENDIF
88 !ELSE # NOT FREE - CHECKED
89 !IF ("$(AFSVER_CL)"=="1400")
90 # Do nothing.
91 !ELSE IF ("$(AFSVER_CL)"=="1310")
92    $(COPY) %SystemRoot%\System32\Msvcr71d.dll $(EXEDIR)
93    $(COPY) %SystemRoot%\System32\Msvcr71d.pdb $(EXEDIR)
94    $(COPY) %SystemRoot%\System32\MFC71D.DLL $(EXEDIR)
95    $(COPY) %SystemRoot%\System32\MFC71D.pdb $(EXEDIR)
96 !ELSE IF ("$(AFSVER_CL)"=="1300")
97    $(COPY) %SystemRoot%\System32\Msvcp70d.dll $(EXEDIR)
98    $(COPY) %SystemRoot%\System32\Msvcp70d.pdb $(EXEDIR)
99    $(COPY) %SystemRoot%\System32\MSVCRTD.DLL $(EXEDIR)
100    $(COPY) %SystemRoot%\System32\MSVCRTD.pdb $(EXEDIR)
101    $(COPY) %SystemRoot%\System32\MFC70D.DLL $(EXEDIR)
102    $(COPY) %SystemRoot%\System32\MFC70D.pdb $(EXEDIR)
103 !ELSE IF ("$(AFSVER_CL)"=="1200")
104    $(COPY) %SystemRoot%\System32\MSVCRTD.DLL $(EXEDIR)
105    $(COPY) %SystemRoot%\System32\MSVCRTD.pdb $(EXEDIR)
106    $(COPY) %SystemRoot%\System32\MFC42D.DLL $(EXEDIR)
107    $(COPY) %SystemRoot%\System32\MFC42D.pdb $(EXEDIR)
108 !ELSE
109 !ERROR Unknown Compiler Version
110 !ENDIF
111 !ENDIF
112    $(DEL) $(OUT)\nsi-includes.nsi
113    echo !define AFS_DESTDIR $(DESTDIR) > $(OUT)\nsi-includes.nsi
114    echo !define AFS_VERSION $(AFSPRODUCT_VERSION) >> $(OUT)\nsi-includes.nsi
115    echo !define AFS_MAJORVERSION $(AFSPRODUCT_VER_MAJOR) >>$(OUT)\nsi-includes.nsi
116    echo !define AFS_MINORVERSION $(AFSPRODUCT_VER_MINOR) >>$(OUT)\nsi-includes.nsi
117    echo !define AFS_PATCHLEVEL $(AFSPRODUCT_VER_PATCH) >>$(OUT)\nsi-includes.nsi
118    echo !define IDNMREDIST "$(IDNMREDIST)" >>$(OUT)\nsi-includes.nsi
119    $(DESTDIR)\bin\util_cr.exe _echo "!define " >>$(OUT)\nsi-includes.nsi 
120    "$(NSISDIR)\makensis.exe" /VERSION >>$(OUT)\nsi-includes.nsi          
121    echo. >>$(OUT)\nsi-includes.nsi                                       
122 !if ("$(AFSVER_CL)" == "1400")
123    echo !define CL_1400 1 >> $(OUT)\nsi-includes.nsi
124    echo !define VCREDISTNAME vcredist_$(ARCH).exe >> $(OUT)\nsi-includes.nsi
125 !else if ("$(AFSVER_CL)" == "1310")
126    echo !define CL_1310 1 >> $(OUT)\nsi-includes.nsi
127 !else if ("$(AFSVER_CL)" == "1300")
128    echo !define CL_1300 1 >> $(OUT)\nsi-includes.nsi
129 !endif
130 !if ("$(AFSIFS)" == "TRUE")
131    echo !define AFSIFS 1 >> $(OUT)\nsi-includes.nsi
132 !endif
133 !if ("$(AFSDEV_BUILDTYPE)" == "CHECKED")
134    echo !define DEBUG 1 >>$(OUT)\nsi-includes.nsi
135 !endif
136
137 !if ("$(AFSVER_CL)"=="1400") && ("$(AFSDEV_BUILDTYPE)"!="FREE")
138 MSVCMSI=$(EXEDIR)\vcruntime.msi
139
140 $(MSVCMSI): $(OUT)\vcruntime.wixobj
141         light -out $@ $**
142
143 $(OUT)\vcruntime.wixobj: vcruntime.wxs
144         candle -out $@ $** -dPlatform=$(ARCH) -dConfig=Debug
145
146 !else
147 MSVCMSI=
148 !endif
149
150 runtime: $(MSVCMSI)
151
152 build: prebuild
153    "$(NSISDIR)\makensis.exe" /DINCLUDEDIR=$(OUT) OpenAFS.nsi
154
155 install: $(OUT)\Service.obj $(EXEDIR)\Service.exe $(OUT)\Killer.obj $(EXEDIR)\Killer.exe $(EXEDIR)\AdminGroup.exe runtime build
156
157 clean::
158    $(DEL) $(OUT)\Service.obj
159    $(DEL) $(OUT)\Service.res
160    $(DEL) $(EXEDIR)\Service.exe
161    $(DEL) $(OUT)\Killer.obj
162    $(DEL) $(OUT)\Killer.res
163    $(DEL) $(EXEDIR)\Killer.exe
164    $(DEL) $(OUT)\AdminGroup.obj
165    $(DEL) $(OUT)\AdminGroup.res
166    $(DEL) $(EXEDIR)\AdminGroup.exe
167    $(DEL) nsi-include.nsi
168    $(DEL) AFS_component_version_number.h
169 #   $(DEL) $(EXEDIR)\Msvcr71.dll
170 #   $(DEL) $(EXEDIR)\MFC42.DLL
171 #   $(DEL) OpenAFSforWindows.exe
172 !if ("$(AFSVER_CL)"=="1400") && ("$(AFSDEV_BUILDTYPE)"!="FREE")
173    $(DEL) $(OUT)\vcruntime.wixobj
174    $(DEL) $(MSVCMSI)
175 !endif