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