makeflist revision 1.28       1 #!/bin/sh
      2 #
      3 # $NetBSD: makeflist,v 1.28 2001/01/04 11:15:32 itojun Exp $
      4 #
      5 # Print out the files in some or all lists.
      6 # Usage: makeflist [-b] [-x] [-a arch] [-m machine] [-s setsdir] [setname ...]
      7 #
      8 
      9 # set defaults
     10 : ${MAKE=make}
     11 machine=${MACHINE:-`printf 'xxx:\n\techo ${MACHINE}' | $MAKE -s -f-`}
     12 arch=${MACHINE_ARCH:-`printf 'xxx:\n\techo ${MACHINE_ARCH}' | $MAKE -s -f-`}
     13 setd=`pwd`
     14 nlists="base comp etc games man misc text"
     15 xlists="xbase xcomp xcontrib xfont xserver xmisc"
     16 lists=$nlists
     17 
     18 # handle args
     19 while : ; do
     20 	case $1 in
     21 	-b*)
     22 		lists="$xlists $nlists"
     23 		;;
     24 	-x*)
     25 		lists=$xlists
     26 		;;
     27 	-a*)
     28 		arch=$2; shift
     29 		;;
     30 	-m*)
     31 		machine=$2; shift
     32 		;;
     33 	-s*)
     34 		setd=$2; shift
     35 		;;
     36 	-*)
     37 		cat 1>&2 <<USAGE
     38 Usage: $0 [-b] [-x] [-a arch] [-m machine] [-s setsdir] [setname ...]
     39 	-b		make netbsd + x11 lists
     40 	-x		only make x11 lists
     41 	-a arch		set arch (e.g, m68k, mips, powerpc)	[$arch]
     42 	-m machine	set machine (e.g, amiga, i386, macppc)	[$machine]
     43 	-s setsdir	directory to find sets	[$setd]
     44 	[setname ...]	sets to build 	[$lists]
     45 USAGE
     46 		exit 1
     47 		;;
     48 	*)
     49 		break
     50 		;;
     51 	esac
     52 	shift
     53 done
     54 if [ -n "$1" ]; then
     55 	lists="$@"
     56 fi
     57 
     58 # Convert mipse[lb] to mips after processing command line arguments.
     59 arch=`echo $arch | sed s,^mipse.,mips, | sed s,^sh3e.,sh3,`
     60 
     61 # Compute toolchain  used on target cpu.
     62 if [ "$arch" = "mips" -o "$machine" = "alpha" -o "$arch" = "powerpc" -o "$arch" = "sparc" -o "$arch" = "sparc64" -o "$arch" = "i386" -o "$arch" = "arm26" -o "$machine" = "mvme68k" -o "$machine" = "hp300" ]; then
     63 	shlib=elf
     64 else
     65 	if [ "$arch" = "sh3" ]; then
     66 		shlib=
     67 	else
     68 		shlib=aout
     69 	fi
     70 fi
     71 
     72 for setname in $lists; do
     73 	awk -- '{print $1}' $setd/lists/$setname/mi
     74 	if [ "$machine" != "$cpu" -a -f $setd/lists/$setname/ad.${arch} ]; then
     75 		awk -- '{print $1}' $setd/lists/$setname/ad.${arch}
     76 	fi
     77 	if [ -f $setd/lists/$setname/md.${machine} ]; then
     78 		awk -- '{print $1}' $setd/lists/$setname/md.${machine}
     79 	fi
     80 	if [ "$shlib" != "" ]; then
     81 		if [ -f $setd/lists/$setname/shl.mi ]; then
     82 			awk -- '{print $1}' $setd/lists/$setname/shl.mi
     83 		fi
     84 		if [ -f $setd/lists/$setname/shl.${shlib} ]; then
     85 			awk -- '{print $1}' $setd/lists/$setname/shl.${shlib}
     86 		fi
     87 	fi
     88 done | egrep -v '^#' | sort -u
     89