# Copyright 2000, International Business Machines Corporation and others. # All Rights Reserved. # # This software has been released under the terms of the IBM Public # License. For details, see the LICENSE file in the top-level source # directory or online at http://www.openafs.org/dl/license10.html # Common elements for Makefiles for all system types. # SHELL=/bin/sh INCLUDE= -I. -I/usr/include -I${TOP_OBJDIR}/src/config TOP_OBJ_FSINT = ${TOP_OBJDIR}/src/fsint TOP_OBJ_RXSTAT = ${TOP_OBJDIR}/src/rxstat TOP_OBJ_SYS = ${TOP_OBJDIR}/src/sys TOP_OBJ_VLSERVER = ${TOP_OBJDIR}/src/vlserver TOP_SRC_AFS = ${TOP_SRCDIR}/afs TOP_SRC_RXSTAT = ${TOP_SRCDIR}/rxstat TOP_SRC_FSINT = ${TOP_SRCDIR}/fsint TOP_SRC_RX = ${TOP_SRCDIR}/rx TOP_SRC_VNOPS = ${TOP_SRCDIR}/afs/VNOPS TOP_SRC_RXKAD = ${TOP_SRCDIR}/rxkad COMMON_INCLUDE = -I. -I.. -I../nfs \ -I${TOP_SRCDIR} \ -I${TOP_SRCDIR}/afs \ -I${TOP_SRCDIR}/afs/${MKAFS_OSTYPE} \ -I${TOP_SRCDIR}/config \ -I${TOP_SRCDIR}/rx/${MKAFS_OSTYPE} \ -I${TOP_SRCDIR}/rxkad \ -I${TOP_SRCDIR}/rxkad/domestic \ -I${TOP_SRCDIR}/util \ -I${TOP_OBJDIR}/src \ -I${TOP_OBJDIR}/src/afs \ -I${TOP_OBJDIR}/src/afs/${MKAFS_OSTYPE} \ -I${TOP_OBJDIR}/src/util \ -I${TOP_OBJDIR}/src/rxkad \ -I${TOP_OBJDIR}/src/config \ -I${TOP_OBJDIR}/src/fsint \ -I${TOP_OBJDIR}/src/vlserver \ -I${TOP_INCDIR} \ -I${TOP_INCDIR}/afs # Build rules - CC and CFLAGS are defined in system specific MakefileProtos. .SUFFIXES: .i .c.i: $(CC) $(COMMON_INCLUDE) $(CFLAGS) -P -c $< .c.o: $(CC) $(COMMON_INCLUDE) $(CFLAGS) $(CFLAGS-$(@)) $(KERN_DBG) -c $< CRULE_NOOPT= $(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(CFLAGS) $(CFLAGS-$(@)) -o $@ -c $? CRULE_OPT= $(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(KERN_OPTMZ) $(CFLAGS) $(CFLAGS-$@) -o $@ -c $? system: all install: all $(INSTDIRS) dest: all $(DESTDIRS) all: setup $(COMPDIRS) single_compdir single_instdir single_destdir: cd $(KOBJ) ; \ echo $(MAKE) DESTDIR=${DESTDIR} $@_libafs; \ $(MAKE) DESTDIR=${DESTDIR} $@_libafs single_compdir_libafs: depsrcs libafs single_instdir_libafs: install_libafs single_destdir_libafs: dest_libafs # placeholder for any sources that are built prior to compiling libafs depsrcs: AFSAOBJS = \ afs_atomlist.o \ afs_lhash.o \ afs_analyze.o \ afs_axscache.o \ afs_buffer.o \ afs_callback.o \ afs_cbqueue.o \ afs_cell.o \ afs_chunk.o \ afs_conn.o \ afs_daemons.o \ afs_dcache.o \ afs_dir.o \ afs_disconnected.o \ afs_dynroot.o \ afs_error.o \ afs_icl.o \ afs_init.o \ afs_lock.o \ afs_mariner.o \ afs_md5.o \ afs_memcache.o \ afs_osi.o \ afs_osidnlc.o \ afs_osi_alloc.o \ afs_osi_gcpags.o \ afs_osi_pag.o \ afs_osi_uio.o \ afs_osi_vget.o \ afs_osi_vm.o \ afs_segments.o \ afs_server.o \ afs_stat.o \ afs_syscall.o \ afs_user.o \ afs_util.o \ afs_vcache.o \ afs_vnop_access.o \ afs_vnop_attrs.o \ afs_vnop_create.o \ afs_vnop_dirops.o \ afs_vnop_fid.o \ afs_vnop_flock.o \ afs_vnop_link.o \ afs_vnop_lookup.o \ afs_vnop_open.o \ afs_vnop_read.o \ afs_vnop_readdir.o \ afs_vnop_remove.o \ afs_vnop_rename.o \ afs_vnop_strategy.o \ afs_vnop_symlink.o \ afs_vnop_write.o \ afs_volume.o \ afs_warn.o \ afsaux.o \ Kvice.xdr.o \ xdr_arrayn.o \ xdr_array.o \ xdr_int32.o \ xdr_int64.o \ Kvice.cs.o \ fcrypt.o \ rx.o \ rx_rdwr.o \ rx_clock.o \ rx_event.o \ rx_globals.o \ rx_kmutex.o \ rx_knet.o \ rx_kcommon.o \ rx_misc.o \ rx_null.o \ rx_getaddr.o \ rx_packet.o \ rx_multi.o \ xdr_rx.o \ Kvldbint.cs.o \ Kvldbint.xdr.o \ Kcallback.ss.o \ Krxstat.ss.o \ Krxstat.xdr.o \ rxstat.o \ crypt_conn.o \ AFS_component_version_number.o\ afs_exporter.o \ rxkad_client.o \ rxkad_common.o \ xdr_afsuuid.o \ xdr.o \ afs_uuid.o $(AFS_OS_OBJS) # These next two allow nfs and nonfs builds to occur in the same directory. AFSNFSOBJS = \ afs_nfsclnt.o \ afs_nfsdisp.o \ afs_call_nfs.o \ afs_pioctl_nfs.o \ Kpagcb.cs.o \ Kpagcb.xdr.o \ $(AFS_OS_NFSOBJS) AFSNONFSOBJS = \ afs_call.o \ afs_pioctl.o \ $(AFS_OS_NONFSOBJS) # init daemons call pioctl AFSPAGOBJS = \ afs_atomlist.o \ afs_error.o \ afs_icl.o \ afs_lhash.o \ afs_lock.o \ afs_osi.o \ afs_osi_alloc.o \ afs_osi_gcpags.o \ afs_osi_pag.o \ afs_pag_call.o \ afs_pag_cred.o \ afs_pag_user.o \ afs_stat.o \ afs_syscall.o \ afs_warn.o \ afsaux.o \ xdr_arrayn.o \ xdr_array.o \ xdr_int32.o \ xdr_int64.o \ rx.o \ rx_rdwr.o \ rx_clock.o \ rx_event.o \ rx_globals.o \ rx_kmutex.o \ rx_knet.o \ rx_kcommon.o \ rx_misc.o \ rx_null.o \ rx_getaddr.o \ rx_packet.o \ rx_multi.o \ xdr_rx.o \ Kpagcb.ss.o \ Kpagcb.xdr.o \ Krxstat.ss.o \ Krxstat.xdr.o \ Krmtsys.cs.o \ Krmtsys.xdr.o \ rxstat.o \ AFS_component_version_number.o\ xdr_afsuuid.o \ xdr.o \ afs_uuid.o $(AFS_OS_PAGOBJS) # Compilation rules # These files are to be optimized base64.o: $(TOP_SRCDIR)/util/base64.c $(CRULE_NOOPT) afs_atomlist.o: $(TOP_SRCDIR)/util/afs_atomlist.c $(CRULE_OPT) afs_lhash.o: $(TOP_SRCDIR)/util/afs_lhash.c $(CRULE_OPT) afs_analyze.o: $(TOP_SRC_AFS)/afs_analyze.c $(CRULE_OPT) afs_axscache.o: $(TOP_SRC_AFS)/afs_axscache.c $(CRULE_OPT) afs_buffer.o: $(TOP_SRC_AFS)/afs_buffer.c $(CRULE_OPT) afs_cell.o: $(TOP_SRC_AFS)/afs_cell.c $(CRULE_OPT) afs_conn.o: $(TOP_SRC_AFS)/afs_conn.c $(CRULE_OPT) afs_dcache.o: $(TOP_SRC_AFS)/afs_dcache.c $(CRULE_OPT) afs_disconnected.o: $(TOP_SRC_AFS)/afs_disconnected.c $(CRULE_OPT) afs_dynroot.o: $(TOP_SRC_AFS)/afs_dynroot.c $(CRULE_OPT) afs_error.o: $(TOP_SRC_AFS)/afs_error.c $(CRULE_OPT) afs_init.o: $(TOP_SRC_AFS)/afs_init.c $(CRULE_OPT) afs_mariner.o: $(TOP_SRC_AFS)/afs_mariner.c $(CRULE_OPT) afs_md5.o: $(TOP_SRC_AFS)/afs_md5.c $(CRULE_OPT) afs_osidnlc.o: $(TOP_SRC_AFS)/afs_osidnlc.c $(CRULE_OPT) afs_osi.o: $(TOP_SRC_AFS)/afs_osi.c $(CRULE_OPT) afs_osi_alloc.o: $(TOP_SRC_AFS)/afs_osi_alloc.c $(CRULE_OPT) afs_osi_gcpags.o: $(TOP_SRC_AFS)/afs_osi_gcpags.c $(CRULE_OPT) afs_osi_pag.o: $(TOP_SRC_AFS)/afs_osi_pag.c $(CRULE_OPT) afs_osi_uio.o: $(TOP_SRC_AFS)/afs_osi_uio.c $(CRULE_OPT) afs_osi_vget.o: $(TOP_SRC_AFS)/afs_osi_vget.c $(CRULE_NOOPT) afs_osi_vm.o: $(TOP_SRC_AFS)/afs_osi_vm.c $(CRULE_OPT) afs_segments.o: $(TOP_SRC_AFS)/afs_segments.c $(CRULE_OPT) afs_server.o: $(TOP_SRC_AFS)/afs_server.c $(CRULE_OPT) afs_user.o: $(TOP_SRC_AFS)/afs_user.c $(CRULE_OPT) afs_util.o: $(TOP_SRC_AFS)/afs_util.c $(CRULE_OPT) afs_warn.o: $(TOP_SRC_AFS)/afs_warn.c $(CRULE_OPT) afs_vcache.o: $(TOP_SRC_AFS)/afs_vcache.c $(CRULE_OPT) afs_vnop_access.o: $(TOP_SRC_VNOPS)/afs_vnop_access.c $(CRULE_NOOPT) afs_vnop_attrs.o: $(TOP_SRC_VNOPS)/afs_vnop_attrs.c $(CRULE_NOOPT) afs_vnop_create.o: $(TOP_SRC_VNOPS)/afs_vnop_create.c $(CRULE_NOOPT) afs_vnop_dirops.o: $(TOP_SRC_VNOPS)/afs_vnop_dirops.c $(CRULE_NOOPT) afs_vnop_fid.o: $(TOP_SRC_VNOPS)/afs_vnop_fid.c $(CRULE_NOOPT) afs_vnop_flock.o: $(TOP_SRC_VNOPS)/afs_vnop_flock.c $(CRULE_NOOPT) afs_vnop_link.o: $(TOP_SRC_VNOPS)/afs_vnop_link.c $(CRULE_NOOPT) afs_vnop_lookup.o: $(TOP_SRC_VNOPS)/afs_vnop_lookup.c $(CRULE_NOOPT) afs_vnop_open.o: $(TOP_SRC_VNOPS)/afs_vnop_open.c $(CRULE_NOOPT) afs_vnop_read.o: $(TOP_SRC_VNOPS)/afs_vnop_read.c $(CRULE_NOOPT) afs_vnop_readdir.o: $(TOP_SRC_VNOPS)/afs_vnop_readdir.c $(CRULE_NOOPT) afs_vnop_remove.o: $(TOP_SRC_VNOPS)/afs_vnop_remove.c $(CRULE_NOOPT) afs_vnop_rename.o: $(TOP_SRC_VNOPS)/afs_vnop_rename.c $(CRULE_NOOPT) afs_vnop_strategy.o: $(TOP_SRC_VNOPS)/afs_vnop_strategy.c $(CRULE_NOOPT) afs_vnop_symlink.o: $(TOP_SRC_VNOPS)/afs_vnop_symlink.c $(CRULE_NOOPT) afs_vnop_write.o: $(TOP_SRC_VNOPS)/afs_vnop_write.c $(CRULE_NOOPT) afs_volume.o: $(TOP_SRC_AFS)/afs_volume.c $(CRULE_OPT) rx_rdwr.o: $(TOP_SRC_RX)/rx_rdwr.c $(CRULE_OPT) afs_uuid.o: $(TOP_SRCDIR)/util/uuid.c $(CRULE_OPT) xdr_afsuuid.o: $(TOP_SRCDIR)/rx/xdr_afsuuid.c $(CRULE_OPT) # these files are not to be optimized - subject to change. afs_cbqueue.o: $(TOP_SRC_AFS)/afs_cbqueue.c $(CRULE_NOOPT) afs_callback.o: $(TOP_SRC_AFS)/afs_callback.c $(CRULE_NOOPT) afs_chunk.o: $(TOP_SRC_AFS)/afs_chunk.c $(CRULE_NOOPT) afs_daemons.o: $(TOP_SRC_AFS)/afs_daemons.c $(CRULE_NOOPT) afs_dir.o: $(TOP_SRCDIR)/dir/dir.c $(CRULE_NOOPT) afs_icl.o: $(TOP_SRC_AFS)/afs_icl.c $(CRULE_NOOPT) AFS_component_version_number.o: AFS_component_version_number.c $(CRULE_NOOPT) afs_lock.o: $(TOP_SRC_AFS)/afs_lock.c $(CRULE_NOOPT) afs_memcache.o: $(TOP_SRC_AFS)/afs_memcache.c $(CRULE_NOOPT) afs_pag_call.o: $(TOP_SRC_AFS)/afs_pag_call.c $(CRULE_NOOPT) afs_pag_cred.o: $(TOP_SRC_AFS)/afs_pag_cred.c $(CRULE_NOOPT) afs_stat.o: $(TOP_SRC_AFS)/afs_stat.c $(CRULE_NOOPT) afs_syscall.o: $(TOP_SRC_AFS)/afs_syscall.c $(CRULE_NOOPT) fcrypt.o: $(TOP_SRC_RXKAD)/domestic/fcrypt.c $(CRULE_NOOPT) crypt_conn.o: $(TOP_SRC_RXKAD)/domestic/crypt_conn.c $(CRULE_NOOPT) rxkad_client.o: $(TOP_SRC_RXKAD)/rxkad_client.c $(CRULE_NOOPT) rxkad_common.o: $(TOP_SRC_RXKAD)/rxkad_common.c $(CRULE_NOOPT) afs_exporter.o: $(TOP_SRC_AFS)/afs_exporter.c $(CRULE_NOOPT) afs_nfsclnt.o: $(TOP_SRC_AFS)/afs_nfsclnt.c $(CRULE_NOOPT) afs_nfsdisp.o: $(TOP_SRC_AFS)/afs_nfsdisp.c $(CRULE_NOOPT) rx.o: $(TOP_SRC_RX)/rx.c $(CRULE_NOOPT) rx_clock.o: $(TOP_SRC_RX)/rx_clock.c $(CRULE_NOOPT) rx_event.o: $(TOP_SRC_RX)/rx_event.c $(CRULE_NOOPT) rx_globals.o: $(TOP_SRC_RX)/rx_globals.c $(CRULE_NOOPT) rx_misc.o: $(TOP_SRC_RX)/rx_misc.c $(CRULE_NOOPT) rx_multi.o: $(TOP_SRC_RX)/rx_multi.c $(CRULE_NOOPT) rx_null.o: $(TOP_SRC_RX)/rx_null.c $(CRULE_NOOPT) rx_getaddr.o: $(TOP_SRC_RX)/rx_getaddr.c $(CRULE_NOOPT) rx_packet.o: $(TOP_SRC_RX)/rx_packet.c $(CRULE_NOOPT) xdr_rx.o: $(TOP_SRC_RX)/xdr_rx.c $(CRULE_NOOPT) Kcallback.ss.o: $(TOP_OBJ_FSINT)/Kcallback.ss.c $(CRULE_NOOPT) rxstat.o: $(TOP_SRC_RXSTAT)/rxstat.c $(CRULE_NOOPT) Kpagcb.cs.o: $(TOP_OBJ_FSINT)/Kpagcb.cs.c $(CRULE_NOOPT) Kpagcb.ss.o: $(TOP_OBJ_FSINT)/Kpagcb.ss.c $(CRULE_NOOPT) Kpagcb.xdr.o: $(TOP_OBJ_FSINT)/Kpagcb.xdr.c $(CRULE_NOOPT) Krxstat.ss.o: $(TOP_OBJ_RXSTAT)/Krxstat.ss.c $(CRULE_NOOPT) Krxstat.xdr.o: $(TOP_OBJ_RXSTAT)/Krxstat.xdr.c $(CRULE_NOOPT) Kvice.xdr.o: $(TOP_OBJ_FSINT)/Kvice.xdr.c $(CRULE_NOOPT) Kvice.cs.o: $(TOP_OBJ_FSINT)/Kvice.cs.c $(CRULE_NOOPT) Krmtsys.xdr.o: $(TOP_OBJ_SYS)/Krmtsys.xdr.c $(CRULE_NOOPT) Krmtsys.cs.o: $(TOP_OBJ_SYS)/Krmtsys.cs.c $(CRULE_NOOPT) afsaux.o: $(TOP_SRC_FSINT)/afsaux.c $(CRULE_NOOPT) xdr_arrayn.o: $(TOP_SRC_RX)/xdr_arrayn.c $(CRULE_NOOPT) xdr_array.o: $(TOP_SRC_RX)/xdr_array.c $(CRULE_NOOPT) xdr_int32.o: $(TOP_SRC_RX)/xdr_int32.c $(CRULE_NOOPT) xdr_int64.o: $(TOP_SRC_RX)/xdr_int64.c $(CRULE_NOOPT) xdr.o: $(TOP_SRC_RX)/xdr.c $(CRULE_NOOPT) Kvldbint.cs.o: ${TOP_OBJ_VLSERVER}/Kvldbint.cs.c $(CRULE_NOOPT) CFLAGS-Kvldbint.xdr.o= -DAFS_UUID_XG Kvldbint.xdr.o: ${TOP_OBJ_VLSERVER}/Kvldbint.xdr.c $(CRULE_NOOPT) rx_kmutex.o: $(TOP_SRC_RX)/${MKAFS_OSTYPE}/rx_kmutex.c $(CRULE_NOOPT) rx_knet.o: $(TOP_SRC_RX)/${MKAFS_OSTYPE}/rx_knet.c $(CRULE_NOOPT) rx_kcommon.o: $(TOP_SRC_RX)/rx_kcommon.c $(CRULE_NOOPT) # Files which do not contain NFS translator code. CFLAGS-afs_call.o= -DAFS_NONFSTRANS afs_call.o: $(TOP_SRC_AFS)/afs_call.c $(CRULE_NOOPT) CFLAGS-afs_pioctl.o= -DAFS_NONFSTRANS afs_pioctl.o: $(TOP_SRC_AFS)/afs_pioctl.c $(CRULE_NOOPT) # NFS Translator versions of the above code. afs_call_nfs.o: $(TOP_SRC_AFS)/afs_call.c $(CRULE_NOOPT) afs_pioctl_nfs.o: $(TOP_SRC_AFS)/afs_pioctl.c $(CRULE_NOOPT) # Special objects for the PAG module afs_pag_user.o: $(TOP_SRC_AFS)/afs_user.c $(CRULE_OPT) -DAFS_PAG_MANAGER # Files which are specific to particular architectures/targets # but have common build rules. Place here instead of duplicating # in the per-platform Makefiles. osi_groups.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_groups.c $(CRULE_NOOPT) osi_inode.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_inode.c $(CRULE_NOOPT) osi_file.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_file.c $(CRULE_NOOPT) osi_sleep.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_sleep.c $(CRULE_NOOPT) osi_misc.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_misc.c $(CRULE_NOOPT) CFLAGS-osi_vfsops_nfs.o= -DAFS_WRAPPER=${LIBAFS}_wrapper -DAFS_CONF_DATA=${LIBAFS}_conf_data osi_vfsops_nfs.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_vfsops.c $(CRULE_NOOPT) CFLAGS-osi_vfsops.o= -DAFS_NONFSTRANS -DAFS_WRAPPER=${LIBAFSNONFS}_wrapper -DAFS_CONF_DATA=${LIBAFSNONFS}_conf_data osi_vfsops.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_vfsops.c $(CRULE_NOOPT) osi_vm.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_vm.c $(CRULE_NOOPT) osi_vnodeops.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_vnodeops.c $(CRULE_NOOPT) osi_debug.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_debug.c $(CRULE_OPT) osi_ioctl.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_ioctl.c $(CRULE_NOOPT) osi_module.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_module.c $(CRULE_NOOPT) osi_pag_module.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_pag_module.c $(CRULE_NOOPT) osi_proc.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_proc.c $(CRULE_NOOPT) osi_probe.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_probe.c $(CRULE_NOOPT) osi_syscall.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_syscall.c $(CRULE_NOOPT) osi_sysctl.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_sysctl.c $(CRULE_NOOPT) osi_flush.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_flush.s $(CRULE_OPT) osi_export.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_export.c $(CRULE_NOOPT) osi_nfssrv.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_nfssrv.c $(CRULE_NOOPT) osi_alloc.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_alloc.c $(CRULE_NOOPT) osi_cred.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_cred.c $(CRULE_NOOPT) osi_idbg.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_idbg.c $(CRULE_NOOPT) osi_config.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_config.c $(CRULE_NOOPT) osi_timeout.o: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_timeout.c $(CRULE_NOOPT) clean: -$(RM) -rf STATIC* MODLOAD* $(AFS_OS_CLEAN) -$(RM) -rf h net netinet rpc ufs machine inet nfs sys afs afsint asm asm-generic config rx linux include ${TOP_OBJDIR}/src/config/Makefile.version