11.2Sgwr#!/bin/sh
21.2Sgwr#
31.80Schristos# $NetBSD: makeflist,v 1.80 2023/11/08 13:02:47 christos 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.80Schristosumask 022
311.2Sgwr# handle args
321.77Schristoswhile getopts L:bxloa: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			esac
421.76Scegger		done
431.76Scegger		IFS="${save_IFS}"
441.75Suebayasi		;;
451.75Suebayasi	# backward compat
461.67Slukem	b)
471.73Sapb		lists="${nlists} ${xlists}"
481.8Slukem		;;
491.67Slukem	x)
501.73Sapb		lists="${xlists}"
511.67Slukem		;;
521.70Slukem	l)
531.70Slukem		listonly=1
541.70Slukem		;;
551.67Slukem	o)
561.67Slukem		obsolete=1
571.67Slukem		;;
581.67Slukem	a)
591.73Sapb		MACHINE_ARCH="${OPTARG}"
601.73Sapb		MACHINE_CPU="$(arch_to_cpu "${OPTARG}")"
611.8Slukem		;;
621.67Slukem	m)
631.73Sapb		MACHINE="${OPTARG}"
641.67Slukem		;;
651.67Slukem	s)
661.73Sapb		setsdir="${OPTARG}"
671.8Slukem		;;
681.8Slukem	*)
691.67Slukem		usage
701.8Slukem		;;
711.2Sgwr	esac
721.2Sgwrdone
731.67Slukemshift $((${OPTIND} - 1))
741.8Slukemif [ -n "$1" ]; then
751.74Sapb	lists="$*"
761.8Slukemfi
771.15Ssimonb
781.73Sapbif [ -n "${listonly}" ]; then
791.70Slukem	echo ${lists} | tr ' ' '\n'
801.70Slukem	exit 0
811.70Slukemfi
821.70Slukem
831.76Sceggerlist_set_files ${lists:-${nlists}} | ${AWK} '{print $1}' | ${SORT} -u
84