Home | History | Annotate | Line # | Download | only in sets
makeplist revision 1.8
      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