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