2021-10-11 18:37:13 -03:00

183 lines
5.3 KiB
Makefile

#
# Copyright (c) 1980 Regents of the University of California.
# All rights reserved. The Berkeley software License Agreement
# specifies the terms and conditions for redistribution.
#
# @(#)Makefile 1.1 94/10/31 SMI; from UCB 5.6 85/08/26
#
DESTDIR=
CFLAGS= -O
LDFLAGS=
DOPRNT= ../lib/libc/stdio/common
.KEEP_STATE:
# Programs that live in subdirectories, and have makefiles of their own.
#
SUBDIR= dump files fsck getty ifconfig rpc.lockd rpc.statd in.routed restore
# Shell scripts that need only be installed and are never removed.
#
SCRIPT= fastboot fasthalt
SCRIPTSRC= $(SCRIPT:%=%.sh)
# C programs that live in the current directory and do not need
# explicit make lines.
#
STD_SHRD = biod chown clri fsirand inetd \
newfs nfsd portmap reboot renice rmt \
syslogd vipw ypbind arp dmesg dkinfo halt mknod
STD = init intr
# C programs that live in the current directory and need explicit make lines.
#
NSTD= update mkfs in.rlogind in.rshd mount
# C programs that use the rpcsvc library
#
RPCSVC= shutdown umount
# C programs that must run set-group-id kmem.
#
KMEM= arp dmesg
# Architecture-specific programs
#
ASP= pstat
# Architecture-specific programs in subdirectories
#
ASPSUBDIR= crash
# Architecture-specific programs that must run set-group-id kmem
#
ASKMEM= pstat
# Install directory for architecture-specific programs, absolute path
#
ASDIR= /usr/kvm
# Install directory for architecture-specific programs, relative path
#
RELASDIR= ../kvm
# C programs that must run set-group-id operator.
#
OPERATOR= dkinfo
# Programs built "small"
#
chown fsirand dkinfo dmesg mkfs mknod newfs := LDFLAGS += -n -Bdynamic
# Programs which are installed in /usr/etc for which symlinks from /etc
# will be maintained. NOTE: Some of these programs are built under usr.etc.
#
SYMLINKS= arp clri cron chown chroot config dkinfo dmesg dump fastboot \
fasthalt fsck halt link mkfs mknod mount ncheck newfs \
pstat rdump reboot renice restore rmt rrestore shutdown umount \
update unlink vipw
all: ${SUBDIR} ${STD} ${NSTD} ${RPCSVC} ${STD_SHRD} ${ASP} ${ASPSUBDIR}
${SUBDIR}: FRC
cd $@; ${MAKE} ${MFLAGS}
${ASPSUBDIR}: FRC
cd $@; ${MAKE} ${MFLAGS} "ASDIR=${ASDIR}" "RELASDIR=${RELASDIR}"
${STD_SHRD}:
${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.c
${STD}: doprnt.o $$@.c
${CC} ${LDFLAGS} -Bstatic ${CFLAGS} -o $@ $@.c doprnt.o
doprnt.o: ${DOPRNT}/doprnt.c
${CC} ${CFLAGS} -c -DFLOAT=0 -I${DOPRNT} ${DOPRNT}/doprnt.c
${RPCSVC}:
${CC} ${CFLAGS} -o $@ $@.c ${LDFLAGS} -lrpcsvc
install: ${STD} ${NSTD} ${RPCSVC} ${STD_SHRD} ${SCRIPTSRC} ${ASP}
install -d -o bin -m 755 ${DESTDIR}/etc
install -d -o bin -m 755 ${DESTDIR}/var
install -d -o bin -m 755 ${DESTDIR}/var/spool
install -d -o bin -m 777 ${DESTDIR}/var/tmp
install -d -o bin -m 755 ${DESTDIR}/var/preserve
install -d -o bin -m 755 ${DESTDIR}/usr/etc
install -d -o bin -m 755 ${DESTDIR}${ASDIR}
install -d -o bin -m 755 ${DESTDIR}${ASDIR}/boot
@set -x;for i in ${SUBDIR}; do \
(cd $$i; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} install); done
@set -x;for i in ${SCRIPT}; do (install -c $$i.sh ${DESTDIR}/usr/etc/$$i); done
install -s ${STD} ${NSTD} ${RPCSVC} ${STD_SHRD} ${DESTDIR}/usr/etc
@set -x;for i in ${ASP}; do \
(install -s $$i ${DESTDIR}${ASDIR}/$$i; \
rm -f ${DESTDIR}/usr/etc/$$i; \
ln -s ${RELASDIR}/$$i ${DESTDIR}/usr/etc/$$i); done
@set -x;for i in ${ASPSUBDIR}; do \
(cd $$i; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} ASDIR=${ASDIR} install); done
@set -x;for i in ${KMEM}; do (chgrp kmem ${DESTDIR}/usr/etc/$$i; \
chmod 2755 ${DESTDIR}/usr/etc/$$i); done
@set -x;for i in ${ASKMEM}; do (chgrp kmem ${DESTDIR}${ASDIR}/$$i; \
chmod 2755 ${DESTDIR}${ASDIR}/$$i); done
@set -x;for i in ${OPERATOR}; \
do (chgrp operator ${DESTDIR}/usr/etc/$$i; \
chmod 2755 ${DESTDIR}/usr/etc/$$i); done
chown root.operator ${DESTDIR}/usr/etc/shutdown
chmod 4754 ${DESTDIR}/usr/etc/shutdown
install -d -o bin -m 755 ${DESTDIR}/usr/kvm/boot
rm -rf ${DESTDIR}/usr/boot; ln -s ./kvm/boot ${DESTDIR}/usr/boot
install -s mount ${DESTDIR}/usr/kvm/boot/mount
install -s init ${DESTDIR}/usr/kvm/boot/init
install -s intr ${DESTDIR}/usr/kvm/boot/intr
install -s ifconfig/ifconfig ${DESTDIR}/usr/kvm/boot/ifconfig
touch ${DESTDIR}/var/log/syslog
chmod 664 ${DESTDIR}/var/log/syslog
#
# symlinks for compatibility with the old filesystem organization
#
rm -rf ${DESTDIR}/usr/tmp
ln -s ../var/tmp ${DESTDIR}/usr/tmp
rm -rf ${DESTDIR}/etc/tmp
ln -s ../var/tmp ${DESTDIR}/etc/tmp
rm -rf ${DESTDIR}/usr/spool
ln -s ../var/spool ${DESTDIR}/usr/spool
rm -rf ${DESTDIR}/etc/spool
ln -s ../var/spool ${DESTDIR}/etc/spool
@set -x;for i in ${SYMLINKS}; do \
$(RM) ${DESTDIR}/etc/$$i; \
ln -s ../usr/etc/$$i ${DESTDIR}/etc/$$i; done
clean:
rm -f a.out core *.s *.o
for i in ${SUBDIR}; do (cd $$i; ${MAKE} ${MFLAGS} clean); done
rm -f ${STD} ${NSTD} ${RPCSVC} ${STD_SHRD}
FRC:
# Files listed in ${NSTD} have explicit make lines given below.
pstat: pstat.c
${CC} ${CFLAGS} ${LDFLAGS} -o pstat pstat.c -lkvm
update: update.c
${CC} ${CFLAGS} -o update -N update.c
# Following files have explicit make lines because they
# are big and should be linked to be demand paged.
mkfs: mkfs.c
${CC} ${LDFLAGS} ${CFLAGS} -o mkfs mkfs.c
in.rlogind: in.rlogind.c
${CC} ${CFLAGS} -o in.rlogind in.rlogind.c
in.rshd: in.rshd.c
${CC} ${CFLAGS} -o in.rshd in.rshd.c
mount: mount.c
${CC} ${CFLAGS} -Bstatic -o mount mount.c -lrpcsvc