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