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