# $Id: dev.mk,v 2.8 2003/07/20 03:26:59 ehood Exp $ ##-----------------------------------------------------------------------## ## Development makefile. ##-----------------------------------------------------------------------## .PHONY: release code-check version-check \ release-prep installation-doc pod2man relnotes autodoc \ bugs clean clean_local distclean create-bundles test-release TOP = $(shell pwd) SUBDIRS = \ lib \ # End SUBDIRS include $(TOP)/etc/variables.mk ##-----------------------------------------------------------------------## ifeq ($(_RELEASE_VERSION),) _RELEASE_VERSION = $(shell date -u +"%Y%m%d") endif RPM_VERSION = $(subst -,,$(subst snap,,$(_RELEASE_VERSION))) RPM_RELEASE = 1 TAR_EXCLUDE = $(TOP)/etc/tar-exclude DIST_DIR = $(TOP)/dist ifeq ($(INSTALL_ME),) INSTALL_ME = $(PROJECTS_RELEASES)/install.me/latest/install.me endif VERSION_NAME = MHonArc-$(_RELEASE_VERSION) EPM_LIST_FILE = $(TOP)/etc/mhonarc.list RPM_SPEC_FILE = $(TOP)/etc/MHonArc.spec PRGS = mhonarc mha-dbrecover mha-dbedit mha-decode PERL_FILES = \ Makefile.PL \ $(PRGS) \ # End PERL_FILES ##-----------------------------------------------------------------------## default: code-check # Perform a release release: version-check code-check create-bundles # Do a release without doing a version check release-dev: code-check create-bundles # Create all bundles create-bundles: bundle-init tar-bundles rpm-bundle tar-nodoc-bundles # Initialization steps for creating bundles bundle-init: @$(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'` rpm-bundle: @echo "Creating rpm..." @$(RM) -rf $(DIST_DIR)/rpmbuild $(MKDIR) -p $(DIST_DIR)/rpmbuild/BUILD \ $(DIST_DIR)/rpmbuild/SOURCES\ $(DIST_DIR)/rpmbuild/SPECS\ $(DIST_DIR)/rpmbuild/SRPMS\ $(DIST_DIR)/rpmbuild/RPMS\ $(DIST_DIR)/rpmbuild/RPMS/noarch \ $(DIST_DIR)/rpmbuild/buildroot $(CP) $(RPM_SPEC_FILE) $(DIST_DIR)/rpmbuild/SPECS (cd $(DIST_DIR)/rpmbuild/SOURCES && \ $(LN) -s ../../$(VERSION_NAME).tar.gz) @(cd $(DIST_DIR)/rpmbuild && \ $(RPMBUILD) --define='_topdir $(DIST_DIR)/rpmbuild' \ --define='version $(RPM_VERSION)' \ --define='release $(RPM_RELEASE)' \ --buildroot $(DIST_DIR)/rpmbuild/buildroot \ -bb SPECS/MHonArc.spec) $(MV) $(DIST_DIR)/rpmbuild/RPMS/noarch/*.rpm $(DIST_DIR) @$(RM) -rf $(DIST_DIR)/rpmbuild tar-bundles: @(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)) tar-nodoc-bundles: $(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: clean_subdirs clean_local clean_local: $(RM) -rf $(DIST_DIR) Makefile distclean: distclean_subdirs clean_local ##-----------------------------------------------------------------------## include $(TOP)/etc/rules.mk .