Home | History | Annotate | Line # | Download | only in sets
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
     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