summaryrefslogtreecommitdiff
path: root/distrib/sets/makeobsolete
blob: b135a81ffba56d71fe129db7df07ebc2f9828442 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/bin/sh
#
# $NetBSD: makeobsolete,v 1.31 2009/12/05 15:56:25 cegger Exp $
#
# Print out the obsolete files for a set
# Usage: makeobsolete [-b] [-x] [-a arch] [-m machine] [-s setsdir] \
#    [-t target] [setname ...]
#

rundir="$(dirname "$0")" # ${0%/*} isn't good enough when there's no "/"
. "${rundir}/sets.subr"
lists=
target=./dist
obsolete=1

usage()
{
	cat 1>&2 <<USAGE
Usage: ${0##*/} [-a arch] [-m machine] [-s setsdir] [setname ...]
	-L base,x,ext	make specified lists
	-b		make netbsd + x11 lists
	-x 		only make x11 lists
	-y 		only make extsrc lists
	-a arch		set arch (e.g, m68k, mips, powerpc)	[${MACHINE_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
}

while getopts L:bxya:m:s:t: ch; do
	case ${ch} in
	L)
		save_IFS="${IFS}"
		IFS=,
		for _list in ${OPTARG}; do
			case $_list in
			base)	lists="${lists} ${nlists}" ;;
			x)	lists="${lists} ${xlists}" ;;
			ext)	lists="${lists} ${extlists}" ;;
			esac
		done
		IFS="${save_IFS}"
		;;
	# backward compat
	b)
		lists="${nlists} ${xlists}"
		;;
	x)
		lists="${xlists}"
		;;
	y)
		lists="${extlists}"
		;;
	a)
		MACHINE_ARCH="${OPTARG}"
		MACHINE_CPU="$(arch_to_cpu "${OPTARG}")"
		;;
	m)
		MACHINE="${OPTARG}"
		;;
	s)
		setsdir="${OPTARG}"
		;;
	t)
		target="${OPTARG}"
		;;
	*)
		usage
		;;
	esac
done
shift $((${OPTIND} - 1))
if [ -n "$1" ]; then
	lists="$*"
fi

if [ ! -d "${target}" ]; then
	echo "target directory [${target}] doesn't exist"
	exit 1
fi

for setname in ${lists:-${nlists}}; do
	file="${target}/${setname}"
	list_set_files "${setname}" | ${AWK} '{print $1}' | \
		${SORT} -ru > "${file}"
done