makeflist revision 1.42
1#!/bin/sh
2#
3# $NetBSD: makeflist,v 1.42 2002/02/27 10:42:55 lukem 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
10: ${MAKE=make}
11machine=`${MAKE} print_machine`
12machine_arch=`${MAKE} print_machine_arch`
13machine_cpu=`${MAKE} print_machine_cpu`
14object_fmt=`${MAKE} print_object_fmt`
15tc=`${MAKE} print_use_new_toolchain`
16x11_version=`${MAKE} print_x11_version`
17setd=`pwd`
18nlists="base comp etc games man misc text"
19xlists=
20for xlist in xbase xcomp xcontrib xfont xserver xmisc
21do
22 if [ -z "$xlists" ]
23 then
24  xlists=$xlist
25 else
26  xlists="$xlists $xlist"
27 fi
28 if [ -d "$setd/lists/$xlist${x11_version}" ]
29 then
30  xlists="$xlists $xlist${x11_version}"
31 fi
32done
33lists=$nlists
34
35# handle args
36while : ; do
37	case $1 in
38	-b*)
39		lists="$xlists $nlists"
40		;;
41	-x*)
42		lists=$xlists
43		;;
44	-a*)
45		machine_arch=`MACHINE_ARCH=${2} ${MAKE} print_machine_arch`
46		machine_cpu=`MACHINE_ARCH=${2} ${MAKE} print_machine_cpu`
47		shift
48		;;
49	-m*)
50		machine=$2; shift
51		;;
52	-s*)
53		setd=$2; shift
54		;;
55	-*)
56		cat 1>&2 <<USAGE
57Usage: $0 [-b] [-x] [-a arch] [-m machine] [-s setsdir] [setname ...]
58	-b		make netbsd + x11 lists
59	-x		only make x11 lists
60	-a arch		set arch (e.g, m68k, mipseb, mipsel, powerpc) [$machine_arch]
61	-m machine	set machine (e.g, amiga, i386, macppc) [$machine]
62	-s setsdir	directory to find sets [$setd]
63	[setname ...]	sets to build [$lists]
64USAGE
65		exit 1
66		;;
67	*)
68		break
69		;;
70	esac
71	shift
72done
73if [ -n "$1" ]; then
74	lists="$@"
75fi
76
77# Determine shlib type.
78if [ "$object_fmt" = "ELF" ]; then
79	shlib=elf
80elif [ "$machine_cpu" = "sh3" ]; then
81	shlib=
82else
83	shlib=aout
84fi
85
86# Turn off lintlibs for some ports.
87lintlibs=
88if [ "$machine" = "sparc64" -o "$machine_cpu" = "sh3" -o \
89     "$machine_arch" = "m68000" ]; then
90	lintlibs=no
91fi
92
93for setname in $lists; do
94	cat $setd/lists/$setname/mi
95	if [ "$machine" != "$machine_arch" -a \
96	     -f $setd/lists/$setname/ad.${machine_cpu} ]; then
97		cat $setd/lists/$setname/ad.${machine_cpu}
98	fi
99	if [ -f $setd/lists/$setname/md.${machine} ]; then
100		cat $setd/lists/$setname/md.${machine}
101	fi
102	if [ "$shlib" != "" ]; then
103		if [ -f $setd/lists/$setname/shl.mi ]; then
104			cat $setd/lists/$setname/shl.mi
105		fi
106		if [ -f $setd/lists/$setname/shl.${shlib} ]; then
107			cat $setd/lists/$setname/shl.${shlib}
108		fi
109	fi
110	if [ "$lintlibs" != no ]; then
111		if [ -f $setd/lists/$setname/lint.mi ]; then
112			cat $setd/lists/$setname/lint.mi
113		fi
114	fi
115	if [ "$tc" = "yes" ]; then
116		if [ -f $setd/lists/$setname/tc.mi ]; then
117			cat $setd/lists/$setname/tc.mi
118		fi
119	else
120		if [ -f $setd/lists/$setname/tc.old ]; then
121			cat $setd/lists/$setname/tc.old
122		fi
123	fi
124done | awk -- '/^[^#]/ {print $1}' | sort -u
125