makeflist revision 1.78
11.2Sgwr#!/bin/sh
21.2Sgwr#
31.78Slukem# $NetBSD: makeflist,v 1.78 2022/08/21 07:10:03 lukem 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.78SlukemUsage: ${0##*/} [-L base,x] [-bxo] [-a arch] [-m machine] [-s setsdir] [setname [...]]
171.78Slukem	-L base,x	print specified lists
181.67Slukem	-b		print netbsd + x11 lists
191.67Slukem	-x		print make x11 lists
201.70Slukem	-l		just list the selected set names, not the contents
211.67Slukem	-o		only match obsolete files
221.73Sapb	-a arch		set arch (e.g, m68k, mipseb, mipsel, powerpc) [${MACHINE_ARCH}]
231.73Sapb	-m machine	set machine (e.g, amiga, i386, macppc) [${MACHINE}]
241.73Sapb	-s setsdir	directory to find sets [${setsdir}]
251.73Sapb	[setname [...]]	sets to build [${lists}]
261.67SlukemUSAGE
271.67Slukem	exit 1
281.67Slukem}
291.61Sdyoung
301.2Sgwr# handle args
311.77Schristoswhile getopts L:bxloa:m:s: ch; do
321.67Slukem	case ${ch} in
331.75Suebayasi	L)
341.76Scegger		save_IFS="${IFS}"
351.76Scegger		IFS=,
361.76Scegger		for _list in ${OPTARG}; do
371.76Scegger			case $_list in
381.76Scegger			base)	lists="${lists} ${nlists}" ;;
391.76Scegger			x)	lists="${lists} ${xlists}" ;;
401.76Scegger			esac
411.76Scegger		done
421.76Scegger		IFS="${save_IFS}"
431.75Suebayasi		;;
441.75Suebayasi	# backward compat
451.67Slukem	b)
461.73Sapb		lists="${nlists} ${xlists}"
471.8Slukem		;;
481.67Slukem	x)
491.73Sapb		lists="${xlists}"
501.67Slukem		;;
511.70Slukem	l)
521.70Slukem		listonly=1
531.70Slukem		;;
541.67Slukem	o)
551.67Slukem		obsolete=1
561.67Slukem		;;
571.67Slukem	a)
581.73Sapb		MACHINE_ARCH="${OPTARG}"
591.73Sapb		MACHINE_CPU="$(arch_to_cpu "${OPTARG}")"
601.8Slukem		;;
611.67Slukem	m)
621.73Sapb		MACHINE="${OPTARG}"
631.67Slukem		;;
641.67Slukem	s)
651.73Sapb		setsdir="${OPTARG}"
661.8Slukem		;;
671.8Slukem	*)
681.67Slukem		usage
691.8Slukem		;;
701.2Sgwr	esac
711.2Sgwrdone
721.67Slukemshift $((${OPTIND} - 1))
731.8Slukemif [ -n "$1" ]; then
741.74Sapb	lists="$*"
751.8Slukemfi
761.15Ssimonb
771.73Sapbif [ -n "${listonly}" ]; then
781.70Slukem	echo ${lists} | tr ' ' '\n'
791.70Slukem	exit 0
801.70Slukemfi
811.70Slukem
821.76Sceggerlist_set_files ${lists:-${nlists}} | ${AWK} '{print $1}' | ${SORT} -u
83