Windows: improve afskfw error message output
[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 PTERROBJS=$(OUT)\pterror.obj
270
271 $(PTERROBJS): $(AFSROOT)\src\ptserver\pterror.c
272         $(C2OBJ) /Fo$@ $**
273
274 KTCERROBJS=$(OUT)\ktc_errors.obj
275
276 $(KTCERROBJS): $(AFSROOT)\src\auth\ktc_errors.c
277         $(C2OBJ) /Fo$@ $**
278
279 AFSKFWLIB_OBJS = $(OUT)\afskfw.obj
280
281 $(AFSKFWLIB_OBJS):
282
283 $(AFSKFWLIB): $(AFSKFWLIB_OBJS) $(PTERROBJS) $(KTCERROBJS)
284       $(LIBARCH)
285
286 ############################################################################
287 # afslogon.dll
288
289 LOGON_DLLFILE = $(DESTDIR)\root.client\usr\vice\etc\afslogon.dll
290
291 LOGON_DLLOBJS =\
292     $(OUT)\afslogon.obj \
293     $(OUT)\logon_ad.obj \
294     $(OUT)\afslogon.res \
295     $(OUT)\cm_nls.obj
296
297 LOGON_DLLLIBS =\
298     $(DESTDIR)\lib\afsauthent.lib \
299     $(DESTDIR)\lib\libafsconf.lib \
300     $(DESTDIR)\lib\afs\afscom_err.lib \
301     $(DESTDIR)\lib\afs\afsutil.lib \
302     $(DESTDIR)\lib\afsroken.lib \
303     $(LANAHELPERLIB) \
304     $(AFSKFWLIB)
305
306 LOGON_DLLSDKLIBS =\
307         dnsapi.lib \
308         netapi32.lib \
309         mpr.lib \
310         advapi32.lib \
311         secur32.lib \
312         strsafe.lib \
313         oleaut32.lib \
314         ole32.lib \
315         adsiid.lib \
316         activeds.lib \
317         user32.lib \
318         userenv.lib \
319         shell32.lib
320
321 $(LOGON_DLLFILE): $(LOGON_DLLOBJS) $(LOGON_DLLLIBS)
322         $(DLLGUILINK) $(LOGONLINKFLAGS) -def:afslogon.def $(LOGON_DLLSDKLIBS)
323         $(_VC_MANIFEST_EMBED_DLL)
324         $(DLLPREP)
325         $(CODESIGN_USERLAND)
326         $(SYMSTORE_IMPORT)
327         $(COPY) $*.lib $(DESTDIR)\lib
328         $(DEL) $*.lib $*.exp
329
330 ############################################################################
331 # Install target; primary makefile target
332
333 install_objs: $(CONF_DLLFILE) $(LANAHELPERLIB) $(OUT)\afsicf.obj
334      $(COPY) $(OUT)\afsicf.obj $(DESTDIR)\lib
335
336 install_headers: $(IDLFILES) $(INCFILES) ms-wkssvc.h ms-srvsvc.h
337
338 install: install_headers install_objs $(CONF_DLLFILE) \
339         $(EXEDIR)\klog.exe \
340         $(EXEDIR)\tokens.exe \
341         $(EXEDIR)\unlog.exe \
342         $(EXEDIR)\afsd_service.exe \
343         $(EXEDIR)\fs.exe \
344         $(EXEDIR)\symlink.exe \
345         $(EXEDIR)\afsdacl.exe \
346         $(LOGON_DLLFILE) \
347         $(EXEDIR)\afsshare.exe \
348         $(DESTDIR)\bin\kpasswd.exe \
349         $(EXEDIR)\cmdebug.exe \
350         $(EXEDIR)\afscpcc.exe \
351         $(EXEDIR)\afsio.exe
352
353 install_libutils: install_headers $(CONF_DLLFILE) \
354         $(EXEDIR)\klog.exe \
355         $(EXEDIR)\tokens.exe \
356         $(EXEDIR)\unlog.exe \
357         $(EXEDIR)\fs.exe $(EXEDIR)\symlink.exe \
358         $(EXEDIR)\afsshare.exe \
359         $(DESTDIR)\bin\kpasswd.exe $(EXEDIR)\cmdebug.exe
360
361 ############################################################################
362 # Local clean target; augments predefined clean target
363
364 ############################################################################
365 # assorted exe's
366
367 EXELIBS = \
368         $(DESTDIR)\lib\afs\afsauth.lib \
369         $(DESTDIR)\lib\afs\afskauth.lib \
370         $(DESTDIR)\lib\afs\afsprot.lib \
371         $(DESTDIR)\lib\afs\afspioctl.lib \
372         $(DESTDIR)\lib\afs\afsaudit.lib \
373         $(DESTDIR)\lib\afs\afsutil.lib \
374         $(DESTDIR)\lib\afs\afscom_err.lib \
375         $(DESTDIR)\lib\afs\afsreg.lib \
376         $(DESTDIR)\lib\afs\afscmd.lib \
377         $(DESTDIR)\lib\afs\afsvldb.lib \
378         $(DESTDIR)\lib\afsubik.lib \
379         $(DESTDIR)\lib\afsrxkad.lib \
380         $(DESTDIR)\lib\afsrx.lib \
381         $(DESTDIR)\lib\afslwp.lib \
382         $(DESTDIR)\lib\libosi.lib \
383         $(DESTDIR)\lib\libafsconf.lib \
384         $(DESTDIR)\lib\afshcrypto.lib \
385         $(DESTDIR)\lib\afsroken.lib
386
387 EXELIBS2 = \
388         $(DESTDIR)\lib\afsrpc.lib \
389         $(DESTDIR)\lib\afs\afsprot.lib \
390         $(DESTDIR)\lib\afs\afspioctl.lib \
391         $(DESTDIR)\lib\afs\afscom_err.lib \
392         $(DESTDIR)\lib\afs\afscmd.lib \
393         $(DESTDIR)\lib\afs\afsutil.lib \
394         $(DESTDIR)\lib\afsubik.lib \
395         $(DESTDIR)\lib\afsrxkad.lib \
396         $(DESTDIR)\lib\afslwp.lib \
397         $(DESTDIR)\lib\libosi.lib \
398         $(DESTDIR)\lib\libafsconf.lib \
399         $(DESTDIR)\lib\afshcrypto.lib \
400         $(DESTDIR)\lib\afsroken.lib
401
402 EXELIBS3 = \
403         $(DESTDIR)\lib\afs\afscmd.lib \
404         $(DESTDIR)\lib\afsrxkad.lib \
405         $(DESTDIR)\lib\afshcrypto.lib \
406         $(DESTDIR)\lib\afsroken.lib
407
408 # klog.exe
409 $(EXEDIR)\klog.exe: $(OUT)\cklog.obj $(OUT)\klog.res $(EXELIBS)
410         $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
411         $(_VC_MANIFEST_EMBED_EXE)
412         $(EXEPREP)
413         $(CODESIGN_USERLAND)
414         $(SYMSTORE_IMPORT)
415
416 # tokens.exe
417 $(EXEDIR)\tokens.exe: $(OUT)\ctokens.obj $(OUT)\tokens.res $(EXELIBS)
418         $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
419         $(_VC_MANIFEST_EMBED_EXE)
420         $(EXEPREP)
421         $(CODESIGN_USERLAND)
422         $(SYMSTORE_IMPORT)
423
424 # unlog.exe
425 $(EXEDIR)\unlog.exe: $(OUT)\cunlog.obj $(OUT)\unlog.res $(EXELIBS)
426         $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
427         $(_VC_MANIFEST_EMBED_EXE)
428         $(EXEPREP)
429         $(CODESIGN_USERLAND)
430         $(SYMSTORE_IMPORT)
431
432 # afscpcc.exe
433 $(EXEDIR)\afscpcc.exe: $(OUT)\afscpcc.obj $(OUT)\afscpcc.res $(LOGON_DLLLIBS)
434         $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib userenv.lib
435         $(_VC_MANIFEST_EMBED_EXE)
436         $(EXEPREP)
437         $(CODESIGN_USERLAND)
438         $(SYMSTORE_IMPORT)
439
440
441 # afsd.exe
442 AFSD_EXEFILE = $(EXEDIR)\afsd.exe
443
444 AFSD_EXELIBS =\
445         $(DESTDIR)\lib\libosi.lib \
446         $(DESTDIR)\lib\afs\mtafsvldb.lib \
447         $(DESTDIR)\lib\afs\mtafsint.lib \
448         $(DESTDIR)\lib\afsrpc.lib \
449         $(DESTDIR)\lib\afs\mtafsutil.lib \
450         $(DESTDIR)\lib\afsauthent.lib \
451         $(DESTDIR)\lib\libafsconf.lib \
452         $(DESTDIR)\lib\afs\afsreg.lib \
453         $(DESTDIR)\lib\afspthread.lib \
454         $(DESTDIR)\lib\afsroken.lib \
455         $(LANAHELPERLIB)
456
457 $(AFSD_EXEFILE): $(OUT)\afsd.obj $(AFSDOBJS) $(OUT)\afsd.res  $(RXOBJS) $(AFSD_EXELIBS)
458         $(EXEGUILINK) $(AFSD_SDKLIBS)
459         $(_VC_MANIFEST_EMBED_EXE)
460         $(EXEPREP)
461         $(CODESIGN_USERLAND)
462         $(SYMSTORE_IMPORT)
463
464 # afsd_service.exe
465 $(EXEDIR)\afsd_service.exe: $(OUT)\afsd_service.obj $(AFSDOBJS) $(OUT)\afsd_service.res  $(RXOBJS) $(AFSD_EXELIBS)
466         $(EXECONLINK) $(AFSD_SDKLIBS) /MAP /LARGEADDRESSAWARE
467         $(_VC_MANIFEST_EMBED_EXE)
468         $(EXEPREP)
469         $(CODESIGN_USERLAND)
470         $(SYMSTORE_IMPORT)
471
472 # fs.exe
473 $(EXEDIR)\fs.exe: $(FSOBJS) $(OUT)\fs.res $(EXELIBS)
474         $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
475         $(_VC_MANIFEST_EMBED_EXE)
476         $(EXEPREP)
477         $(CODESIGN_USERLAND)
478         $(SYMSTORE_IMPORT)
479
480 # cmdebug.exe
481 $(EXEDIR)\cmdebug.exe: $(CMDBGOBJS) $(OUT)\cmdebug.res
482         $(EXECONLINK) $(EXELIBS2) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib rpcrt4.lib
483         $(_VC_MANIFEST_EMBED_EXE)
484         $(EXEPREP)
485         $(CODESIGN_USERLAND)
486         $(SYMSTORE_IMPORT)
487
488 # afsio.exe
489 AFSCPLIB = \
490         $(DESTDIR)\lib\afs\afscp.lib
491
492 !IF "$(CPU)" == "IA64" || "$(CPU)" == "AMD64" || "$(CPU)" == "ALPHA64"
493 KFWLIBS = \
494     ..\kfw\lib\$(CPU)\krb5_64.lib \
495     ..\kfw\lib\$(CPU)\comerr64.lib \
496     dnsapi.lib mpr.lib delayimp.lib
497 LINKOPTS = /DELAYLOAD:krb5_64.dll /DELAYLOAD:comerr64.dll
498 !else
499 KFWLIBS = \
500     ..\kfw\lib\$(CPU)\krb5_32.lib \
501     ..\kfw\lib\$(CPU)\comerr32.lib \
502     dnsapi.lib mpr.lib delayimp.lib
503 LINKOPTS = /DELAYLOAD:krbv4w32.dll /DELAYLOAD:krb5_32.dll /DELAYLOAD:comerr32.dll
504 !endif
505
506 $(EXEDIR)\afsio.exe: $(AFSIOOBJS) $(OUT)\afsio.res $(RXOBJS) $(AFSD_EXELIBS) $(EXELIBS3) $(AFSCPLIB)
507         $(EXECONLINK) $(KFWLIBS) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib rpcrt4.lib
508         $(_VC_MANIFEST_EMBED_EXE)
509         $(EXEPREP)
510         $(CODESIGN_USERLAND)
511         $(SYMSTORE_IMPORT)
512
513 # symlink.exe
514 $(EXEDIR)\symlink.exe: $(SLOBJS) $(OUT)\symlink.res  $(EXELIBS)
515         $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
516         $(_VC_MANIFEST_EMBED_EXE)
517         $(EXEPREP)
518         $(CODESIGN_USERLAND)
519         $(SYMSTORE_IMPORT)
520
521 # afsshare.exe
522 $(EXEDIR)\afsshare.exe: $(OUT)\afsshare.obj $(OUT)\afsshare.res $(EXELIBS)
523         $(EXECONLINK)
524         $(_VC_MANIFEST_EMBED_EXE)
525         $(EXEPREP)
526         $(CODESIGN_USERLAND)
527         $(SYMSTORE_IMPORT)
528
529 # afsdacl.exe
530 $(EXEDIR)\afsdacl.exe: $(OUT)\afsdacl.obj $(OUT)\afsdacl.res
531         $(EXECONLINK)
532         $(_VC_MANIFEST_EMBED_EXE)
533         $(EXEPREP)
534         $(CODESIGN_USERLAND)
535         $(SYMSTORE_IMPORT)
536
537 # kpasswd.exe - built in kauth, but rebuild here to make pthread-based,
538 #    which is required for Windows 95.  At some point it would be nice
539 #    for all commands to be pthread based, in which case they should
540 #    be built in a separate directory (perhaps tbin ala tviced) or
541 #    libafsauthent should be built earlier so that each command can
542 #    be built in its native directory.
543
544 KAUTH = ..\..\kauth
545
546 KPASSWD_OBJS =\
547         $(OUT)\kpasswd.obj \
548         $(OUT)\kkids.obj \
549         $(OUT)\kautils.obj \
550         $(OUT)\$(KAUTH)\kpasswd.res
551
552 KPASSWD_LIBS =\
553         $(DESTDIR)\lib\afsauthent.lib \
554         $(DESTDIR)\lib\afsrpc.lib \
555         $(DESTDIR)\lib\afs\afscmd.lib \
556         $(DESTDIR)\lib\afs\mtafsutil.lib \
557         $(DESTDIR)\lib\afshcrypto.lib \
558         $(DESTDIR)\lib\afsroken.lib
559
560 $(OUT)\kpasswd.obj: $(KAUTH)/kpasswd.c
561         $(C2OBJ) -DAFS_PTHREAD_ENV /Fo$@ $**
562
563 $(OUT)\kkids.obj: $(KAUTH)/kkids.c
564         $(C2OBJ) -DAFS_PTHREAD_ENV /Fo$@ $**
565
566 $(OUT)\kautils.obj: $(KAUTH)/kautils.c
567         $(C2OBJ) -DAFS_PTHREAD_ENV /Fo$@ $**
568
569 $(OUT)\kpasswd.res: $(KAUTH)\kpasswd.rc
570     $(RC) /Fo$@ $**
571
572 $(DESTDIR)\bin\kpasswd.exe: $(KPASSWD_OBJS) $(KPASSWD_LIBS)
573         $(DEL) $(DESTDIR)\bin\kpasswd.exe
574         $(EXECONLINK)
575         $(_VC_MANIFEST_EMBED_EXE)
576         $(EXEPREP)
577         $(CODESIGN_USERLAND)
578         $(SYMSTORE_IMPORT)
579
580
581 ############################################################################
582 # generate versioninfo resources
583
584 $(OUT)\afsshare.res: afsshare.rc AFS_component_version_number.h
585
586 $(OUT)\fs.res: fs.rc AFS_component_version_number.h
587
588 $(OUT)\symlink.res: symlink.rc AFS_component_version_number.h
589
590 $(OUT)\klog.res: klog.rc AFS_component_version_number.h
591
592 $(OUT)\tokens.res: tokens.rc AFS_component_version_number.h
593
594 $(OUT)\unlog.res: unlog.rc AFS_component_version_number.h
595
596 $(OUT)\afscpcc.res: afscpcc.rc AFS_component_version_number.h
597
598 afsd_eventmessages.rc: $(INCFILEDIR)\afsd_eventmessages.h
599
600 $(OUT)\afsd_service.res: afsd_service.rc afsd_eventmessages.rc AFS_component_version_number.h
601
602 $(OUT)\afslogon.res: afslogon.rc AFS_component_version_number.h
603
604 $(OUT)\libafsconf.res: libafsconf.rc AFS_component_version_number.h
605
606 ############################################################################
607 clean::
608         $(DEL) $(OUT)\*.res
609         $(DEL) afsrpc.h
610         $(DEL) afsrpc_?.*
611         $(DEL) ms-srvsvc.h
612         $(DEL) ms-srvsvc_?.*
613         $(DEL) ms-wkssvc.h
614         $(DEL) ms-wkssvc_?.*
615         $(DEL) afsd_eventmessages.h
616         $(DEL) afsd_eventmessages.rc
617         $(DEL) MSG?????.bin
618         $(DEL) $(CONF_DLLFILE)
619         $(DEL) $(LOGON_DLLFILE)
620
621 mkdir:
622
623 ############################################################################
624 # Tests
625
626 {test}.c{$(OUT)\}.obj:
627         $(C2OBJ) $<
628
629 test::
630
631 test:: btreetest
632
633 btreetest: "$(OUT)\btreetest.exe"
634         "$(OUT)\btreetest.exe"
635
636 $(OUT)\btreetest.exe: \
637                 $(OUT)\btreetest.obj \
638                 $(OUT)\cm_btree.obj \
639                 $(OUT)\cm_nls.obj \
640                 $(OUT)\cm_utils.obj \
641                 $(DESTDIR)\lib\libosi.lib
642         $(EXECONLINK)
643         $(_VC_MANIFEST_EMBED_EXE)
644         $(EXEPREP)