sets.subr revision 1.7
1#
2# list_set_files setname
3# 
4# Produce a packing list for setname. Each record is a line
5# consisting of a path and a System Package name, separated by
6# whitespace. E.g.,
7#
8# ./bin/cp                base-util-root
9#
10# Environment
11#
12#	have_gcc3
13#	krb
14#	krb4
15# 	lintlibs
16# 	lkm
17# 	machine
18# 	machine_arch
19# 	machine_cpu
20# 	setd
21# 	shlib
22# 	stlib
23# 	toolchain_missing
24#
25list_set_files () {
26	for setname; do
27		list_set_lists $setname
28	done | xargs cat | grep -v '^#'
29}
30
31#
32# list_set_lists setname
33# 
34# Print to stdout a list of files, one filename per line, which
35# concatenate to create the packing list for setname. E.g.,
36#
37# 	.../lists/base/mi
38# 	.../lists/base/rescue.mi
39# 	.../lists/base/md.i386
40# 	.
41# 	.
42# 	.
43#
44# In each file, a record consists of a path and a System Package name,
45# separated by whitespace. E.g.,
46#
47# 	# $NetBSD: sets.subr,v 1.7 2003/12/11 09:46:26 dyoung Exp $
48# 	.			base-sys-root
49# 	./altroot		base-sys-root
50# 	./bin			base-sys-root
51# 	./bin/[			base-util-root
52# 	./bin/cat		base-util-root
53# 	.
54# 	.
55# 	.
56#
57# A # in the first column marks a comment.
58#
59# Environment
60#
61#	have_gcc3
62#	krb
63#	krb4
64# 	lintlibs
65# 	lkm
66# 	machine
67# 	machine_arch
68# 	machine_cpu
69# 	setd
70# 	shlib
71# 	stlib
72# 	toolchain_missing
73#
74list_set_lists () {
75	setname=$1
76
77	echo $setd/lists/$setname/mi
78	if [ "$machine" != "$machine_arch" ]; then
79		# Prefer an ad.${machine_arch} over an ad.${machine_cpu},
80		# since the arch-specific one will be more specific than
81		# the cpu-specific one.
82		if [ -f $setd/lists/$setname/ad.${machine_arch} ]; then
83			echo $setd/lists/$setname/ad.${machine_arch}
84		elif [ -f $setd/lists/$setname/ad.${machine_cpu} ]; then
85			echo $setd/lists/$setname/ad.${machine_cpu}
86		fi
87		if [ "$shlib" != "no" -a \
88		     -f $setd/lists/$setname/ad.${machine_cpu}.shl ]; then
89			echo $setd/lists/$setname/ad.${machine_cpu}.shl
90		fi
91	fi
92	if [ -f $setd/lists/$setname/md.${machine}.${machine_arch} ]; then
93		echo $setd/lists/$setname/md.${machine}.${machine_arch}
94	elif [ -f $setd/lists/$setname/md.${machine} ]; then
95		echo $setd/lists/$setname/md.${machine}
96	fi
97	if [ -f $setd/lists/$setname/stl.mi ]; then
98		echo $setd/lists/$setname/stl.mi
99	fi
100	if [ -f $setd/lists/$setname/stl.${stlib} ]; then
101		echo $setd/lists/$setname/stl.${stlib}
102	fi
103	if [ "$shlib" != "no" ]; then
104		if [ -f $setd/lists/$setname/shl.mi ]; then
105			echo $setd/lists/$setname/shl.mi
106		fi
107		if [ -f $setd/lists/$setname/shl.${shlib} ]; then
108			echo $setd/lists/$setname/shl.${shlib}
109		fi
110		if [ "$krb" != "no" -a \
111		     -f $setd/lists/$setname/krb.shl.${shlib} ]; then
112			echo $setd/lists/$setname/krb.shl.${shlib}
113		fi
114		if [ "$krb" != "no" -a "$krb4" != "no" -a \
115		     -f $setd/lists/$setname/krb4.shl.${shlib} ]; then
116			echo $setd/lists/$setname/krb4.shl.${shlib}
117		fi
118		if [ "$krb" != "no" -a -f $setd/lists/$setname/krb.shl.mi ]
119		then
120			echo $setd/lists/$setname/krb.shl.mi
121		fi
122		if [ "$krb" != "no" -a "$krb4" != "no" -a \
123		     -f $setd/lists/$setname/krb4.shl.mi ]
124		then
125			echo $setd/lists/$setname/krb4.shl.mi
126		fi
127	fi
128	if [ "$krb" != "no" -a -f $setd/lists/$setname/krb.mi ]; then
129		echo $setd/lists/$setname/krb.mi
130	fi
131	if [ "$krb" != "no" -a "$krb4" != "no" -a \
132	     -f $setd/lists/$setname/krb4.mi ]; then
133		echo $setd/lists/$setname/krb4.mi
134	fi
135	if [ "$lkm" != "no" ]; then
136		if [ -f $setd/lists/$setname/lkm.mi ]; then
137			echo $setd/lists/$setname/lkm.mi
138		fi
139	fi
140	if [ "$lintlibs" != no ]; then
141		if [ -f $setd/lists/$setname/lint.mi ]; then
142			echo $setd/lists/$setname/lint.mi
143		fi
144		if [ "$krb" != "no" -a "$krb4" != "no" -a \
145		     -f $setd/lists/$setname/krb4.lint.mi ]
146		then
147			echo $setd/lists/$setname/krb4.lint.mi
148		fi
149		if [ "$krb" != "no" -a -f $setd/lists/$setname/krb.lint.mi ]
150		then
151			echo $setd/lists/$setname/krb.lint.mi
152		fi
153	fi
154	if [ "$toolchain_missing" != "yes" ]; then
155		if [ "$have_gcc3" = "yes" ]; then
156			if [ -f $setd/lists/$setname/gcc.mi ]; then
157				echo $setd/lists/$setname/gcc.mi
158			fi
159			if [ "$shlib" != "no" ]; then
160				if [ -f $setd/lists/$setname/gcc.shl ]; then
161					echo $setd/lists/$setname/gcc.shl
162				fi
163			fi
164		else
165			if [ -f $setd/lists/$setname/tc.mi ]; then
166				echo $setd/lists/$setname/tc.mi
167			fi
168			if [ "$shlib" != "no" ]; then
169				if [ -f $setd/lists/$setname/tc.shl ]; then
170					echo $setd/lists/$setname/tc.shl
171				fi
172			fi
173		fi
174	fi
175
176	if [ -f $setd/lists/$setname/rescue.mi ]; then
177		echo $setd/lists/$setname/rescue.mi
178	fi
179	if [ -f $setd/lists/$setname/rescue.${machine} ]; then
180		echo $setd/lists/$setname/rescue.${machine}
181	fi
182	if [ "$machine" != "$machine_arch" ]; then
183		# Prefer a rescue.ad.${machine_arch} over a
184		# rescue.ad.${machine_cpu}, since the arch-
185		# specific one will be more specific than the
186		# cpu-specific one.
187		if [ -f $setd/lists/$setname/rescue.ad.${machine_arch} ]; then
188			echo $setd/lists/$setname/rescue.ad.${machine_arch}
189		elif [ -f $setd/lists/$setname/rescue.ad.${machine_cpu} ]; then
190			echo $setd/lists/$setname/rescue.ad.${machine_cpu}
191		fi
192		if [ "$shlib" != "no" -a -f \
193		     $setd/lists/$setname/rescue.ad.${machine_cpu}.shl ]; then
194			echo $setd/lists/$setname/rescue.ad.${machine_cpu}.shl
195		fi
196	fi
197}
198
199arch_to_cpu () {
200MACHINE_ARCH=${1} ${MAKE:-make} -f- all <<EOF
201.include <bsd.own.mk>
202all:
203	@echo \${MACHINE_CPU}
204EOF
205}
206
207