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