1#!/bin/sh 2# 3# $NetBSD: listpkgs,v 1.4 2002/07/23 09:02:45 lukem Exp $ 4# 5# List all packages in the given pkgset by parsing the list files. 6# 7 8# set defaults 9MAKE="${MAKE:-make} -j 1" 10machine=${MACHINE:-`printf 'xxx:\n\techo ${MACHINE}' | ${MAKE} -s -f-`} 11arch=${MACHINE_ARCH:-`printf 'xxx:\n\techo ${MACHINE_ARCH}' | ${MAKE} -s -f-`} 12setd=`dirname $0` 13prefix=/ 14 15usage() { 16exec 1>&2 17 18echo "Usage: $0 [-a arch] [-m machine] [-s setsdir] [-p prefix] setname" 19echo " -a arch set arch (e.g, m68k, mips, powerpc) [$arch]" 20echo " -m machine set machine (e.g, amiga, i386, macppc) [$machine]" 21echo " -s setsdir directory to find sets [$setd]" 22echo " setname set to list packages for" 23 24exit 1 25} 26 27# handle args 28while : ; 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 48done 49if [ -n "$1" ]; then 50 setname="$1" 51else 52 usage 53 exit 1 54fi 55 56# Convert mipse[lb] to mips after processing command line arguments. 57arch=`echo $arch | sed s,^mipse.,mips, | sed s,^sh3e.,sh3,` 58 59# Compute toolchain used on target cpu. 60if [ "$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 62else 63 if [ "$arch" = "sh3" ]; then 64 shlib= 65 else 66 shlib=aout 67 fi 68fi 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