# 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 SHELL=/bin/sh DESTDIR=@DESTDIR@ SRCDIR=@SRCDIR@ TOP_SRCDIR=@TOP_SRCDIR@ INSTALL=${SRCDIR}bin/install MKDIR_IF_NEEDED=[ -d $$1 ] || mkdir -p $$1 # Systype-generic items SYS_NAME=@AFS_SYSNAME@ MKAFS_OSTYPE=@MKAFS_OSTYPE@ # Systype-specific items LINUX_KERNEL_PATH=@LINUX_KERNEL_PATH@ LINUX_VERSION=@LINUX_VERSION@ # Other items LIB_AFSDB=@LIB_AFSDB@ # Enable build+install of obsolete and insecure packages # Set to anything other than YES, or comment out to disable the build WITH_OBSOLETE=@WITH_OBSOLETE@ WITH_INSECURE=@WITH_INSECURE@ ENABLE_KERNEL_MODULE=@ENABLE_KERNEL_MODULE@ # To compile AFS from scratch in the src tree run "make". # This recursively calls "make install ..." and does not depend on the # existence of any non-standard programs. # To compile for the kernel type "make blibafs". This assumes install, # rxgen, compile_et and others already exist and runs it with # "-argument kinstall". COMPILE_PART1=cd src; cd COMPILE_PART2=; $(MAKE) install COMPILE_PART3=; $(MAKE) test COMPILE_CLEAN=; $(MAKE) clean all: force set ${SYS_NAME}/dest; $(MKDIR_IF_NEEDED) $(MAKE) install all_nolibafs: set ${SYS_NAME}/dest; $(MKDIR_IF_NEEDED) $(MAKE) install TARGET=finale_nolibafs only_libafs: set ${SYS_NAME}/dest; $(MKDIR_IF_NEEDED) $(MAKE) install TARGET=libafs project: cmd comerr config: ${COMPILE_PART1} config ${COMPILE_PART2} pinstall: config ${COMPILE_PART1} pinstall ${COMPILE_PART2} procmgmt: config pinstall ${COMPILE_PART1} procmgmt ${COMPILE_PART2} util: pinstall procmgmt ${COMPILE_PART1} util ${COMPILE_PART2} audit: pinstall rx rxkad fsint ${COMPILE_PART1} audit ${COMPILE_PART2} comerr: util ${COMPILE_PART1} comerr ${COMPILE_PART2} cmd: comerr ${COMPILE_PART1} cmd ${COMPILE_PART2} @case ${SYS_NAME} in \ sgi_6* | sun4x_57 | sun4x_58 | hp_ux11* | sparc64_linux* | alpha_linux* ) \ ${COMPILE_PART1} cmd ${COMPILE_PART2} install64 ;; \ esac lwp: project util ${COMPILE_PART1} lwp ${COMPILE_PART2} rxgen: pinstall ${COMPILE_PART1} rxgen ${COMPILE_PART2} rxobj: kernrx: ${COMPILE_PART1} rx ${COMPILE_PART2} rx: project lwp rxgen ${COMPILE_PART1} rx ${COMPILE_PART2} rxstat: rx ${COMPILE_PART1} rxstat ${COMPILE_PART2} rxincls: rxobj ${COMPILE_PART1} rx ${COMPILE_PART2} rxtests: rxobj ${COMPILE_PART1} rx ${COMPILE_PART3} fsint: project kfsint kfsint: lwp rxgen rxincls ${COMPILE_PART1} fsint ${COMPILE_PART2} export2: project fsint export: fsint @case ${SYS_NAME} in \ rs_aix*) \ ${COMPILE_PART1} export ${COMPILE_PART2} ;; \ * ) echo skipping export for ${SYS_NAME} ;; \ esac afs: export ${COMPILE_PART1} afs ${COMPILE_PART2} des: config ${COMPILE_PART1} des ${COMPILE_PART2} sys: project des rx rxstat fsint ${COMPILE_PART1} sys ${COMPILE_PART2} rxkad: project des ${COMPILE_PART1} rxkad ${COMPILE_PART2} kernauth: ${COMPILE_PART1} auth ${COMPILE_PART2} auth: project comerr des lwp rx sys rxkad audit ${COMPILE_PART1} auth ${COMPILE_PART2} ubik: project auth ${COMPILE_PART1} ubik ${COMPILE_PART2} ubiktests: ubik sys ${COMPILE_PART1} ubik ${COMPILE_PART3} ptserver: project ubik cmd comerr auth audit ${COMPILE_PART1} ptserver ${COMPILE_PART2} kauth: project ubik cmd auth comerr ptserver audit libacl ${COMPILE_PART1} kauth ${COMPILE_PART2} dauth: project ubik cmd auth comerr ${COMPILE_PART1} dauth ${COMPILE_PART2} libacl: project ptserver ${COMPILE_PART1} libacl ${COMPILE_PART2} kerndir: ${COMPILE_PART1} dir ${COMPILE_PART2} dir: project libacl ${COMPILE_PART1} dir ${COMPILE_PART2} # Removed from sgi_* case below: # ${COMPILE_PART1} sgiefs ${COMPILE_PART2};; sgiefs: case ${SYS_NAME} in \ sgi_*) \ echo "SGI efs not supported" ;; \ *) \ echo No efs stuff for ${SYS_NAME};; \ esac vol: project dir afs sgiefs ${COMPILE_PART1} vol ${COMPILE_PART2} vlserver: project vol audit ${COMPILE_PART1} vlserver ${COMPILE_PART2} viced: project vlserver audit ${COMPILE_PART1} viced ${COMPILE_PART2} tviced: project viced vlserver libafsrpc libafsauthent case ${SYS_NAME} in \ alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux110) \ ${COMPILE_PART1} tviced ${COMPILE_PART2} ;; \ *) \ echo Not building MT viced for ${SYS_NAME} ;; \ esac volser: project tviced usd kauth audit ${COMPILE_PART1} volser ${COMPILE_PART2} venus: project volser ptserver ${COMPILE_PART1} venus ${COMPILE_PART2} ${COMPILE_PART1} venus/test ${COMPILE_PART2} afsd: project sys kauth ${COMPILE_PART1} afsd ${COMPILE_PART2} null: project ${COMPILE_PART1} null ${COMPILE_PART2} gtx: project null auth # kauth rxkad ? case ${SYS_NAME} in \ rs_aix* | sun4x_5? | sgi_6? | *linux* | ppc_darwin* | *fbsd*) \ rm -f ${DESTDIR}lib/afs/libtermlib.a; \ ln -s libnull.a ${DESTDIR}lib/afs/libtermlib.a; \ ${COMPILE_PART1} gtx ${COMPILE_PART2};; \ *) \ rm -f ${DESTDIR}lib/afs/libtermlib.a; \ ln -s /usr/lib/libtermlib.a ${DESTDIR}lib/afs/libtermlib.a; \ ${COMPILE_PART1} gtx ${COMPILE_PART2};; \ esac fsprobe: project util fsint ${COMPILE_PART1} fsprobe ${COMPILE_PART2} scout: project gtx fsprobe ${COMPILE_PART1} scout ${COMPILE_PART2} uss: des kauth project rx vlserver vol ${COMPILE_PART1} uss ${COMPILE_PART2} bozo: project ntp audit ${COMPILE_PART1} bozo ${COMPILE_PART2} # Removed from respective case statements below: # ${COMPILE_PART1} vfsckaix42 ${COMPILE_PART2} ;; # ${COMPILE_PART1} vfscksol25 ${COMPILE_PART2} ;; # ${COMPILE_PART1} vfscksol26 ${COMPILE_PART2} ;; # ${COMPILE_PART1} vfscksol27 ${COMPILE_PART2} ;; vfsck: vol set -x; \ case ${SYS_NAME} in \ sgi_* | *linux* | rs_aix42 | ppc_darwin* | hp_ux* | *fbsd* ) \ echo skip vfsck for ${SYS_NAME} ;; \ * ) \ ${COMPILE_PART1} vfsck ${COMPILE_PART2} ;; \ esac login: project kauth rxkad set -x; \ case ${SYS_NAME} in \ sgi_* ) \ ${COMPILE_PART1} sgistuff ${COMPILE_PART2} ;; \ rs_aix42 ) \ ${COMPILE_PART1} tsm41 ${COMPILE_PART2} ;; \ alpha_dux* ) \ ${COMPILE_PART1} sia ${COMPILE_PART2} ;; \ sun4x_55 ) \ ${COMPILE_PART1} login ${COMPILE_PART2} ;; \ sun4x_* | hp_ux11* | *linux* | *fbsd* ) \ ${COMPILE_PART1} pam ${COMPILE_PART2} ;; \ ppc_darwin* ) \ echo Skipping login for ${SYS_NAME} ;; \ * ) \ ${COMPILE_PART1} login ${COMPILE_PART2} ;; \ esac KERNELDIR= \ afs \ dir \ rx \ fsint \ auth \ rxkad \ util \ libacl \ vlserver \ sgiefs \ rxstat UKERNELDIR= \ afs \ dir \ rx \ fsint \ util \ auth \ rxkad \ vlserver \ kauth \ des \ afsweb \ rxstat libafs: libafs_setup ${KERNELDIR} ${COMPILE_PART1} libafs ${COMPILE_PART2} libuafs: libuafs_setup ${UKERNELDIR} set -x; \ case ${SYS_NAME} in \ hp_ux102* ) \ echo Skipping libuafs for ${SYS_NAME} ;; \ * ) \ ${COMPILE_PART1} libuafs ${COMPILE_PART2} ;; \ esac afsweb: kauth dauth ${COMPILE_PART1} afsweb ${COMPILE_PART2} update: project auth ${COMPILE_PART1} update ${COMPILE_PART2} log: project auth ${COMPILE_PART1} log ${COMPILE_PART2} bu_utils: project ${COMPILE_PART1} bu_utils ${COMPILE_PART2} usd: project ${COMPILE_PART1} usd ${COMPILE_PART2} bubasics: project comerr ${COMPILE_PART1} bubasics ${COMPILE_PART2} butm: project bubasics usd ${COMPILE_PART1} butm ${COMPILE_PART2} butc: project bubasics butm budb bucoord cmd ${COMPILE_PART1} butc ${COMPILE_PART2} tbutc: project bubasics butm budb bucoord cmd butc case ${SYS_NAME} in \ alpha_dux*|sgi_*|sun4x_*|rs_aix4*|*linux*|hp_ux110) \ ${COMPILE_PART1} tbutc ${COMPILE_PART2} ;; \ *) \ echo Not building MT butc for ${SYS_NAME} ;; \ esac budb: project bubasics ${COMPILE_PART1} budb ${COMPILE_PART2} bucoord: project bubasics budb volser ${COMPILE_PART1} bucoord ${COMPILE_PART2} xstat: project ${COMPILE_PART1} xstat ${COMPILE_PART2} afsmonitor: project gtx xstat ${COMPILE_PART1} afsmonitor ${COMPILE_PART2} tests: rxtests ubiktests # pthread based user space RX library libafsrpc: rx rxkad des case ${SYS_NAME} in \ alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux110) \ ${COMPILE_PART1} libafsrpc ${COMPILE_PART2} ;; \ *) \ echo Not building MT libafsrpc for ${SYS_NAME} ;; \ esac libafsauthent: ubik auth kauth libafsrpc case ${SYS_NAME} in \ alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux110) \ ${COMPILE_PART1} libafsauthent ${COMPILE_PART2} ;; \ *) \ echo Not building MT libafsrpc for ${SYS_NAME} ;; \ esac libadmin_real: ${COMPILE_PART1} libadmin ${COMPILE_PART2} ${COMPILE_PART1} libadmin/adminutil ${COMPILE_PART2} ${COMPILE_PART1} libadmin/vos ${COMPILE_PART2} ${COMPILE_PART1} libadmin/client ${COMPILE_PART2} ${COMPILE_PART1} libadmin/kas ${COMPILE_PART2} ${COMPILE_PART1} libadmin/pts ${COMPILE_PART2} ${COMPILE_PART1} libadmin/bos ${COMPILE_PART2} ${COMPILE_PART1} libadmin/cfg ${COMPILE_PART2} ${COMPILE_PART1} libadmin/test ${COMPILE_PART2} ${COMPILE_PART1} libadmin/samples ${COMPILE_PART2} libadmin: libafsauthent bozo case ${SYS_NAME} in \ alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux110) \ $(MAKE) libadmin_real ;; \ *) \ echo Not building MT libadmin for ${SYS_NAME} ;; \ esac finale: project cmd comerr afsd allrcmds butc tbutc @ENABLE_KERNEL_MODULE@ libuafs audit kauth log package \ ptserver scout bu_utils ubik uss bozo vfsck volser \ venus update xstat afsmonitor dauth tests libafsrpc \ libafsauthent libadmin ${COMPILE_PART1} finale ${COMPILE_PART2} finale_nolibafs: project cmd comerr afsd allrcmds butc tbutc libuafs audit kauth log package \ ptserver scout bu_utils ubik uss bozo vfsck volser \ venus update xstat afsmonitor dauth tests libafsrpc \ libafsauthent libadmin ${COMPILE_PART1} finale ${COMPILE_PART2} # Use washtool to ensure MakefileProto is current and obj/libafs exists. libafs_setup: config export src/config/config src/libafs/MakefileProto.${MKAFS_OSTYPE} src/libafs/Makefile ${SYS_NAME} libuafs_setup: config export src/config/config src/libuafs/MakefileProto.${MKAFS_OSTYPE} src/libuafs/Makefile ${SYS_NAME} force: TARGET=finale install: force $(MAKE) $(TARGET) kupdate: updatekdir libafs_setup libuafs_setup blibafs: $(MAKE) libafs blibuafs: $(MAKE) libuafs bwebafs: sys $(MAKE) libuafs clean: $(MAKE) clean2 clean2: -${COMPILE_PART1} config ${COMPILE_CLEAN} -${COMPILE_PART1} pinstall ${COMPILE_CLEAN} -${COMPILE_PART1} procmgmt ${COMPILE_CLEAN} -${COMPILE_PART1} util ${COMPILE_CLEAN} -${COMPILE_PART1} audit ${COMPILE_CLEAN} -${COMPILE_PART1} comerr ${COMPILE_CLEAN} -${COMPILE_PART1} cmd ${COMPILE_CLEAN} -${COMPILE_PART1} lwp ${COMPILE_CLEAN} -${COMPILE_PART1} rxgen ${COMPILE_CLEAN} -${COMPILE_PART1} rx ${COMPILE_CLEAN} -${COMPILE_PART1} rxstat ${COMPILE_CLEAN} -${COMPILE_PART1} fsint ${COMPILE_CLEAN} -${COMPILE_PART1} export ${COMPILE_CLEAN} -${COMPILE_PART1} afs ${COMPILE_CLEAN} -${COMPILE_PART1} des ${COMPILE_CLEAN} -${COMPILE_PART1} sys ${COMPILE_CLEAN} -${COMPILE_PART1} rxkad ${COMPILE_CLEAN} -${COMPILE_PART1} auth ${COMPILE_CLEAN} -${COMPILE_PART1} ubik ${COMPILE_CLEAN} -${COMPILE_PART1} ptserver ${COMPILE_CLEAN} -${COMPILE_PART1} kauth ${COMPILE_CLEAN} -${COMPILE_PART1} dauth ${COMPILE_CLEAN} -${COMPILE_PART1} libacl ${COMPILE_CLEAN} -${COMPILE_PART1} dir ${COMPILE_CLEAN} -${COMPILE_PART1} vol ${COMPILE_CLEAN} -${COMPILE_PART1} vlserver ${COMPILE_CLEAN} -${COMPILE_PART1} viced ${COMPILE_CLEAN} -${COMPILE_PART1} viced ${COMPILE_CLEAN} -${COMPILE_PART1} tviced ${COMPILE_CLEAN} -${COMPILE_PART1} volser ${COMPILE_CLEAN} -${COMPILE_PART1} venus ${COMPILE_CLEAN} -${COMPILE_PART1} venus/test ${COMPILE_CLEAN} -${COMPILE_PART1} afsd ${COMPILE_CLEAN} -${COMPILE_PART1} null ${COMPILE_CLEAN} -${COMPILE_PART1} gtx ${COMPILE_CLEAN} -${COMPILE_PART1} fsprobe ${COMPILE_CLEAN} -${COMPILE_PART1} scout ${COMPILE_CLEAN} -${COMPILE_PART1} uss ${COMPILE_CLEAN} -${COMPILE_PART1} bozo ${COMPILE_CLEAN} -${COMPILE_PART1} vfsck ${COMPILE_CLEAN} -${COMPILE_PART1} sgistuff ${COMPILE_CLEAN} -${COMPILE_PART1} tsm41 ${COMPILE_CLEAN} -${COMPILE_PART1} sia ${COMPILE_CLEAN} -${COMPILE_PART1} login ${COMPILE_CLEAN} -${COMPILE_PART1} pam ${COMPILE_CLEAN} -${COMPILE_PART1} afsweb ${COMPILE_CLEAN} -${COMPILE_PART1} update ${COMPILE_CLEAN} -${COMPILE_PART1} log ${COMPILE_CLEAN} -${COMPILE_PART1} bu_utils ${COMPILE_CLEAN} -${COMPILE_PART1} usd ${COMPILE_CLEAN} -${COMPILE_PART1} bubasics ${COMPILE_CLEAN} -${COMPILE_PART1} butm ${COMPILE_CLEAN} -${COMPILE_PART1} butc ${COMPILE_CLEAN} -${COMPILE_PART1} tbutc ${COMPILE_CLEAN} -${COMPILE_PART1} budb ${COMPILE_CLEAN} -${COMPILE_PART1} bucoord ${COMPILE_CLEAN} -${COMPILE_PART1} xstat ${COMPILE_CLEAN} -${COMPILE_PART1} afsmonitor ${COMPILE_CLEAN} -${COMPILE_PART1} libafsrpc ${COMPILE_CLEAN} -${COMPILE_PART1} libafsauthent ${COMPILE_CLEAN} -${COMPILE_PART1} libadmin ${COMPILE_CLEAN} -${COMPILE_PART1} libadmin/adminutil ${COMPILE_CLEAN} -${COMPILE_PART1} libadmin/client ${COMPILE_CLEAN} -${COMPILE_PART1} libadmin/vos ${COMPILE_CLEAN} -${COMPILE_PART1} libadmin/kas ${COMPILE_CLEAN} -${COMPILE_PART1} libadmin/pts ${COMPILE_CLEAN} -${COMPILE_PART1} libadmin/bos ${COMPILE_CLEAN} -${COMPILE_PART1} libadmin/cfg ${COMPILE_CLEAN} -${COMPILE_PART1} libadmin/test ${COMPILE_CLEAN} -${COMPILE_PART1} libadmin/samples ${COMPILE_CLEAN} -${COMPILE_PART1} finale ${COMPILE_CLEAN} -${COMPILE_PART1} mpp ${COMPILE_CLEAN} -${COMPILE_PART1} package ${COMPILE_CLEAN} -${COMPILE_PART1} ntp ${COMPILE_CLEAN} -${COMPILE_PART1} ftpd43+ ${COMPILE_CLEAN} -${COMPILE_PART1} inetd ${COMPILE_CLEAN} -${COMPILE_PART1} rsh ${COMPILE_CLEAN} -${COMPILE_PART1} rlogind ${COMPILE_CLEAN} -${COMPILE_PART1} rcp ${COMPILE_CLEAN} -${COMPILE_PART1} libafs ${COMPILE_CLEAN} -${COMPILE_PART1} libuafs ${COMPILE_CLEAN} distclean: clean /bin/rm -f config.log config.cache config.status Makefile /bin/rm -f src/config/afsconfig.h src/config/Makefile.${SYS_NAME} /bin/rm -f src/libafs/Makefile src/libafs/MakefileProto.${MKAFS_OSTYPE} /bin/rm -f src/libuafs/Makefile afs.ppc_darwin.plist src/pam/Makefile pristine: distclean /bin/rm -f src/config/afsconfig.h.in configure aclocal.m4 # # Below targets are all deprecated, insecure, or obsolte, # see README.OBSOLETE and README.INSECURE for more info # mpp: project @case ${WITH_OBSOLETE} in \ YES) ${COMPILE_PART1} mpp ${COMPILE_PART2} ;; \ *) echo skipping deprecated target: mpp ;; \ esac package: project mpp @case ${WITH_OBSOLETE} in \ YES) ${COMPILE_PART1} package ${COMPILE_PART2} ;; \ *) echo skipping deprecated target: package ;; \ esac package.files: package @case ${WITH_OBSOLETE} in \ YES) ${DESTDIR}/bin/makepkgfiles afs.dev ;; \ *) echo skipping deprecated target: package.files ;; \ esac ntp: project volser @case ${WITH_OBSOLETE} in \ YES) case ${SYS_NAME} in \ sun4x_58 | *linux* | *fbsd* | ppc_darwin* ) echo skipping ntp for ${SYS_NAME} ;; \ * ) ${COMPILE_PART1} ntp ${COMPILE_PART2} ;; \ esac ;; \ *) echo skipping deprecated target: ntp ;; \ esac ftpd43+: project kauth rxkad @case ${WITH_INSECURE} in \ YES) case ${SYS_NAME} in \ rs_aix* | sun4x_55 | *linux*) \ ${COMPILE_PART1} ftpd43+ ${COMPILE_PART2} ;; \ *) echo skip ftpd43+ for ${SYS_NAME} ;; \ esac ;; \ *) echo skipping deprecated target: ftpd43+ ;; \ esac inetd: project kauth rxkad @case ${WITH_INSECURE} in \ YES) ${COMPILE_PART1} inetd ${COMPILE_PART2} ;; \ *) echo skipping deprecated target: inetd ;; \ esac rsh: project inetd @case ${WITH_INSECURE} in \ YES) ${COMPILE_PART1} rsh ${COMPILE_PART2} ;; \ *) echo skipping deprecated target: rsh ;; \ esac rlogind: project rsh ftpd43+ login @case ${WITH_INSECURE} in \ YES) case ${SYS_NAME} in \ rs_aix*) ${COMPILE_PART1} rlogind ${COMPILE_PART2} ;; \ *) echo skipping rlogind for ${SYS_NAME} ;; \ esac ;; \ *) echo skipping deprecated target: rlogind ;; \ esac rcp: project rsh inetd @case ${WITH_INSECURE} in \ YES) case ${SYS_NAME} in \ sgi_* ) echo skip rcp for ${SYS_NAME} ;; \ *) ${COMPILE_PART1} rcp ${COMPILE_PART2} ;; \ esac ;; \ *) echo skipping deprecated target: rcp ;; \ esac allrcmds: project rcp rlogind