NetBSD-5.0.2/distrib/sets/makeflist

#!/bin/sh
#
# $NetBSD: makeflist,v 1.74 2006/01/04 13:40:23 apb Exp $
#
# Print out the files in some or all lists.
# Usage: makeflist [-bxlo] [-a arch] [-m machine] [-s setsdir] [setname ...]
#

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

usage()
{
	cat 1>&2 <<USAGE
Usage: ${0##*/} [-bxlo] [-a arch] [-m machine] [-s setsdir] [setname [...]]
	-b		print netbsd + x11 lists
	-x		print make x11 lists
	-l		just list the selected set names, not the contents
	-o		only match obsolete files
	-a arch		set arch (e.g, m68k, mipseb, mipsel, powerpc) [${MACHINE_ARCH}]
	-m machine	set machine (e.g, amiga, i386, macppc) [${MACHINE}]
	-s setsdir	directory to find sets [${setsdir}]
	[setname [...]]	sets to build [${lists}]
USAGE
	exit 1
}

# handle args
while getopts bxloa:m:s: ch; do
	case ${ch} in
	b)
		lists="${nlists} ${xlists}"
		;;
	x)
		lists="${xlists}"
		;;
	l)
		listonly=1
		;;
	o)
		obsolete=1
		;;
	a)
		MACHINE_ARCH="${OPTARG}"
		MACHINE_CPU="$(arch_to_cpu "${OPTARG}")"
		;;
	m)
		MACHINE="${OPTARG}"
		;;
	s)
		setsdir="${OPTARG}"
		;;
	*)
		usage
		;;
	esac
done
shift $((${OPTIND} - 1))
if [ -n "$1" ]; then
	lists="$*"
fi

if [ -n "${listonly}" ]; then
	echo ${lists} | tr ' ' '\n'
	exit 0
fi

list_set_files ${lists} | ${AWK} '{print $1}' | ${SORT} -u