makeflist revision 1.10
1#!/bin/sh
2#
3# $NetBSD: makeflist,v 1.10 1998/07/22 17:01:43 perry Exp $
4#
5# Print out the files in some or all lists.
6# Usage: makeflist [-b] [-x] [-a arch] [-m machine] [-s setsdir] [setname ...]
7#
8
9# set defaults
10machine=${MACHINE:-`printf 'xxx:\n\techo ${MACHINE}' | make -s -f-`}
11arch=${MACHINE_ARCH:-`printf 'xxx:\n\techo ${MACHINE_ARCH}' | make -s -f-`}
12setd=`pwd`
13nlists="base comp etc games man misc text"
14xlists="xbase xcomp xcontrib xfont xserver"
15lists=$nlists
16
17# handle args
18while : ; do
19	case $1 in
20	-d*)
21		nlists="$nlists secr"
22		lists=$nlists
23		;;
24	-b*)
25		lists="$xlists $nlists"
26		;;
27	-x*)
28		lists=$xlists
29		;;
30	-a*)
31		arch=$2; shift
32		;;
33	-m*)
34		machine=$2; shift
35		;;
36	-s*)
37		setd=$2; shift
38		;;
39	-*)
40		cat 1>&2 <<USAGE
41Usage: $0 [-b] [-x] [-a arch] [-m machine] [-s setsdir] [setname ...]
42	-b		make netbsd + x11 lists
43	-d		do domestic ("secr") sets
44	-x		only make x11 lists
45	-a arch		set arch (e.g, m68k, mips, powerpc)	[$arch]
46	-m machine	set machine (e.g, amiga, i386, macppc)	[$machine]
47	-s setsdir	directory to find sets	[$setd]
48	[setname ...]	sets to build 	[$lists]
49USAGE
50		exit 1
51		;;
52	*)
53		break
54		;;
55	esac
56	shift
57done
58if [ -n "$1" ]; then
59	lists="$@"
60fi
61
62# Compute toolchain  used on target cpu.
63if [ "$machine" = "vax" ]; then
64	shlib=
65elif [ "$arch" = "mips" -o "$machine" = "alpha" ]; then
66        shlib=elf
67else
68        shlib=aout
69fi
70
71for setname in $lists; do
72	cat $setd/lists/$setname/mi
73	if [ "$machine" != "$cpu" -a -f $setd/lists/$setname/ad.${arch} ]; then
74		cat $setd/lists/$setname/ad.${arch}
75	fi
76	if [ -f $setd/lists/$setname/md.${machine} ]; then
77		cat $setd/lists/$setname/md.${machine}
78	fi
79	if [ "$shlib" != "" ]; then
80		if [ -f $setd/lists/$setname/shl.mi ]; then
81			cat $setd/lists/$setname/shl.mi
82		fi
83		if [ -f $setd/lists/$setname/shl.${shlib} ]; then
84			cat $setd/lists/$setname/shl.${shlib}
85		fi
86	fi
87
88	# Split man/md_share into: this machine, other machine
89	if [ $setname = man ]; then
90		grep ${machine} $setd/lists/man/md_share
91	fi
92	if [ $setname = misc ]; then
93		grep -v ${machine} $setd/lists/man/md_share
94	fi
95done | sort -u
96