1 # Copyright 2000, International Business Machines Corporation and others.
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
8 # Common elements for Makefiles for all system types.
11 INCLUDE= -I. -I/usr/include -I${TOP_OBJDIR}/src/config
13 TOP_OBJ_FSINT = ${TOP_OBJDIR}/src/fsint
14 TOP_OBJ_RXSTAT = ${TOP_OBJDIR}/src/rxstat
15 TOP_OBJ_SYS = ${TOP_OBJDIR}/src/sys
16 TOP_OBJ_VLSERVER = ${TOP_OBJDIR}/src/vlserver
18 TOP_SRC_AFS = ${TOP_SRCDIR}/afs
19 TOP_SRC_RXSTAT = ${TOP_SRCDIR}/rxstat
20 TOP_SRC_FSINT = ${TOP_SRCDIR}/fsint
21 TOP_SRC_RX = ${TOP_SRCDIR}/rx
22 TOP_SRC_VNOPS = ${TOP_SRCDIR}/afs/VNOPS
23 TOP_SRC_RXKAD = ${TOP_SRCDIR}/rxkad
25 COMMON_INCLUDE = -I. -I.. -I../nfs \
26 -I$(TOP_SRCDIR)/crypto/hcrypto/kernel \
29 -I${TOP_SRCDIR}/afs/${MKAFS_OSTYPE} \
30 -I${TOP_SRCDIR}/config \
31 -I${TOP_SRCDIR}/rx/${MKAFS_OSTYPE} \
32 -I${TOP_SRCDIR}/external/heimdal \
34 -I${TOP_OBJDIR}/src/afs \
35 -I${TOP_OBJDIR}/src/afs/${MKAFS_OSTYPE} \
36 -I${TOP_OBJDIR}/src/config \
37 -I${TOP_OBJDIR}/src/fsint \
38 -I${TOP_OBJDIR}/src/vlserver \
39 -I${TOP_OBJDIR}/src/auth \
43 # Build rules - CC and CFLAGS are defined in system specific MakefileProtos.
46 $(CC) $(COMMON_INCLUDE) $(CFLAGS) -P -c $<
49 $(CC) $(COMMON_INCLUDE) $(CFLAGS) $(CFLAGS-$(@)) $(KERN_DBG) -c $<
50 CRULE_NOOPT= $(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(CFLAGS) $(CFLAGS-$(@)) -o $@ -c $?
51 CRULE_OPT= $(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(KERN_OPTMZ) $(CFLAGS) $(CFLAGS-$@) -o $@ -c $?
55 install: all $(INSTDIRS)
58 all: setup $(COMPDIRS)
60 single_compdir single_instdir single_destdir: setup
62 echo $(MAKE) DESTDIR=${DESTDIR} $@_libafs; \
63 $(MAKE) DESTDIR=${DESTDIR} $@_libafs
65 single_compdir_libafs: depsrcs libafs
66 single_instdir_libafs: install_libafs
67 single_destdir_libafs: dest_libafs
69 # placeholder for any sources that are built prior to compiling libafs
124 afs_vnop_strategy.o \
163 AFS_component_version_number.o\
190 afs_uuid.o $(AFS_OS_OBJS)
192 # These next two allow nfs and nonfs builds to occur in the same directory.
207 # init daemons call pioctl
255 AFS_component_version_number.o\
259 afs_uuid.o $(AFS_OS_PAGOBJS)
263 # These files are to be optimized
264 base64.o: $(TOP_SRCDIR)/util/base64.c
266 afs_atomlist.o: $(TOP_SRCDIR)/util/afs_atomlist.c
268 afs_lhash.o: $(TOP_SRCDIR)/util/afs_lhash.c
270 afs_analyze.o: $(TOP_SRC_AFS)/afs_analyze.c
272 afs_axscache.o: $(TOP_SRC_AFS)/afs_axscache.c
274 afs_buffer.o: $(TOP_SRC_AFS)/afs_buffer.c
276 afs_bypasscache.o: $(TOP_SRC_AFS)/afs_bypasscache.c
278 afs_cell.o: $(TOP_SRC_AFS)/afs_cell.c
280 afs_conn.o: $(TOP_SRC_AFS)/afs_conn.c
282 afs_dcache.o: $(TOP_SRC_AFS)/afs_dcache.c
284 afs_disconnected.o: $(TOP_SRC_AFS)/afs_disconnected.c
286 afs_dynroot.o: $(TOP_SRC_AFS)/afs_dynroot.c
288 afs_error.o: $(TOP_SRC_AFS)/afs_error.c
290 afs_init.o: $(TOP_SRC_AFS)/afs_init.c
292 afs_mariner.o: $(TOP_SRC_AFS)/afs_mariner.c
294 afs_osidnlc.o: $(TOP_SRC_AFS)/afs_osidnlc.c
296 afs_osi.o: $(TOP_SRC_AFS)/afs_osi.c
298 afs_osi_alloc.o: $(TOP_SRC_AFS)/afs_osi_alloc.c
300 afs_osi_pag.o: $(TOP_SRC_AFS)/afs_osi_pag.c
302 afs_osi_uio.o: $(TOP_SRC_AFS)/afs_osi_uio.c
304 afs_osi_vget.o: $(TOP_SRC_AFS)/afs_osi_vget.c
306 afs_osi_vm.o: $(TOP_SRC_AFS)/afs_osi_vm.c
308 afs_segments.o: $(TOP_SRC_AFS)/afs_segments.c
310 afs_server.o: $(TOP_SRC_AFS)/afs_server.c
312 afs_tokens.o: $(TOP_SRC_AFS)/afs_tokens.c
314 afs_user.o: $(TOP_SRC_AFS)/afs_user.c
316 afs_util.o: $(TOP_SRC_AFS)/afs_util.c
318 afs_warn.o: $(TOP_SRC_AFS)/afs_warn.c
320 afs_vcache.o: $(TOP_SRC_AFS)/afs_vcache.c
322 afs_vnop_access.o: $(TOP_SRC_VNOPS)/afs_vnop_access.c
324 afs_vnop_attrs.o: $(TOP_SRC_VNOPS)/afs_vnop_attrs.c
326 afs_vnop_create.o: $(TOP_SRC_VNOPS)/afs_vnop_create.c
328 afs_vnop_dirops.o: $(TOP_SRC_VNOPS)/afs_vnop_dirops.c
330 afs_vnop_fid.o: $(TOP_SRC_VNOPS)/afs_vnop_fid.c
332 afs_vnop_flock.o: $(TOP_SRC_VNOPS)/afs_vnop_flock.c
334 afs_vnop_link.o: $(TOP_SRC_VNOPS)/afs_vnop_link.c
336 afs_vnop_lookup.o: $(TOP_SRC_VNOPS)/afs_vnop_lookup.c
338 afs_vnop_open.o: $(TOP_SRC_VNOPS)/afs_vnop_open.c
340 afs_vnop_read.o: $(TOP_SRC_VNOPS)/afs_vnop_read.c
342 afs_vnop_readdir.o: $(TOP_SRC_VNOPS)/afs_vnop_readdir.c
344 afs_vnop_remove.o: $(TOP_SRC_VNOPS)/afs_vnop_remove.c
346 afs_vnop_rename.o: $(TOP_SRC_VNOPS)/afs_vnop_rename.c
348 afs_vnop_strategy.o: $(TOP_SRC_VNOPS)/afs_vnop_strategy.c
350 afs_vnop_symlink.o: $(TOP_SRC_VNOPS)/afs_vnop_symlink.c
352 afs_vnop_write.o: $(TOP_SRC_VNOPS)/afs_vnop_write.c
354 afs_volume.o: $(TOP_SRC_AFS)/afs_volume.c
356 rx_rdwr.o: $(TOP_SRC_RX)/rx_rdwr.c
358 afs_uuid.o: $(TOP_SRCDIR)/util/uuid.c
360 xdr_afsuuid.o: $(TOP_SRCDIR)/rx/xdr_afsuuid.c
362 xdr_mem.o: $(TOP_SRCDIR)/rx/xdr_mem.c
364 xdr_len.o: $(TOP_SRCDIR)/rx/xdr_len.c
366 Ktoken.xdr.o: $(TOP_OBJDIR)/src/auth/Ktoken.xdr.c
369 # these files are not to be optimized - subject to change.
370 afs_cbqueue.o: $(TOP_SRC_AFS)/afs_cbqueue.c
372 afs_callback.o: $(TOP_SRC_AFS)/afs_callback.c
374 afs_chunk.o: $(TOP_SRC_AFS)/afs_chunk.c
376 afs_daemons.o: $(TOP_SRC_AFS)/afs_daemons.c
378 afs_dir.o: $(TOP_SRCDIR)/dir/dir.c
380 afs_icl.o: $(TOP_SRC_AFS)/afs_icl.c
382 AFS_component_version_number.o: AFS_component_version_number.c
384 afs_lock.o: $(TOP_SRC_AFS)/afs_lock.c
386 afs_memcache.o: $(TOP_SRC_AFS)/afs_memcache.c
388 afs_pag_call.o: $(TOP_SRC_AFS)/afs_pag_call.c
390 afs_pag_cred.o: $(TOP_SRC_AFS)/afs_pag_cred.c
392 afs_fetchstore.o: $(TOP_SRC_AFS)/afs_fetchstore.c
394 afs_stat.o: $(TOP_SRC_AFS)/afs_stat.c
396 afs_syscall.o: $(TOP_SRC_AFS)/afs_syscall.c
398 fcrypt.o: $(TOP_SRC_RXKAD)/fcrypt.c
400 crypt_conn.o: $(TOP_SRC_RXKAD)/crypt_conn.c
402 rxkad_client.o: $(TOP_SRC_RXKAD)/rxkad_client.c
404 rxkad_common.o: $(TOP_SRC_RXKAD)/rxkad_common.c
407 CFLAGS-fcrypt.o = -I${TOP_SRCDIR}/rxkad -I$(TOP_OBJDIR)/src/rxkad
408 CFLAGS-crypt_conn.o = -I${TOP_SRCDIR}/rxkad -I$(TOP_OBJDIR)/src/rxkad
409 CFLAGS-rxkad_client.o = -I${TOP_SRCDIR}/rxkad -I$(TOP_OBJDIR)/src/rxkad
410 CFLAGS-rxkad_common.o = -I${TOP_SRCDIR}/rxkad -I$(TOP_OBJDIR)/src/rxkad
412 afs_exporter.o: $(TOP_SRC_AFS)/afs_exporter.c
414 afs_nfsclnt.o: $(TOP_SRC_AFS)/afs_nfsclnt.c
416 afs_nfsdisp.o: $(TOP_SRC_AFS)/afs_nfsdisp.c
418 rx.o: $(TOP_SRC_RX)/rx.c
420 rx_clock.o: $(TOP_SRC_RX)/rx_clock.c
422 rx_event.o: $(TOP_SRC_RX)/rx_event.c
424 rx_globals.o: $(TOP_SRC_RX)/rx_globals.c
426 rx_identity.o: $(TOP_SRC_RX)/rx_identity.c
428 rx_misc.o: $(TOP_SRC_RX)/rx_misc.c
430 rx_multi.o: $(TOP_SRC_RX)/rx_multi.c
432 rx_null.o: $(TOP_SRC_RX)/rx_null.c
434 rx_opaque.o: $(TOP_SRC_RX)/rx_opaque.c
436 rx_getaddr.o: $(TOP_SRC_RX)/rx_getaddr.c
438 rx_packet.o: $(TOP_SRC_RX)/rx_packet.c
440 rx_stats.o: $(TOP_SRC_RX)/rx_stats.c
442 xdr_rx.o: $(TOP_SRC_RX)/xdr_rx.c
444 Kcallback.ss.o: $(TOP_OBJ_FSINT)/Kcallback.ss.c
446 rxstat.o: $(TOP_SRC_RXSTAT)/rxstat.c
448 Kpagcb.cs.o: $(TOP_OBJ_FSINT)/Kpagcb.cs.c
450 Kpagcb.ss.o: $(TOP_OBJ_FSINT)/Kpagcb.ss.c
452 Kpagcb.xdr.o: $(TOP_OBJ_FSINT)/Kpagcb.xdr.c
454 Krxstat.ss.o: $(TOP_OBJ_RXSTAT)/Krxstat.ss.c
456 Krxstat.xdr.o: $(TOP_OBJ_RXSTAT)/Krxstat.xdr.c
458 Kvice.xdr.o: $(TOP_OBJ_FSINT)/Kvice.xdr.c
460 Kvice.cs.o: $(TOP_OBJ_FSINT)/Kvice.cs.c
462 Krmtsys.xdr.o: $(TOP_OBJ_SYS)/Krmtsys.xdr.c
464 Krmtsys.cs.o: $(TOP_OBJ_SYS)/Krmtsys.cs.c
466 afsaux.o: $(TOP_SRC_FSINT)/afsaux.c
468 xdr_arrayn.o: $(TOP_SRC_RX)/xdr_arrayn.c
470 xdr_array.o: $(TOP_SRC_RX)/xdr_array.c
472 xdr_int32.o: $(TOP_SRC_RX)/xdr_int32.c
474 xdr_int64.o: $(TOP_SRC_RX)/xdr_int64.c
476 xdr.o: $(TOP_SRC_RX)/xdr.c
478 Kvldbint.cs.o: ${TOP_OBJ_VLSERVER}/Kvldbint.cs.c
480 CFLAGS-Kvldbint.xdr.o= -DAFS_UUID_XG
481 Kvldbint.xdr.o: ${TOP_OBJ_VLSERVER}/Kvldbint.xdr.c
483 rx_kmutex.o: $(TOP_SRC_RX)/${MKAFS_OSTYPE}/rx_kmutex.c
485 rx_knet.o: $(TOP_SRC_RX)/${MKAFS_OSTYPE}/rx_knet.c
487 rx_kcommon.o: $(TOP_SRC_RX)/rx_kcommon.c
490 # Files which do not contain NFS translator code.
491 CFLAGS-afs_call.o= -DAFS_NONFSTRANS
492 afs_call.o: $(TOP_SRC_AFS)/afs_call.c
494 CFLAGS-afs_pioctl.o= -DAFS_NONFSTRANS
495 afs_pioctl.o: $(TOP_SRC_AFS)/afs_pioctl.c
498 # NFS Translator versions of the above code.
499 afs_call_nfs.o: $(TOP_SRC_AFS)/afs_call.c
501 afs_pioctl_nfs.o: $(TOP_SRC_AFS)/afs_pioctl.c
504 # Special objects for the PAG module
505 afs_pag_user.o: $(TOP_SRC_AFS)/afs_user.c
506 $(CRULE_OPT) -DAFS_PAG_MANAGER
507 rx_pag_knet.o: $(TOP_SRC_RX)/${MKAFS_OSTYPE}/rx_knet.c
511 md5.o: $(TOP_SRCDIR)/external/heimdal/hcrypto/md5.c
514 evp.o: $(TOP_SRCDIR)/external/heimdal/hcrypto/evp.c
516 CFLAGS-evp.o= -I$(TOP_INCDIR)/hcrypto \
519 evp-algs.o: $(TOP_SRCDIR)/crypto/hcrypto/kernel/evp-algs.c
521 CFLAGS-evp-algs.o = -I$(TOP_INCDIR)/hcrypto
523 rand-kernel.o: $(TOP_SRCDIR)/crypto/hcrypto/kernel/rand.c
525 CFLAGS-rand-kernel.o = -I$(TOP_INCDIR)/hcrypto
527 alloc-kernel.o: $(TOP_SRCDIR)/crypto/hcrypto/kernel/alloc.c
530 aes.o: $(TOP_SRCDIR)/external/heimdal/hcrypto/aes.c
533 rijndael-alg-fst.o: $(TOP_SRCDIR)/external/heimdal/hcrypto/rijndael-alg-fst.c
536 sha.o: $(TOP_SRCDIR)/external/heimdal/hcrypto/sha.c
539 RFC3961_INCLUDES = -I$(TOP_SRCDIR)/crypto/rfc3961 \
540 -I$(TOP_SRCDIR)/external/heimdal/krb5
542 n-fold.o: $(TOP_SRCDIR)/external/heimdal/krb5/n-fold.c
544 CFLAGS-n-fold.o = $(RFC3961_INCLUDES)
546 crypto.o: $(TOP_SRCDIR)/external/heimdal/krb5/crypto.c
548 CFLAGS-crypto.o = $(RFC3961_INCLUDES)
550 crypto-aes.o: $(TOP_SRCDIR)/external/heimdal/krb5/crypto-aes.c
552 CFLAGS-crypto-aes.o = $(RFC3961_INCLUDES)
554 crypto-evp.o: $(TOP_SRCDIR)/external/heimdal/krb5/crypto-evp.c
556 CFLAGS-crypto-evp.o = $(RFC3961_INCLUDES)
558 crypto-data.o: $(TOP_SRCDIR)/external/heimdal/krb5/data.c
560 CFLAGS-crypto-data.o = $(RFC3961_INCLUDES)
562 crypto-keyblock.o: $(TOP_SRCDIR)/external/heimdal/krb5/keyblock.c
564 CFLAGS-crypto-keyblock.o = $(RFC3961_INCLUDES)
566 crypto-store-int.o: $(TOP_SRCDIR)/external/heimdal/krb5/store-int.c
568 CFLAGS-crypto-store-int.o = $(RFC3961_INCLUDES)
570 crypto-random.o: $(TOP_SRCDIR)/crypto/rfc3961/kernel/random.c
572 CFLAGS-crypto-random.o = -I$(TOP_SRCDIR)/crypto/kernel
574 crypto-algs.o: $(TOP_SRCDIR)/crypto/rfc3961/kernel/algs.c
576 CFLAGS-crypto-algs.o = $(RFC3961_INCLUDES)
578 crypto-copy.o: $(TOP_SRCDIR)/crypto/rfc3961/copy.c
580 CFLAGS-crypto-copy.o = $(RFC3961_INCLUDES)
582 crypto-context.o: $(TOP_SRCDIR)/crypto/rfc3961/context.c
584 CFLAGS-crypto-context.o = $(RFC3961_INCLUDES)
586 crypto-ct.o: $(TOP_SRCDIR)/external/heimdal/roken/ct.c
588 CFLAGS-crypto-ct.o = $(RFC3961_INCLUDES)
590 # Files which are specific to particular architectures/targets
591 # but have common build rules. Place here instead of duplicating
592 # in the per-platform Makefiles.
593 osi_groups.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_groups.c
595 osi_gcpags.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_gcpags.c
597 osi_inode.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_inode.c
599 osi_file.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_file.c
601 osi_sleep.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_sleep.c
603 osi_misc.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_misc.c
605 CFLAGS-osi_vfsops_nfs.o= -DAFS_WRAPPER=${LIBAFS}_wrapper -DAFS_CONF_DATA=${LIBAFS}_conf_data
606 osi_vfsops_nfs.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_vfsops.c
608 CFLAGS-osi_vfsops.o= -DAFS_NONFSTRANS -DAFS_WRAPPER=${LIBAFSNONFS}_wrapper -DAFS_CONF_DATA=${LIBAFSNONFS}_conf_data
609 osi_vfsops.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_vfsops.c
611 osi_vm.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_vm.c
613 osi_vnodeops.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_vnodeops.c
615 osi_debug.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_debug.c
617 osi_ioctl.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_ioctl.c
619 osi_module.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_module.c
621 osi_pag_module.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_pag_module.c
623 osi_proc.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_proc.c
625 osi_probe.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_probe.c
627 osi_syscall.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_syscall.c
629 osi_sysctl.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_sysctl.c
631 osi_flush.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_flush.s
633 osi_export.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_export.c
635 osi_nfssrv.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_nfssrv.c
637 osi_alloc.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_alloc.c
639 osi_cred.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_cred.c
641 osi_idbg.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_idbg.c
643 osi_config.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_config.c
645 osi_timeout.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_timeout.c
647 osi_pagecopy.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_pagecopy.c
649 osi_fetchstore.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_fetchstore.c
651 osi_vcache.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_vcache.c
653 osi_crypto.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_crypto.c
657 -$(RM) -rf STATIC* MODLOAD* $(AFS_OS_CLEAN)
658 -$(RM) -rf h net netinet rpc ufs machine inet nfs sys afs afsint asm asm-generic config rx linux
660 include ${TOP_OBJDIR}/src/config/Makefile.version