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