makeflist revision 1.76
11.2Sgwr#!/bin/sh
21.2Sgwr#
31.76Scegger# $NetBSD: makeflist,v 1.76 2009/12/05 15:56:25 cegger Exp $
41.2Sgwr#
51.8Slukem# Print out the files in some or all lists.
61.70Slukem# Usage: makeflist [-bxlo] [-a arch] [-m machine] [-s setsdir] [setname ...]
71.2Sgwr#
81.2Sgwr
91.73Sapbrundir="$(dirname "$0")" # ${0%/*} isn't good enough when there's no "/"
101.73Sapb. "${rundir}/sets.subr"
111.76Sceggerlists=
121.65Sdyoung
131.67Slukemusage()
141.67Slukem{
151.67Slukem	cat 1>&2 <<USAGE
161.75SuebayasiUsage: ${0##*/} [-L base,x,ext] [-bxyo] [-a arch] [-m machine] [-s setsdir] [setname [...]]
171.75Suebayasi	-L base,x,ext	print specified lists
181.67Slukem	-b		print netbsd + x11 lists
191.67Slukem	-x		print make x11 lists
201.75Suebayasi	-y		print make extsrc lists
211.70Slukem	-l		just list the selected set names, not the contents
221.67Slukem	-o		only match obsolete files
231.73Sapb	-a arch		set arch (e.g, m68k, mipseb, mipsel, powerpc) [${MACHINE_ARCH}]
241.73Sapb	-m machine	set machine (e.g, amiga, i386, macppc) [${MACHINE}]
251.73Sapb	-s setsdir	directory to find sets [${setsdir}]
261.73Sapb	[setname [...]]	sets to build [${lists}]
271.67SlukemUSAGE
281.67Slukem	exit 1
291.67Slukem}
301.61Sdyoung
311.2Sgwr# handle args
321.75Suebayasiwhile getopts L:bxXloa:m:s: ch; do
331.67Slukem	case ${ch} in
341.75Suebayasi	L)
351.76Scegger		save_IFS="${IFS}"
361.76Scegger		IFS=,
371.76Scegger		for _list in ${OPTARG}; do
381.76Scegger			case $_list in
391.76Scegger			base)	lists="${lists} ${nlists}" ;;
401.76Scegger			x)	lists="${lists} ${xlists}" ;;
411.76Scegger			ext)	lists="${lists} ${extlists}" ;;
421.76Scegger			esac
431.76Scegger		done
441.76Scegger		IFS="${save_IFS}"
451.75Suebayasi		;;
461.75Suebayasi	# backward compat
471.67Slukem	b)
481.73Sapb		lists="${nlists} ${xlists}"
491.8Slukem		;;
501.67Slukem	x)
511.73Sapb		lists="${xlists}"
521.67Slukem		;;
531.75Suebayasi	y)
541.75Suebayasi		lists="${extlists}"
551.75Suebayasi		;;
561.70Slukem	l)
571.70Slukem		listonly=1
581.70Slukem		;;
591.67Slukem	o)
601.67Slukem		obsolete=1
611.67Slukem		;;
621.67Slukem	a)
631.73Sapb		MACHINE_ARCH="${OPTARG}"
641.73Sapb		MACHINE_CPU="$(arch_to_cpu "${OPTARG}")"
651.8Slukem		;;
661.67Slukem	m)
671.73Sapb		MACHINE="${OPTARG}"
681.67Slukem		;;
691.67Slukem	s)
701.73Sapb		setsdir="${OPTARG}"
711.8Slukem		;;
721.8Slukem	*)
731.67Slukem		usage
741.8Slukem		;;
751.2Sgwr	esac
761.2Sgwrdone
771.67Slukemshift $((${OPTIND} - 1))
781.8Slukemif [ -n "$1" ]; then
791.74Sapb	lists="$*"
801.8Slukemfi
811.15Ssimonb
821.73Sapbif [ -n "${listonly}" ]; then
831.70Slukem	echo ${lists} | tr ' ' '\n'
841.70Slukem	exit 0
851.70Slukemfi
861.70Slukem
871.76Sceggerlist_set_files ${lists:-${nlists}} | ${AWK} '{print $1}' | ${SORT} -u
88