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