2bd0c74eb911dd86f755c4b35266280e7dc8e1b0
[openafs.git] / src / libafs / Makefile.common.in
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 # Common elements for Makefiles for all system types.
9 #
10 SHELL=/bin/sh
11 INCLUDE= -I.  -I/usr/include -I${TOP_OBJDIR}/src/config
12
13 TOP_OBJ_FSINT = ${TOP_OBJDIR}/src/fsint
14 TOP_OBJ_RXSTAT = ${TOP_OBJDIR}/src/rxstat
15 TOP_OBJ_VLSERVER = ${TOP_OBJDIR}/src/vlserver
16
17 TOP_SRC_AFS = ${TOP_SRCDIR}/afs
18 TOP_SRC_RXSTAT = ${TOP_SRCDIR}/rxstat
19 TOP_SRC_FSINT = ${TOP_SRCDIR}/fsint
20 TOP_SRC_RX = ${TOP_SRCDIR}/rx
21 TOP_SRC_VNOPS = ${TOP_SRCDIR}/afs/VNOPS
22 TOP_SRC_RXKAD = ${TOP_SRCDIR}/rxkad
23
24 COMMON_INCLUDE = -I. -I.. -I../nfs \
25         -I${TOP_SRCDIR} \
26         -I${TOP_SRCDIR}/afs \
27         -I${TOP_SRCDIR}/afs/${MKAFS_OSTYPE} \
28         -I${TOP_SRCDIR}/config \
29         -I${TOP_SRCDIR}/rx/${MKAFS_OSTYPE} \
30         -I${TOP_SRCDIR}/rxkad \
31         -I${TOP_SRCDIR}/rxkad/domestic \
32         -I${TOP_SRCDIR}/util \
33         -I${TOP_OBJDIR}/src \
34         -I${TOP_OBJDIR}/src/afs \
35         -I${TOP_OBJDIR}/src/afs/${MKAFS_OSTYPE} \
36         -I${TOP_OBJDIR}/src/util \
37         -I${TOP_OBJDIR}/src/rxkad \
38         -I${TOP_OBJDIR}/src/config \
39         -I${TOP_OBJDIR}/src/fsint \
40         -I${TOP_OBJDIR}/src/vlserver \
41         -I${TOP_INCDIR} \
42         -I${TOP_INCDIR}/afs \
43
44 # Build rules - CC and CFLAGS are defined in system specific MakefileProtos.
45 .c.i:
46         $(CC) $(COMMON_INCLUDE) $(CFLAGS) -P -c $<
47
48 .c.o:
49         $(CC) $(COMMON_INCLUDE) $(CFLAGS) -c $<
50 CRULE1= $(CC) $(COMMON_INCLUDE) $(CFLAGS) -c $?
51 CRULE2= $(CC) $(COMMON_INCLUDE) $(OPTF) $(CFLAGS) -c $?
52 CRULE3= $(CC) $(COMMON_INCLUDE) $(OPTF2) $(CFLAGS) -c $?
53 CRULE4= $(CC) $(COMMON_INCLUDE) $(DBG) $(CFLAGS) -c $?
54
55 system: all
56
57 install:        all $(INSTDIRS)
58 dest:           all $(DESTDIRS)
59
60 all:    setup $(COMPDIRS)
61
62 single_compdir single_instdir single_destdir:
63         cd $(KOBJ) ; \
64         echo $(MAKE) DESTDIR=${DESTDIR} $@_libafs; \
65         $(MAKE) DESTDIR=${DESTDIR}  $@_libafs
66
67 single_compdir_libafs: depsrcs libafs
68 single_instdir_libafs: install_libafs
69 single_destdir_libafs: dest_libafs
70
71 # placeholder for any sources that are built prior to compiling libafs
72 depsrcs: 
73
74 AFSAOBJS = \
75         afs_atomlist.o \
76         afs_lhash.o \
77         afs_analyze.o \
78         afs_axscache.o  \
79         afs_buffer.o    \
80         afs_callback.o  \
81         afs_cbqueue.o    \
82         afs_cell.o \
83         afs_chunk.o             \
84         afs_conn.o \
85         afs_daemons.o   \
86         afs_dcache.o \
87         afs_dir.o               \
88         afs_dynroot.o           \
89         afs_init.o \
90         afs_lock.o      \
91         afs_mariner.o \
92         afs_memcache.o  \
93         afs_osi.o               \
94         afs_osidnlc.o   \
95         afs_osi_alloc.o \
96         afs_osi_pag.o \
97         afs_osi_uio.o \
98         afs_osi_vget.o \
99         afs_segments.o \
100         afs_server.o \
101         afs_stat.o \
102         afs_user.o \
103         afs_util.o \
104         afs_vcache.o \
105         afs_vnop_access.o \
106         afs_vnop_attrs.o \
107         afs_vnop_create.o \
108         afs_vnop_dirops.o \
109         afs_vnop_fid.o \
110         afs_vnop_flock.o \
111         afs_vnop_link.o \
112         afs_vnop_lookup.o \
113         afs_vnop_open.o \
114         afs_vnop_read.o \
115         afs_vnop_readdir.o \
116         afs_vnop_remove.o \
117         afs_vnop_rename.o \
118         afs_vnop_strategy.o \
119         afs_vnop_symlink.o \
120         afs_vnop_write.o \
121         afs_volume.o \
122         afsaux.o                \
123         Kvice.xdr.o     \
124         xdr_arrayn.o    \
125         xdr_array.o     \
126         xdr_int32.o     \
127         xdr_int64.o     \
128         Kvice.cs.o      \
129         fcrypt.o                \
130         rx.o            \
131         rx_rdwr.o       \
132         rx_clock.o      \
133         rx_event.o      \
134         rx_globals.o    \
135         rx_kmutex.o     \
136         rx_knet.o       \
137         rx_kcommon.o    \
138         rx_misc.o       \
139         rx_null.o       \
140         rx_getaddr.o    \
141         rx_packet.o     \
142         xdr_rx.o        \
143         Kvldbint.cs.o   \
144         Kvldbint.xdr.o  \
145         Kcallback.ss.o  \
146         Krxstat.ss.o    \
147         Krxstat.xdr.o   \
148         rxstat.o        \
149         crypt_conn.o    \
150         AFS_component_version_number.o\
151         afs_exporter.o  \
152         rxkad_client.o  \
153         rxkad_common.o  \
154         xdr_afsuuid.o   \
155         xdr.o           \
156         afs_uuid.o $(AFS_OS_OBJS)
157
158 # These next two allow nfs and nonfs builds to occur in the same directory.
159 AFSNFSOBJS = \
160         afs_nfsclnt.o   \
161         afs_nfsdisp.o   \
162         afs_call_nfs.o \
163         afs_pioctl_nfs.o \
164         $(AFS_OS_NFSOBJS)
165
166 AFSNONFSOBJS = \
167         afs_call.o \
168         afs_pioctl.o \
169         $(AFS_OS_NONFSOBJS)
170
171
172 # Compilation rules
173 # These files are to be optimized
174 afs_base64.o: $(TOP_SRC_AFS)/afs_base64.c
175         $(CRULE1)
176 afs_atomlist.o: $(TOP_SRCDIR)/util/afs_atomlist.c
177         $(CRULE2)
178 afs_lhash.o: $(TOP_SRCDIR)/util/afs_lhash.c
179         $(CRULE2)
180 afs_analyze.o: $(TOP_SRC_AFS)/afs_analyze.c
181         $(CRULE2)
182 afs_axscache.o: $(TOP_SRC_AFS)/afs_axscache.c
183         $(CRULE2)
184 afs_buffer.o: $(TOP_SRC_AFS)/afs_buffer.c
185         $(CRULE2)
186 afs_cell.o: $(TOP_SRC_AFS)/afs_cell.c
187         $(CRULE2)
188 afs_conn.o: $(TOP_SRC_AFS)/afs_conn.c
189         $(CRULE2)
190 afs_dcache.o: $(TOP_SRC_AFS)/afs_dcache.c
191         $(CRULE2)
192 afs_dynroot.o:  $(TOP_SRC_AFS)/afs_dynroot.c
193         $(CRULE2)
194 afs_init.o: $(TOP_SRC_AFS)/afs_init.c
195         $(CRULE2)
196 afs_mariner.o: $(TOP_SRC_AFS)/afs_mariner.c
197         $(CRULE2)
198 afs_osidnlc.o: $(TOP_SRC_AFS)/afs_osidnlc.c
199         $(CRULE2)
200 afs_osi.o:      $(TOP_SRC_AFS)/afs_osi.c
201         $(CRULE2)
202 afs_osi_alloc.o: $(TOP_SRC_AFS)/afs_osi_alloc.c
203         $(CRULE2)
204 afs_osi_pag.o: $(TOP_SRC_AFS)/afs_osi_pag.c
205         $(CRULE2)
206 afs_osi_uio.o: $(TOP_SRC_AFS)/afs_osi_uio.c
207         $(CRULE2)
208 afs_osi_vget.o: $(TOP_SRC_AFS)/afs_osi_vget.c
209         $(CRULE1)
210 afs_segments.o: $(TOP_SRC_AFS)/afs_segments.c
211         $(CRULE2)
212 afs_server.o: $(TOP_SRC_AFS)/afs_server.c
213         $(CRULE2)
214 afs_user.o: $(TOP_SRC_AFS)/afs_user.c
215         $(CRULE2)
216 afs_util.o: $(TOP_SRC_AFS)/afs_util.c
217         $(CRULE2)
218 afs_vcache.o: $(TOP_SRC_AFS)/afs_vcache.c
219         $(CRULE2)
220 afs_vnop_access.o: $(TOP_SRC_VNOPS)/afs_vnop_access.c
221         $(CRULE1)
222 afs_vnop_attrs.o: $(TOP_SRC_VNOPS)/afs_vnop_attrs.c
223         $(CRULE1)
224 afs_vnop_create.o: $(TOP_SRC_VNOPS)/afs_vnop_create.c
225         $(CRULE1)
226 afs_vnop_dirops.o: $(TOP_SRC_VNOPS)/afs_vnop_dirops.c
227         $(CRULE1)
228 afs_vnop_fid.o: $(TOP_SRC_VNOPS)/afs_vnop_fid.c
229         $(CRULE1)
230 afs_vnop_flock.o: $(TOP_SRC_VNOPS)/afs_vnop_flock.c
231         $(CRULE1)
232 afs_vnop_link.o: $(TOP_SRC_VNOPS)/afs_vnop_link.c
233         $(CRULE1)
234 afs_vnop_lookup.o: $(TOP_SRC_VNOPS)/afs_vnop_lookup.c
235         $(CRULE1)
236 afs_vnop_open.o: $(TOP_SRC_VNOPS)/afs_vnop_open.c
237         $(CRULE1)
238 afs_vnop_read.o: $(TOP_SRC_VNOPS)/afs_vnop_read.c
239         $(CRULE1)
240 afs_vnop_readdir.o: $(TOP_SRC_VNOPS)/afs_vnop_readdir.c
241         $(CRULE1)
242 afs_vnop_remove.o: $(TOP_SRC_VNOPS)/afs_vnop_remove.c
243         $(CRULE1)
244 afs_vnop_rename.o: $(TOP_SRC_VNOPS)/afs_vnop_rename.c
245         $(CRULE1)
246 afs_vnop_strategy.o: $(TOP_SRC_VNOPS)/afs_vnop_strategy.c
247         $(CRULE1)
248 afs_vnop_symlink.o: $(TOP_SRC_VNOPS)/afs_vnop_symlink.c
249         $(CRULE1)
250 afs_vnop_write.o: $(TOP_SRC_VNOPS)/afs_vnop_write.c
251         $(CRULE1)
252 afs_volume.o: $(TOP_SRC_AFS)/afs_volume.c
253         $(CRULE2)
254 rx_rdwr.o: $(TOP_SRC_RX)/rx_rdwr.c
255         $(CRULE2)
256 afs_uuid.o: $(TOP_SRCDIR)/util/uuid.c
257         $(CRULE2) -o afs_uuid.o
258 xdr_afsuuid.o: $(TOP_SRCDIR)/rx/xdr_afsuuid.c
259         $(CRULE2)
260
261 # these files are not to be optimized - subject to change.
262 afs_cbqueue.o: $(TOP_SRC_AFS)/afs_cbqueue.c
263         $(CRULE1)
264 afs_callback.o: $(TOP_SRC_AFS)/afs_callback.c
265         $(CRULE1)
266 afs_chunk.o: $(TOP_SRC_AFS)/afs_chunk.c
267         $(CRULE1)
268 afs_daemons.o: $(TOP_SRC_AFS)/afs_daemons.c
269         $(CRULE1)
270 afs_dir.o:      $(TOP_SRCDIR)/dir/dir.c
271         $(CRULE1) -o afs_dir.o
272 AFS_component_version_number.o: AFS_component_version_number.c
273         $(CRULE1)
274 afs_lock.o: $(TOP_SRC_AFS)/afs_lock.c
275         $(CRULE1)
276 afs_memcache.o: $(TOP_SRC_AFS)/afs_memcache.c
277         $(CRULE1)
278 afs_stat.o: $(TOP_SRC_AFS)/afs_stat.c
279         $(CRULE1)
280 fcrypt.o:       $(TOP_SRC_RXKAD)/domestic/fcrypt.c
281         $(CRULE1)
282 crypt_conn.o: $(TOP_SRC_RXKAD)/domestic/crypt_conn.c
283         $(CRULE1)
284 rxkad_client.o: $(TOP_SRC_RXKAD)/rxkad_client.c
285         $(CRULE1)
286 rxkad_common.o: $(TOP_SRC_RXKAD)/rxkad_common.c
287         $(CRULE1)
288 afs_exporter.o: $(TOP_SRC_AFS)/afs_exporter.c
289         $(CRULE1)
290 afs_nfsclnt.o: $(TOP_SRC_AFS)/afs_nfsclnt.c
291         $(CRULE1)
292 afs_nfsdisp.o: $(TOP_SRC_AFS)/afs_nfsdisp.c
293         $(CRULE1)
294 rx.o: $(TOP_SRC_RX)/rx.c
295         $(CRULE1)
296 rx_clock.o: $(TOP_SRC_RX)/rx_clock.c
297         $(CRULE1)
298 rx_event.o: $(TOP_SRC_RX)/rx_event.c
299         $(CRULE1)
300 rx_globals.o: $(TOP_SRC_RX)/rx_globals.c
301         $(CRULE1)
302 rx_misc.o: $(TOP_SRC_RX)/rx_misc.c
303         $(CRULE1)
304 rx_null.o: $(TOP_SRC_RX)/rx_null.c
305         $(CRULE1)
306 rx_getaddr.o: $(TOP_SRC_RX)/rx_getaddr.c
307         $(CRULE1)
308 rx_packet.o: $(TOP_SRC_RX)/rx_packet.c
309         $(CRULE1)
310 xdr_rx.o: $(TOP_SRC_RX)/xdr_rx.c
311         $(CRULE1)
312 Kcallback.ss.o: $(TOP_OBJ_FSINT)/Kcallback.ss.c
313         $(CRULE1)
314 rxstat.o: $(TOP_SRC_RXSTAT)/rxstat.c
315         $(CRULE1)
316 Krxstat.ss.o: $(TOP_OBJ_RXSTAT)/Krxstat.ss.c
317         $(CRULE1)
318 Krxstat.xdr.o: $(TOP_OBJ_RXSTAT)/Krxstat.xdr.c
319         $(CRULE1)
320 Kvice.xdr.o: $(TOP_OBJ_FSINT)/Kvice.xdr.c
321         $(CRULE1)
322 Kvice.cs.o: $(TOP_OBJ_FSINT)/Kvice.cs.c
323         $(CRULE1)
324 afsaux.o: $(TOP_SRC_FSINT)/afsaux.c
325         $(CRULE1)
326 xdr_arrayn.o: $(TOP_SRC_RX)/xdr_arrayn.c
327         $(CRULE1)
328 xdr_array.o: $(TOP_SRC_RX)/xdr_array.c
329         $(CRULE1)
330 xdr_int32.o: $(TOP_SRC_RX)/xdr_int32.c
331         $(CRULE1)
332 xdr_int64.o: $(TOP_SRC_RX)/xdr_int64.c
333         $(CRULE1)
334 xdr.o: $(TOP_SRC_RX)/xdr.c
335         $(CRULE1)
336 Kvldbint.cs.o: ${TOP_OBJ_VLSERVER}/Kvldbint.cs.c
337         $(CRULE1)
338 Kvldbint.xdr.o: ${TOP_OBJ_VLSERVER}/Kvldbint.xdr.c
339         $(CRULE1) -DAFS_UUID_XG
340 rx_kmutex.o: $(TOP_SRC_RX)/${MKAFS_OSTYPE}/rx_kmutex.c
341         $(CRULE1)
342 rx_knet.o: $(TOP_SRC_RX)/${MKAFS_OSTYPE}/rx_knet.c
343         $(CRULE1)
344 rx_kcommon.o: $(TOP_SRC_RX)/rx_kcommon.c
345         $(CRULE1)
346
347 # Files which do not contain NFS translator code.
348 afs_call.o: $(TOP_SRC_AFS)/afs_call.c
349         $(CRULE1) -DAFS_NONFSTRANS
350 afs_pioctl.o: $(TOP_SRC_AFS)/afs_pioctl.c
351         $(CRULE1) -DAFS_NONFSTRANS
352
353 # NFS Translator versions of the above code.
354 afs_call_nfs.o: $(TOP_SRC_AFS)/afs_call.c
355         $(CRULE1) -o afs_call_nfs.o
356 afs_pioctl_nfs.o:       $(TOP_SRC_AFS)/afs_pioctl.c
357         $(CRULE1) -o afs_pioctl_nfs.o
358
359 # Files which are specific to particular architectures/targets
360 # but have common build rules. Place here instead of duplicating
361 # in the per-platform Makefiles.
362 osi_groups.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_groups.c
363         $(CRULE1)
364 osi_inode.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_inode.c
365         $(CRULE1)
366 osi_file.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_file.c
367         $(CRULE1)
368 osi_sleep.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_sleep.c
369         $(CRULE1)
370 osi_misc.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_misc.c
371         $(CRULE1)
372 osi_vfsops_nfs.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_vfsops.c
373         $(CRULE1) -o osi_vfsops_nfs.o
374 osi_vfsops.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_vfsops.c
375         $(CRULE1) -DAFS_NONFSTRANS
376 osi_vm.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_vm.c
377         $(CRULE1)
378 osi_vnodeops.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_vnodeops.c
379         $(CRULE1)
380 osi_debug.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_debug.c
381         $(CRULE4)
382 osi_module.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_module.c
383         $(CRULE1)
384 osi_sysctl.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_sysctl.c
385         $(CRULE1)
386 osi_alloc.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_alloc.c
387         $(CRULE1)
388 osi_cred.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_cred.c
389         $(CRULE1)
390 osi_idbg.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_idbg.c
391         $(CRULE1)
392 osi_config.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_config.c
393         $(CRULE1)
394 osi_timeout.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_timeout.c
395         $(CRULE1)
396
397
398
399 clean:
400         -$(RM) -rf STATIC* MODLOAD*
401         -$(RM) -rf  h net netinet rpc ufs machine inet nfs sys afs afsint asm asm-generic config rx linux
402
403 include ${TOP_OBJDIR}/src/config/Makefile.version