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