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