de4243b210c73902b63feec58b2861bddd980d5a
[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"  -I..\kfw\inc\loadfuncs -I..\kfw\inc\krb5 -I..\kfw\inc\leash
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     $(INCFILEDIR)\afskfw.h \
68     $(INCFILEDIR)\afsicf.h
69
70 IDLFILES =\
71         afsrpc.h $(OUT)\afsrpc_c.obj
72
73 CONFOBJS=$(OUT)\cm_config.obj \
74          $(OUT)\cm_dns.obj
75
76 $(CONFOBJS):
77
78 RXOBJS = $(OUT)\xdr_int32.obj $(OUT)\xdr_int64.obj
79
80 $(RXOBJS):
81
82 RX= ..\..\rx
83
84 $(RXOBJS): $(RX)\$$(@B).c
85         $(C2OBJ) -I$(RX) $**
86
87 $(IDLFILES):afsrpc.idl
88         midl $(MIDL_FLAGS) /no_robust $(AFSDEV_AUXMIDLFLAGS) /app_config $?
89
90 AFSDOBJS=\
91         $(OUT)\afsd_init.obj \
92         $(OUT)\cm_cell.obj \
93         $(OUT)\cm_server.obj \
94         $(OUT)\cm_volume.obj \
95         $(OUT)\cm_conn.obj \
96         $(OUT)\cm_user.obj \
97         $(OUT)\cm_buf.obj \
98         $(OUT)\cm_scache.obj \
99         $(OUT)\cm_dcache.obj \
100         $(OUT)\cm_access.obj \
101         $(OUT)\cm_callback.obj \
102         $(OUT)\cm_vnodeops.obj \
103         $(OUT)\cm_dir.obj \
104         $(OUT)\cm_utils.obj \
105         $(OUT)\largeintdotnet.obj \
106         $(OUT)\smb.obj \
107         $(OUT)\smb3.obj \
108         $(OUT)\smb_ioctl.obj \
109         $(OUT)\cm_ioctl.obj \
110         $(OUT)\cm_daemon.obj \
111         $(OUT)\cm_aclent.obj \
112         $(OUT)\cm_dnlc.obj \
113         $(OUT)\cm_rpc.obj \
114         $(OUT)\afsrpc_s.obj \
115 !IFDEF OSICRASH
116         $(OUT)\afsdcrash.obj \
117 !ENDIF
118     $(OUT)\cm_freelance.obj \
119     $(OUT)\afsd_eventlog.obj \
120     $(OUT)\afsd_flushvol.obj \
121     $(OUT)\afsicf.obj
122
123 $(AFSDOBJS):
124
125 $(OUT)\cm_conn.obj: cm_conn.c
126         $(C2OBJ) -DAFS_PTHREAD_ENV /Fo$@ $**
127
128 FSOBJS=$(OUT)\fs.obj $(OUT)\fs_utils.obj
129
130 SLOBJS=$(OUT)\symlink.obj $(OUT)\fs_utils.obj
131
132 ILIBDIR = $(DESTDIR)\lib
133
134 #                                                    
135 # Rules for message compiler info for logging events 
136 #                                                    
137 $(INCFILEDIR)\afsd_eventmessages.h:  afsd_eventmessages.mc         
138         mc afsd_eventmessages.mc                           
139                                                      
140 ############################################################################
141 #
142 # Flags for linking LOGON DLL'S
143 #
144
145 LOGONLINKFLAGS = -entry:DllEntryPoint
146
147
148 ############################################################################
149 #
150 # IDL COMPILATION
151 #
152
153 MIDL_FLAGS=/app_config \
154            /Zp4 \
155            /cpp_cmd $(cc) \
156            /cpp_opt "-E" \
157            /no_robust \
158            /nologo
159
160 .SUFFIXES: .h .idl
161
162 .idl.h:
163         midl $(MIDL_FLAGS) $(AFSDEV_AUXMIDLFLAGS) $<
164
165 ############################################################################
166 # libafsconf.dll
167
168 CONF_DLLFILE = $(DESTDIR)\root.client\usr\vice\etc\libafsconf.dll
169
170 CONF_DLLLIBS = \
171     $(DESTDIR)\lib\afs\afsutil.lib \
172     $(DESTDIR)\lib\afs\afsreg.lib
173
174 $(CONF_DLLFILE): $(CONFOBJS) $(OUT)\libafsconf.res $(CONF_DLLLIBS)
175         $(DLLGUILINK) -def:libafsconf.def dnsapi.lib
176         $(DLLPREP)
177         $(COPY) $*.lib $(ILIBDIR)
178         $(DEL) $*.lib $*.exp
179
180 ############################################################################
181 # lanahelper.lib
182
183 LANAHELPERLIB = $(DESTDIR)\lib\lanahelper.lib
184
185 LANAHELPERLIB_OBJS =\
186       $(OUT)\lanahelper.obj
187
188 $(LANAHELPERLIB_OBJS):
189
190 $(LANAHELPERLIB): $(LANAHELPERLIB_OBJS)
191       $(LIBARCH) netapi32.lib
192
193 ############################################################################
194 # afskfw.lib
195
196 AFSKFWLIB = $(DESTDIR)\lib\afskfw.lib
197
198 AFSKFWLIB_OBJS =\
199       $(OUT)\afskfw.obj
200
201 $(AFSKFWLIB_OBJS):
202
203 $(AFSKFWLIB): $(AFSKFWLIB_OBJS)
204       $(LIBARCH)
205
206 ############################################################################
207 # afslogon.dll
208
209 LOGON_DLLFILE = $(DESTDIR)\root.client\usr\vice\etc\afslogon.dll
210
211 LOGON_DLLOBJS =\
212         $(OUT)\afslogon.obj \
213         $(OUT)\afslogon.res
214
215 LOGON_DLLLIBS =\
216         $(DESTDIR)\lib\afsauthent.lib \
217         $(DESTDIR)\lib\libafsconf.lib \
218     $(DESTDIR)\lib\afsrxkad.lib \
219     $(DESTDIR)\lib\afsdes.lib \
220     $(AFSKFWLIB)
221
222 $(LOGON_DLLFILE): $(LOGON_DLLOBJS) $(LOGON_DLLLIBS)
223         $(DLLGUILINK) $(LOGONLINKFLAGS) -def:afslogon.def dnsapi.lib secur32.lib
224         $(DLLPREP)
225         $(COPY) $*.lib $(DESTDIR)\lib
226         $(DEL) $*.lib $*.exp
227
228 ############################################################################
229 # afslog95.dll
230
231 LOG95_DLLFILE = $(DESTDIR)\root.client\usr\vice\etc\afslog95.dll
232
233 LOG95_DLLOBJS =\
234         $(OUT)\afslog95.obj \
235         $(OUT)\afslog95.res
236
237 LOG95_DLLLIBS =\
238         $(DESTDIR)\lib\afsauthent.lib \
239         $(DESTDIR)\lib\libafsconf.lib
240
241 $(LOG95_DLLFILE): $(LOG95_DLLOBJS) $(LOG95_DLLLIBS)
242         $(DLLGUILINK) $(LOGONLINKFLAGS) -def:afslog95.def dnsapi.lib
243         $(DLLPREP)
244         $(COPY) $*.lib $(DESTDIR)\lib
245         $(DEL) $*.lib $*.exp
246
247 ############################################################################
248 # Install target; primary makefile target
249
250 install_objs: $(OUT)\cm_dns.obj $(OUT)\cm_config.obj $(LANAHELPERLIB) $(OUT)\afsicf.obj
251      $(COPY) $(OUT)\cm_dns.obj $(DESTDIR)\lib
252      $(COPY) $(OUT)\cm_config.obj $(DESTDIR)\lib
253      $(COPY) $(OUT)\afsicf.obj $(DESTDIR)\lib
254
255 install_headers: $(IDLFILES) $(INCFILES)
256
257 install: install_headers install_objs $(CONF_DLLFILE) \
258         $(EXEDIR)\klog.exe \
259         $(EXEDIR)\tokens.exe \
260         $(EXEDIR)\unlog.exe $(EXEDIR)\afsd.exe $(EXEDIR)\afsd_service.exe \
261         $(EXEDIR)\fs.exe $(EXEDIR)\symlink.exe \
262         $(LOGON_DLLFILE) \
263         $(EXEDIR)\afsshare.exe \
264         $(DESTDIR)\bin\kpasswd.exe
265
266 install9X: install_headers $(CONF_DLLFILE) \
267         $(EXEDIR)\klog.exe \
268         $(EXEDIR)\tokens.exe \
269         $(EXEDIR)\unlog.exe $(EXEDIR)\afsd_service.exe \
270         $(EXEDIR)\fs.exe $(EXEDIR)\symlink.exe \
271         $(LOGON_DLLFILE) $(LOG95_DLLFILE) \
272         $(EXEDIR)\afsshare.exe \
273         $(DESTDIR)\bin\kpasswd.exe
274
275 install_libutils: install_headers $(CONF_DLLFILE) \
276         $(EXEDIR)\klog.exe \
277         $(EXEDIR)\tokens.exe \
278         $(EXEDIR)\unlog.exe \
279         $(EXEDIR)\fs.exe $(EXEDIR)\symlink.exe \
280         $(EXEDIR)\afsshare.exe \
281         $(DESTDIR)\bin\kpasswd.exe
282
283 ############################################################################
284 # Local clean target; augments predefined clean target
285
286 ############################################################################
287 # assorted exe's
288
289 EXELIBS = \
290         $(DESTDIR)\lib\afs\afsauth.lib \
291         $(DESTDIR)\lib\afs\afskauth.lib \
292         $(DESTDIR)\lib\afs\afsprot.lib \
293         $(DESTDIR)\lib\afs\afspioctl.lib \
294         $(DESTDIR)\lib\afs\afsaudit.lib \
295         $(DESTDIR)\lib\afs\afsutil.lib \
296         $(DESTDIR)\lib\afs\afscom_err.lib \
297         $(DESTDIR)\lib\afs\afsreg.lib \
298         $(DESTDIR)\lib\afs\afscmd.lib \
299         $(DESTDIR)\lib\afsubik.lib \
300         $(DESTDIR)\lib\afsrxkad.lib \
301         $(DESTDIR)\lib\afsdes.lib \
302         $(DESTDIR)\lib\afsrx.lib \
303         $(DESTDIR)\lib\afslwp.lib \
304         $(DESTDIR)\lib\libosi.lib \
305         $(DESTDIR)\lib\libafsconf.lib
306
307 # klog.exe
308 $(EXEDIR)\klog.exe: $(OUT)\cklog.obj $(OUT)\klog.res $(EXELIBS)
309         $(EXECONLINK) dnsapi.lib
310         $(EXEPREP)
311
312 # tokens.exe
313 $(EXEDIR)\tokens.exe: $(OUT)\ctokens.obj $(OUT)\tokens.res $(EXELIBS)
314         $(EXECONLINK) dnsapi.lib
315         $(EXEPREP)
316
317 # unlog.exe
318 $(EXEDIR)\unlog.exe: $(OUT)\cunlog.obj $(OUT)\unlog.res $(EXELIBS)
319         $(EXECONLINK) dnsapi.lib
320         $(EXEPREP)
321
322 # afsd.exe
323 AFSD_EXEFILE = $(EXEDIR)\afsd.exe
324
325 AFSD_SDKLIBS =\
326         largeint.lib \
327         netapi32.lib \
328     dnsapi.lib \
329         rpcrt4.lib \
330         user32.lib \
331     Dbghelp.lib \
332     strsafe.lib \
333     mpr.lib \
334     secur32.lib \
335     ole32.lib \
336     oleaut32.lib
337
338 AFSD_EXELIBS =\
339         $(DESTDIR)\lib\libosi.lib \
340         $(DESTDIR)\lib\afsrpc.lib \
341     $(DESTDIR)\lib\afsrx.lib \
342         $(DESTDIR)\lib\afsauthent.lib \
343         $(DESTDIR)\lib\afs\mtafsvldb.lib \
344         $(DESTDIR)\lib\afs\mtafsint.lib \
345         $(DESTDIR)\lib\libafsconf.lib \
346         $(DESTDIR)\lib\afs\afsreg.lib \
347     $(LANAHELPERLIB)
348
349 $(AFSD_EXEFILE): $(OUT)\afsd.obj $(AFSDOBJS) $(OUT)\afsd.res  $(RXOBJS) $(AFSD_EXELIBS)
350         $(EXEGUILINK) $(AFSD_SDKLIBS)
351         $(EXEPREP)
352
353 # afsd_service.exe
354 $(EXEDIR)\afsd_service.exe: $(OUT)\afsd_service.obj $(AFSDOBJS) $(OUT)\afsd_service.res  $(RXOBJS) $(AFSD_EXELIBS)
355         $(EXECONLINK) $(AFSD_SDKLIBS) /MAP 
356         $(EXEPREP)
357
358 # fs.exe
359 $(EXEDIR)\fs.exe: $(FSOBJS) $(OUT)\fs.res $(EXELIBS)
360         $(EXECONLINK) dnsapi.lib
361         $(EXEPREP)
362
363 # symlink.exe
364 $(EXEDIR)\symlink.exe: $(SLOBJS) $(OUT)\symlink.res  $(EXELIBS)
365         $(EXECONLINK) dnsapi.lib
366         $(EXEPREP)
367
368 # afsshare.exe
369 $(EXEDIR)\afsshare.exe: $(OUT)\afsshare.obj $(OUT)\afsshare.res
370         $(EXECONLINK)
371         $(EXEPREP)
372
373 # kpasswd.exe - built in kauth, but rebuild here to make pthread-based,
374 #    which is required for Windows 95.  At some point it would be nice
375 #    for all commands to be pthread based, in which case they should
376 #    be built in a separate directory (perhaps tbin ala tviced) or
377 #    libafsauthent should be built earlier so that each command can
378 #    be built in its native directory.
379
380 KAUTH = ..\..\kauth
381
382 KPASSWD_OBJS =\
383         $(OUT)\kpasswd.obj \
384         $(OUT)\kkids.obj \
385         $(OUT)\kautils.obj \
386         $(OUT)\$(KAUTH)\kpasswd.res
387
388 KPASSWD_LIBS =\
389         $(DESTDIR)\lib\afsauthent.lib \
390         $(DESTDIR)\lib\afsrpc.lib \
391     $(DESTDIR)\lib\afsrx.lib \
392         $(DESTDIR)\lib\afs\afscmd.lib \
393         $(DESTDIR)\lib\afsdes.lib \
394         $(DESTDIR)\lib\afs\afsutil.lib
395
396 $(OUT)\kpasswd.obj: $(KAUTH)/kpasswd.c
397         $(C2OBJ) -DAFS_PTHREAD_ENV /Fo$@ $**
398
399 $(OUT)\kkids.obj: $(KAUTH)/kkids.c
400         $(C2OBJ) -DAFS_PTHREAD_ENV /Fo$@ $**
401
402 $(OUT)\kautils.obj: $(KAUTH)/kautils.c
403         $(C2OBJ) -DAFS_PTHREAD_ENV /Fo$@ $**
404
405 $(OUT)\kpasswd.res: $(KAUTH)\kpasswd.rc
406     $(RC) /Fo$@ $**
407
408 $(DESTDIR)\bin\kpasswd.exe: $(KPASSWD_OBJS) $(KPASSWD_LIBS)
409         $(DEL) $(DESTDIR)\bin\kpasswd.exe
410         $(EXECONLINK)
411         $(EXEPREP)
412
413
414 ############################################################################
415 # generate versioninfo resources
416
417 $(OUT)\afsshare.res: afsshare.rc AFS_component_version_number.h
418
419 $(OUT)\fs.res: fs.rc AFS_component_version_number.h
420
421 $(OUT)\symlink.res: symlink.rc AFS_component_version_number.h
422
423 $(OUT)\klog.res: klog.rc AFS_component_version_number.h
424
425 $(OUT)\tokens.res: tokens.rc AFS_component_version_number.h
426
427 $(OUT)\unlog.res: unlog.rc AFS_component_version_number.h
428
429 afsd_eventmessages.rc: afsd_eventmessages.h
430
431 $(OUT)\afsd_service.res: afsd_service.rc afsd_eventmessages.rc AFS_component_version_number.h
432
433 $(OUT)\afslogon.res: afslogon.rc AFS_component_version_number.h
434
435 $(OUT)\afslog95.res: afslog95.rc AFS_component_version_number.h
436
437 $(OUT)\libafsconf.res: libafsconf.rc AFS_component_version_number.h
438
439 ############################################################################
440 clean::
441         $(DEL) $(OUT)\*.res
442         $(DEL) afsrpc.h
443         $(DEL) afsrpc_?.*
444     $(DEL) afsd_eventmessages.h
445         $(DEL) $(CONF_DLLFILE)
446         $(DEL) $(LOGON_DLLFILE)
447         $(DEL) $(LOG95_DLLFILE)
448
449 mkdir: