# $Id: dev.mk,v 2.6 2003/01/04 04:44:21 ehood Exp $
##-----------------------------------------------------------------------##
##  Development makefile.
##-----------------------------------------------------------------------##

.PHONY: release code-check version-check \
	release-prep installation-doc pod2man relnotes autodoc \
	bugs clean

TOP     = .
SUBDIRS = \
	  lib \
	  # End SUBDIRS

include $(TOP)/etc/variables.mk

##-----------------------------------------------------------------------##

TAR_EXCLUDE	= ./etc/tar-exclude
DIST_DIR	= ./dist
INSTALL_ME	= $(PROJECTS_RELEASES)/install.me/latest/install.me
VERSION_NAME	= MHonArc$(_RELEASE_VERSION)

PRGS		= mhonarc mha-dbrecover mha-dbedit mha-decode
PERL_FILES	= \
		  Makefile.PL \
		  $(PRGS) \
		  # End PERL_FILES

##-----------------------------------------------------------------------##

default: code-check

release: version-check code-check
	@$(RM) -rf $(DIST_DIR)
	-@$(MKDIR) -p $(DIST_DIR)/$(VERSION_NAME)
	@echo "Copying files to $(DIST_DIR)..."
	$(TAR) -c -X $(TAR_EXCLUDE) -f - . | \
	    (cd $(DIST_DIR)/$(VERSION_NAME) && $(TAR) xfp -)
	$(CP) $(INSTALL_ME) $(DIST_DIR)/$(VERSION_NAME)
	(cd $(DIST_DIR)/$(VERSION_NAME) && $(MAKE) -f dev.mk release-prep)
	@$(RM) -rf $(DIST_DIR)/$(VERSION_NAME)/dev.mk \
		   $(DIST_DIR)/$(VERSION_NAME)/etc \
		   $(DIST_DIR)/$(VERSION_NAME)/doc/*.gml \
		   `$(FIND) $(DIST_DIR)/$(VERSION_NAME) -name 'CVS'` \
		   `$(FIND) $(DIST_DIR)/$(VERSION_NAME) -name '_helper'` \
		   `$(FIND) $(DIST_DIR)/$(VERSION_NAME) -name 'Makefile'`
	@(echo "Creating tar bundles..." && \
	  cd $(DIST_DIR) && \
	  $(TAR) -cf $(VERSION_NAME).tar $(VERSION_NAME) && \
	  echo "  ...bz2..." && \
	  $(BZIP2) -k $(VERSION_NAME).tar && \
	  echo "  ...gz..." && \
	  $(GZIP) $(VERSION_NAME).tar)
	@(echo "Creating zip bundle..." && \
	  cd $(DIST_DIR) && \
	  $(ZIP) -r $(VERSION_NAME).zip $(VERSION_NAME))

	$(MV) $(DIST_DIR)/$(VERSION_NAME) $(DIST_DIR)/$(VERSION_NAME)-nodoc
	@$(RM) -rf $(DIST_DIR)/$(VERSION_NAME)-nodoc/doc
	@$(PERL) -i -n -e 'print  unless /^doc:/;' \
		 $(DIST_DIR)/$(VERSION_NAME)-nodoc/FILELIST
	@(echo "Creating no-doc tar bundles..." && \
	  cd $(DIST_DIR) && \
	  $(TAR) -cf $(VERSION_NAME)-nodoc.tar $(VERSION_NAME)-nodoc && \
	  echo "  ...bz2..." && \
	  $(BZIP2) -k $(VERSION_NAME)-nodoc.tar && \
	  echo "  ...gz..." && \
	  $(GZIP) $(VERSION_NAME)-nodoc.tar)
	@(echo "Creating no-doc zip bundle..." && \
	  cd $(DIST_DIR) && \
	  $(ZIP) -r $(VERSION_NAME)-nodoc.zip $(VERSION_NAME)-nodoc)

version-check:
	@if [ "$(_SNAP_MODE)" != "1" ]; then \
	  $(PERL) etc/version-check.pl "$(_RELEASE_VERSION)" lib/mhamain.pl; \
	fi

code-check: make_subdirs perl_syntax

release-prep: autodoc relnotes bugs installation-doc

installation-doc:
	$(W3M) doc/install.html -cols 76 > INSTALL

pod2man:
	-@$(MKDIR) man
	@for i in $(PRGS) ; \
	    do( \
		echo "Manifying $$i ..."; \
		pod2man --center="MHonArc Documentation" \
		        --release="MHonArc v2.6" $$i > man/$$i.1; \
	    ); \
	done

relnotes:
	$(W3M) doc/relnotes.html -cols 76 > RELNOTES

autodoc: pod2man
	$(MAKE) -C doc
	$(MAKE) -C doc/faq

bugs:
	$(W3M) doc/app-bugs.html -cols 76 > BUGS


clean:
	$(RM) -rf $(DIST_DIR) Makefile

##-----------------------------------------------------------------------##

include $(TOP)/etc/rules.mk
