Home | History | Annotate | Line # | Download | only in sets
listpkgs revision 1.3.2.1
      1 #!/bin/sh
      2 #
      3 # $NetBSD: listpkgs,v 1.3.2.1 2002/07/23 09:15:36 lukem Exp $
      4 #
      5 # List all packages in the given pkgset by parsing the list files.
      6 #
      7 
      8 # set defaults
      9 MAKE="${MAKE:-make} -j 1"
     10 machine=${MACHINE:-`printf 'xxx:\n\techo ${MACHINE}' | ${MAKE} -s -f-`}
     11 arch=${MACHINE_ARCH:-`printf 'xxx:\n\techo ${MACHINE_ARCH}' | ${MAKE} -s -f-`}
     12 setd=`dirname $0`
     13 prefix=/
     14 
     15 usage() {
     16 exec 1>&2
     17 
     18 echo "Usage: $0 [-a arch] [-m machine] [-s setsdir] [-p prefix] setname"
     19 echo "	-a arch		set arch (e.g, m68k, mips, powerpc)	[$arch]"
     20 echo "	-m machine	set machine (e.g, amiga, i386, macppc)	[$machine]"
     21 echo "	-s setsdir	directory to find sets			[$setd]"
     22 echo "	setname set to list packages for"
     23 
     24 exit 1
     25 }
     26 
     27 # handle args
     28 while : ; do
     29 	case $1 in
     30 	-a*)
     31 		arch=$2; shift
     32 		;;
     33 	-m*)
     34 		machine=$2; shift
     35 		;;
     36 	-s*)
     37 		setd=$2; shift
     38 		;;
     39 	-*)
     40 		usage
     41 		exit 1
     42 		;;
     43 	*)
     44 		break
     45 		;;
     46 	esac
     47 	shift
     48 done
     49 if [ -n "$1" ]; then
     50 	setname="$1"
     51 else
     52 	usage
     53 	exit 1
     54 fi
     55 
     56 # Convert mipse[lb] to mips after processing command line arguments.
     57 arch=`echo $arch | sed s,^mipse.,mips, | sed s,^sh3e.,sh3,`
     58 
     59 # Compute toolchain  used on target cpu.
     60 if [ "$arch" = "mips" -o "$machine" = "alpha" -o "$arch" = "powerpc" -o "$arch" = "sparc" -o "$arch" = "sparc64" -o "$arch" = "i386" -o "$arch" = "arm" -o "$machine" = "mvme68k" -o "$machine" = "hp300" ]; then
     61 	shlib=elf
     62 else
     63 	if [ "$arch" = "sh3" ]; then
     64 		shlib=
     65 	else
     66 		shlib=aout
     67 	fi
     68 fi
     69 
     70 (
     71 	cat $setd/lists/$setname/mi
     72 	if [ "$machine" != "$cpu" -a -f $setd/lists/$setname/ad.${arch} ]; then
     73 		cat $setd/lists/$setname/ad.${arch}
     74 	fi
     75 	if [ -f $setd/lists/$setname/md.${machine} ]; then
     76 		cat $setd/lists/$setname/md.${machine}
     77 	fi
     78 	if [ "$shlib" != "" ]; then
     79 		if [ -f $setd/lists/$setname/shl.mi ]; then
     80 			cat $setd/lists/$setname/shl.mi
     81 		fi
     82 		if [ -f $setd/lists/$setname/shl.${shlib} ]; then
     83 			cat $setd/lists/$setname/shl.${shlib}
     84 		fi
     85 	fi
     86 )| awk -- '/^[^#]/ {print $2}' | sort -u
     87