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