MKSHELL=$PLAN9/bin/rc
new-%:V:
	t=$stem
	if(! ~ $t utf fmt bio regexp mk){
		echo bad target
		exit oops
	}
	if(! ~ $t mk)
		t=lib$t
	mkdir -p $t
	rm -f $t/*
	cd $t
	mk -f ../mkfile.$stem
	cd ..

test-%:V:
	t=$stem
	path=($PLAN9/bin $path)
	mk new-$t
	switch($t){
	case bio;	d=libbio; td=libbio
	case regexp;	d=libregexp; td=libregexp
	case fmt;	d=lib9/fmt; td=libfmt
	case utf;	d=lib9/utf; td=libutf
	case mk;	d=cmd/mk; td=mk
	}
	cd $td
	d=$PLAN9/src/$d
	for(i in `{ls -p $d/*.c})
		if(! test -f $i)
			echo XXX missing $i
	make
	for(i in `{ls *.c})
		if(! test -f `{echo $i | sed 's/.c$/.o/'})
			echo XXX not building $i
	cd ..

test:V: test-utf test-fmt test-bio test-regexp test-mk
	mk test-clean

test-clean:V:
	rm -rf libutf libfmt libbio libregexp mk

lib%.tgz:V:
	mk new-$stem
	tar cf /dev/stdout lib$stem | gzip > $target

libregexp9.tgz:V:
	mk new-regexp
	tar cf /dev/stdout libregexp | gzip >$target

mk.tgz:V:
	mk new-mk
	tar cf /dev/stdout mk | gzip > $target

mk-with-libs.tgz:V:
	mk new-utf
	mk new-fmt
	mk new-bio
	mk new-regexp
	mk new-mk
	rm -rf zot
	mkdir zot
	mv libutf libfmt libbio libregexp mk zot
	mv zot mk
	cp make/Makefile.all mk/Makefile
	tar cf /dev/stdout mk | gzip > $target
	rm -r mk

tgz:V: libutf.tgz libfmt.tgz libregexp9.tgz libbio.tgz mk.tgz mk-with-libs.tgz

# run from 'mk push' in ../dist, which sets 9fansweb
push:V:
	cp *.tgz $9fansweb/plan9port/unix
