f2cc32c633
after the first in each line of a set list are ignored. This introduces no change in current set list behavior, but will need to be revisited if we wish to distribute files with spaces in their names -- in this case we can move to tab separated fields or some other behavior. Current set lists work exactly as before, but in the future set lists may have additional fields for use in a system packaging script. I will post a detailed work plan for the system package system which uses this to tech-pkg and tech-install in the next day or so.
89 lines
1.9 KiB
Bash
Executable File
89 lines
1.9 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# $NetBSD: makeobsolete,v 1.2 2000/01/23 20:31:17 jwise Exp $
|
|
#
|
|
# Print out the obsolete files for a set
|
|
# Usage: makeobsolete [-b] [-x] [-a arch] [-m machine] [-s setsdir] \
|
|
# [-t target] [setname ...]
|
|
#
|
|
|
|
# set defaults
|
|
: ${MAKE=make}
|
|
machine=${MACHINE:-`printf 'xxx:\n\techo ${MACHINE}' | $MAKE -s -f-`}
|
|
arch=${MACHINE_ARCH:-`printf 'xxx:\n\techo ${MACHINE_ARCH}' | $MAKE -s -f-`}
|
|
setd=`pwd`
|
|
nlists="base comp etc games man misc secr text"
|
|
xlists="xbase xcomp xcontrib xfont xserver"
|
|
lists=$nlists
|
|
target=./dist
|
|
|
|
# handle args
|
|
while : ; do
|
|
case $1 in
|
|
-b*)
|
|
lists="$xlists $nlists"
|
|
;;
|
|
-x*)
|
|
lists=$xlists;;
|
|
-a*)
|
|
arch=$2; shift
|
|
;;
|
|
-m*)
|
|
machine=$2; shift
|
|
;;
|
|
-s*)
|
|
setd=$2; shift
|
|
;;
|
|
-t*)
|
|
target=$2;shift
|
|
;;
|
|
-*)
|
|
cat 1>&2 <<USAGE
|
|
Usage: $0 [-a arch] [-m machine] [-s setsdir] [setname ...]
|
|
-b make netbsd + x11 lists
|
|
-x only make x11 lists
|
|
-a arch set arch (e.g, m68k, mips, powerpc) [$arch]
|
|
-m machine set machine (e.g, amiga, i386, macppc) [$machine]
|
|
-s setsdir directory to find sets [$setd]
|
|
-t target target directory [$target]
|
|
[setname ...] sets to build
|
|
USAGE
|
|
exit 1
|
|
;;
|
|
*)
|
|
break
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
if [ -n "$1" ]; then
|
|
lists="$*"
|
|
fi
|
|
|
|
# Convert mipse[lb] to mips after processing command line arguments.
|
|
arch=`echo $arch | sed s,^mipse.,mips,`
|
|
|
|
if [ ! -d $target ] ; then
|
|
echo "target directory [$target] doesn't exists"
|
|
exit 1
|
|
fi
|
|
|
|
for setname in $lists; do
|
|
file=$target/${setname}_obsolete
|
|
(
|
|
if [ -f $setd/lists/$setname/obsolete.mi ]; then
|
|
awk -- '{print $1}' $setd/lists/$setname/obsolete.mi
|
|
fi
|
|
if [ "$machine" != "$cpu" -a \
|
|
-f $setd/lists/$setname/obsolete.${arch} ]; then
|
|
awk -- '{print $1}' $setd/lists/$setname/obsolete.${arch}
|
|
fi
|
|
if [ -f $setd/lists/$setname/obsolete.${machine} ]; then
|
|
awk -- '{print $1}' $setd/lists/$setname/obsolete.${machine}
|
|
fi) | egrep -v '^#' | sort -u > $file
|
|
if [ ! -s $file ] ; then
|
|
rm $file
|
|
fi
|
|
|
|
done | egrep -v '^#' | sort -u
|