openafs/Makefile.in
Marcio Barbosa 120871f03f DARWIN: Add 'privhelper' tool for PrefPane
The prefpane for macOS runs as the logged-in user, but needs root access
for some operations: starting/stopping the client, editing various
configuration files like CellServDB, etc. We currently use functions
like AuthorizationExecuteWithPrivileges() to run commands with root
privileges directly, but this approach no longer works as of macOS 10.8
(Mountain Lion); the relevant functions have been removed.

Instead, a new approach exists as of macOS 10.6 (Snow Leopard). The
prefpane application itself cannot gain root privileges, but we can
provide another daemon process that runs as root, and the PrefPane sends
requests to that process to perform the privileged operations we need.

In this commit, create a separate helper program called PrivilegedHelper
(privhelper for short) that serves this purpose. Define the
executePrivTask() method in TaskUtil to handle communicating with
privhelper over XPC.

This commit does not define any of the tasks that privhelper will
actually perform; this just implements privhelper itself. Later commits
will add and use various privileged tasks in privhelper.

In order for privhelper to be able to run as root, both privhelper and
the prefpane itself must be code signed and the relevant apple team id
must be specified in their Info.plist when they are built, as well as
inside privhelper.c. Currently, we have
no way of specifying code signatures info during the build, since all code
signing is done when generating packages (via pkgbuild.sh) after
binaries are built. For now, just put a commented-out section in
src/platform/DARWIN/AFSPreference/Info.plist and
src/platform/DARWIN/PrivilegedHelper/privhelper-info.plist and a
placeholder in src/platform/DARWIN/PrivilegedHelper/privhelper.c to show
how to add this information. The package builder must add their own team
id to these before privhelper can work properly.

The privhelper tool checks that the calling user has authorization to
run commands as root (via AuthorizationCopyRights()), and that the
calling process is either our AFSBackgrounder menu bar or the prefpane.
We use xpc_connection_set_peer_code_signing_requirement() for this where
available, but fallback to using SecCodeCheckValidity() with
SecCodeCreateWithXPCMessage() or
xpc_dictionary_get_audit_token()/SecCodeCopyGuestWithAttributes() if
needed.

Change-Id: I724b6d486ee5397c89c79e589ddcb2a5987a895b
Reviewed-on: https://gerrit.openafs.org/15956
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
2024-12-06 11:12:56 -05:00

969 lines
29 KiB
Makefile

