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