a27894da03c89ad3a8b95568a20be4fafe3bf9b1
[openafs.git] / src / WINNT / afsd / NTMakefile
1 # Copyright 2000, International Business Machines Corporation and others.
2 # All Rights Reserved.
3
4 # This software has been released under the terms of the IBM Public
5 # License.  For details, see the LICENSE file in the top-level source
6 # directory or online at http://www.openafs.org/dl/license10.html
7
8 AFSDEV_AUXCDEFINES = $(AFSDEV_AUXCDEFINES) /D"_AFXDLL" 
9 AFSDEV_NETGUI = 1
10 RELDIR=WINNT\afsd
11 !INCLUDE ..\..\config\NTMakefile.$(SYS_NAME)
12 !INCLUDE ..\..\config\NTMakefile.version
13
14 EXEDIR = $(DESTDIR)\root.client\usr\vice\etc
15
16 ############################################################################
17 # Definitions for installing header files
18
19 INCFILEDIR = $(DESTDIR)\include\afs  # header file install directory
20
21 # afsdicon and below added for WINNT\extra support
22
23 INCFILES =\
24         $(INCFILEDIR)\afsd.h \
25         $(INCFILEDIR)\cm.h \
26         $(INCFILEDIR)\cm_buf.h \
27         $(INCFILEDIR)\cm_cell.h \
28         $(INCFILEDIR)\cm_config.h \
29         $(INCFILEDIR)\cm_conn.h \
30         $(INCFILEDIR)\cm_ioctl.h \
31         $(INCFILEDIR)\cm_scache.h \
32         $(INCFILEDIR)\cm_server.h \
33         $(INCFILEDIR)\cm_user.h \
34         $(INCFILEDIR)\cm_dns.h \
35         $(INCFILEDIR)\cm_utils.h \
36         $(INCFILEDIR)\fs_utils.h \
37         $(INCFILEDIR)\krb.h \
38         $(INCFILEDIR)\krb_prot.h \
39         $(INCFILEDIR)\cm_dir.h \
40         $(INCFILEDIR)\smb.h \
41         $(INCFILEDIR)\smb3.h \
42         $(INCFILEDIR)\smb_iocons.h \
43         $(INCFILEDIR)\smb_ioctl.h \
44         $(INCFILEDIR)\afsmsg95.h \
45         $(INCFILEDIR)\afsrpc.h \
46 !IFDEF OSICRASH
47         $(INCFILEDIR)\afsdcrash.h \
48 !ENDIF
49         $(INCFILEDIR)\cm_dns_private.h \
50         $(INCFILEDIR)\lanahelper.h \
51         $(INCFILEDIR)\afsdicon.h \
52         $(INCFILEDIR)\cm_callback.h \
53         $(INCFILEDIR)\cm_aclent.h \
54         $(INCFILEDIR)\cm_volume.h \
55         $(INCFILEDIR)\cm_dcache.h \
56         $(INCFILEDIR)\cm_access.h \
57         $(INCFILEDIR)\cm_vnodeops.h \
58         $(INCFILEDIR)\cm_dir.h \
59         $(INCFILEDIR)\cm_utils.h \
60         $(INCFILEDIR)\cm_daemon.h \
61         $(INCFILEDIR)\cm_ioctl.h \
62         $(INCFILEDIR)\cm_dnlc.h \
63         $(INCFILEDIR)\cm_buf.h \
64         $(INCFILEDIR)\cm_freelance.h \
65     $(INCFILEDIR)\afsd_eventlog.h \
66     $(INCFILEDIR)\afsd_eventmessages.h
67
68 IDLFILES =\
69         afsrpc.h $(OUT)\afsrpc_c.obj
70
71 CONFOBJS=$(OUT)\cm_config.obj \
72          $(OUT)\cm_dns.obj
73
74 $(CONFOBJS):
75
76 RXOBJS = $(OUT)\xdr_int32.obj $(OUT)\xdr_int64.obj
77
78 $(RXOBJS):
79
80 RX= ..\..\rx
81
82 $(RXOBJS): $(RX)\$$(@B).c
83         $(C2OBJ) -I$(RX) $**
84
85 $(IDLFILES):afsrpc.idl
86         midl $(MIDL_FLAGS) /no_robust $(AFSDEV_AUXMIDLFLAGS) /app_config $?
87
88
89 AFSDOBJS=\
90         $(OUT)\afsd_init.obj \
91         $(OUT)\cm_cell.obj \
92         $(OUT)\cm_server.obj \
93         $(OUT)\cm_volume.obj \
94         $(OUT)\cm_conn.obj \
95         $(OUT)\cm_user.obj \
96         $(OUT)\cm_buf.obj \
97         $(OUT)\cm_scache.obj \
98         $(OUT)\cm_dcache.obj \
99         $(OUT)\cm_access.obj \
100         $(OUT)\cm_callback.obj \
101         $(OUT)\cm_vnodeops.obj \
102         $(OUT)\cm_dir.obj \
103         $(OUT)\cm_utils.obj \
104         $(OUT)\largeintdotnet.obj \
105         $(OUT)\smb.obj \
106         $(OUT)\smb3.obj \
107         $(OUT)\smb_ioctl.obj \
108         $(OUT)\cm_ioctl.obj \
109         $(OUT)\cm_daemon.obj \
110         $(OUT)\cm_aclent.obj \
111         $(OUT)\cm_dnlc.obj \
112         $(OUT)\cm_rpc.obj \
113         $(OUT)\afsrpc_s.obj \
114 !IFDEF OSICRASH
115         $(OUT)\afsdcrash.obj \
116 !ENDIF
117     $(OUT)\cm_freelance.obj \
118     $(OUT)\lanahelper.obj  \
119     $(OUT)\afsd_eventlog.obj \
120     $(OUT)\afsd_flushvol.obj
121
122 $(AFSDOBJS):
123
124 $(OUT)\cm_conn.obj: cm_conn.c
125         $(C2OBJ) -DAFS_PTHREAD_ENV /Fo$@ $**
126
127 FSOBJS=$(OUT)\fs.obj $(OUT)\fs_utils.obj
128
129 SLOBJS=$(OUT)\symlink.obj $(OUT)\fs_utils.obj
130
131 ILIBDIR = $(DESTDIR)\lib
132
133 #                                                    
134 # Rules for message compiler info for logging events 
135 #                                                    
136 $(INCFILEDIR)\afsd_eventmessages.h:  afsd_eventmessages.mc         
137         mc afsd_eventmessages.mc                           
138                                                      
139 ############################################################################
140 #
141 # Flags for linking LOGON DLL'S
142 #
143
144 LOGONLINKFLAGS = -entry:DllEntryPoint /NODEFAULTLIB:msvcr70d.lib /NODEFAULTLIB:msvcrtd.lib  msvcrt.lib
145
146
147 ############################################################################
148 #
149 # IDL COMPILATION
150 #
151
152 MIDL_FLAGS=/app_config \
153            /Zp4 \
154            /cpp_cmd $(cc) \
155            /cpp_opt "-E" \
156            /no_robust \
157            /nologo
158
159 .SUFFIXES: .h .idl
160
161 .idl.h:
162         midl $(MIDL_FLAGS) $(AFSDEV_AUXMIDLFLAGS) $<
163
164 ############################################################################
165 # libafsconf.dll
166
167 CONF_DLLFILE = $(DESTDIR)\root.client\usr\vice\etc\libafsconf.dll
168
169 CONF_DLLLIBS = \
170     dnsapi.lib \
171     $(DESTDIR)\lib\afs\afsutil.lib \
172     $(DESTDIR)\lib\afs\afsreg.lib
173
174 $(CONF_DLLFILE): $(CONFOBJS) $(OUT)\libafsconf.res
175         $(DLLGUILINK) -def:libafsconf.def $(CONF_DLLLIBS)
176         $(DLLPREP)
177         $(COPY) $*.lib $(ILIBDIR)
178         $(DEL) $*.lib $*.exp
179
180 ############################################################################
181 # afslogon.dll
182
183 LOGON_DLLFILE = $(DESTDIR)\root.client\usr\vice\etc\afslogon.dll
184
185 LOGON_DLLOBJS =\
186         $(OUT)\afslogon.obj \
187         $(OUT)\afslogon.res
188
189 LOGON_DLLLIBS =\
190     dnsapi.lib \
191         $(DESTDIR)\lib\afsauthent.lib \
192         $(DESTDIR)\lib\libafsconf.lib
193
194 $(LOGON_DLLFILE): $(LOGON_DLLOBJS)
195         $(DLLGUILINK) $(LOGONLINKFLAGS) -def:afslogon.def $(LOGON_DLLLIBS)
196         $(DLLPREP)
197         $(COPY) $*.lib $(DESTDIR)\lib
198         $(DEL) $*.lib $*.exp
199
200 ############################################################################
201 # afslog95.dll
202
203 LOG95_DLLFILE = $(DESTDIR)\root.client\usr\vice\etc\afslog95.dll
204
205 LOG95_DLLOBJS =\
206         $(OUT)\afslog95.obj \
207         $(OUT)\afslog95.res
208
209 LOG95_DLLLIBS =\
210     dnsapi.lib \
211         $(DESTDIR)\lib\afsauthent.lib \
212         $(DESTDIR)\lib\libafsconf.lib
213
214 $(LOG95_DLLFILE): $(LOG95_DLLOBJS)
215         $(DLLGUILINK) $(LOGONLINKFLAGS) -def:afslog95.def $(LOG95_DLLLIBS)
216         $(DLLPREP)
217         $(COPY) $*.lib $(DESTDIR)\lib
218         $(DEL) $*.lib $*.exp
219
220 ############################################################################
221 # Install target; primary makefile target
222
223 install_objs: $(OUT)\cm_dns.obj $(OUT)\cm_config.obj
224      $(COPY) $(OUT)\cm_dns.obj $(DESTDIR)\lib
225      $(COPY) $(OUT)\cm_config.obj $(DESTDIR)\lib
226
227 install_headers: $(IDLFILES) $(INCFILES)
228
229 install: install_headers install_objs $(CONF_DLLFILE) \
230         $(EXEDIR)\klog.exe \
231         $(EXEDIR)\tokens.exe \
232         $(EXEDIR)\unlog.exe $(EXEDIR)\afsd.exe $(EXEDIR)\afsd_service.exe \
233         $(EXEDIR)\fs.exe $(EXEDIR)\symlink.exe \
234         $(LOGON_DLLFILE) \
235         $(EXEDIR)\afsshare.exe \
236         $(DESTDIR)\bin\kpasswd.exe
237
238 install9X: install_headers $(CONF_DLLFILE) \
239         $(EXEDIR)\klog.exe \
240         $(EXEDIR)\tokens.exe \
241         $(EXEDIR)\unlog.exe $(EXEDIR)\afsd_service.exe \
242         $(EXEDIR)\fs.exe $(EXEDIR)\symlink.exe \
243         $(LOGON_DLLFILE) $(LOG95_DLLFILE) \
244         $(EXEDIR)\afsshare.exe \
245         $(DESTDIR)\bin\kpasswd.exe
246
247 install_libutils: install_headers $(CONF_DLLFILE) \
248         $(EXEDIR)\klog.exe \
249         $(EXEDIR)\tokens.exe \
250         $(EXEDIR)\unlog.exe \
251         $(EXEDIR)\fs.exe $(EXEDIR)\symlink.exe \
252         $(EXEDIR)\afsshare.exe \
253         $(DESTDIR)\bin\kpasswd.exe
254
255 ############################################################################
256 # Local clean target; augments predefined clean target
257
258 ############################################################################
259 # assorted exe's
260
261 EXELIBS = \
262     dnsapi.lib \
263         $(DESTDIR)\lib\afs\afsauth.lib \
264         $(DESTDIR)\lib\afs\afskauth.lib \
265         $(DESTDIR)\lib\afs\afsprot.lib \
266         $(DESTDIR)\lib\afs\afspioctl.lib \
267         $(DESTDIR)\lib\afs\afsaudit.lib \
268         $(DESTDIR)\lib\afs\afsutil.lib \
269         $(DESTDIR)\lib\afs\afscom_err.lib \
270         $(DESTDIR)\lib\afs\afsreg.lib \
271         $(DESTDIR)\lib\afs\afscmd.lib \
272         $(DESTDIR)\lib\afsubik.lib \
273         $(DESTDIR)\lib\afsrxkad.lib \
274         $(DESTDIR)\lib\afsdes.lib \
275         $(DESTDIR)\lib\afsrx.lib \
276         $(DESTDIR)\lib\afslwp.lib \
277         $(DESTDIR)\lib\libosi.lib \
278         $(DESTDIR)\lib\libafsconf.lib
279
280 # klog.exe
281 $(EXEDIR)\klog.exe: $(OUT)\cklog.obj $(OUT)\klog.res
282         $(EXECONLINK) $(EXELIBS)
283         $(EXEPREP)
284
285 # tokens.exe
286 $(EXEDIR)\tokens.exe: $(OUT)\ctokens.obj $(OUT)\tokens.res
287         $(EXECONLINK) $(EXELIBS)
288         $(EXEPREP)
289
290 # unlog.exe
291 $(EXEDIR)\unlog.exe: $(OUT)\cunlog.obj $(OUT)\unlog.res
292         $(EXECONLINK) $(EXELIBS)
293         $(EXEPREP)
294
295 # afsd.exe
296 AFSD_EXEFILE = $(EXEDIR)\afsd.exe
297
298 AFSD_EXELIBS =\
299         largeint.lib \
300         netapi32.lib \
301     mpr.lib \
302     dnsapi.lib \
303         $(DESTDIR)\lib\libosi.lib \
304         $(DESTDIR)\lib\afsrpc.lib \
305     $(DESTDIR)\lib\afsrx.lib \
306         $(DESTDIR)\lib\afsauthent.lib \
307         $(DESTDIR)\lib\afs\mtafsvldb.lib \
308         $(DESTDIR)\lib\afs\mtafsint.lib \
309         $(DESTDIR)\lib\libafsconf.lib \
310         $(DESTDIR)\lib\afs\afsreg.lib \
311         rpcrt4.lib \
312         user32.lib \
313     Dbghelp.lib
314
315 $(AFSD_EXEFILE): $(OUT)\afsd.obj $(AFSDOBJS) $(OUT)\afsd.res  $(RXOBJS)
316         $(EXEGUILINK) $(AFSD_EXELIBS)
317         $(EXEPREP)
318
319 # afsd_service.exe
320 $(EXEDIR)\afsd_service.exe: $(OUT)\afsd_service.obj $(AFSDOBJS) $(OUT)\afsd_service.res  $(RXOBJS)
321         $(EXECONLINK) $(AFSD_EXELIBS) /NODEFAULTLIB:libc.lib /MAP
322         $(EXEPREP)
323
324 # fs.exe
325 $(EXEDIR)\fs.exe: $(FSOBJS) $(OUT)\fs.res
326         $(EXECONLINK) $(EXELIBS)
327         $(EXEPREP)
328
329 # symlink.exe
330 $(EXEDIR)\symlink.exe: $(SLOBJS) $(OUT)\symlink.res
331         $(EXECONLINK) $(EXELIBS)
332         $(EXEPREP)
333
334 # afsshare.exe
335 $(EXEDIR)\afsshare.exe: $(OUT)\afsshare.obj $(OUT)\afsshare.res
336         $(EXECONLINK)
337         $(EXEPREP)
338
339 # kpasswd.exe - built in kauth, but rebuild here to make pthread-based,
340 #    which is required for Windows 95.  At some point it would be nice
341 #    for all commands to be pthread based, in which case they should
342 #    be built in a separate directory (perhaps tbin ala tviced) or
343 #    libafsauthent should be built earlier so that each command can
344 #    be built in its native directory.
345
346 KAUTH = ..\..\kauth
347
348 KPASSWD_OBJS =\
349         $(OUT)\kpasswd.obj \
350         $(OUT)\kkids.obj \
351         $(OUT)\kautils.obj \
352         $(OUT)\$(KAUTH)\kpasswd.res
353
354 KPASSWD_LIBS =\
355         $(DESTDIR)\lib\afsauthent.lib \
356         $(DESTDIR)\lib\afsrpc.lib \
357     $(DESTDIR)\lib\afsrx.lib \
358         $(DESTDIR)\lib\afs\afscmd.lib \
359         $(DESTDIR)\lib\afsdes.lib \
360         $(DESTDIR)\lib\afs\afsutil.lib
361
362 $(OUT)\kpasswd.obj: $(KAUTH)/kpasswd.c
363         $(C2OBJ) -DAFS_PTHREAD_ENV /Fo$@ $**
364
365 $(OUT)\kkids.obj: $(KAUTH)/kkids.c
366         $(C2OBJ) -DAFS_PTHREAD_ENV /Fo$@ $**
367
368 $(OUT)\kautils.obj: $(KAUTH)/kautils.c
369         $(C2OBJ) -DAFS_PTHREAD_ENV /Fo$@ $**
370
371 $(OUT)\kpasswd.res: $(KAUTH)\kpasswd.rc
372     $(RC) /Fo$@ $**
373
374 $(DESTDIR)\bin\kpasswd.exe: $(KPASSWD_OBJS) $(KPASSWD_LIBS)
375         $(DEL) $(DESTDIR)\bin\kpasswd.exe
376         $(EXECONLINK)
377         $(EXEPREP)
378
379
380 ############################################################################
381 # generate versioninfo resources
382
383 $(OUT)\afsshare.res: afsshare.rc AFS_component_version_number.h
384
385 $(OUT)\fs.res: fs.rc AFS_component_version_number.h
386
387 $(OUT)\symlink.res: symlink.rc AFS_component_version_number.h
388
389 $(OUT)\klog.res: klog.rc AFS_component_version_number.h
390
391 $(OUT)\tokens.res: tokens.rc AFS_component_version_number.h
392
393 $(OUT)\unlog.res: unlog.rc AFS_component_version_number.h
394
395 afsd_eventmessages.rc: afsd_eventmessages.h
396
397 $(OUT)\afsd_service.res: afsd_service.rc afsd_eventmessages.rc AFS_component_version_number.h
398
399 $(OUT)\afslogon.res: afslogon.rc AFS_component_version_number.h
400
401 $(OUT)\afslog95.res: afslog95.rc AFS_component_version_number.h
402
403 $(OUT)\libafsconf.res: libafsconf.rc AFS_component_version_number.h
404
405 ############################################################################
406 clean::
407         $(DEL) $(OUT)\*.res
408         $(DEL) afsrpc.h
409         $(DEL) afsrpc_?.*
410     $(DEL) afsd_eventmessages.h
411         $(DEL) $(CONF_DLLFILE)
412         $(DEL) $(LOGON_DLLFILE)
413         $(DEL) $(LOG95_DLLFILE)
414
415 mkdir: