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