297697360e3df31e5b3edd2eff1b9f95fa1d7701
[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" /DSMB_UNICODE -I..\kfw\inc\loadfuncs \
9         -I..\kfw\inc\krb5 -I..\kfw\inc\leash -I$(DESTDIR)\include\afs \
10         -I$(DESTDIR)\include\rx
11 AFSDEV_NETGUI = 1
12 RELDIR=WINNT\afsd
13 !INCLUDE ..\..\config\NTMakefile.$(SYS_NAME)
14 !INCLUDE ..\..\config\NTMakefile.version
15
16 EXEDIR = $(DESTDIR)\root.client\usr\vice\etc
17
18 ############################################################################
19 # Definitions for installing header files
20
21 INCFILEDIR = $(DESTDIR)\include\afs  # header file install directory
22
23 # afsdicon and below added for WINNT\extra support
24
25 INCFILES =\
26         $(INCFILEDIR)\afsd.h \
27         $(INCFILEDIR)\cm.h \
28         $(INCFILEDIR)\cm_buf.h \
29         $(INCFILEDIR)\cm_cell.h \
30         $(INCFILEDIR)\cm_config.h \
31         $(INCFILEDIR)\cm_conn.h \
32         $(INCFILEDIR)\cm_error.h \
33         $(INCFILEDIR)\cm_ioctl.h \
34         $(INCFILEDIR)\cm_scache.h \
35         $(INCFILEDIR)\cm_server.h \
36         $(INCFILEDIR)\cm_user.h \
37         $(INCFILEDIR)\cm_dns.h \
38         $(INCFILEDIR)\cm_utils.h \
39         $(INCFILEDIR)\fs_acl.h \
40         $(INCFILEDIR)\fs_utils.h \
41         $(INCFILEDIR)\krb.h \
42         $(INCFILEDIR)\krb_prot.h \
43         $(INCFILEDIR)\cm_dir.h \
44         $(INCFILEDIR)\smb.h \
45         $(INCFILEDIR)\smb3.h \
46         $(INCFILEDIR)\smb_iocons.h \
47         $(INCFILEDIR)\smb_ioctl.h \
48         $(INCFILEDIR)\smb_rpc.h \
49         $(INCFILEDIR)\afsrpc.h \
50 !IFDEF OSICRASH
51         $(INCFILEDIR)\afsdcrash.h \
52 !ENDIF
53         $(INCFILEDIR)\cm_dns_private.h \
54         $(INCFILEDIR)\lanahelper.h \
55         $(INCFILEDIR)\afsdicon.h \
56         $(INCFILEDIR)\cm_callback.h \
57         $(INCFILEDIR)\cm_aclent.h \
58         $(INCFILEDIR)\cm_volume.h \
59         $(INCFILEDIR)\cm_volstat.h \
60         $(INCFILEDIR)\cm_dcache.h \
61         $(INCFILEDIR)\cm_access.h \
62         $(INCFILEDIR)\cm_vnodeops.h \
63         $(INCFILEDIR)\cm_dir.h \
64         $(INCFILEDIR)\cm_utils.h \
65         $(INCFILEDIR)\cm_daemon.h \
66         $(INCFILEDIR)\cm_ioctl.h \
67         $(INCFILEDIR)\cm_dnlc.h \
68         $(INCFILEDIR)\cm_buf.h \
69         $(INCFILEDIR)\cm_freelance.h \
70         $(INCFILEDIR)\cm_memmap.h \
71         $(INCFILEDIR)\cm_performance.h \
72         $(INCFILEDIR)\cm_nls.h \
73         $(INCFILEDIR)\afsd_eventlog.h \
74         $(INCFILEDIR)\afsd_eventmessages.h \
75         $(INCFILEDIR)\afskfw.h \
76         $(INCFILEDIR)\afsicf.h
77
78 IDLFILES =\
79         afsrpc.h $(OUT)\afsrpc_c.obj
80
81 CONFOBJS=$(OUT)\cm_config.obj \
82          $(OUT)\cm_dns.obj \
83          $(OUT)\cm_nls.obj
84
85 $(CONFOBJS):
86
87 RXOBJS = $(OUT)\xdr_int32.obj $(OUT)\xdr_int64.obj
88
89 $(RXOBJS):
90
91 RX= ..\..\rx
92
93 $(RXOBJS): $(RX)\$$(@B).c
94         $(C2OBJ) -I$(RX) $**
95
96 $(IDLFILES):afsrpc.idl
97         midl $(MIDL_FLAGS) $(AFSDEV_AUXMIDLFLAGS) /app_config $?
98
99 ms-srvsvc.h ms-srvsvc_s.c: ms-srvsvc.idl
100         midl $(MIDL_FLAGS) $(AFSDEV_AUXMIDLFLAGS) /Os ms-srvsvc.idl
101
102 ms-wkssvc.h ms-wkssvc_s.c: ms-wkssvc.idl
103         midl $(MIDL_FLAGS) $(AFSDEV_AUXMIDLFLAGS) /Os ms-wkssvc.idl
104
105 $(OUT)\ms-srvsvc_s.obj: ms-srvsvc_s.c
106         $(C2OBJ) /FImsrpc.h /Fo$@ $**
107
108 $(OUT)\ms-wkssvc_s.obj: ms-wkssvc_s.c
109         $(C2OBJ) /FImsrpc.h /Fo$@ $**
110
111 AFSDOBJS=\
112         $(OUT)\rawops.obj \
113         $(OUT)\afsd_init.obj \
114         $(OUT)\cm_btree.obj \
115         $(OUT)\cm_cell.obj \
116         $(OUT)\cm_server.obj \
117         $(OUT)\cm_volume.obj \
118         $(OUT)\cm_volstat.obj \
119         $(OUT)\cm_config.obj \
120         $(OUT)\cm_conn.obj \
121         $(OUT)\cm_user.obj \
122         $(OUT)\cm_buf.obj \
123         $(OUT)\cm_scache.obj \
124         $(OUT)\cm_dcache.obj \
125         $(OUT)\cm_access.obj \
126         $(OUT)\cm_callback.obj \
127         $(OUT)\cm_vnodeops.obj \
128         $(OUT)\cm_dir.obj \
129         $(OUT)\cm_utils.obj \
130         $(OUT)\largeintdotnet.obj \
131         $(OUT)\smb.obj \
132         $(OUT)\smb3.obj \
133         $(OUT)\smb_ioctl.obj \
134         $(OUT)\smb_rpc.obj \
135         $(OUT)\msrpc.obj \
136         $(OUT)\cm_ioctl.obj \
137         $(OUT)\cm_daemon.obj \
138         $(OUT)\cm_aclent.obj \
139         $(OUT)\cm_dnlc.obj \
140         $(OUT)\cm_rpc.obj \
141         $(OUT)\cm_memmap.obj \
142         $(OUT)\cm_performance.obj \
143         $(OUT)\cm_nls.obj \
144         $(OUT)\afsrpc_s.obj \
145 !IFDEF OSICRASH
146         $(OUT)\afsdcrash.obj \
147 !ENDIF
148         $(OUT)\cm_freelance.obj \
149         $(OUT)\afsd_eventlog.obj \
150         $(OUT)\afsd_flushvol.obj \
151         $(OUT)\afsicf.obj \
152         $(OUT)\ms-srvsvc_s.obj \
153         $(OUT)\ms-wkssvc_s.obj \
154         $(OUT)\rpc_wkssvc.obj \
155         $(OUT)\rpc_srvsvc.obj \
156         $(OUT)\AFS_component_version_number.obj
157
158 $(AFSDOBJS):
159
160 $(OUT)\cm_conn.obj: cm_conn.c
161         $(C2OBJ) -DAFS_PTHREAD_ENV /Fo$@ $**
162
163 FSOBJS=$(OUT)\fs.obj \
164        $(OUT)\fs_acl.obj \
165        $(OUT)\fs_utils.obj \
166        $(OUT)\cm_nls.obj \
167        $(OUT)\parsemode.obj
168
169 CMDBGOBJS=$(OUT)\cmdebug.obj
170
171 $(CMDBGOBJS): $(AFSROOT)\src\venus\cmdebug.c
172         $(C2OBJ) -DAFS_PTHREAD_ENV /Fo$@ $**
173
174 AFSIOOBJS=$(OUT)\afsio.obj
175
176 $(AFSIOOBJS): $(AFSROOT)\src\venus\afsio.c
177         $(C2OBJ) -DAFS_PTHREAD_ENV /Fo$@ $**
178
179 SLOBJS= $(OUT)\symlink.obj \
180         $(OUT)\fs_utils.obj \
181         $(OUT)\cm_nls.obj
182
183 ILIBDIR = $(DESTDIR)\lib
184
185 #
186 # Rules for message compiler info for logging events
187 #
188 $(INCFILEDIR)\afsd_eventmessages.h:  afsd_eventmessages.mc
189         mc afsd_eventmessages.mc
190
191 ############################################################################
192 #
193 # Flags for linking LOGON DLL'S
194 #
195
196 LOGONLINKFLAGS = -entry:DllEntryPoint
197
198
199 ############################################################################
200 #
201 # IDL COMPILATION
202 #
203
204 MIDL_FLAGS=/app_config \
205            /Zp4 \
206            /cpp_cmd $(cc) \
207            /cpp_opt "-E" \
208            /nologo
209
210 .SUFFIXES: .h .idl
211
212 .idl.h:
213         midl $(MIDL_FLAGS) $(AFSDEV_AUXMIDLFLAGS) $<
214
215
216 AFSD_SDKLIBS =\
217         netapi32.lib \
218         dnsapi.lib \
219         mpr.lib \
220         rpcrt4.lib \
221         user32.lib \
222         Dbghelp.lib \
223         strsafe.lib \
224         mpr.lib \
225         secur32.lib \
226         ole32.lib \
227         oleaut32.lib \
228         iphlpapi.lib \
229         shell32.lib \
230         shlwapi.lib
231
232 ############################################################################
233 # libafsconf.dll
234
235 CONF_DLLFILE = $(DESTDIR)\lib\libafsconf.dll
236
237 CONF_DLLLIBS = \
238     $(DESTDIR)\lib\afs\afsutil.lib \
239     $(DESTDIR)\lib\afs\afsreg.lib \
240     $(DESTDIR)\lib\afsroken.lib
241
242 $(CONF_DLLFILE): $(CONFOBJS) $(OUT)\libafsconf.res $(CONF_DLLLIBS)
243         $(DLLGUILINK) -def:libafsconf.def  $(AFSD_SDKLIBS)
244         $(_VC_MANIFEST_EMBED_DLL)
245         $(DLLPREP)
246         $(CODESIGN_USERLAND)
247         $(SYMSTORE_IMPORT)
248         $(MAKECYGLIB) --input-def libafsconf.def
249         $(DEL) $*.exp
250
251 ############################################################################
252 # lanahelper.lib
253
254 LANAHELPERLIB = $(DESTDIR)\lib\lanahelper.lib
255
256 LANAHELPERLIB_OBJS =\
257       $(OUT)\lanahelper.obj
258
259 $(LANAHELPERLIB_OBJS):
260
261 $(LANAHELPERLIB): $(LANAHELPERLIB_OBJS)
262       $(LIBARCH) netapi32.lib
263
264 ############################################################################
265 # afskfw.lib
266
267 AFSKFWLIB = $(DESTDIR)\lib\afskfw.lib
268
269 AFSKFWLIB_OBJS =\
270       $(OUT)\afskfw.obj
271
272 $(AFSKFWLIB_OBJS):
273
274 $(AFSKFWLIB): $(AFSKFWLIB_OBJS)
275       $(LIBARCH)
276
277 ############################################################################
278 # afslogon.dll
279
280 LOGON_DLLFILE = $(DESTDIR)\root.client\usr\vice\etc\afslogon.dll
281
282 LOGON_DLLOBJS =\
283     $(OUT)\afslogon.obj \
284     $(OUT)\logon_ad.obj \
285     $(OUT)\afslogon.res \
286     $(OUT)\cm_nls.obj
287
288 LOGON_DLLLIBS =\
289     $(DESTDIR)\lib\afsauthent.lib \
290     $(DESTDIR)\lib\libafsconf.lib \
291     $(LANAHELPERLIB) \
292     $(AFSKFWLIB)
293
294 LOGON_DLLSDKLIBS =\
295         dnsapi.lib \
296         netapi32.lib \
297         mpr.lib \
298         advapi32.lib \
299         secur32.lib \
300         strsafe.lib \
301         oleaut32.lib \
302         ole32.lib \
303         adsiid.lib \
304         activeds.lib \
305         user32.lib \
306         userenv.lib \
307         shell32.lib
308
309 $(LOGON_DLLFILE): $(LOGON_DLLOBJS) $(LOGON_DLLLIBS)
310         $(DLLGUILINK) $(LOGONLINKFLAGS) -def:afslogon.def $(LOGON_DLLSDKLIBS)
311         $(_VC_MANIFEST_EMBED_DLL)
312         $(DLLPREP)
313         $(CODESIGN_USERLAND)
314         $(SYMSTORE_IMPORT)
315         $(COPY) $*.lib $(DESTDIR)\lib
316         $(DEL) $*.lib $*.exp
317
318 ############################################################################
319 # Install target; primary makefile target
320
321 install_objs: $(CONF_DLLFILE) $(LANAHELPERLIB) $(OUT)\afsicf.obj
322      $(COPY) $(OUT)\afsicf.obj $(DESTDIR)\lib
323
324 install_headers: $(IDLFILES) $(INCFILES) ms-wkssvc.h ms-srvsvc.h
325
326 install: install_headers install_objs $(CONF_DLLFILE) \
327         $(EXEDIR)\klog.exe \
328         $(EXEDIR)\tokens.exe \
329         $(EXEDIR)\unlog.exe \
330         $(EXEDIR)\afsd_service.exe \
331         $(EXEDIR)\fs.exe \
332         $(EXEDIR)\symlink.exe \
333         $(EXEDIR)\afsdacl.exe \
334         $(LOGON_DLLFILE) \
335         $(EXEDIR)\afsshare.exe \
336         $(DESTDIR)\bin\kpasswd.exe \
337         $(EXEDIR)\cmdebug.exe \
338         $(EXEDIR)\afscpcc.exe \
339         $(EXEDIR)\afsio.exe
340
341 install_libutils: install_headers $(CONF_DLLFILE) \
342         $(EXEDIR)\klog.exe \
343         $(EXEDIR)\tokens.exe \
344         $(EXEDIR)\unlog.exe \
345         $(EXEDIR)\fs.exe $(EXEDIR)\symlink.exe \
346         $(EXEDIR)\afsshare.exe \
347         $(DESTDIR)\bin\kpasswd.exe $(EXEDIR)\cmdebug.exe
348
349 ############################################################################
350 # Local clean target; augments predefined clean target
351
352 ############################################################################
353 # assorted exe's
354
355 EXELIBS = \
356         $(DESTDIR)\lib\afs\afsauth.lib \
357         $(DESTDIR)\lib\afs\afskauth.lib \
358         $(DESTDIR)\lib\afs\afsprot.lib \
359         $(DESTDIR)\lib\afs\afspioctl.lib \
360         $(DESTDIR)\lib\afs\afsaudit.lib \
361         $(DESTDIR)\lib\afs\afsutil.lib \
362         $(DESTDIR)\lib\afs\afscom_err.lib \
363         $(DESTDIR)\lib\afs\afsreg.lib \
364         $(DESTDIR)\lib\afs\afscmd.lib \
365         $(DESTDIR)\lib\afs\afsvldb.lib \
366         $(DESTDIR)\lib\afsubik.lib \
367         $(DESTDIR)\lib\afsrxkad.lib \
368         $(DESTDIR)\lib\afsrx.lib \
369         $(DESTDIR)\lib\afslwp.lib \
370         $(DESTDIR)\lib\libosi.lib \
371         $(DESTDIR)\lib\libafsconf.lib \
372         $(DESTDIR)\lib\afshcrypto.lib \
373         $(DESTDIR)\lib\afsroken.lib
374
375 EXELIBS2 = \
376         $(DESTDIR)\lib\afsrpc.lib \
377         $(DESTDIR)\lib\afs\afsprot.lib \
378         $(DESTDIR)\lib\afs\afspioctl.lib \
379         $(DESTDIR)\lib\afs\afscom_err.lib \
380         $(DESTDIR)\lib\afs\afscmd.lib \
381         $(DESTDIR)\lib\afs\afsutil.lib \
382         $(DESTDIR)\lib\afsubik.lib \
383         $(DESTDIR)\lib\afsrxkad.lib \
384         $(DESTDIR)\lib\afslwp.lib \
385         $(DESTDIR)\lib\libosi.lib \
386         $(DESTDIR)\lib\libafsconf.lib \
387         $(DESTDIR)\lib\afshcrypto.lib \
388         $(DESTDIR)\lib\afsroken.lib
389
390 EXELIBS3 = \
391         $(DESTDIR)\lib\afs\afscmd.lib \
392         $(DESTDIR)\lib\afsrxkad.lib \
393         $(DESTDIR)\lib\afshcrypto.lib \
394         $(DESTDIR)\lib\afsroken.lib
395
396 # klog.exe
397 $(EXEDIR)\klog.exe: $(OUT)\cklog.obj $(OUT)\klog.res $(EXELIBS)
398         $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
399         $(_VC_MANIFEST_EMBED_EXE)
400         $(EXEPREP)
401         $(CODESIGN_USERLAND)
402         $(SYMSTORE_IMPORT)
403
404 # tokens.exe
405 $(EXEDIR)\tokens.exe: $(OUT)\ctokens.obj $(OUT)\tokens.res $(EXELIBS)
406         $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
407         $(_VC_MANIFEST_EMBED_EXE)
408         $(EXEPREP)
409         $(CODESIGN_USERLAND)
410         $(SYMSTORE_IMPORT)
411
412 # unlog.exe
413 $(EXEDIR)\unlog.exe: $(OUT)\cunlog.obj $(OUT)\unlog.res $(EXELIBS)
414         $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
415         $(_VC_MANIFEST_EMBED_EXE)
416         $(EXEPREP)
417         $(CODESIGN_USERLAND)
418         $(SYMSTORE_IMPORT)
419
420 # afscpcc.exe
421 $(EXEDIR)\afscpcc.exe: $(OUT)\afscpcc.obj $(OUT)\afscpcc.res $(LOGON_DLLLIBS)
422         $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib userenv.lib
423         $(_VC_MANIFEST_EMBED_EXE)
424         $(EXEPREP)
425         $(CODESIGN_USERLAND)
426         $(SYMSTORE_IMPORT)
427
428
429 # afsd.exe
430 AFSD_EXEFILE = $(EXEDIR)\afsd.exe
431
432 AFSD_EXELIBS =\
433         $(DESTDIR)\lib\libosi.lib \
434         $(DESTDIR)\lib\afs\mtafsvldb.lib \
435         $(DESTDIR)\lib\afs\mtafsint.lib \
436         $(DESTDIR)\lib\afsrpc.lib \
437         $(DESTDIR)\lib\afs\mtafsutil.lib \
438         $(DESTDIR)\lib\afsauthent.lib \
439         $(DESTDIR)\lib\libafsconf.lib \
440         $(DESTDIR)\lib\afs\afsreg.lib \
441         $(DESTDIR)\lib\afspthread.lib \
442         $(DESTDIR)\lib\afsroken.lib \
443         $(LANAHELPERLIB)
444
445 $(AFSD_EXEFILE): $(OUT)\afsd.obj $(AFSDOBJS) $(OUT)\afsd.res  $(RXOBJS) $(AFSD_EXELIBS)
446         $(EXEGUILINK) $(AFSD_SDKLIBS)
447         $(_VC_MANIFEST_EMBED_EXE)
448         $(EXEPREP)
449         $(CODESIGN_USERLAND)
450         $(SYMSTORE_IMPORT)
451
452 # afsd_service.exe
453 $(EXEDIR)\afsd_service.exe: $(OUT)\afsd_service.obj $(AFSDOBJS) $(OUT)\afsd_service.res  $(RXOBJS) $(AFSD_EXELIBS)
454         $(EXECONLINK) $(AFSD_SDKLIBS) /MAP /LARGEADDRESSAWARE
455         $(_VC_MANIFEST_EMBED_EXE)
456         $(EXEPREP)
457         $(CODESIGN_USERLAND)
458         $(SYMSTORE_IMPORT)
459
460 # fs.exe
461 $(EXEDIR)\fs.exe: $(FSOBJS) $(OUT)\fs.res $(EXELIBS)
462         $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
463         $(_VC_MANIFEST_EMBED_EXE)
464         $(EXEPREP)
465         $(CODESIGN_USERLAND)
466         $(SYMSTORE_IMPORT)
467
468 # cmdebug.exe
469 $(EXEDIR)\cmdebug.exe: $(CMDBGOBJS) $(OUT)\cmdebug.res
470         $(EXECONLINK) $(EXELIBS2) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib rpcrt4.lib
471         $(_VC_MANIFEST_EMBED_EXE)
472         $(EXEPREP)
473         $(CODESIGN_USERLAND)
474         $(SYMSTORE_IMPORT)
475
476 # afsio.exe
477 AFSCPLIB = \
478         $(DESTDIR)\lib\afs\afscp.lib
479
480 !IF "$(CPU)" == "IA64" || "$(CPU)" == "AMD64" || "$(CPU)" == "ALPHA64"
481 KFWLIBS = \
482     ..\kfw\lib\$(CPU)\krb5_64.lib \
483     ..\kfw\lib\$(CPU)\comerr64.lib \
484     dnsapi.lib mpr.lib delayimp.lib
485 LINKOPTS = /DELAYLOAD:krb5_64.dll /DELAYLOAD:comerr64.dll
486 !else
487 KFWLIBS = \
488     ..\kfw\lib\$(CPU)\krb5_32.lib \
489     ..\kfw\lib\$(CPU)\comerr32.lib \
490     dnsapi.lib mpr.lib delayimp.lib
491 LINKOPTS = /DELAYLOAD:krbv4w32.dll /DELAYLOAD:krb5_32.dll /DELAYLOAD:comerr32.dll
492 !endif
493
494 $(EXEDIR)\afsio.exe: $(AFSIOOBJS) $(OUT)\afsio.res $(RXOBJS) $(AFSD_EXELIBS) $(EXELIBS3) $(AFSCPLIB)
495         $(EXECONLINK) $(KFWLIBS) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib rpcrt4.lib
496         $(_VC_MANIFEST_EMBED_EXE)
497         $(EXEPREP)
498         $(CODESIGN_USERLAND)
499         $(SYMSTORE_IMPORT)
500
501 # symlink.exe
502 $(EXEDIR)\symlink.exe: $(SLOBJS) $(OUT)\symlink.res  $(EXELIBS)
503         $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
504         $(_VC_MANIFEST_EMBED_EXE)
505         $(EXEPREP)
506         $(CODESIGN_USERLAND)
507         $(SYMSTORE_IMPORT)
508
509 # afsshare.exe
510 $(EXEDIR)\afsshare.exe: $(OUT)\afsshare.obj $(OUT)\afsshare.res $(EXELIBS)
511         $(EXECONLINK)
512         $(_VC_MANIFEST_EMBED_EXE)
513         $(EXEPREP)
514         $(CODESIGN_USERLAND)
515         $(SYMSTORE_IMPORT)
516
517 # afsdacl.exe
518 $(EXEDIR)\afsdacl.exe: $(OUT)\afsdacl.obj $(OUT)\afsdacl.res
519         $(EXECONLINK)
520         $(_VC_MANIFEST_EMBED_EXE)
521         $(EXEPREP)
522         $(CODESIGN_USERLAND)
523         $(SYMSTORE_IMPORT)
524
525 # kpasswd.exe - built in kauth, but rebuild here to make pthread-based,
526 #    which is required for Windows 95.  At some point it would be nice
527 #    for all commands to be pthread based, in which case they should
528 #    be built in a separate directory (perhaps tbin ala tviced) or
529 #    libafsauthent should be built earlier so that each command can
530 #    be built in its native directory.
531
532 KAUTH = ..\..\kauth
533
534 KPASSWD_OBJS =\
535         $(OUT)\kpasswd.obj \
536         $(OUT)\kkids.obj \
537         $(OUT)\kautils.obj \
538         $(OUT)\$(KAUTH)\kpasswd.res
539
540 KPASSWD_LIBS =\
541         $(DESTDIR)\lib\afsauthent.lib \
542         $(DESTDIR)\lib\afsrpc.lib \
543         $(DESTDIR)\lib\afs\afscmd.lib \
544         $(DESTDIR)\lib\afs\mtafsutil.lib \
545         $(DESTDIR)\lib\afshcrypto.lib \
546         $(DESTDIR)\lib\afsroken.lib
547
548 $(OUT)\kpasswd.obj: $(KAUTH)/kpasswd.c
549         $(C2OBJ) -DAFS_PTHREAD_ENV /Fo$@ $**
550
551 $(OUT)\kkids.obj: $(KAUTH)/kkids.c
552         $(C2OBJ) -DAFS_PTHREAD_ENV /Fo$@ $**
553
554 $(OUT)\kautils.obj: $(KAUTH)/kautils.c
555         $(C2OBJ) -DAFS_PTHREAD_ENV /Fo$@ $**
556
557 $(OUT)\kpasswd.res: $(KAUTH)\kpasswd.rc
558     $(RC) /Fo$@ $**
559
560 $(DESTDIR)\bin\kpasswd.exe: $(KPASSWD_OBJS) $(KPASSWD_LIBS)
561         $(DEL) $(DESTDIR)\bin\kpasswd.exe
562         $(EXECONLINK)
563         $(_VC_MANIFEST_EMBED_EXE)
564         $(EXEPREP)
565         $(CODESIGN_USERLAND)
566         $(SYMSTORE_IMPORT)
567
568
569 ############################################################################
570 # generate versioninfo resources
571
572 $(OUT)\afsshare.res: afsshare.rc AFS_component_version_number.h
573
574 $(OUT)\fs.res: fs.rc AFS_component_version_number.h
575
576 $(OUT)\symlink.res: symlink.rc AFS_component_version_number.h
577
578 $(OUT)\klog.res: klog.rc AFS_component_version_number.h
579
580 $(OUT)\tokens.res: tokens.rc AFS_component_version_number.h
581
582 $(OUT)\unlog.res: unlog.rc AFS_component_version_number.h
583
584 $(OUT)\afscpcc.res: afscpcc.rc AFS_component_version_number.h
585
586 afsd_eventmessages.rc: $(INCFILEDIR)\afsd_eventmessages.h
587
588 $(OUT)\afsd_service.res: afsd_service.rc afsd_eventmessages.rc AFS_component_version_number.h
589
590 $(OUT)\afslogon.res: afslogon.rc AFS_component_version_number.h
591
592 $(OUT)\libafsconf.res: libafsconf.rc AFS_component_version_number.h
593
594 ############################################################################
595 clean::
596         $(DEL) $(OUT)\*.res
597         $(DEL) afsrpc.h
598         $(DEL) afsrpc_?.*
599         $(DEL) ms-srvsvc.h
600         $(DEL) ms-srvsvc_?.*
601         $(DEL) ms-wkssvc.h
602         $(DEL) ms-wkssvc_?.*
603         $(DEL) afsd_eventmessages.h
604         $(DEL) afsd_eventmessages.rc
605         $(DEL) MSG?????.bin
606         $(DEL) $(CONF_DLLFILE)
607         $(DEL) $(LOGON_DLLFILE)
608
609 mkdir:
610
611 ############################################################################
612 # Tests
613
614 {test}.c{$(OUT)\}.obj:
615         $(C2OBJ) $<
616
617 test::
618
619 test:: btreetest
620
621 btreetest: "$(OUT)\btreetest.exe"
622         "$(OUT)\btreetest.exe"
623
624 $(OUT)\btreetest.exe: \
625                 $(OUT)\btreetest.obj \
626                 $(OUT)\cm_btree.obj \
627                 $(OUT)\cm_nls.obj \
628                 $(OUT)\cm_utils.obj \
629                 $(DESTDIR)\lib\libosi.lib
630         $(EXECONLINK)
631         $(_VC_MANIFEST_EMBED_EXE)
632         $(EXEPREP)