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