Home | History | Annotate | Line # | Download | only in sets
makeflist revision 1.43
      1 #!/bin/sh
      2 #
      3 # $NetBSD: makeflist,v 1.43 2002/03/26 22:58:17 fredette 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=`${MAKE} print_machine`
     12 machine_arch=`${MAKE} print_machine_arch`
     13 machine_cpu=`${MAKE} print_machine_cpu`
     14 object_fmt=`${MAKE} print_object_fmt`
     15 tc=`${MAKE} print_use_new_toolchain`
     16 x11_version=`${MAKE} print_x11_version`
     17 setd=`pwd`
     18 nlists="base comp etc games man misc text"
     19 xlists=
     20 for xlist in xbase xcomp xcontrib xfont xserver xmisc
     21 do
     22  if [ -z "$xlists" ]
     23  then
     24   xlists=$xlist
     25  else
     26   xlists="$xlists $xlist"
     27  fi
     28  if [ -d "$setd/lists/$xlist${x11_version}" ]
     29  then
     30   xlists="$xlists $xlist${x11_version}"
     31  fi
     32 done
     33 lists=$nlists
     34 
     35 # handle args
     36 while : ; do
     37 	case $1 in
     38 	-b*)
     39 		lists="$xlists $nlists"
     40 		;;
     41 	-x*)
     42 		lists=$xlists
     43 		;;
     44 	-a*)
     45 		machine_arch=`MACHINE_ARCH=${2} ${MAKE} print_machine_arch`
     46 		machine_cpu=`MACHINE_ARCH=${2} ${MAKE} print_machine_cpu`
     47 		shift
     48 		;;
     49 	-m*)
     50 		machine=$2; shift
     51 		;;
     52 	-s*)
     53 		setd=$2; shift
     54 		;;
     55 	-*)
     56 		cat 1>&2 <<USAGE
     57 Usage: $0 [-b] [-x] [-a arch] [-m machine] [-s setsdir] [setname ...]
     58 	-b		make netbsd + x11 lists
     59 	-x		only make x11 lists
     60 	-a arch		set arch (e.g, m68k, mipseb, mipsel, powerpc) [$machine_arch]
     61 	-m machine	set machine (e.g, amiga, i386, macppc) [$machine]
     62 	-s setsdir	directory to find sets [$setd]
     63 	[setname ...]	sets to build [$lists]
     64 USAGE
     65 		exit 1
     66 		;;
     67 	*)
     68 		break
     69 		;;
     70 	esac
     71 	shift
     72 done
     73 if [ -n "$1" ]; then
     74 	lists="$@"
     75 fi
     76 
     77 # Determine lib type.
     78 if [ "$object_fmt" = "ELF" ]; then
     79 	shlib=elf
     80 else
     81 	shlib=aout
     82 fi
     83 stlib=$shlib
     84 
     85 # Turn off shlibs for some ports.
     86 if [ "$machine_cpu" = "sh3" -o "$machine_arch" = "m68000" ]; then
     87 	shlib=no
     88 fi
     89 
     90 # Turn off lintlibs for some ports.
     91 lintlibs=
     92 if [ "$machine" = "sparc64" -o "$machine_cpu" = "sh3" -o \
     93      "$machine_arch" = "m68000" ]; then
     94 	lintlibs=no
     95 fi
     96 
     97 for setname in $lists; do
     98 	cat $setd/lists/$setname/mi
     99 	if [ "$machine" != "$machine_arch" -a \
    100 	     -f $setd/lists/$setname/ad.${machine_cpu} ]; then
    101 		cat $setd/lists/$setname/ad.${machine_cpu}
    102 	fi
    103 	if [ -f $setd/lists/$setname/md.${machine} ]; then
    104 		cat $setd/lists/$setname/md.${machine}
    105 	fi
    106 	if [ -f $setd/lists/$setname/stl.mi ]; then
    107 		cat $setd/lists/$setname/stl.mi
    108 	fi
    109 	if [ -f $setd/lists/$setname/stl.${stlib} ]; then
    110 		cat $setd/lists/$setname/stl.${stlib}
    111 	fi
    112 	if [ "$shlib" != "no" ]; then
    113 		if [ -f $setd/lists/$setname/shl.mi ]; then
    114 			cat $setd/lists/$setname/shl.mi
    115 		fi
    116 		if [ -f $setd/lists/$setname/shl.${shlib} ]; then
    117 			cat $setd/lists/$setname/shl.${shlib}
    118 		fi
    119 	fi
    120 	if [ "$lintlibs" != no ]; then
    121 		if [ -f $setd/lists/$setname/lint.mi ]; then
    122 			cat $setd/lists/$setname/lint.mi
    123 		fi
    124 	fi
    125 	if [ "$tc" = "yes" ]; then
    126 		if [ -f $setd/lists/$setname/tc.mi ]; then
    127 			cat $setd/lists/$setname/tc.mi
    128 		fi
    129 	else
    130 		if [ -f $setd/lists/$setname/tc.old ]; then
    131 			cat $setd/lists/$setname/tc.old
    132 		fi
    133 	fi
    134 done | awk -- '/^[^#]/ {print $1}' | sort -u
    135