listsrcdirs revision 1.15
11.2Spooka#!/bin/sh
21.2Spooka#
31.15Spooka#	$NetBSD: listsrcdirs,v 1.15 2014/07/08 14:30:21 pooka Exp $
41.1Spooka#
51.1Spooka
61.1Spooka#
71.2Spooka# This script echoes the NetBSD source directories required to build rump
81.1Spooka# kernels with TOOLS_BUILDRUMP=yes (used for example by buildrump.sh).
91.1Spooka# Feed the output to whichever method you use to obtain NetBSD sources, e.g.
101.1Spooka#
111.2Spooka# ./listsrcdirs | xargs cvs -d anoncvs@anoncvs.netbsd.org:/cvsroot -z3 co -P
121.2Spooka#
131.1Spooka
141.15Spooka# default echomode (for compat)
151.15Spookaem=sys
161.15Spooka
171.15Spooka# mini-getopt (so that we don't have to with getopt vs. getopts
181.15Spookaunset cvsmode
191.15Spookaif [ "${1}" = "-c" ]; then
201.15Spooka	cvsmode=true
211.15Spooka	shift
221.15Spookafi
231.15Spooka[ ! -z "${1}" ] && em=$1
241.15Spooka# "both" is undocumented, can be used for checking dupes:
251.15Spooka# sh listsrcdirs both | sort | uniq -d
261.15Spookaif [ "${em}" != "sys" -a "${em}" != "usr" -a "${em}" != "both" ]; then
271.15Spooka	echo 'mode must be sys or usr'
281.15Spooka	exit 1
291.15Spookafi
301.15Spooka
311.15Spookalsrc ()
321.2Spooka{
331.2Spooka
341.15Spooka	what=$1
351.15Spooka	pfx=$2
361.15Spooka	shift 2
371.15Spooka	if [ "${em}" = "both" -o "${what}" = "${em}" ]; then
381.15Spooka		for arg in $* ; do echo src${pfx}${arg} ; done
391.15Spooka	fi
401.2Spooka}
411.2Spooka
421.11SpookaARCHS="amd64 i386 x86 arm evbarm sparc sparc64 powerpc evbppc mips evbmips"
431.10SpookaARCHS_EXTRA="arm/arm32 Makefile"
441.10Spooka
451.15Spooka# sources necessary for building rump kernel components
461.15Spookalsrc sys /			build.sh Makefile Makefile.inc
471.15Spookalsrc sys /			tools common include share/mk
481.15Spookalsrc sys /etc/			Makefile.params master.passwd group
491.15Spookalsrc sys /lib/lib		c util rump
501.15Spookalsrc sys /lib/librump		user client hijack dev net vfs
511.15Spookalsrc sys /external/bsd/		flex mdocml byacc
521.15Spookalsrc sys /external/cddl/	osnet
531.15Spookalsrc sys /external/historical/	nawk
541.15Spookalsrc sys /bin/			cat
551.15Spookalsrc sys /usr.bin/		make xinstall config mktemp sed tsort
561.15Spookalsrc sys /usr.bin/		lorder join cksum m4 mkdep Makefile.inc
571.15Spookalsrc sys /usr.bin/		rpcgen rump_server rump_allserver rump_wmd
581.15Spookalsrc sys /usr.bin/		stat shmif_dumpbus
591.15Spookalsrc sys /usr.sbin/		mtree
601.15Spooka
611.15Spooka# assorted userspace sources, mostly for configuration & diagnostics
621.15Spookalsrc usr /lib/lib		crypt ipsec m npf pci prop
631.15Spookalsrc usr /lib/lib		pthread rmt y z
641.15Spookalsrc usr /libexec/		ld.elf_so
651.15Spookalsrc usr /bin/			chmod cp dd df ed ln ls mkdir mv pax
661.15Spookalsrc usr /bin/			rm rmdir
671.15Spookalsrc usr /sbin/			cgdconfig chown
681.15Spookalsrc usr /sbin/			disklabel dump fsck fsck_ext2fs fsck_ffs
691.15Spookalsrc usr /sbin/			fsck_lfs fsck_msdos fsck_v7fs
701.15Spookalsrc usr /sbin/			ifconfig mknod
711.15Spookalsrc usr /sbin/			modstat mount mount_ffs mount_tmpfs newfs
721.15Spookalsrc usr /sbin/			newfs_v7fs newfs_msdos newfs_ext2fs
731.15Spookalsrc usr /sbin/			newfs_lfs newfs_sysvbfs newfs_udf
741.15Spookalsrc usr /sbin/			ping ping6 raidctl reboot
751.15Spookalsrc usr /sbin/			rndctl route setkey sysctl umount
761.15Spookalsrc usr /usr.bin/		kdump ktrace
771.15Spookalsrc usr /usr.sbin/		arp dumpfs makefs ndp npf pcictl vnconfig
781.15Spookalsrc usr /usr.sbin/		wlanctl
791.15Spookalsrc usr /external/bsd/		libpcap tcpdump wpa
801.15Spookalsrc usr /crypto/		Makefile.openssl
811.15Spookalsrc usr /crypto/dist/		ipsec-tools
821.15Spookalsrc usr /crypto/external/bsd/	openssl
831.15Spooka
841.3Spooka
851.3Spooka# If -c is given, use CVS syntax to exclude large subdirectories
861.3Spooka# of sys.  Otherwise just do it wholesale.
871.15Spookaif ${cvsmode:-false}; then
881.15Spooka	[ "${em}" = "sys" ] && echo \!src/sys/arch src/sys
891.3Spooka
901.3Spooka	# pick a few useful archs, namely those mentioned in buildrump.sh
911.10Spooka	for arch in ${ARCHS}; do
921.15Spooka		lsrc sys /sys/arch/${arch}/ include ${arch} Makefile
931.10Spooka	done
941.10Spooka	for extra in ${ARCHS_EXTRA}; do
951.15Spooka		lsrc sys /sys/arch/ ${extra}
961.3Spooka	done
971.3Spookaelse
981.15Spooka	lsrc sys / sys
991.3Spookafi
100