makeflist revision 1.43
1#!/bin/sh
2#
3# $NetBSD: makeflist,v 1.43 2002/03/26 22:58:17 fredette 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 lib type.
78if [ "$object_fmt" = "ELF" ]; then
79	shlib=elf
80else
81	shlib=aout
82fi
83stlib=$shlib
84
85# Turn off shlibs for some ports.
86if [ "$machine_cpu" = "sh3" -o "$machine_arch" = "m68000" ]; then
87	shlib=no
88fi
89
90# Turn off lintlibs for some ports.
91lintlibs=
92if [ "$machine" = "sparc64" -o "$machine_cpu" = "sh3" -o \
93     "$machine_arch" = "m68000" ]; then
94	lintlibs=no
95fi
96
97for setname in $lists; do
98	cat $setd/lists/$setname/mi
99	if [ "$machine" != "$machine_arch" -a \
100	     -f $setd/lists/$setname/ad.${machine_cpu} ]; then
101		cat $setd/lists/$setname/ad.${machine_cpu}
102	fi
103	if [ -f $setd/lists/$setname/md.${machine} ]; then
104		cat $setd/lists/$setname/md.${machine}
105	fi
106	if [ -f $setd/lists/$setname/stl.mi ]; then
107		cat $setd/lists/$setname/stl.mi
108	fi
109	if [ -f $setd/lists/$setname/stl.${stlib} ]; then
110		cat $setd/lists/$setname/stl.${stlib}
111	fi
112	if [ "$shlib" != "no" ]; then
113		if [ -f $setd/lists/$setname/shl.mi ]; then
114			cat $setd/lists/$setname/shl.mi
115		fi
116		if [ -f $setd/lists/$setname/shl.${shlib} ]; then
117			cat $setd/lists/$setname/shl.${shlib}
118		fi
119	fi
120	if [ "$lintlibs" != no ]; then
121		if [ -f $setd/lists/$setname/lint.mi ]; then
122			cat $setd/lists/$setname/lint.mi
123		fi
124	fi
125	if [ "$tc" = "yes" ]; then
126		if [ -f $setd/lists/$setname/tc.mi ]; then
127			cat $setd/lists/$setname/tc.mi
128		fi
129	else
130		if [ -f $setd/lists/$setname/tc.old ]; then
131			cat $setd/lists/$setname/tc.old
132		fi
133	fi
134done | awk -- '/^[^#]/ {print $1}' | sort -u
135