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