:
# $Id: install-mk,v 1.19 2005/03/22 17:54:27 sjg Exp $

MK_VERSION=20050322
OWNER=
GROUP=
MODE=444
ECHO=:
SKIP=
cp_f=-f
while :
do
	case "$1" in
	*=*) eval "$1"; shift;;
	+f) cp_f=; shift;;
	-f) cp_f=-f; shift;;
	-m) MODE=$2; shift 2;;
	-o) OWNER=$2; shift 2;;
	-g) GROUP=$2; shift 2;;
	-v) ECHO=echo; shift;;
	-q) ECHO=:; shift;;
	-n) ECHO=echo SKIP=:; shift;;
	--) shift; break;;
	*) break;;
	esac
done	
case $# in
0)	echo "$0 [options] <destination> [<os>]"
	echo "eg."
	echo "$0 -o bin -g bin -m 444 /usr/local/share/mk Solaris"
	exit 1
	;;
esac
dest=$1
os=${2:-`uname`}
osrel=${3:-`uname -r`}

Do() {
	$ECHO "$@"
	$SKIP "$@"
}

[ -d $dest ] || Do mkdir -p $dest
[ -d $dest ] || Do mkdir $dest || exit 1
dest=`cd $dest && /bin/pwd`

cd `dirname $0`
mksrc=`/bin/pwd`
if [ $mksrc = $dest ]; then
	SKIP_MKFILES=:
else
	mk_files=`grep '^[a-z].*\.mk' FILES`
	SKIP_MKFILES=
fi
$SKIP_MKFILES Do cp $cp_f $mk_files $dest
# if this is a BSD system we don't want to touch sys.mk
# setting FORCE_SYS_MK allows us to force install a sys.mk
SYS_MK_DIR=${SYS_MK_DIR:-/usr/share/mk}
SYS_MK=${SYS_MK:-$SYS_MK_DIR/sys.mk}

if [ -s $SYS_MK ]; then
        # A BSD system, we should be using $SYS_MK and friends
        # but perhaps we want to capture a copy...
	case "$FORCE_SYS_MK" in
	cp) Do cp $cp_f $SYS_MK $dest/sys.mk;;
	ln) Do ln -s $SYS_MK $dest/sys.mk;;
	esac
	
	for f in $SYS_MK_DIR/bsd.*.mk
	do
		case "$FORCE_BSD_MK" in
		cp) Do cp $f $dest;;
		ln) Do ln -s $f $dest;;
		esac
	done
	case "$FORCE_BSD_MK" in
	cp)
		[ "$GROUP" ] && Do chgrp $GROUP $dest/bsd.*.mk
		[ "$OWNER" ] && Do chown $OWNER $dest/bsd.*.mk
		;;
	esac
else
	# This might be SunOS.5.7 which will end up picking
	# SunOS.5.sys.mk
	use_sys=$os.$osrel
	while :
	do
		if [ -s $use_sys.sys.mk ]; then
			Do cp $cp_f $use_sys.sys.mk $dest/sys.mk
			break
		fi
		case "$use_sys" in
		*.*)	use_sys=`expr $use_sys : '\(.*\)\.[^\.]*$'`;;
		*)	echo "Using Generic sys.mk you may need to edit it"
			use_sys=Generic
			;;
		esac
	done
	if [ ! -s $use_sys.sys.mk ]; then
		echo "Pick, or create a suitable sys.mk to install in $dest. We have:"
		ls -1 *.sys.mk
		exit 1
	fi
fi
$SKIP cd $dest
$SKIP_MKFILES Do chmod $MODE $mk_files
[ "$GROUP" ] && $SKIP_MKFILES Do chgrp $GROUP $mk_files
[ "$OWNER" ] && $SKIP_MKFILES Do chown $OWNER $mk_files
# if this is a BSD system the bsd.*.mk should exist and be used.
if [ ! -f $FORCE_BSD_MK$SYS_MK_DIR/bsd.prog.mk ]; then
	for f in dep doc init lib man nls obj own prog subdir
	do
		b=bsd.$f.mk
		[ -s $b ] || Do ln -s $f.mk $b
	done
fi
exit 0
