makeplist revision 1.11
1#!/bin/sh
2#
3# Print out the files in some or all lists.
4# Usage: makeplist [-a arch] [-m machine] [-s setsdir] [-p prefix] setname pkgname
5#
6
7# set defaults
8. ./sets.defaults
9
10. ./sets.subr
11setd=`dirname $0`
12prefix=/
13
14usage() {
15exec 1>&2
16
17echo "Usage: $0 [-a arch] [-m machine] [-s setsdir] [-p prefix] setname pkgname"
18echo "	-a arch		set arch (e.g, m68k, mips, powerpc)	[$machine_arch]"
19echo "	-m machine	set machine (e.g, amiga, i386, macppc)	[$machine]"
20echo "	-s setsdir	directory to find sets			[$setd]"
21echo "	-p prefix	prefix for created plist		[$prefix]"
22echo "	setname pkgname	set and package to build plist for"
23
24exit 1
25}
26
27# handle args
28while : ; do
29	case $1 in
30	-a*)
31		machine_arch=$2; shift
32		;;
33	-m*)
34		machine=$2; shift
35		;;
36	-s*)
37		setd=$2; shift
38		;;
39	-p*)
40		prefix=$2; shift
41		;;
42	-*)
43		usage
44		;;
45	*)
46		break
47		;;
48	esac
49	shift
50done
51if [ -n "$1" ]; then
52	setname="$1"
53else
54	usage
55fi
56if [ -n "$2" ]; then
57	pkgname=$2
58else
59	usage
60fi
61
62# Determine lib type.
63if [ "$object_fmt" = "ELF" ]; then
64	shlib=elf
65else
66	shlib=aout
67fi
68stlib=$shlib
69
70# Turn off shlibs for some ports.
71if [ "$machine_cpu" = "sh3" -o "$machine_arch" = "m68000" ]; then
72	shlib=no
73fi
74lkm=yes
75# Turn off LKMs for some ports.
76if [ "$machine" = "evbppc" ]; then
77	lkm=no
78fi
79
80filename=/tmp/makeplist.$$ 
81ffilename=/tmp/makeplist.files.$$ 
82dfilename=/tmp/makeplist.dirs.$$ 
83
84list_set_files $setname | \
85env PLISTPKG=$pkgname awk -- '/^#/ { next } $2 == ENVIRON["PLISTPKG"] {sub("^\\./", "", $1); print $1}' | sort -u > $filename
86
87SELECTDIRS="-maxdepth 0 -type d"
88SELECTNONDIRS="-maxdepth 0 ! -type d"
89
90cd $prefix
91#
92# match the directories
93#
94xargs echo $SELECTDIRS < $filename | \
95while read ignore ignore ignore ignore args; do
96	[ -z "$args" ] && break 
97	find $args $SELECTDIRS
98done | awk '{ print "@dirrm " $1; }' > $dfilename
99
100#
101# match the non-directories
102#
103xargs echo $SELECTNONDIRS < $filename | \
104while read ignore ignore ignore ignore ignore args; do
105	[ -z "$args" ] && break 
106	find $args $SELECTNONDIRS
107done > $ffilename
108
109cd -
110
111echo "@cwd $prefix"
112if [ -s $ffilename ]; then
113	cat $ffilename
114fi
115if [ -s $dfilename ]; then
116        sort -r $dfilename
117fi
118
119rm -f $filename $ffilename $dfilename
120
121exit 0
122
123