# 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
#
# Portions Copyright (c) 2003 Apple Computer, Inc.
srcdir=@srcdir@
include @TOP_OBJDIR@/src/config/Makefile.config
ENABLE_KERNEL_MODULE=@ENABLE_KERNEL_MODULE@
DOXYGEN=@DOXYGEN@
# 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_PART2A = && $(MAKE)
COMPILE_PART2B = all
COMPILE_PART2 = ${COMPILE_PART2A} ${COMPILE_PART2B}
COMPILE_CLEAN = ${COMPILE_PART2A} clean
COMPILE_DEPINSTALL = ${COMPILE_PART2A} depinstall
COMPILE_GENERATED = ${COMPILE_PART2A} generated
all: force
$(MAKE) build
all_nolibafs: force
$(MAKE) build TARGET=finale_nolibafs
only_libafs: force
$(MAKE) build TARGET=libafs
only_libafs_tree: force
$(MAKE) build TARGET=libafs_tree
buildtools: force
$(MAKE) build TARGET=build_tools COMPILE_PART2B=buildtools
cscope:
( cd src ; cscope -b -R )
generated: force buildtools
+${COMPILE_PART1} afs ${COMPILE_GENERATED}
+${COMPILE_PART1} auth ${COMPILE_GENERATED}
+${COMPILE_PART1} bozo ${COMPILE_GENERATED}
+${COMPILE_PART1} bubasics ${COMPILE_GENERATED}
+${COMPILE_PART1} bucoord ${COMPILE_GENERATED}
+${COMPILE_PART1} budb ${COMPILE_GENERATED}
+${COMPILE_PART1} cmd ${COMPILE_GENERATED}
+${COMPILE_PART1} fsint ${COMPILE_GENERATED}
+${COMPILE_PART1} kauth ${COMPILE_GENERATED}
+${COMPILE_PART1} ptserver ${COMPILE_GENERATED}
+${COMPILE_PART1} rxgk ${COMPILE_GENERATED}
+${COMPILE_PART1} rxkad ${COMPILE_GENERATED}
+${COMPILE_PART1} rxstat ${COMPILE_GENERATED}
+${COMPILE_PART1} sys ${COMPILE_GENERATED}
+${COMPILE_PART1} ubik ${COMPILE_GENERATED}
+${COMPILE_PART1} update ${COMPILE_GENERATED}
+${COMPILE_PART1} vlserver ${COMPILE_GENERATED}
+${COMPILE_PART1} volser ${COMPILE_GENERATED}
+${COMPILE_PART1} config ${COMPILE_PART2A} generated_clean
+${COMPILE_PART1} roken ${COMPILE_PART2A} clean
+${COMPILE_PART1} crypto/hcrypto ${COMPILE_PART2A} clean
+${COMPILE_PART1} opr ${COMPILE_PART2A} clean
install: all install_dirs
$(MAKE) build COMPILE_PART2B=install
install_nolibafs: all_nolibafs install_dirs
$(MAKE) build TARGET=finale_nolibafs COMPILE_PART2B=install
install_only_libafs: only_libafs install_dirs
$(MAKE) build TARGET=libafs COMPILE_PART2B=install
dest: all dest_dirs
$(MAKE) build COMPILE_PART2B=dest
-${INSTALL_DATA} ${srcdir}/LICENSE ${DEST}/LICENSE
dest_nolibafs: all_nolibafs dest_dirs
$(MAKE) build TARGET=finale_nolibafs COMPILE_PART2B=dest
-${INSTALL_DATA} ${srcdir}/LICENSE ${DEST}/LICENSE
dest_only_libafs: only_libafs dest_dirs
$(MAKE) build TARGET=libafs COMPILE_PART2B=dest
-${INSTALL_DATA} ${srcdir}/LICENSE ${DEST}/LICENSE
packages: dest
@case ${SYS_NAME} in \
*_darwin_1[2-4] | *_darwin_[6-9]0 | *_darwin_1[0-3]0 ) \
${COMPILE_PART1} packaging/MacOS && bash ./buildpkg.sh ${DEST} ;; \
*_darwin_* ) \
${COMPILE_PART1} packaging/MacOS && bash ./pkgbuild.sh ${DEST} ;; \
hp_ux110 ) \
${COMPILE_PART1} packaging/HP-UX && swpackage -s psf-1.2.10-transarc-paths-11.00 ;; \
hp_ux11i ) \
${COMPILE_PART1} packaging/HP-UX && swpackage -s psf-1.2.10-transarc-paths-11.11 ;; \
ia64_hpux1122 ) \
${COMPILE_PART1} packaging/HP-UX && swpackage -s psf-1.2.10-transarc-paths-11.22 ;; \
ia64_hpux1123 | hp_ux1123) \
${COMPILE_PART1} packaging/HP-UX && swpackage -s psf-1.2.10-transarc-paths-11.23 ;; \
*) \
echo Not building packages for ${SYS_NAME} ;; \
esac
${TOP_INCDIR}/afs ${TOP_INCDIR}/rx ${TOP_INCDIR}/hcrypto ${TOP_INCDIR}/opr ${TOP_LIBDIR}:
mkdir -p $@
install_dirs: force
mkdir -p ${DESTDIR}${bindir}
mkdir -p ${DESTDIR}${sbindir}
mkdir -p ${DESTDIR}${libexecdir}/openafs
mkdir -p ${DESTDIR}${libdir}/afs
mkdir -p ${DESTDIR}${includedir}/afs
mkdir -p ${DESTDIR}${includedir}/rx
mkdir -p ${DESTDIR}${afskerneldir}
mkdir -p ${DESTDIR}${afssrvbindir}
mkdir -p ${DESTDIR}${afssrvsbindir}
mkdir -p ${DESTDIR}${afssrvlibexecdir}
mkdir -p ${DESTDIR}${afsdatadir}/C
dest_dirs: force
mkdir -p ${DEST}/bin
mkdir -p ${DEST}/etc
mkdir -p ${DEST}/lib/afs
mkdir -p ${DEST}/include/afs
mkdir -p ${DEST}/include/rx
mkdir -p ${DEST}/root.client/usr/vice/etc/C
mkdir -p ${DEST}/root.server/etc
mkdir -p ${DEST}/root.server/usr/afs/bin
prelude: ${TOP_INCDIR}/afs ${TOP_INCDIR}/rx ${TOP_INCDIR}/hcrypto \
${TOP_INCDIR}/opr ${TOP_LIBDIR}
project: cmd comerr
srctests: sys rx lwp util auth fsint comerr opr hcrypto ${DIR_roken}
+${COMPILE_PART1} tests ${COMPILE_PART2}
config: prelude
+${COMPILE_PART1} config ${COMPILE_PART2}
procmgmt: $(DIR_roken) config
+${COMPILE_PART1} procmgmt ${COMPILE_PART2}
opr: config hcrypto $(DIR_roken)
+${COMPILE_PART1} opr ${COMPILE_PART2}
util: opr $(DIR_roken) procmgmt hcrypto lwp
+${COMPILE_PART1} util ${COMPILE_PART2}
libafscp: util afs volser vlserver rx auth fsint
+${COMPILE_PART1} libafscp ${COMPILE_PART2}
audit: util rx rxkad fsint bubasics
+${COMPILE_PART1} audit ${COMPILE_PART2} #TODO
comerr: util $(DIR_roken)
+${COMPILE_PART1} comerr ${COMPILE_PART2}
cmd: comerr
+@case ${SYS_NAME} in \
sgi_6* | sun*_5[789] | sun*_51[01] | hp_ux11* | ia64_hpux* | sparc64_linux* | alpha_linux* ) \
${COMPILE_PART1} cmd ${COMPILE_PART2}64 ;; \
*) \
${COMPILE_PART1} cmd ${COMPILE_PART2} ;; \
esac
hcrypto: config $(DIR_roken)
+${COMPILE_PART1} crypto/hcrypto ${COMPILE_PART2}
rfc3961: config hcrypto
+${COMPILE_PART1} crypto/rfc3961 ${COMPILE_PART2}
lwp: opr $(DIR_roken) lwp_depinstall
+${COMPILE_PART1} lwp ${COMPILE_PART2}
roken: config
+${COMPILE_PART1} roken ${COMPILE_PART2}
rxgen: $(DIR_roken) config
+${COMPILE_PART1} rxgen ${COMPILE_PART2}
rx: config lwp rxgen rx_depinstall util rxgk_depinstall
+${COMPILE_PART1} rx ${COMPILE_PART2}
rx_test: rx libafsrpc libafsauthent
+${COMPILE_PART1} rx/test ${COMPILE_PART2}
+${COMPILE_PART1} rx/simple.example ${COMPILE_PART2}
rxstat: rx rxstat_depinstall
+${COMPILE_PART1} rxstat ${COMPILE_PART2}
rxtests: rxdebug
rxdebug: rx sys rxgk
+${COMPILE_PART1} rxdebug ${COMPILE_PART2}
fsint: cmd comerr rxgen rx lwp fsint_depinstall
+${COMPILE_PART1} fsint ${COMPILE_PART2}
export2: project
export:
@case ${SYS_NAME} in \
rs_aix*) \
${MAKE} export_build ; \
esac
export_build: fsint
+${COMPILE_PART1} export ${COMPILE_PART2}
afs: config export comerr afs_depinstall
+${COMPILE_PART1} afs ${COMPILE_PART2}
sys: cmd comerr afs hcrypto rx rxstat fsint sys_depinstall
+${COMPILE_PART1} sys ${COMPILE_PART2}
rxgk: cmd comerr hcrypto rfc3961 rx rxgk_depinstall
+set -x; \
if test "@BUILD_RXGK@" = "yes"; then \
${COMPILE_PART1} rxgk ${COMPILE_PART2} ; \
else \
echo Skipping rxgk for ${SYS_NAME} ; \
fi
rxkad: cmd comerr hcrypto rfc3961 rx rxkad_depinstall
+${COMPILE_PART1} rxkad ${COMPILE_PART2}
rxkad_test: rxkad auth libafsauthent libafsrpc
+${COMPILE_PART1} rxkad/test ${COMPILE_PART2}
auth: cmd comerr hcrypto lwp rx rxkad audit sys auth_depinstall rxgk
+${COMPILE_PART1} auth ${COMPILE_PART2}
ubik: cmd comerr auth ubik_depinstall sys
+${COMPILE_PART1} ubik ${COMPILE_PART2}
tubik: ubik libafsrpc libafsauthent
+case ${SYS_NAME} in \
sgi_*|sun*_5*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*|*[nof]bsd*|*_darwin_*) \
${COMPILE_PART1} tubik ${COMPILE_PART2} ;; \
*) \
echo Not building MT ubik for ${SYS_NAME} ;; \
esac
ubiktests: ubik
ptserver: cmd comerr ubik cmd comerr auth audit ptserver_depinstall
+${COMPILE_PART1} ptserver ${COMPILE_PART2}
tptserver: cmd comerr ptserver tubik libafsrpc libafsauthent
+case ${SYS_NAME} in \
sgi_*|sun*_5*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*|*[nof]bsd*|*_darwin_*) \
${COMPILE_PART1} tptserver ${COMPILE_PART2} ;; \
*) \
echo Not building MT ptserver for ${SYS_NAME} ;; \
esac
kauth: cmd comerr ubik cmd auth comerr ptserver audit libacl kauth_depinstall \
sys_depinstall
+${COMPILE_PART1} kauth ${COMPILE_PART2}
libacl: cmd comerr ptserver libacl_depinstall
+${COMPILE_PART1} libacl ${COMPILE_PART2}
dir: cmd comerr libacl dir_depinstall
+${COMPILE_PART1} dir ${COMPILE_PART2}
vol: cmd comerr dir afs $(DIR_roken)
+${COMPILE_PART1} vol ${COMPILE_PART2}
tsalvaged: vol libafsrpc libafsauthent cmd util
+case ${SYS_NAME} in \
sgi_*|sun*_5*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*|*[fn]bsd*|*_darwin_*) \
${COMPILE_PART1} tsalvaged ${COMPILE_PART2} ;; \
*_darwin_*) \
${COMPILE_PART1} tsalvaged ${COMPILE_PART2} ;; \
*) \
echo Not building MT tsalvaged for ${SYS_NAME} ;; \
esac
vlserver: cmd comerr vol audit vlserver_depinstall
+${COMPILE_PART1} vlserver ${COMPILE_PART2}
tvlserver: cmd comerr vol audit tubik libafsrpc libafsauthent \
tvlserver_depinstall
+case ${SYS_NAME} in \
sgi_*|sun*_5*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*|*[nof]bsd*|*_darwin_*) \
${COMPILE_PART1} tvlserver ${COMPILE_PART2} ;; \
*) \
echo Not building MT tvlserver for ${SYS_NAME} ;; \
esac
viced: cmd comerr vlserver tvlserver libafsrpc libafsauthent audit
+${COMPILE_PART1} viced ${COMPILE_PART2}
dviced: cmd comerr viced vlserver tvlserver libafsrpc libafsauthent
+case ${SYS_NAME} in \
sgi_*|sun*_5*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*|*[nof]bsd*|*_darwin_*) \
${COMPILE_PART1} dviced ${COMPILE_PART2} ;; \
*) \
echo Not building DAFS viced for ${SYS_NAME} ;; \
esac
volser: cmd comerr usd kauth vlserver audit
+${COMPILE_PART1} volser ${COMPILE_PART2}
tvolser: project viced usd libafsrpc libafsauthent volser
+@case ${SYS_NAME} in \
*_darwin_*|sgi_*|sun*_5*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*|*[nof]bsd*) \
${COMPILE_PART1} tvolser ${COMPILE_PART2} ;; \
*) \
echo Not building MT volser for ${SYS_NAME} ;; \
esac
dvolser: project viced usd libafsrpc libafsauthent volser
+@case ${SYS_NAME} in \
*_darwin_*|sgi_*|sun*_5*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*|*[nof]bsd*) \
${COMPILE_PART1} dvolser ${COMPILE_PART2} ;; \
*) \
echo Not building DAFS volser for ${SYS_NAME} ;; \
esac
rxosdsrc: rxgen
+${COMPILE_PART1} rxosd ${COMPILE_PART2A} source
venus: cmd comerr volser ptserver libafscp libafsauthent
+${COMPILE_PART1} venus ${COMPILE_PART2}
venustests: venus
+${COMPILE_PART1} venus/test ${COMPILE_PART2}
afsd: cmd comerr sys kauth libafsauthent @CLIENT_UAFS_DEP@
+${COMPILE_PART1} afsd ${COMPILE_PART2}
gtx: cmd comerr auth kauth
+set -x; \
if test "@LIB_curses@"; then \
${COMPILE_PART1} gtx ${COMPILE_PART2} ; \
else \
echo Not building gtx, because no curses-headers found. ; \
fi
fsprobe: cmd comerr util fsint volser
+${COMPILE_PART1} fsprobe ${COMPILE_PART2}
scout: cmd comerr gtx fsprobe
+if test "@LIB_curses@"; then \
${COMPILE_PART1} scout ${COMPILE_PART2} ; \
else \
echo Not building scout, because no curses-headers found. ; \
fi
uss: hcrypto kauth cmd comerr rx vlserver vol volser
+${COMPILE_PART1} uss ${COMPILE_PART2}
bozo: cmd comerr audit auth kauth volser
+${COMPILE_PART1} bozo ${COMPILE_PART2}
vfsck: vol
+set -x; \
case ${SYS_NAME} in \
sgi_* | *linux* | rs_aix* | *_darwin* | ia64_hpux* | *fbsd* | *_obsd* | *_nbsd* ) \
echo skip vfsck for ${SYS_NAME} ;; \
* ) \
${COMPILE_PART1} vfsck ${COMPILE_PART2} ;; \
esac
pam: auth libafsauthent
+set -x; \
if test "@HAVE_PAM@" = "yes"; then \
${COMPILE_PART1} pam ${COMPILE_PART2} ; \
else \
echo Skipping pam for ${SYS_NAME} ; \
fi
tsm41: cmd comerr ptserver kauth rxkad
+set -x; \
case ${SYS_NAME} in \
rs_aix* ) \
${COMPILE_PART1} tsm41 ${COMPILE_PART2} ;; \
* ) \
echo Skipping tsm41 for ${SYS_NAME} ;; \
esac
aklog: auth comerr ptserver libafsauthent
+set -x; \
if test "@BUILD_KRB5@" = "yes"; then \
${COMPILE_PART1} aklog ${COMPILE_PART2} ; \
else \
echo Skipping aklog for ${SYS_NAME} ; \
fi
authtools: pam tsm41 platform aklog
platform: config cmd vol
+${COMPILE_PART1} platform ${COMPILE_PART2}
tools: config audit volser vlserver
+${COMPILE_PART1} tools ${COMPILE_PART2}
man-pages: config
cd doc/man-pages ${COMPILE_PART2}
#
# _depinstall targets - only build and install headers/sources that are
# needed by libafs/libuafs
#
# encode dependencies within the _depinstall targets as required
#
lwp_depinstall: config
+${COMPILE_PART1} lwp ${COMPILE_DEPINSTALL}
rx_depinstall: config
+${COMPILE_PART1} rx ${COMPILE_DEPINSTALL}
rxgk_depinstall: config comerr
+${COMPILE_PART1} rxgk ${COMPILE_DEPINSTALL}
rxkad_depinstall: config comerr
+${COMPILE_PART1} rxkad ${COMPILE_DEPINSTALL}
ubik_depinstall: config comerr rxgen
+${COMPILE_PART1} ubik ${COMPILE_DEPINSTALL}
vlserver_depinstall: config rxgen ubik_depinstall auth_depinstall
+${COMPILE_PART1} vlserver ${COMPILE_DEPINSTALL}
tvlserver_depinstall: config rxgen ubik_depinstall auth_depinstall
+${COMPILE_PART1} tvlserver ${COMPILE_DEPINSTALL}
auth_depinstall: config rxgen comerr rxgk_depinstall
+${COMPILE_PART1} auth ${COMPILE_DEPINSTALL}
fsint_depinstall: config rxgen
+${COMPILE_PART1} fsint ${COMPILE_DEPINSTALL}
rxstat_depinstall: config rxgen
+${COMPILE_PART1} rxstat ${COMPILE_DEPINSTALL}
libacl_depinstall: config
+${COMPILE_PART1} libacl ${COMPILE_DEPINSTALL}
afs_depinstall: config comerr
+${COMPILE_PART1} afs ${COMPILE_DEPINSTALL}
dir_depinstall: config
+${COMPILE_PART1} dir ${COMPILE_DEPINSTALL}
sys_depinstall: config rxgen
+${COMPILE_PART1} sys ${COMPILE_DEPINSTALL}
kauth_depinstall: config rxgen comerr
+${COMPILE_PART1} kauth ${COMPILE_DEPINSTALL}
ptserver_depinstall: config rxgen comerr
+${COMPILE_PART1} ptserver ${COMPILE_DEPINSTALL}
#
# libafs build targets
#
libafs: config export rfc3961 hcrypto lwp_depinstall \
rx_depinstall vlserver_depinstall tvlserver_depinstall \
rxkad_depinstall fsint_depinstall \
libacl_depinstall afs_depinstall dir_depinstall \
rxstat_depinstall sys_depinstall auth_depinstall \
rxosdsrc
${CONFIGTOOL} src/libafs/MakefileProto.${MKAFS_OSTYPE} src/libafs/Makefile ${SYS_NAME}
+${COMPILE_PART1} libafs ${COMPILE_PART2}
libafs_tree: export lwp_depinstall rx_depinstall vlserver_depinstall \
tvlserver_depinstall rxkad_depinstall fsint_depinstall \
libacl_depinstall afs_depinstall dir_depinstall \
rxstat_depinstall sys_depinstall auth_depinstall
${TOP_SRCDIR}/config/make_libafs_tree.pl \
-sn $(SYS_NAME) \
-os $(MKAFS_OSTYPE) \
-t @TOP_OBJDIR@/libafs_tree \
-o @TOP_OBJDIR@ \
-p @srcdir@
#
# libuafs build targets
#
libuafs_setup: config export
${CONFIGTOOL} src/libuafs/MakefileProto.${MKAFS_OSTYPE} src/libuafs/Makefile ${SYS_NAME}
libuafs: libuafs_setup vlserver_depinstall tvlserver_depinstall rx_depinstall \
fsint_depinstall auth_depinstall dir_depinstall \
libacl_depinstall rxkad_depinstall ubik_depinstall \
afs_depinstall kauth_depinstall ptserver_depinstall \
rxstat_depinstall lwp_depinstall sys_depinstall cmd hcrypto
+set -x; \
case ${SYS_NAME} in \
hp_ux102* | *_obsd* | *_nbsd*| hp_ux11i | hp_ux112* | ia64_hpux112*) \
echo Skipping libuafs for ${SYS_NAME} ;; \
* ) \
${COMPILE_PART1} libuafs ${COMPILE_PART2} ;; \
esac
update: cmd comerr auth sys
+${COMPILE_PART1} update ${COMPILE_PART2}
log: cmd comerr auth sys
+${COMPILE_PART1} log ${COMPILE_PART2}
bu_utils: cmd comerr usd
+${COMPILE_PART1} bu_utils ${COMPILE_PART2}
usd: cmd comerr
+${COMPILE_PART1} usd ${COMPILE_PART2}
bubasics: cmd comerr comerr rx
+${COMPILE_PART1} bubasics ${COMPILE_PART2}
butm: cmd comerr bubasics usd uss
+${COMPILE_PART1} butm ${COMPILE_PART2}
butc: cmd comerr bubasics butm budb bucoord cmd rxgen rx
+${COMPILE_PART1} butc ${COMPILE_PART2}
tbutc: cmd comerr bubasics butm budb bucoord cmd butc libadmin
+case ${SYS_NAME} in \
sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*|*_darwin_*) \
${COMPILE_PART1} tbutc ${COMPILE_PART2} ;; \
*) \
echo Not building MT butc for ${SYS_NAME} ;; \
esac
budb: cmd comerr bubasics uss
+${COMPILE_PART1} budb ${COMPILE_PART2}
tbudb: budb tubik
+case ${SYS_NAME} in \
sgi_*|sun*_5*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*|*[nof]bsd*|*_darwin_*) \
${COMPILE_PART1} tbudb ${COMPILE_PART2} ;; \
*) \
echo Not building MT budb for ${SYS_NAME} ;; \
esac
bucoord: cmd comerr bubasics budb volser butm
+${COMPILE_PART1} bucoord ${COMPILE_PART2}
xstat: cmd comerr fsint viced
+${COMPILE_PART1} xstat ${COMPILE_PART2}
afsmonitor: cmd comerr gtx xstat
+set -x; \
if test "@LIB_curses@"; then \
${COMPILE_PART1} afsmonitor ${COMPILE_PART2} ; \
else \
echo Not building afsmonitor, because no curses-headers found. ; \
fi
tests: rxtests ubiktests viced
# pthread based user space RX library
libafsrpc: comerr fsint hcrypto lwp rx rxkad rxstat sys util rxgk
+case ${SYS_NAME} in \
sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*|*[nof]bsd*) \
${COMPILE_PART1} libafsrpc ${COMPILE_PART2} ;; \
*_darwin_[1-6][0-9]) \
echo Not building MT libafsrpc for ${SYS_NAME} ;; \
*_darwin_*) \
${COMPILE_PART1} libafsrpc ${COMPILE_PART2} ;; \
*) \
echo Not building MT libafsrpc for ${SYS_NAME} ;; \
esac
libafsauthent: audit auth kauth ubik util sys ptserver volser vlserver libafsrpc
+case ${SYS_NAME} in \
sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*|*[nof]bsd*) \
${COMPILE_PART1} libafsauthent ${COMPILE_PART2} ;; \
*_darwin_[1-6][0-9]) \
echo Not building MT libafsauthent for ${SYS_NAME} ;; \
*_darwin_*) \
${COMPILE_PART1} libafsauthent ${COMPILE_PART2} ;; \
*) \
echo Not building MT libafsauthent for ${SYS_NAME} ;; \
esac
kopenafs: config sys
+${COMPILE_PART1} kopenafs ${COMPILE_PART2}
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 bubasics
+case ${SYS_NAME} in \
sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*) \
$(MAKE) libadmin_real ;; \
*_darwin_[1-6][0-9]) \
echo Not building MT libadmin for ${SYS_NAME} ;; \
*_darwin_*) \
$(MAKE) libadmin_real ;; \
*) \
echo Not building MT libadmin for ${SYS_NAME} ;; \
esac
build_tools: config comerr rxgen
+${COMPILE_PART1} util ${COMPILE_PART2A} buildtools_clean
finale_notest: project cmd comerr afsd butc tbutc tbudb @ENABLE_KERNEL_MODULE@ \
libuafs audit kauth log ptserver tptserver scout bu_utils ubik uss \
bozo @VFSCK@ volser tvolser tsalvaged dviced dvolser libafscp \
venus venustests update xstat afsmonitor rxdebug libafsrpc rfc3961 \
hcrypto libafsauthent libadmin man-pages tools platform kopenafs \
authtools $(DIR_roken) rxgk rx_test rxkad_test srctests
+${COMPILE_PART1} finale ${COMPILE_PART2}
finale_nolibafs_notest: project cmd comerr afsd butc tbutc tbudb libuafs audit kauth \
log ptserver tptserver scout bu_utils ubik tubik uss bozo @VFSCK@ \
volser tvolser tsalvaged dviced dvolser libafscp venus venustests \
update xstat afsmonitor rxdebug libafsrpc rfc3961 hcrypto \
libafsauthent libadmin man-pages tools platform kopenafs \
authtools $(DIR_roken) rxgk rx_test rxkad_test srctests
+${COMPILE_PART1} finale ${COMPILE_PART2}
finale: finale_notest test_build
finale_nolibafs: finale_nolibafs_notest test_build_nolibafs
test_build: finale_notest
cd tests && $(MAKE) all
test_build_nolibafs: finale_nolibafs_notest
cd tests && $(MAKE) all
check test: finale_notest
cd tests && $(MAKE) check TESTS="$(TESTS)"
force:
TARGET=finale
build: force
$(MAKE) $(TARGET) DEST=$(DEST) COMPILE_PART2B=$(COMPILE_PART2B) DESTDIR=$(DESTDIR)
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} procmgmt ${COMPILE_CLEAN}
-${COMPILE_PART1} util ${COMPILE_CLEAN}
-${COMPILE_PART1} opr ${COMPILE_CLEAN}
-${COMPILE_PART1} libafscp ${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} sys ${COMPILE_CLEAN}
-${COMPILE_PART1} rxgk ${COMPILE_CLEAN}
-${COMPILE_PART1} rxkad ${COMPILE_CLEAN}
-${COMPILE_PART1} auth ${COMPILE_CLEAN}
-${COMPILE_PART1} ubik ${COMPILE_CLEAN}
-${COMPILE_PART1} tubik ${COMPILE_CLEAN}
-${COMPILE_PART1} ptserver ${COMPILE_CLEAN}
-${COMPILE_PART1} tptserver ${COMPILE_CLEAN}
-${COMPILE_PART1} kauth ${COMPILE_CLEAN}
-${COMPILE_PART1} libacl ${COMPILE_CLEAN}
-${COMPILE_PART1} dir ${COMPILE_CLEAN}
-${COMPILE_PART1} vol ${COMPILE_CLEAN}
-${COMPILE_PART1} vlserver ${COMPILE_CLEAN}
-${COMPILE_PART1} tvlserver ${COMPILE_CLEAN}
-${COMPILE_PART1} viced ${COMPILE_CLEAN}
-${COMPILE_PART1} dviced ${COMPILE_CLEAN}
-${COMPILE_PART1} volser ${COMPILE_CLEAN}
-${COMPILE_PART1} tvolser ${COMPILE_CLEAN}
-${COMPILE_PART1} dvolser ${COMPILE_CLEAN}
-${COMPILE_PART1} tsalvaged ${COMPILE_CLEAN}
-${COMPILE_PART1} venus ${COMPILE_CLEAN}
-${COMPILE_PART1} venus/test ${COMPILE_CLEAN}
-${COMPILE_PART1} afsd ${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} tsm41 ${COMPILE_CLEAN}
-${COMPILE_PART1} aklog ${COMPILE_CLEAN}
-${COMPILE_PART1} pam ${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} tbudb ${COMPILE_CLEAN}
-${COMPILE_PART1} bucoord ${COMPILE_CLEAN}
-${COMPILE_PART1} xstat ${COMPILE_CLEAN}
-${COMPILE_PART1} afsmonitor ${COMPILE_CLEAN}
-${COMPILE_PART1} rxdebug ${COMPILE_CLEAN}
-${COMPILE_PART1} libafsrpc ${COMPILE_CLEAN}
-${COMPILE_PART1} libafsauthent ${COMPILE_CLEAN}
-${COMPILE_PART1} kopenafs ${COMPILE_CLEAN}
-${COMPILE_PART1} tools ${COMPILE_CLEAN}
-${COMPILE_PART1} platform ${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} libafs ${COMPILE_CLEAN}
-${COMPILE_PART1} libuafs ${COMPILE_CLEAN}
-${COMPILE_PART1} rxosd ${COMPILE_CLEAN}
-${COMPILE_PART1} tests ${COMPILE_CLEAN}
-${COMPILE_PART1} crypto/hcrypto ${COMPILE_CLEAN}
-${COMPILE_PART1} roken ${COMPILE_CLEAN}
-${COMPILE_PART1} crypto/rfc3961 ${COMPILE_CLEAN}
-(cd src; /bin/rm cscope.out)
-(cd src/libafs; /bin/rm -rf afs afsint config rx)
-(cd src/libuafs; /bin/rm -rf afs afsint config rx)
-(cd tests ${COMPILE_CLEAN})
-/bin/rm -rf ${TOP_INCDIR} ${TOP_LIBDIR}
-/bin/rm -rf libafs_tree ${SYS_NAME} packages
dist:
./build-tools/make-release --dir=packages HEAD
RPM_RELNOTES = NEWS
RPM_CHANGELOG = packages/ChangeLog
RPM_CELLSERVDB = src/afsd/CellServDB
srpm: dist
./src/packaging/RedHat/makesrpm.pl \
--dir=packages \
packages/openafs-*-src.tar.bz2 \
packages/openafs-*-doc.tar.bz2 \
"$(RPM_RELNOTES)" \
"$(RPM_CHANGELOG)" \
"$(RPM_CELLSERVDB)"
RPM_BUILD_USERSPACE = 1
RPM_BUILD_MODULES = 1
rpm: srpm
rpmbuild \
--rebuild \
--define "_topdir @TOP_OBJDIR@/packages/rpmbuild" \
--define "build_userspace $(RPM_BUILD_USERSPACE)" \
--define "build_modules $(RPM_BUILD_MODULES)" \
packages/openafs-*.src.rpm
dox:
if test "x$(DOXYGEN)" != "x"; then \
mkdir -p doc/doxygen/output && $(DOXYGEN) doc/doxygen/Doxyfile; \
fi
distclean: clean
/bin/rm -rf lib include packages
/bin/rm -f config.log config.cache config.status \
src/config/afsconfig.h src/config/stamp-h1 \
src/config/cc-wrapper \
src/libafs/Makefile \
src/libuafs/Makefile \
Makefile \
src/afs/Makefile \
src/afsd/Makefile \
src/afsmonitor/Makefile \
src/aklog/Makefile \
src/audit/Makefile \
src/auth/Makefile \
src/auth/test/Makefile \
src/bozo/Makefile \
src/bozo/test/Makefile \
src/bu_utils/Makefile \
src/bubasics/Makefile \
src/bucoord/Makefile \
src/budb/Makefile \
src/tbudb/Makefile \
src/butc/Makefile \
src/butm/Makefile \
src/cmd/Makefile \
src/cmd/test/Makefile \
src/comerr/Makefile \
src/comerr/test/Makefile \
src/config/Makefile \
src/config/Makefile.config \
src/config/Makefile.libtool \
src/config/Makefile.lwp \
src/config/Makefile.lwptool \
src/config/Makefile.pthread \
src/config/Makefile.version \
src/config/Makefile.version-CML \
src/config/Makefile.version-NOCML \
src/config/shlib-build \
src/config/shlib-install \
src/crypto/hcrypto/Makefile \
src/crypto/rfc3961/Makefile \
src/dir/Makefile \
src/dir/test/Makefile \
src/dviced/Makefile \
src/dvolser/Makefile \
src/export/Makefile \
src/finale/Makefile \
src/fsint/Makefile \
src/fsprobe/Makefile \
src/gtx/Makefile \
src/kauth/Makefile \
src/kauth/test/Makefile \
src/kopenafs/Makefile \
src/libacl/Makefile \
src/libacl/test/Makefile \
src/libadmin/Makefile \
src/libadmin/adminutil/Makefile \
src/libadmin/bos/Makefile \
src/libadmin/cfg/Makefile \
src/libadmin/cfg/test/Makefile \
src/libadmin/client/Makefile \
src/libadmin/kas/Makefile \
src/libadmin/pts/Makefile \
src/libadmin/samples/Makefile \
src/libadmin/test/Makefile \
src/libadmin/vos/Makefile \
src/libafs/Makefile.common \
src/libafs/MakefileProto.${MKAFS_OSTYPE} \
${DARWIN_PLIST} \
src/libafsauthent/Makefile \
src/libafsrpc/Makefile \
src/libuafs/Makefile.common \
src/libuafs/MakefileProto.${MKAFS_OSTYPE} \
src/log/Makefile \
src/log/test/Makefile \
src/lwp/Makefile \
src/lwp/test/Makefile \
src/opr/Makefile \
src/packaging/MacOS/OpenAFS-debug.Description.plist \
src/packaging/MacOS/OpenAFS-debug.Info.plist \
src/packaging/MacOS/OpenAFS.Description.plist \
src/packaging/MacOS/OpenAFS.Info.plist \
src/packaging/MacOS/OpenAFS.info \
src/packaging/MacOS/buildpkg.sh \
src/packaging/MacOS/pkgbuild.sh \
src/packaging/RedHat/openafs.spec \
src/pam/Makefile \
src/platform/Makefile \
src/platform/${MKAFS_OSTYPE}/Makefile \
src/platform/DARWIN/growlagent/Makefile \
src/platform/DARWIN/PrivilegedHelper/Makefile \
src/procmgmt/Makefile \
src/procmgmt/test/Makefile \
src/ptserver/Makefile \
src/tptserver/Makefile \
src/roken/Makefile \
src/rx/Makefile \
src/rx/bulk.example/Makefile \
src/rx/bulktest/Makefile \
src/rx/multi.example/Makefile \
src/rx/simple.example/Makefile \
src/rx/test/Makefile \
src/rxdebug/Makefile \
src/rxgen/Makefile \
src/rxgk/Makefile \
src/rxkad/Makefile \
src/rxkad/test/Makefile \
src/rxosd/Makefile \
src/rxstat/Makefile \
src/scout/Makefile \
src/sys/Makefile \
src/tbutc/Makefile \
src/tests/Makefile \
src/tests/run-tests \
src/tests/auth/Makefile \
src/tools/Makefile \
src/tools/dumpscan/Makefile \
src/tools/rxperf/Makefile \
src/tsalvaged/Makefile \
src/tsm41/Makefile \
src/tvolser/Makefile \
src/ubik/Makefile \
src/tubik/Makefile \
src/update/Makefile \
src/usd/Makefile \
src/usd/test/Makefile \
src/uss/Makefile \
src/util/Makefile \
src/util/test/Makefile \
src/libafscp/Makefile \
src/venus/Makefile \
src/venus/test/Makefile \
src/vfsck/Makefile \
src/viced/Makefile \
src/vlserver/Makefile \
src/tvlserver/Makefile \
src/vol/Makefile \
src/volser/Makefile \
src/xstat/Makefile \
tests/Makefile \
tests/tap/Makefile \
tests/auth/Makefile \
tests/cmd/Makefile \
tests/common/Makefile \
tests/rx/Makefile \
tests/opr/Makefile \
tests/util/Makefile \
tests/volser/Makefile \
src/helper-splint.sh \
doc/xml/AdminGuide/Makefile \
doc/xml/QuickStartUnix/Makefile \
doc/xml/UserGuide/Makefile \
doc/xml/AdminRef/Makefile \
doc/man-pages/Makefile \
doc/man-pages/install-man \
doc/doxygen/Doxyfile
pristine: distclean
/bin/rm -f src/config/afsconfig.h.in configure configure-libafs \
aclocal.m4 \
libtool \
build-tools/ltmain.sh \
src/cf/libtool.m4 \
src/cf/ltoptions.m4 \
src/cf/ltsugar.m4 \
src/cf/ltversion.m4 \
src/cf/lt~obsolete.m4 \
doc/xml/mobi-fixup.xsl
/bin/rm -rf doc/man-pages/man1 \
doc/man-pages/man3 \
doc/man-pages/man5 \
doc/man-pages/man8
for i in doc/man-pages/pod*/*.pod.in; do \
/bin/rm -f $${i%.in}; \
done
maintainer-clean: pristine