Windows: build mtafsdir.lib and use it
[openafs.git] / src / vol / 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_AUXCDEFINES = -DFSSYNC_BUILD_SERVER -DFSSYNC_BUILD_CLIENT
9
10 RELDIR=vol
11 !INCLUDE ..\config\NTMakefile.$(SYS_NAME)
12 !INCLUDE ..\config\NTMakefile.version
13
14 ############################################################################
15 # Definitions for installing header files
16
17 INCFILEDIR = $(DESTDIR)\include  # header file install directory
18
19 INCFILES =\
20         $(INCFILEDIR)\afs\fssync.h \
21         $(INCFILEDIR)\afs\ihandle.h \
22         $(INCFILEDIR)\afs\nfs.h \
23         $(INCFILEDIR)\afs\namei_ops.h \
24         $(INCFILEDIR)\afs\ntops.h \
25         $(INCFILEDIR)\afs\partition.h \
26         $(INCFILEDIR)\afs\viceinode.h \
27         $(INCFILEDIR)\afs\vnode.h \
28         $(INCFILEDIR)\afs\vnode_inline.h \
29         $(INCFILEDIR)\afs\volume.h \
30         $(INCFILEDIR)\afs\volume_inline.h \
31         $(INCFILEDIR)\afs\voldefs.h \
32         $(INCFILEDIR)\afs\daemon_com.h \
33         $(INCFILEDIR)\afs\vol_prototypes.h
34
35 ############################################################################
36 # Build afsvol.lib
37
38 LIBFILE = $(DESTDIR)\lib\afs\afsvol.lib
39
40 MT_LIBFILE = $(DESTDIR)\lib\afs\mtafsvol.lib
41
42 DAFS_LIBFILE = $(DESTDIR)\lib\afs\daafsvol.lib
43
44 LIBOBJS =\
45         $(OUT)\common.obj \
46         $(OUT)\clone.obj \
47         $(OUT)\fssync-client.obj \
48         $(OUT)\fssync-server.obj \
49         $(OUT)\daemon_com.obj \
50         $(OUT)\namei_ops.obj \
51         $(OUT)\ntops.obj \
52         $(OUT)\nuke.obj \
53         $(OUT)\partition.obj \
54         $(OUT)\purge.obj \
55         $(OUT)\vnode.obj \
56         $(OUT)\volume.obj \
57         $(OUT)\vutil.obj \
58         $(OUT)\ihandle.obj \
59         $(OUT)\AFS_component_version_number.obj
60
61 MT_LIBOBJS =\
62         $(OUT)\common.obj \
63         $(OUT)\clone_mt.obj \
64         $(OUT)\fssync-client_mt.obj \
65         $(OUT)\fssync-server_mt.obj \
66         $(OUT)\daemon_com_mt.obj \
67         $(OUT)\namei_ops.obj \
68         $(OUT)\ntops.obj \
69         $(OUT)\nuke_mt.obj \
70         $(OUT)\partition_mt.obj \
71         $(OUT)\purge.obj \
72         $(OUT)\vnode_mt.obj \
73         $(OUT)\volume_mt.obj \
74         $(OUT)\vutil_mt.obj \
75         $(OUT)\ihandle_mt.obj \
76         $(OUT)\AFS_component_version_number.obj
77
78 $(OUT)\clone_mt.obj:clone.c
79         $(C2OBJ) $** -DAFS_PTHREAD_ENV
80
81 $(OUT)\daemon_com_mt.obj:daemon_com.c
82         $(C2OBJ) $** -DAFS_PTHREAD_ENV
83
84 $(OUT)\fssync-client_mt.obj:fssync-client.c
85         $(C2OBJ) $** -DAFS_PTHREAD_ENV
86
87 $(OUT)\fssync-server_mt.obj:fssync-server.c
88         $(C2OBJ) $** -DAFS_PTHREAD_ENV
89
90 $(OUT)\ihandle_mt.obj:ihandle.c
91         $(C2OBJ) $** -DAFS_PTHREAD_ENV
92
93 $(OUT)\nuke_mt.obj:nuke.c
94         $(C2OBJ) $** -DAFS_PTHREAD_ENV
95
96 $(OUT)\partition_mt.obj:partition.c
97         $(C2OBJ) $** -DAFS_PTHREAD_ENV
98
99 $(OUT)\vnode_mt.obj:vnode.c
100         $(C2OBJ) $** -DAFS_PTHREAD_ENV
101
102 $(OUT)\volume_mt.obj:volume.c
103         $(C2OBJ) $** -DAFS_PTHREAD_ENV
104
105 $(OUT)\vutil_mt.obj:vutil.c
106         $(C2OBJ) $** -DAFS_PTHREAD_ENV
107
108 $(LIBFILE): $(LIBOBJS)
109         $(LIBARCH)
110
111 $(MT_LIBFILE): $(MT_LIBOBJS)
112         $(LIBARCH)
113
114 DAFS_LIBOBJS =\
115         $(OUT)\common.obj \
116         $(OUT)\clone_dafs.obj \
117         $(OUT)\fssync-client_dafs.obj \
118         $(OUT)\fssync-server_dafs.obj \
119         $(OUT)\daemon_com_dafs.obj \
120         $(OUT)\namei_ops.obj \
121         $(OUT)\ntops.obj \
122         $(OUT)\nuke_dafs.obj \
123         $(OUT)\partition_dafs.obj \
124         $(OUT)\purge.obj \
125         $(OUT)\vnode_dafs.obj \
126         $(OUT)\volume_dafs.obj \
127         $(OUT)\vutil_dafs.obj \
128         $(OUT)\ihandle_dafs.obj \
129         $(OUT)\vg_cache.obj \
130         $(OUT)\vg_scan.obj \
131         $(OUT)\AFS_component_version_number.obj
132
133 $(OUT)\clone_dafs.obj:clone.c
134         $(C2OBJ) $** -DAFS_PTHREAD_ENV -DAFS_DEMAND_ATTACH_FS
135
136 $(OUT)\daemon_com_dafs.obj:daemon_com.c
137         $(C2OBJ) $** -DAFS_PTHREAD_ENV -DAFS_DEMAND_ATTACH_FS
138
139 $(OUT)\fssync-client_dafs.obj:fssync-client.c
140         $(C2OBJ) $** -DAFS_PTHREAD_ENV -DAFS_DEMAND_ATTACH_FS
141
142 $(OUT)\fssync-server_dafs.obj:fssync-server.c
143         $(C2OBJ) $** -DAFS_PTHREAD_ENV -DAFS_DEMAND_ATTACH_FS
144
145 $(OUT)\ihandle_dafs.obj:ihandle.c
146         $(C2OBJ) $** -DAFS_PTHREAD_ENV -DAFS_DEMAND_ATTACH_FS
147
148 $(OUT)\nuke_dafs.obj:nuke.c
149         $(C2OBJ) $** -DAFS_PTHREAD_ENV -DAFS_DEMAND_ATTACH_FS
150
151 $(OUT)\partition_dafs.obj:partition.c
152         $(C2OBJ) $** -DAFS_PTHREAD_ENV -DAFS_DEMAND_ATTACH_FS
153
154 $(OUT)\vnode_dafs.obj:vnode.c
155         $(C2OBJ) $** -DAFS_PTHREAD_ENV -DAFS_DEMAND_ATTACH_FS
156
157 $(OUT)\volume_dafs.obj:volume.c
158         $(C2OBJ) $** -DAFS_PTHREAD_ENV -DAFS_DEMAND_ATTACH_FS
159
160 $(OUT)\vutil_dafs.obj:vutil.c
161         $(C2OBJ) $** -DAFS_PTHREAD_ENV -DAFS_DEMAND_ATTACH_FS
162
163 $(OUT)\vg_cache.obj:vg_cache.c
164         $(C2OBJ) $** -DAFS_PTHREAD_ENV -DAFS_DEMAND_ATTACH_FS
165
166 $(OUT)\vg_scan.obj:vg_scan.c
167         $(C2OBJ) $** -DAFS_PTHREAD_ENV -DAFS_DEMAND_ATTACH_FS
168
169 $(DAFS_LIBFILE): $(DAFS_LIBOBJS)
170         $(LIBARCH)
171
172 ############################################################################
173 # External libraries
174
175 EXEC_LIBS = \
176         $(DESTDIR)\lib\afs\afscmd.lib \
177         $(DESTDIR)\lib\afs\mtafsvol.lib \
178         $(DESTDIR)\lib\afs\mtafsutil.lib \
179         $(DESTDIR)\lib\afsrpc.lib \
180         $(DESTDIR)\lib\afs\mtafsdir.lib \
181         $(DESTDIR)\lib\afs\afsacl.lib \
182         $(DESTDIR)\lib\afs\afsreg.lib \
183         $(DESTDIR)\lib\afs\afsprocmgmt.lib \
184         $(DESTDIR)\lib\afs\afseventlog.lib \
185         $(DESTDIR)\lib\afspthread.lib \
186         $(DESTDIR)\lib\afsroken.lib
187
188 ############################################################################
189 # build salvager
190 SALVAGER = $(DESTDIR)\root.server\usr\afs\bin\salvager.exe
191
192 $(OUT)\salvager.obj: salvager.c
193         $(C2OBJ) $** -DAFS_PTHREAD_ENV
194
195 $(OUT)\vol-salvage.obj: vol-salvage.c
196         $(C2OBJ) $** -DAFS_PTHREAD_ENV
197
198 $(OUT)\physio.obj: physio.c
199         $(C2OBJ) $** -DAFS_PTHREAD_ENV
200
201 SALVAGER_EXEOBJS =\
202         $(OUT)\salvager.obj \
203         $(OUT)\vol-salvage.obj \
204         $(OUT)\physio.obj \
205         $(OUT)\AFS_component_version_number.obj \
206         $(OUT)\salvager.res
207
208 $(SALVAGER): $(SALVAGER_EXEOBJS) $(EXEC_LIBS)
209         $(EXECONLINK) shell32.lib
210         $(_VC_MANIFEST_EMBED_EXE)
211         $(EXEPREP)
212         $(CODESIGN_USERLAND)
213         $(SYMSTORE_IMPORT)
214
215
216 ############################################################################
217 # build fssync-debug
218 FSSYNC_DEBUG = $(DESTDIR)\root.server\usr\afs\bin\fssync-debug.exe
219
220 $(OUT)\fssync-debug.obj: fssync-debug.c
221         $(C2OBJ) $** -DAFS_PTHREAD_ENV
222
223 FSSYNC_DEBUG_EXEOBJS =\
224         $(OUT)\fssync-debug.obj \
225         $(OUT)\AFS_component_version_number.obj \
226         $(OUT)\fssync-debug.res
227
228 $(FSSYNC_DEBUG): $(FSSYNC_DEBUG_EXEOBJS) $(EXEC_LIBS)
229         $(EXECONLINK) shell32.lib
230         $(_VC_MANIFEST_EMBED_EXE)
231         $(EXEPREP)
232         $(CODESIGN_USERLAND)
233         $(SYMSTORE_IMPORT)
234
235 ############################################################################
236 # build volinfo
237 VOLINFO = $(DESTDIR)\root.server\usr\afs\bin\volinfo.exe
238
239 $(OUT)\vol-info.obj: vol-info.c
240         $(C2OBJ) $** -DAFS_PTHREAD_ENV
241
242 $(VOLINFO): $(OUT)\vol-info.obj $(OUT)\physio.obj $(OUT)\volinfo.res $(EXEC_LIBS)
243         $(EXECONLINK) shell32.lib
244         $(_VC_MANIFEST_EMBED_EXE)
245         $(EXEPREP)
246         $(CODESIGN_USERLAND)
247         $(SYMSTORE_IMPORT)
248
249 ############################################################################
250 # build volinfo
251 VOLBLESS = $(DESTDIR)\root.server\usr\afs\bin\vol-bless.exe
252
253 $(OUT)\vol-bless.obj: vol-bless.c
254         $(C2OBJ) $** -DAFS_PTHREAD_ENV
255
256 $(VOLBLESS): $(OUT)\vol-bless.obj $(OUT)\physio.obj $(OUT)\vol-bless.res $(EXEC_LIBS)
257         $(EXECONLINK) shell32.lib
258         $(_VC_MANIFEST_EMBED_EXE)
259         $(EXEPREP)
260         $(CODESIGN_USERLAND)
261         $(SYMSTORE_IMPORT)
262
263 ############################################################################
264 # generate versioninfo resources
265 $(OUT)\salvager.res: salvager.rc AFS_component_version_number.h
266
267 $(OUT)\volinfo.res: AFS_component_version_number.h
268
269 ############################################################################
270 # Install targets
271 install: $(INCFILES) $(LIBFILE) $(MT_LIBFILE) $(DAFS_LIBFILE) $(SALVAGER) $(VOLINFO)
272
273 mkdir:
274