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