# vi: set ts=4 sw=4 :
# vim: set tw=75 :

# as demonstated in GNU's make.info documentation

SRCNAME = metamod-$(v)
WEBMAIN = /web/root/metamod
WEBTOP = $(WEBMAIN)/files
WEBDIR = $(WEBTOP)/$(SRCNAME)
WEBDOC = $(WEBMAIN)

ZIPTOP = /tmp/mm-release
ZIPDIR = $(ZIPTOP)/$(SRCNAME)

SUBDIRS := $(shell find */Makefile | sed "s/.Makefile//")
#SUBDIRS := metamod stub_plugin trace_plugin

.DEFAULT:
	for i in $(SUBDIRS); do \
		$(MAKE) -C $$i $@ || exit; \
	done

.PHONY:	subdirs dlls $(SUBDIRS)

subdirs: $(SUBDIRS)

$(SUBDIRS):
	$(MAKE) -C $@

web release: webdoc webtar webzip

webtar: $(WEBDIR).tgz 
webzip: $(WEBDIR).zip

webdoc:
	$(MAKE) -C html
	cp -a doc/html/* $(WEBDOC)

$(WEBDIR).tgz:
	test -n "$(v)"
	$(MAKE) dlls
	mkdir -p $(WEBDIR)
	tar lpcSf - . -X priv/excludes | (cd $(WEBDIR) && tar xpBlf -)
	cd $(WEBTOP); tar zcvf $(WEBDIR).tgz --exclude "*.dll" $(SRCNAME)
	for i in `find $(WEBDIR) -type d`; do (cd $$i; ln -s ../HEADER.html); done
	@echo; echo "$(WEBTOP):"; ls -F $(WEBTOP); echo

$(WEBDIR).zip:
	test -n "$(v)"
	$(MAKE) dlls
	rm -rf $(ZIPTOP)
	mkdir -p $(ZIPDIR)
	tar lpcSf - . -X priv/excludes | (cd $(ZIPDIR) && tar xpBlf -)
	cd $(ZIPDIR); unix2dos `find . -name msvc -prune -o -type f ! -name '*.so' ! -name '*.dll' -print`
	cd $(ZIPTOP); zip -rp $(WEBDIR).zip $(SRCNAME) -x '*.so'
	rm -rf $(ZIPTOP)
	@echo; echo "$(WEBTOP):"; ls -F $(WEBTOP); echo

cleanweb:
	test -n "$(v)"
	rm -rf $(WEBDIR) $(WEBDIR).tgz $(WEBDIR).zip
	@echo; echo "$(WEBTOP):"; ls -F $(WEBTOP); echo
