openafs/src/Makefile

533 lines
13 KiB
Makefile
Raw Normal View History

2000-11-04 02:13:13 +00:00
#/* Copyright (C) 1990, 1989 Transarc Corporation - All rights reserved */
SHELL=/bin/sh
DESTDIR=dest/
SRCDIR=${DESTDIR}
INSTALL=${SRCDIR}bin/install
WASHTOOL=${SRCDIR}bin/washtool
#WASHTOOLRCSUPDATE=${WASHTOOL} rcsupdate
WASHTOOLCMD=make
WASHTOOLFLAGS=-argument install
COMPILE_PART1=${WASHTOOL} ${WASHTOOLCMD}
COMPILE_PART2=${WASHTOOLFLAGS}
MKDIR_IF_NEEDED=[ -d $$1 ] || mkdir -p $$1
# To compile AFS from scratch in the src tree run "make SYS_NAME=<type>".
# This recursively calls "make install ..." and does not depend on the
# existence of any non-standard programs.
# To compile a package and all its predecessors using washtool run
# "make <package>". This requires that @sys works, and that washtool,
# rcsupdate and our version of ci and co exist.
# To compile for the kernel type "make blibafs". This assumes washtool,
# install, rxgen, compile_et and others already exist and runs it with
# "-argument kinstall".
all:
set ${SYS_NAME}/dest; $(MKDIR_IF_NEEDED)
$(MAKE) install "COMPILE_PART1=cd obj; cd" "COMPILE_PART2=; $(MAKE) install SYS_NAME=${SYS_NAME} DESTDIR=`pwd`/${SYS_NAME}/dest/ SRCDIR=`pwd`/${SYS_NAME}/dest/" SYS_NAME=${SYS_NAME} "WASHTOOL=echo No washtool: "
basics:
-if test -f "${WASHTOOL}"; \
then \
${WASHTOOL} project . . -noretarget; \
${WASHTOOL} destdir; \
fi
# test -d ${DESTDIR}
minproject: basics
${WASHTOOL} project . . -noretarget
${WASHTOOL} destdir
project: basics cmd comerr minproject # try and initialize project
config: basics
${COMPILE_PART1} config ${COMPILE_PART2}
pinstall: basics config
${COMPILE_PART1} pinstall ${COMPILE_PART2}
procmgmt: basics config pinstall
${COMPILE_PART1} procmgmt ${COMPILE_PART2}
util: basics pinstall procmgmt
${COMPILE_PART1} util ${COMPILE_PART2}
audit: basics pinstall rx rxkad fsint
${COMPILE_PART1} audit ${COMPILE_PART2}
comerr: basics util
${COMPILE_PART1} comerr ${COMPILE_PART2}
cmd: basics comerr
${COMPILE_PART1} cmd ${COMPILE_PART2}
@case ${SYS_NAME} in \
sgi_6* | sun4x_57 | hp_ux11* ) \
${COMPILE_PART1} cmd ${COMPILE_PART2} install64 ;; \
esac
lwp: project util
${COMPILE_PART1} lwp ${COMPILE_PART2}
rxgen: minproject pinstall
${COMPILE_PART1} rxgen ${COMPILE_PART2}
rxobj:
${WASHTOOL} object rx
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_PART2}
fsint: project kfsint
kfsint: rxgen rxincls lwp
${COMPILE_PART1} fsint ${COMPILE_PART2}
export2: project fsint
export: minproject fsint
@case ${SYS_NAME} in \
rs_aix*) \
${COMPILE_PART1} export ${COMPILE_PART2} ;; \
* ) echo skipping export for ${SYS_NAME} ;; \
esac
afs: minproject export
${COMPILE_PART1} afs ${COMPILE_PART2}
des: minproject config
if [ -f "obj/des/Makefile" ] ; then \
${COMPILE_PART1} des ${COMPILE_PART2} ; \
else \
${COMPILE_PART1} des_stub ${COMPILE_PART2} ; \
fi
sys: project des rx rxstat fsint
${COMPILE_PART1} sys ${COMPILE_PART2}
rxkad: project des
${WASHTOOL} object rxkad
${WASHTOOL} object rxkad/domestic
${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
cd obj/ubik; $(MAKE) test SYS_NAME=${SYS_NAME}
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: minproject
${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_ux*) \
${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*) \
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}
mpp: project
${COMPILE_PART1} mpp ${COMPILE_PART2}
package: project mpp
${COMPILE_PART1} package ${COMPILE_PART2}
package.files: package
${DESTDIR}/bin/makepkgfiles afs.dev
uss: des kauth project rx vlserver vol
${COMPILE_PART1} uss ${COMPILE_PART2}
ntp: project volser
case ${SYS_NAME} in \
*linux* ) echo skipping ntp for ${SYS_NAME} ;; \
* ) ${COMPILE_PART1} ntp ${COMPILE_PART2} ;; \
esac
#convert: project ntp
# ${COMPILE_PART1} convert ${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: minproject vol
set -x; \
case ${SYS_NAME} in \
sgi_* | *linux*) \
echo skip vfsck for ${SYS_NAME} ;; \
rs_aix42) \
echo skip vfsck for ${SYS_NAME} ;; \
sun4x_55 ) \
echo skip vfsck for ${SYS_NAME} ;; \
sun4x_56 ) \
echo skip vfsck for ${SYS_NAME} ;; \
sun4x_57 ) \
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 ) \
${WASHTOOL} object login ; \
${COMPILE_PART1} tsm41 ${COMPILE_PART2} ;; \
alpha_dux* ) \
${COMPILE_PART1} sia ${COMPILE_PART2} ;; \
sun4x_55 ) \
${COMPILE_PART1} login ${COMPILE_PART2} ;; \
sun4x_* | hp_ux11* | *linux* ) \
${COMPILE_PART1} pam ${COMPILE_PART2} ;; \
* ) \
${COMPILE_PART1} login ${COMPILE_PART2} ;; \
esac
ftpd43+: project kauth rxkad
case ${SYS_NAME} in \
rs_aix* | sun4x_55 | *linux*) \
${COMPILE_PART1} ftpd43+ ${COMPILE_PART2} ;; \
* ) echo skip ftpd43+ for ${SYS_NAME} ;; \
esac
inetd: project kauth rxkad
${COMPILE_PART1} inetd ${COMPILE_PART2}
rsh: project inetd
${COMPILE_PART1} rsh ${COMPILE_PART2}
rlogind: project rsh ftpd43+ login
case ${SYS_NAME} in \
rs_aix*) \
${COMPILE_PART1} rlogind ${COMPILE_PART2} ;; \
* ) echo skipping rlogind for ${SYS_NAME} ;; \
esac
sgistuff: project rlogind
case ${SYS_NAME} in \
sgi_* ) ${COMPILE_PART1} sgistuff ${COMPILE_PART2} ;; \
* ) echo skipping sgistuff for ${SYS_NAME} ;; \
esac
rcp: project rsh inetd
case ${SYS_NAME} in \
sgi_* ) echo skip rcp for ${SYS_NAME} ;; \
*) ${COMPILE_PART1} rcp ${COMPILE_PART2} ;; \
esac
allrcmds: project rcp rlogind
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: minproject libafs_setup ${KERNELDIR}
${COMPILE_PART1} libafs ${COMPILE_PART2}
libuafs: minproject libuafs_setup ${UKERNELDIR}
${COMPILE_PART1} libuafs ${COMPILE_PART2}
afsweb: minproject 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_ux*) \
${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}
ircs: project
case ${SYS_NAME} in \
sgi_* ) \
echo skip ircs for ${SYS_NAME} ;; \
*) \
${COMPILE_PART1} ircs ${COMPILE_PART2} ;; \
esac
wash: project
case ${SYS_NAME} in \
sgi_* ) \
echo skip wash for ${SYS_NAME} ;; \
*) \
${COMPILE_PART1} wash ${COMPILE_PART2} ;; \
esac
tests: rxtests ubiktests
# pthread based user space RX library
libafsrpc: rx rxkad des
${COMPILE_PART1} libafsrpc ${COMPILE_PART2}
libafsauthent: ubik auth kauth libafsrpc
${COMPILE_PART1} libafsauthent ${COMPILE_PART2}
libadmin: libafsauthent bozo
${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}
finale: project cmd comerr afsd allrcmds butc tbutc libafs 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 minproject export
# How about if no RCSUPDATE exists?
# Well then you're going to lose. Or, if you insist, set
# WASHTOOLRCSUPDATE to be a no-op
# Warning: The next few lines are _extremely_ sensitive to spaces and tabs.
${WASHTOOL} object libafs
case ${SYS_NAME} in \
alpha_dux4* ) \
MKAFS_OSTYPE=DUX;; \
hp_ux* ) \
MKAFS_OSTYPE=HPUX;; \
*linux*) \
MKAFS_OSTYPE=LINUX;; \
rs_aix* ) \
MKAFS_OSTYPE=AIX;; \
sgi_* ) \
MKAFS_OSTYPE=IRIX;; \
sun4x_5* ) \
MKAFS_OSTYPE=SOLARIS;; \
* ) \
echo WARNING: No MakefileProto for sys ${SYS_NAME} ; \
esac; \
obj/config/config src/libafs/MakefileProto.$$MKAFS_OSTYPE obj/libafs/Makefile ${SYS_NAME}
libuafs_setup: config minproject export
# How about if no RCSUPDATE exists?
# Well then you're going to lose. Or, if you insist, set
# WASHTOOLRCSUPDATE to be a no-op
${WASHTOOL} object libuafs
case ${SYS_NAME} in \
hp_ux* ) \
MKAFS_OSTYPE=HPUX;; \
*linux*) \
MKAFS_OSTYPE=LINUX;; \
rs_aix* ) \
MKAFS_OSTYPE=AIX;; \
sun4x_5* ) \
MKAFS_OSTYPE=SOLARIS;; \
alpha_dux4* ) \
MKAFS_OSTYPE=DUX;; \
sgi_6* ) \
MKAFS_OSTYPE=IRIX;; \
* ) \
echo WARNING: No MakefileProto for sys ${SYS_NAME} ; \
esac; \
obj/config/config src/libuafs/MakefileProto.$$MKAFS_OSTYPE obj/libuafs/Makefile ${SYS_NAME}
# "COMPILE_PART1=${COMPILE_PART1}" "COMPILE_PART2=${COMPILE_PART2}" SYS_NAME=${SYS_NAME} ;;
install:
$(MAKE) finale "SYS_NAME=${SYS_NAME}" "WASHTOOL=${WASHTOOL}" \
"COMPILE_PART1=${COMPILE_PART1}" \
"COMPILE_PART2=${COMPILE_PART2}" \
DESTDIR=`pwd`/${SYS_NAME}/dest/ \
SRCDIR=`pwd`/${SYS_NAME}/dest/ \
"DBG_DEFS=${DBG_DEFS}"
# sgi: "NON_SHARED=-non_shared"
#updatekdir:
# ${WASHTOOL} rcsupdate ${KERNELDIR} libafs
kupdate: updatekdir libafs_setup libuafs_setup
blibafs:
$(MAKE) libafs "WASHTOOL=${WASHTOOL}" "WASHTOOLFLAGS=-argument kinstall" SYS_NAME=${SYS_NAME} "CPUARCH=${CPUARCH}" "MPSP=${MPSP}" "DBG_DEFS=${DBG_DEFS}"
blibuafs:
$(MAKE) libuafs "WASHTOOL=${WASHTOOL}" "WASHTOOLFLAGS=-argument ukinstall" SYS_NAME=${SYS_NAME} "CPUARCH=${CPUARCH}" "MPSP=${MPSP}" "DBG_DEFS=${DBG_DEFS}"
bwebafs: sys
$(MAKE) libuafs "WASHTOOL=${WASHTOOL}" "WASHTOOLFLAGS=-argument webinstall" SYS_NAME=${SYS_NAME} "CPUARCH=${CPUARCH}" "MPSP=${MPSP}" "DBG_DEFS=${DBG_DEFS}"
clean:
${WASHTOOL} every "cd obj/%s; $(MAKE) clean" -rootd obj
checklist:
${WASHTOOL} every -command \
'cd rcs/%s; echo ; echo In %s:; if test x = "x`/bin/ls RCS/*,v`"; then exit 0; else rlog -I RCS/*,v; fi'
links:
echo "Remove the obj directory"
- /bin/rm -rf @sys/obj/* ;
- /bin/rm -rf @sys/dest/* ;
- /bin/mkdir @sys/obj ;
echo "Create the obj directories"
cd src; \
for file in `find [!NW]* -type d -print` ; do \
/bin/mkdir ../obj/$${file} ; \
done;
echo "Create the obj file links"
cd src; \
for file in `find [!NW]* -type f -print` ; do \
/bin/ln -s `pwd`/$${file} ../obj/$${file} ; \
done;