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
11 TOP_SRCDIR=@TOP_SRCDIR@
12 INSTALL=${SRCDIR}bin/install
14 MKDIR_IF_NEEDED=[ -d $$1 ] || mkdir -p $$1
16 # Systype-generic items
17 SYS_NAME=@AFS_SYSNAME@
18 MKAFS_OSTYPE=@MKAFS_OSTYPE@
20 # Systype-specific items
21 LINUX_KERNEL_PATH=@LINUX_KERNEL_PATH@
22 LINUX_VERSION=@LINUX_VERSION@
27 # Enable build+install of obsolete and insecure packages
28 # Set to anything other than YES, or comment out to disable the build
29 WITH_OBSOLETE=@WITH_OBSOLETE@
30 WITH_INSECURE=@WITH_INSECURE@
32 ENABLE_KERNEL_MODULE=@ENABLE_KERNEL_MODULE@
34 # To compile AFS from scratch in the src tree run "make".
35 # This recursively calls "make install ..." and does not depend on the
36 # existence of any non-standard programs.
37 # To compile for the kernel type "make blibafs". This assumes install,
38 # rxgen, compile_et and others already exist and runs it with
39 # "-argument kinstall".
41 COMPILE_PART1=cd src; cd
42 COMPILE_PART2=; $(MAKE) install
43 COMPILE_PART3=; $(MAKE) test
44 COMPILE_CLEAN=; $(MAKE) clean
47 set ${SYS_NAME}/dest; $(MKDIR_IF_NEEDED)
51 set ${SYS_NAME}/dest; $(MKDIR_IF_NEEDED)
52 $(MAKE) install TARGET=finale_nolibafs
55 set ${SYS_NAME}/dest; $(MKDIR_IF_NEEDED)
56 $(MAKE) install TARGET=libafs
61 ${COMPILE_PART1} config ${COMPILE_PART2}
64 ${COMPILE_PART1} pinstall ${COMPILE_PART2}
66 procmgmt: config pinstall
67 ${COMPILE_PART1} procmgmt ${COMPILE_PART2}
69 util: pinstall procmgmt
70 ${COMPILE_PART1} util ${COMPILE_PART2}
72 audit: pinstall rx rxkad fsint
73 ${COMPILE_PART1} audit ${COMPILE_PART2}
76 ${COMPILE_PART1} comerr ${COMPILE_PART2}
79 ${COMPILE_PART1} cmd ${COMPILE_PART2}
80 @case ${SYS_NAME} in \
81 sgi_6* | sun4x_57 | sun4x_58 | hp_ux11* | sparc64_linux* | alpha_linux* ) \
82 ${COMPILE_PART1} cmd ${COMPILE_PART2} install64 ;; \
86 ${COMPILE_PART1} lwp ${COMPILE_PART2}
89 ${COMPILE_PART1} rxgen ${COMPILE_PART2}
94 ${COMPILE_PART1} rx ${COMPILE_PART2}
97 ${COMPILE_PART1} rx ${COMPILE_PART2}
100 ${COMPILE_PART1} rxstat ${COMPILE_PART2}
103 ${COMPILE_PART1} rx ${COMPILE_PART2}
106 ${COMPILE_PART1} rx ${COMPILE_PART3}
108 fsint: project kfsint
110 kfsint: lwp rxgen rxincls
111 ${COMPILE_PART1} fsint ${COMPILE_PART2}
113 export2: project fsint
116 @case ${SYS_NAME} in \
118 ${COMPILE_PART1} export ${COMPILE_PART2} ;; \
119 * ) echo skipping export for ${SYS_NAME} ;; \
123 ${COMPILE_PART1} afs ${COMPILE_PART2}
126 ${COMPILE_PART1} des ${COMPILE_PART2}
128 sys: project des rx rxstat fsint
129 ${COMPILE_PART1} sys ${COMPILE_PART2}
132 ${COMPILE_PART1} rxkad ${COMPILE_PART2}
135 ${COMPILE_PART1} auth ${COMPILE_PART2}
137 auth: project comerr des lwp rx sys rxkad audit
138 ${COMPILE_PART1} auth ${COMPILE_PART2}
141 ${COMPILE_PART1} ubik ${COMPILE_PART2}
144 ${COMPILE_PART1} ubik ${COMPILE_PART3}
146 ptserver: project ubik cmd comerr auth audit
147 ${COMPILE_PART1} ptserver ${COMPILE_PART2}
149 kauth: project ubik cmd auth comerr ptserver audit libacl
150 ${COMPILE_PART1} kauth ${COMPILE_PART2}
152 dauth: project ubik cmd auth comerr
153 ${COMPILE_PART1} dauth ${COMPILE_PART2}
155 libacl: project ptserver
156 ${COMPILE_PART1} libacl ${COMPILE_PART2}
159 ${COMPILE_PART1} dir ${COMPILE_PART2}
162 ${COMPILE_PART1} dir ${COMPILE_PART2}
164 # Removed from sgi_* case below:
165 # ${COMPILE_PART1} sgiefs ${COMPILE_PART2};;
167 case ${SYS_NAME} in \
169 echo "SGI efs not supported" ;; \
171 echo No efs stuff for ${SYS_NAME};; \
174 vol: project dir afs sgiefs
175 ${COMPILE_PART1} vol ${COMPILE_PART2}
177 vlserver: project vol audit
178 ${COMPILE_PART1} vlserver ${COMPILE_PART2}
180 viced: project vlserver audit
181 ${COMPILE_PART1} viced ${COMPILE_PART2}
183 tviced: project viced vlserver libafsrpc libafsauthent
184 case ${SYS_NAME} in \
185 alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux110) \
186 ${COMPILE_PART1} tviced ${COMPILE_PART2} ;; \
188 echo Not building MT viced for ${SYS_NAME} ;; \
191 volser: project tviced usd kauth audit
192 ${COMPILE_PART1} volser ${COMPILE_PART2}
194 venus: project volser ptserver
195 ${COMPILE_PART1} venus ${COMPILE_PART2}
196 ${COMPILE_PART1} venus/test ${COMPILE_PART2}
198 afsd: project sys kauth
199 ${COMPILE_PART1} afsd ${COMPILE_PART2}
202 ${COMPILE_PART1} null ${COMPILE_PART2}
204 gtx: project null auth # kauth rxkad ?
205 case ${SYS_NAME} in \
206 rs_aix* | sun4x_5? | sgi_6? | *linux* | ppc_darwin* | *fbsd*) \
207 rm -f ${DESTDIR}lib/afs/libtermlib.a; \
208 ln -s libnull.a ${DESTDIR}lib/afs/libtermlib.a; \
209 ${COMPILE_PART1} gtx ${COMPILE_PART2};; \
211 rm -f ${DESTDIR}lib/afs/libtermlib.a; \
212 ln -s /usr/lib/libtermlib.a ${DESTDIR}lib/afs/libtermlib.a; \
213 ${COMPILE_PART1} gtx ${COMPILE_PART2};; \
216 fsprobe: project util fsint
217 ${COMPILE_PART1} fsprobe ${COMPILE_PART2}
219 scout: project gtx fsprobe
220 ${COMPILE_PART1} scout ${COMPILE_PART2}
222 uss: des kauth project rx vlserver vol
223 ${COMPILE_PART1} uss ${COMPILE_PART2}
225 bozo: project ntp audit
226 ${COMPILE_PART1} bozo ${COMPILE_PART2}
229 # Removed from respective case statements below:
230 # ${COMPILE_PART1} vfsckaix42 ${COMPILE_PART2} ;;
231 # ${COMPILE_PART1} vfscksol25 ${COMPILE_PART2} ;;
232 # ${COMPILE_PART1} vfscksol26 ${COMPILE_PART2} ;;
233 # ${COMPILE_PART1} vfscksol27 ${COMPILE_PART2} ;;
236 case ${SYS_NAME} in \
237 sgi_* | *linux* | rs_aix42 | ppc_darwin* | hp_ux* | *fbsd* ) \
238 echo skip vfsck for ${SYS_NAME} ;; \
240 ${COMPILE_PART1} vfsck ${COMPILE_PART2} ;; \
243 login: project kauth rxkad
245 case ${SYS_NAME} in \
247 ${COMPILE_PART1} sgistuff ${COMPILE_PART2} ;; \
249 ${COMPILE_PART1} tsm41 ${COMPILE_PART2} ;; \
251 ${COMPILE_PART1} sia ${COMPILE_PART2} ;; \
253 ${COMPILE_PART1} login ${COMPILE_PART2} ;; \
254 sun4x_* | hp_ux11* | *linux* | *fbsd* ) \
255 ${COMPILE_PART1} pam ${COMPILE_PART2} ;; \
257 echo Skipping login for ${SYS_NAME} ;; \
259 ${COMPILE_PART1} login ${COMPILE_PART2} ;; \
291 libafs: libafs_setup ${KERNELDIR}
292 ${COMPILE_PART1} libafs ${COMPILE_PART2}
294 libuafs: libuafs_setup ${UKERNELDIR}
296 case ${SYS_NAME} in \
298 echo Skipping libuafs for ${SYS_NAME} ;; \
300 ${COMPILE_PART1} libuafs ${COMPILE_PART2} ;; \
304 ${COMPILE_PART1} afsweb ${COMPILE_PART2}
307 ${COMPILE_PART1} update ${COMPILE_PART2}
310 ${COMPILE_PART1} log ${COMPILE_PART2}
313 ${COMPILE_PART1} bu_utils ${COMPILE_PART2}
316 ${COMPILE_PART1} usd ${COMPILE_PART2}
318 bubasics: project comerr
319 ${COMPILE_PART1} bubasics ${COMPILE_PART2}
321 butm: project bubasics usd
322 ${COMPILE_PART1} butm ${COMPILE_PART2}
324 butc: project bubasics butm budb bucoord cmd
325 ${COMPILE_PART1} butc ${COMPILE_PART2}
327 tbutc: project bubasics butm budb bucoord cmd butc
328 case ${SYS_NAME} in \
329 alpha_dux*|sgi_*|sun4x_*|rs_aix4*|*linux*|hp_ux110) \
330 ${COMPILE_PART1} tbutc ${COMPILE_PART2} ;; \
332 echo Not building MT butc for ${SYS_NAME} ;; \
335 budb: project bubasics
336 ${COMPILE_PART1} budb ${COMPILE_PART2}
338 bucoord: project bubasics budb volser
339 ${COMPILE_PART1} bucoord ${COMPILE_PART2}
342 ${COMPILE_PART1} xstat ${COMPILE_PART2}
344 afsmonitor: project gtx xstat
345 ${COMPILE_PART1} afsmonitor ${COMPILE_PART2}
347 tests: rxtests ubiktests
349 # pthread based user space RX library
350 libafsrpc: rx rxkad des
351 case ${SYS_NAME} in \
352 alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux110) \
353 ${COMPILE_PART1} libafsrpc ${COMPILE_PART2} ;; \
355 echo Not building MT libafsrpc for ${SYS_NAME} ;; \
358 libafsauthent: ubik auth kauth libafsrpc
359 case ${SYS_NAME} in \
360 alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux110) \
361 ${COMPILE_PART1} libafsauthent ${COMPILE_PART2} ;; \
363 echo Not building MT libafsrpc for ${SYS_NAME} ;; \
367 ${COMPILE_PART1} libadmin ${COMPILE_PART2}
368 ${COMPILE_PART1} libadmin/adminutil ${COMPILE_PART2}
369 ${COMPILE_PART1} libadmin/vos ${COMPILE_PART2}
370 ${COMPILE_PART1} libadmin/client ${COMPILE_PART2}
371 ${COMPILE_PART1} libadmin/kas ${COMPILE_PART2}
372 ${COMPILE_PART1} libadmin/pts ${COMPILE_PART2}
373 ${COMPILE_PART1} libadmin/bos ${COMPILE_PART2}
374 ${COMPILE_PART1} libadmin/cfg ${COMPILE_PART2}
375 ${COMPILE_PART1} libadmin/test ${COMPILE_PART2}
376 ${COMPILE_PART1} libadmin/samples ${COMPILE_PART2}
378 libadmin: libafsauthent bozo
379 case ${SYS_NAME} in \
380 alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux110) \
381 $(MAKE) libadmin_real ;; \
383 echo Not building MT libadmin for ${SYS_NAME} ;; \
386 finale: project cmd comerr afsd allrcmds butc tbutc @ENABLE_KERNEL_MODULE@ libuafs audit kauth log package \
387 ptserver scout bu_utils ubik uss bozo vfsck volser \
388 venus update xstat afsmonitor dauth tests libafsrpc \
389 libafsauthent libadmin
390 ${COMPILE_PART1} finale ${COMPILE_PART2}
392 finale_nolibafs: project cmd comerr afsd allrcmds butc tbutc libuafs audit kauth log package \
393 ptserver scout bu_utils ubik uss bozo vfsck volser \
394 venus update xstat afsmonitor dauth tests libafsrpc \
395 libafsauthent libadmin
396 ${COMPILE_PART1} finale ${COMPILE_PART2}
398 # Use washtool to ensure MakefileProto is current and obj/libafs exists.
400 libafs_setup: config export
401 src/config/config src/libafs/MakefileProto.${MKAFS_OSTYPE} src/libafs/Makefile ${SYS_NAME}
403 libuafs_setup: config export
404 src/config/config src/libuafs/MakefileProto.${MKAFS_OSTYPE} src/libuafs/Makefile ${SYS_NAME}
412 kupdate: updatekdir libafs_setup libuafs_setup
427 -${COMPILE_PART1} config ${COMPILE_CLEAN}
428 -${COMPILE_PART1} pinstall ${COMPILE_CLEAN}
429 -${COMPILE_PART1} procmgmt ${COMPILE_CLEAN}
430 -${COMPILE_PART1} util ${COMPILE_CLEAN}
431 -${COMPILE_PART1} audit ${COMPILE_CLEAN}
432 -${COMPILE_PART1} comerr ${COMPILE_CLEAN}
433 -${COMPILE_PART1} cmd ${COMPILE_CLEAN}
434 -${COMPILE_PART1} lwp ${COMPILE_CLEAN}
435 -${COMPILE_PART1} rxgen ${COMPILE_CLEAN}
436 -${COMPILE_PART1} rx ${COMPILE_CLEAN}
437 -${COMPILE_PART1} rxstat ${COMPILE_CLEAN}
438 -${COMPILE_PART1} fsint ${COMPILE_CLEAN}
439 -${COMPILE_PART1} export ${COMPILE_CLEAN}
440 -${COMPILE_PART1} afs ${COMPILE_CLEAN}
441 -${COMPILE_PART1} des ${COMPILE_CLEAN}
442 -${COMPILE_PART1} sys ${COMPILE_CLEAN}
443 -${COMPILE_PART1} rxkad ${COMPILE_CLEAN}
444 -${COMPILE_PART1} auth ${COMPILE_CLEAN}
445 -${COMPILE_PART1} ubik ${COMPILE_CLEAN}
446 -${COMPILE_PART1} ptserver ${COMPILE_CLEAN}
447 -${COMPILE_PART1} kauth ${COMPILE_CLEAN}
448 -${COMPILE_PART1} dauth ${COMPILE_CLEAN}
449 -${COMPILE_PART1} libacl ${COMPILE_CLEAN}
450 -${COMPILE_PART1} dir ${COMPILE_CLEAN}
451 -${COMPILE_PART1} vol ${COMPILE_CLEAN}
452 -${COMPILE_PART1} vlserver ${COMPILE_CLEAN}
453 -${COMPILE_PART1} viced ${COMPILE_CLEAN}
454 -${COMPILE_PART1} viced ${COMPILE_CLEAN}
455 -${COMPILE_PART1} tviced ${COMPILE_CLEAN}
456 -${COMPILE_PART1} volser ${COMPILE_CLEAN}
457 -${COMPILE_PART1} venus ${COMPILE_CLEAN}
458 -${COMPILE_PART1} venus/test ${COMPILE_CLEAN}
459 -${COMPILE_PART1} afsd ${COMPILE_CLEAN}
460 -${COMPILE_PART1} null ${COMPILE_CLEAN}
461 -${COMPILE_PART1} gtx ${COMPILE_CLEAN}
462 -${COMPILE_PART1} fsprobe ${COMPILE_CLEAN}
463 -${COMPILE_PART1} scout ${COMPILE_CLEAN}
464 -${COMPILE_PART1} uss ${COMPILE_CLEAN}
465 -${COMPILE_PART1} bozo ${COMPILE_CLEAN}
466 -${COMPILE_PART1} vfsck ${COMPILE_CLEAN}
467 -${COMPILE_PART1} sgistuff ${COMPILE_CLEAN}
468 -${COMPILE_PART1} tsm41 ${COMPILE_CLEAN}
469 -${COMPILE_PART1} sia ${COMPILE_CLEAN}
470 -${COMPILE_PART1} login ${COMPILE_CLEAN}
471 -${COMPILE_PART1} pam ${COMPILE_CLEAN}
472 -${COMPILE_PART1} afsweb ${COMPILE_CLEAN}
473 -${COMPILE_PART1} update ${COMPILE_CLEAN}
474 -${COMPILE_PART1} log ${COMPILE_CLEAN}
475 -${COMPILE_PART1} bu_utils ${COMPILE_CLEAN}
476 -${COMPILE_PART1} usd ${COMPILE_CLEAN}
477 -${COMPILE_PART1} bubasics ${COMPILE_CLEAN}
478 -${COMPILE_PART1} butm ${COMPILE_CLEAN}
479 -${COMPILE_PART1} butc ${COMPILE_CLEAN}
480 -${COMPILE_PART1} tbutc ${COMPILE_CLEAN}
481 -${COMPILE_PART1} budb ${COMPILE_CLEAN}
482 -${COMPILE_PART1} bucoord ${COMPILE_CLEAN}
483 -${COMPILE_PART1} xstat ${COMPILE_CLEAN}
484 -${COMPILE_PART1} afsmonitor ${COMPILE_CLEAN}
485 -${COMPILE_PART1} libafsrpc ${COMPILE_CLEAN}
486 -${COMPILE_PART1} libafsauthent ${COMPILE_CLEAN}
487 -${COMPILE_PART1} libadmin ${COMPILE_CLEAN}
488 -${COMPILE_PART1} libadmin/adminutil ${COMPILE_CLEAN}
489 -${COMPILE_PART1} libadmin/client ${COMPILE_CLEAN}
490 -${COMPILE_PART1} libadmin/vos ${COMPILE_CLEAN}
491 -${COMPILE_PART1} libadmin/kas ${COMPILE_CLEAN}
492 -${COMPILE_PART1} libadmin/pts ${COMPILE_CLEAN}
493 -${COMPILE_PART1} libadmin/bos ${COMPILE_CLEAN}
494 -${COMPILE_PART1} libadmin/cfg ${COMPILE_CLEAN}
495 -${COMPILE_PART1} libadmin/test ${COMPILE_CLEAN}
496 -${COMPILE_PART1} libadmin/samples ${COMPILE_CLEAN}
497 -${COMPILE_PART1} finale ${COMPILE_CLEAN}
498 -${COMPILE_PART1} mpp ${COMPILE_CLEAN}
499 -${COMPILE_PART1} package ${COMPILE_CLEAN}
500 -${COMPILE_PART1} ntp ${COMPILE_CLEAN}
501 -${COMPILE_PART1} ftpd43+ ${COMPILE_CLEAN}
502 -${COMPILE_PART1} inetd ${COMPILE_CLEAN}
503 -${COMPILE_PART1} rsh ${COMPILE_CLEAN}
504 -${COMPILE_PART1} rlogind ${COMPILE_CLEAN}
505 -${COMPILE_PART1} rcp ${COMPILE_CLEAN}
506 -${COMPILE_PART1} libafs ${COMPILE_CLEAN}
507 -${COMPILE_PART1} libuafs ${COMPILE_CLEAN}
511 /bin/rm -f config.log config.cache config.status Makefile
512 /bin/rm -f src/config/afsconfig.h src/config/Makefile.${SYS_NAME}
513 /bin/rm -f src/libafs/Makefile src/libafs/MakefileProto.${MKAFS_OSTYPE}
514 /bin/rm -f src/libuafs/Makefile afs.ppc_darwin.plist src/pam/Makefile
517 /bin/rm -f src/config/afsconfig.h.in configure aclocal.m4
520 # Below targets are all deprecated, insecure, or obsolte,
521 # see README.OBSOLETE and README.INSECURE for more info
525 @case ${WITH_OBSOLETE} in \
526 YES) ${COMPILE_PART1} mpp ${COMPILE_PART2} ;; \
527 *) echo skipping deprecated target: mpp ;; \
531 @case ${WITH_OBSOLETE} in \
532 YES) ${COMPILE_PART1} package ${COMPILE_PART2} ;; \
533 *) echo skipping deprecated target: package ;; \
536 package.files: package
537 @case ${WITH_OBSOLETE} in \
538 YES) ${DESTDIR}/bin/makepkgfiles afs.dev ;; \
539 *) echo skipping deprecated target: package.files ;; \
543 @case ${WITH_OBSOLETE} in \
544 YES) case ${SYS_NAME} in \
545 sun4x_58 | *linux* | *fbsd* | ppc_darwin* ) echo skipping ntp for ${SYS_NAME} ;; \
546 * ) ${COMPILE_PART1} ntp ${COMPILE_PART2} ;; \
548 *) echo skipping deprecated target: ntp ;; \
551 ftpd43+: project kauth rxkad
552 @case ${WITH_INSECURE} in \
553 YES) case ${SYS_NAME} in \
554 rs_aix* | sun4x_55 | *linux*) \
555 ${COMPILE_PART1} ftpd43+ ${COMPILE_PART2} ;; \
556 *) echo skip ftpd43+ for ${SYS_NAME} ;; \
558 *) echo skipping deprecated target: ftpd43+ ;; \
561 inetd: project kauth rxkad
562 @case ${WITH_INSECURE} in \
563 YES) ${COMPILE_PART1} inetd ${COMPILE_PART2} ;; \
564 *) echo skipping deprecated target: inetd ;; \
568 @case ${WITH_INSECURE} in \
569 YES) ${COMPILE_PART1} rsh ${COMPILE_PART2} ;; \
570 *) echo skipping deprecated target: rsh ;; \
573 rlogind: project rsh ftpd43+ login
574 @case ${WITH_INSECURE} in \
575 YES) case ${SYS_NAME} in \
576 rs_aix*) ${COMPILE_PART1} rlogind ${COMPILE_PART2} ;; \
577 *) echo skipping rlogind for ${SYS_NAME} ;; \
579 *) echo skipping deprecated target: rlogind ;; \
582 rcp: project rsh inetd
583 @case ${WITH_INSECURE} in \
584 YES) case ${SYS_NAME} in \
585 sgi_* ) echo skip rcp for ${SYS_NAME} ;; \
586 *) ${COMPILE_PART1} rcp ${COMPILE_PART2} ;; \
588 *) echo skipping deprecated target: rcp ;; \
591 allrcmds: project rcp rlogind