1 1.1 jwise #!/bin/sh 2 1.1 jwise # 3 1.1 jwise # Print out the files in some or all lists. 4 1.4 dyoung # Usage: makeplist [-a arch] [-m machine] [-s setsdir] [-p prefix] setname pkgname 5 1.1 jwise # 6 1.1 jwise 7 1.1 jwise # set defaults 8 1.8 dyoung for x in $( 9 1.8 dyoung ${MAKE:-make} -f- all <<EOF 10 1.8 dyoung .include <bsd.own.mk> 11 1.8 dyoung all: 12 1.8 dyoung @echo machine=\${MACHINE} 13 1.8 dyoung @echo machine_arch=\${MACHINE_ARCH} 14 1.8 dyoung @echo machine_cpu=\${MACHINE_CPU} 15 1.8 dyoung @echo object_fmt=\${OBJECT_FMT} 16 1.8 dyoung @echo toolchain_missing=\${TOOLCHAIN_MISSING} 17 1.8 dyoung .if defined(USE_XF86_4) && (\${USE_XF86_4} != no) 18 1.8 dyoung @echo x11_version=4 19 1.8 dyoung .else 20 1.8 dyoung @echo x11_version=3 21 1.8 dyoung .endif 22 1.8 dyoung 23 1.8 dyoung EOF 24 1.8 dyoung ); do 25 1.8 dyoung eval $x 26 1.8 dyoung done 27 1.8 dyoung 28 1.8 dyoung . ./sets.subr 29 1.1 jwise setd=`dirname $0` 30 1.1 jwise prefix=/ 31 1.1 jwise 32 1.1 jwise usage() { 33 1.1 jwise exec 1>&2 34 1.1 jwise 35 1.1 jwise echo "Usage: $0 [-a arch] [-m machine] [-s setsdir] [-p prefix] setname pkgname" 36 1.8 dyoung echo " -a arch set arch (e.g, m68k, mips, powerpc) [$machine_arch]" 37 1.1 jwise echo " -m machine set machine (e.g, amiga, i386, macppc) [$machine]" 38 1.1 jwise echo " -s setsdir directory to find sets [$setd]" 39 1.5 dyoung echo " -p prefix prefix for created plist [$prefix]" 40 1.1 jwise echo " setname pkgname set and package to build plist for" 41 1.1 jwise 42 1.1 jwise exit 1 43 1.1 jwise } 44 1.1 jwise 45 1.1 jwise # handle args 46 1.1 jwise while : ; do 47 1.1 jwise case $1 in 48 1.1 jwise -a*) 49 1.8 dyoung machine_arch=$2; shift 50 1.1 jwise ;; 51 1.1 jwise -m*) 52 1.1 jwise machine=$2; shift 53 1.1 jwise ;; 54 1.1 jwise -s*) 55 1.1 jwise setd=$2; shift 56 1.1 jwise ;; 57 1.1 jwise -p*) 58 1.1 jwise prefix=$2; shift 59 1.1 jwise ;; 60 1.1 jwise -*) 61 1.1 jwise usage 62 1.1 jwise ;; 63 1.1 jwise *) 64 1.1 jwise break 65 1.1 jwise ;; 66 1.1 jwise esac 67 1.1 jwise shift 68 1.1 jwise done 69 1.1 jwise if [ -n "$1" ]; then 70 1.1 jwise setname="$1" 71 1.1 jwise else 72 1.1 jwise usage 73 1.1 jwise fi 74 1.1 jwise if [ -n "$2" ]; then 75 1.1 jwise pkgname=$2 76 1.1 jwise else 77 1.1 jwise usage 78 1.1 jwise fi 79 1.1 jwise 80 1.8 dyoung # Determine lib type. 81 1.8 dyoung if [ "$object_fmt" = "ELF" ]; then 82 1.8 dyoung shlib=elf 83 1.8 dyoung else 84 1.8 dyoung shlib=aout 85 1.8 dyoung fi 86 1.8 dyoung stlib=$shlib 87 1.1 jwise 88 1.8 dyoung # Turn off shlibs for some ports. 89 1.8 dyoung if [ "$machine_cpu" = "sh3" -o "$machine_arch" = "m68000" ]; then 90 1.8 dyoung shlib=no 91 1.8 dyoung fi 92 1.8 dyoung lkm=yes 93 1.8 dyoung # Turn off LKMs for some ports. 94 1.8 dyoung if [ "$machine" = "evbppc" ]; then 95 1.8 dyoung lkm=no 96 1.8 dyoung fi 97 1.7 agc 98 1.7 agc filename=/tmp/makeplist.$$ 99 1.7 agc ffilename=/tmp/makeplist.files.$$ 100 1.7 agc dfilename=/tmp/makeplist.dirs.$$ 101 1.7 agc 102 1.8 dyoung list_set_files $setname | \ 103 1.8 dyoung env PLISTPKG=$pkgname awk -- '/^#/ { next } $2 == ENVIRON["PLISTPKG"] {sub("^\./", "", $1); print $1}' | sort -u > $filename 104 1.8 dyoung 105 1.8 dyoung SELECTDIRS="-maxdepth 0 -type d" 106 1.8 dyoung SELECTNONDIRS="-maxdepth 0 ! -type d" 107 1.8 dyoung 108 1.8 dyoung cd $prefix 109 1.8 dyoung # 110 1.8 dyoung # match the directories 111 1.8 dyoung # 112 1.8 dyoung xargs echo $SELECTDIRS < $filename | \ 113 1.8 dyoung while read ignore ignore ignore ignore args; do 114 1.8 dyoung [ -z "$args" ] && break 115 1.8 dyoung find $args $SELECTDIRS 116 1.8 dyoung done | awk '{ print "@dirrm " $1; }' > $dfilename 117 1.8 dyoung 118 1.8 dyoung # 119 1.8 dyoung # match the non-directories 120 1.8 dyoung # 121 1.8 dyoung xargs echo $SELECTNONDIRS < $filename | \ 122 1.8 dyoung while read ignore ignore ignore ignore ignore args; do 123 1.8 dyoung [ -z "$args" ] && break 124 1.8 dyoung find $args $SELECTNONDIRS 125 1.8 dyoung done > $ffilename 126 1.8 dyoung 127 1.8 dyoung cd - 128 1.7 agc 129 1.7 agc echo "@cwd $prefix" 130 1.7 agc if [ -s $ffilename ]; then 131 1.7 agc cat $ffilename 132 1.1 jwise fi 133 1.7 agc if [ -s $dfilename ]; then 134 1.7 agc sort -r $dfilename 135 1.7 agc fi 136 1.7 agc 137 1.7 agc rm -f $filename $ffilename $dfilename 138 1.7 agc 139 1.7 agc exit 0 140 1.1 jwise 141