Home | History | Annotate | Line # | Download | only in sets
makeplist revision 1.11
      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.11  dyoung . ./sets.defaults
      9   1.8  dyoung 
     10   1.8  dyoung . ./sets.subr
     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.8  dyoung echo "	-a arch		set arch (e.g, m68k, mips, powerpc)	[$machine_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.8  dyoung 		machine_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 		;;
     45   1.1   jwise 	*)
     46   1.1   jwise 		break
     47   1.1   jwise 		;;
     48   1.1   jwise 	esac
     49   1.1   jwise 	shift
     50   1.1   jwise done
     51   1.1   jwise if [ -n "$1" ]; then
     52   1.1   jwise 	setname="$1"
     53   1.1   jwise else
     54   1.1   jwise 	usage
     55   1.1   jwise fi
     56   1.1   jwise if [ -n "$2" ]; then
     57   1.1   jwise 	pkgname=$2
     58   1.1   jwise else
     59   1.1   jwise 	usage
     60   1.1   jwise fi
     61   1.1   jwise 
     62   1.8  dyoung # Determine lib type.
     63   1.8  dyoung if [ "$object_fmt" = "ELF" ]; then
     64   1.8  dyoung 	shlib=elf
     65   1.8  dyoung else
     66   1.8  dyoung 	shlib=aout
     67   1.8  dyoung fi
     68   1.8  dyoung stlib=$shlib
     69   1.1   jwise 
     70   1.8  dyoung # Turn off shlibs for some ports.
     71   1.8  dyoung if [ "$machine_cpu" = "sh3" -o "$machine_arch" = "m68000" ]; then
     72   1.8  dyoung 	shlib=no
     73   1.8  dyoung fi
     74   1.8  dyoung lkm=yes
     75   1.8  dyoung # Turn off LKMs for some ports.
     76   1.8  dyoung if [ "$machine" = "evbppc" ]; then
     77   1.8  dyoung 	lkm=no
     78   1.8  dyoung fi
     79   1.7     agc 
     80   1.7     agc filename=/tmp/makeplist.$$ 
     81   1.7     agc ffilename=/tmp/makeplist.files.$$ 
     82   1.7     agc dfilename=/tmp/makeplist.dirs.$$ 
     83   1.7     agc 
     84   1.8  dyoung list_set_files $setname | \
     85  1.10  dyoung env PLISTPKG=$pkgname awk -- '/^#/ { next } $2 == ENVIRON["PLISTPKG"] {sub("^\\./", "", $1); print $1}' | sort -u > $filename
     86   1.8  dyoung 
     87   1.8  dyoung SELECTDIRS="-maxdepth 0 -type d"
     88   1.8  dyoung SELECTNONDIRS="-maxdepth 0 ! -type d"
     89   1.8  dyoung 
     90   1.8  dyoung cd $prefix
     91   1.8  dyoung #
     92   1.8  dyoung # match the directories
     93   1.8  dyoung #
     94   1.8  dyoung xargs echo $SELECTDIRS < $filename | \
     95   1.8  dyoung while read ignore ignore ignore ignore args; do
     96   1.8  dyoung 	[ -z "$args" ] && break 
     97   1.8  dyoung 	find $args $SELECTDIRS
     98   1.8  dyoung done | awk '{ print "@dirrm " $1; }' > $dfilename
     99   1.8  dyoung 
    100   1.8  dyoung #
    101   1.8  dyoung # match the non-directories
    102   1.8  dyoung #
    103   1.8  dyoung xargs echo $SELECTNONDIRS < $filename | \
    104   1.8  dyoung while read ignore ignore ignore ignore ignore args; do
    105   1.8  dyoung 	[ -z "$args" ] && break 
    106   1.8  dyoung 	find $args $SELECTNONDIRS
    107   1.8  dyoung done > $ffilename
    108   1.8  dyoung 
    109   1.8  dyoung cd -
    110   1.7     agc 
    111   1.7     agc echo "@cwd $prefix"
    112   1.7     agc if [ -s $ffilename ]; then
    113   1.7     agc 	cat $ffilename
    114   1.1   jwise fi
    115   1.7     agc if [ -s $dfilename ]; then
    116   1.7     agc         sort -r $dfilename
    117   1.7     agc fi
    118   1.7     agc 
    119   1.7     agc rm -f $filename $ffilename $dfilename
    120   1.7     agc 
    121   1.7     agc exit 0
    122   1.1   jwise 
    123