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