makeplist revision 1.7 1 1.1 jwise #!/bin/sh
2 1.1 jwise #
3 1.1 jwise # Print out the files in some or all lists.
4 1.4 dyoung # Usage: makeplist [-a arch] [-m machine] [-s setsdir] [-p prefix] setname pkgname
5 1.1 jwise #
6 1.1 jwise
7 1.1 jwise # set defaults
8 1.3 lukem MAKE="${MAKE:-make} -j 1"
9 1.3 lukem machine=${MACHINE:-`printf 'xxx:\n\techo ${MACHINE}' | ${MAKE} -s -f-`}
10 1.3 lukem arch=${MACHINE_ARCH:-`printf 'xxx:\n\techo ${MACHINE_ARCH}' | ${MAKE} -s -f-`}
11 1.1 jwise setd=`dirname $0`
12 1.1 jwise prefix=/
13 1.1 jwise
14 1.1 jwise usage() {
15 1.1 jwise exec 1>&2
16 1.1 jwise
17 1.1 jwise echo "Usage: $0 [-a arch] [-m machine] [-s setsdir] [-p prefix] setname pkgname"
18 1.1 jwise echo " -a arch set arch (e.g, m68k, mips, powerpc) [$arch]"
19 1.1 jwise echo " -m machine set machine (e.g, amiga, i386, macppc) [$machine]"
20 1.1 jwise echo " -s setsdir directory to find sets [$setd]"
21 1.5 dyoung echo " -p prefix prefix for created plist [$prefix]"
22 1.1 jwise echo " setname pkgname set and package to build plist for"
23 1.1 jwise
24 1.1 jwise exit 1
25 1.1 jwise }
26 1.1 jwise
27 1.1 jwise # handle args
28 1.1 jwise while : ; do
29 1.1 jwise case $1 in
30 1.1 jwise -a*)
31 1.1 jwise arch=$2; shift
32 1.1 jwise ;;
33 1.1 jwise -m*)
34 1.1 jwise machine=$2; shift
35 1.1 jwise ;;
36 1.1 jwise -s*)
37 1.1 jwise setd=$2; shift
38 1.1 jwise ;;
39 1.1 jwise -p*)
40 1.1 jwise prefix=$2; shift
41 1.1 jwise ;;
42 1.1 jwise -*)
43 1.1 jwise usage
44 1.1 jwise exit 1
45 1.1 jwise ;;
46 1.1 jwise *)
47 1.1 jwise break
48 1.1 jwise ;;
49 1.1 jwise esac
50 1.1 jwise shift
51 1.1 jwise done
52 1.1 jwise if [ -n "$1" ]; then
53 1.1 jwise setname="$1"
54 1.1 jwise else
55 1.1 jwise usage
56 1.1 jwise exit 1
57 1.1 jwise fi
58 1.1 jwise if [ -n "$2" ]; then
59 1.1 jwise pkgname=$2
60 1.1 jwise else
61 1.1 jwise usage
62 1.1 jwise exit 1
63 1.1 jwise fi
64 1.1 jwise
65 1.1 jwise # Convert mipse[lb] to mips after processing command line arguments.
66 1.1 jwise arch=`echo $arch | sed s,^mipse.,mips, | sed s,^sh3e.,sh3,`
67 1.1 jwise
68 1.1 jwise # Compute toolchain used on target cpu.
69 1.7 agc case "$machine" in
70 1.7 agc ns32k) shlib=aout ;;
71 1.7 agc *) case "$arch" in
72 1.7 agc sh3) shlib="" ;;
73 1.7 agc *) shlib=elf ;;
74 1.7 agc esac
75 1.7 agc esac
76 1.7 agc
77 1.7 agc filename=/tmp/makeplist.$$
78 1.7 agc ffilename=/tmp/makeplist.files.$$
79 1.7 agc dfilename=/tmp/makeplist.dirs.$$
80 1.7 agc
81 1.7 agc echo "@cwd $prefix" > $filename
82 1.7 agc (
83 1.7 agc cat $setd/lists/$setname/mi
84 1.7 agc # where does cpu get set? XXX - agc
85 1.7 agc if [ "$machine" != "$cpu" -a -f $setd/lists/$setname/ad.${arch} ]; then
86 1.7 agc cat $setd/lists/$setname/ad.${arch}
87 1.7 agc fi
88 1.7 agc if [ -f $setd/lists/$setname/md.${machine} ]; then
89 1.7 agc cat $setd/lists/$setname/md.${machine}
90 1.7 agc fi
91 1.7 agc if [ "$shlib" != "" ]; then
92 1.7 agc if [ -f $setd/lists/$setname/shl.mi ]; then
93 1.7 agc cat $setd/lists/$setname/shl.mi
94 1.7 agc fi
95 1.7 agc if [ -f $setd/lists/$setname/shl.${shlib} ]; then
96 1.7 agc cat $setd/lists/$setname/shl.${shlib}
97 1.7 agc fi
98 1.7 agc fi
99 1.7 agc )| env PLISTPKG=$pkgname awk -- '/^#/ { next } $2 == ENVIRON["PLISTPKG"] {sub("^\./", "", $1); print $1}' | sort -u >> $filename
100 1.7 agc
101 1.7 agc env FFILENAME=$ffilename DFILENAME=$dfilename awk '
102 1.7 agc /^@cwd/ { prefix = $2; next }
103 1.7 agc {
104 1.7 agc s = sprintf("if [ -d %s%s ]; then echo @dirrm %s >> %s; else echo %s >> %s; fi", prefix, $0, $0, ENVIRON["DFILENAME"], $0, ENVIRON["FFILENAME"]);
105 1.7 agc system(s);
106 1.7 agc }' $filename
107 1.7 agc
108 1.7 agc echo "@cwd $prefix"
109 1.7 agc if [ -s $ffilename ]; then
110 1.7 agc cat $ffilename
111 1.1 jwise fi
112 1.7 agc if [ -s $dfilename ]; then
113 1.7 agc sort -r $dfilename
114 1.7 agc fi
115 1.7 agc
116 1.7 agc rm -f $filename $ffilename $dfilename
117 1.7 agc
118 1.7 agc exit 0
119 1.1 jwise
120