#
# Makefile for top level of zsh distribution
#
# Copyright (c) 1995-1997 Richard Coleman
# All rights reserved.
#
# Permission is hereby granted, without written agreement and without
# license or royalty fees, to use, copy, modify, and distribute this
# software and to distribute modified versions of this software for any
# purpose, provided that the above copyright notice and the following
# two paragraphs appear in all copies of this software.
#
# In no event shall Richard Coleman or the Zsh Development Group be liable
# to any party for direct, indirect, special, incidental, or consequential
# damages arising out of the use of this software and its documentation,
# even if Richard Coleman and the Zsh Development Group have been advised of
# the possibility of such damage.
#
# Richard Coleman and the Zsh Development Group specifically disclaim any
# warranties, including, but not limited to, the implied warranties of
# merchantability and fitness for a particular purpose.  The software
# provided hereunder is on an "as is" basis, and Richard Coleman and the
# Zsh Development Group have no obligation to provide maintenance,
# support, updates, enhancements, or modifications.
#

subdir = .
dir_top = .
SUBDIRS = Doc Etc Src

@@version.mk@@
@@defs.mk@@

# ========== DEPENDENCIES FOR BUILDING ==========

# default target
all: config.h
	@for subdir in Src Doc; do \
	  (cd $$subdir && $(MAKE) $(MAKEDEFS) $@) || exit 1; \
	done

check test:
	@echo zsh test suite not available yet

# prepare module configuration
prep:
	@cd Src && $(MAKE) $(MAKEDEFS) $@

META-FAQ: FORCE
	@cd Doc && $(MAKE) $(MAKEDEFS) ../META-FAQ

# ========== DEPENDENCIES FOR INSTALLING ==========

# install/uninstall everything
install: install.bin install.modules install.man install.info
uninstall: uninstall.bin uninstall.modules uninstall.man uninstall.info

# install/uninstall just the binary
install.bin uninstall.bin:
	@cd Src && $(MAKE) $(MAKEDEFS) $@

# install/uninstall just the modules
install.modules uninstall.modules:
	@cd Src && $(MAKE) $(MAKEDEFS) $@

# install/uninstall just the man pages
install.man uninstall.man:
	@cd Doc && $(MAKE) $(MAKEDEFS) $@

# install/uninstall just the info pages
install.info uninstall.info:
	@cd Doc && $(MAKE) $(MAKEDEFS) $@

# ========== DEPENDENCIES FOR CLEANUP ==========

@@clean.mk@@

distclean-here:
	rm -f Makefile config.h config.status config.log config.cache stamp-h

realclean-here:
	cd $(sdir) && rm -f config.h.in stamp-h.in configure

# ========== DEPENDENCIES FOR MAINTENANCE ==========

@@config.mk@@

config: config.h

config.status: configure
	./config.status --recheck

configure: configure.in aclocal.m4 aczsh.m4
	cd $(sdir) && autoconf

config.h: stamp-h
stamp-h: config.h.in config.status
	cd $(dir_top) && \
	  CONFIG_FILES= CONFIG_HEADERS=$(subdir)/config.h ./config.status

config.h.in: stamp-h.in
stamp-h.in: configure.in acconfig.h aclocal.m4 aczsh.m4
	cd $(sdir) && autoheader
	echo > $@

# ========== DEPENDENCIES FOR DISTRIBUTION ==========

DISTNAME = zsh-$(VERSION)

targz-src: $(DISTNAME).tar.gz
$(DISTNAME).tar.gz: FORCE
	@$(sdir_top)/Util/mkdisttree.sh $(DISTNAME) $(sdir_top) $(dir_top) SRC \
	    $(MAKE) $(MAKEDEFS)
	tar cf - $(DISTNAME) | gzip -9 > $@
	rm -rf $(DISTNAME)

targz-doc: $(DISTNAME)-doc.tar.gz
$(DISTNAME)-doc.tar.gz: FORCE
	@$(sdir_top)/Util/mkdisttree.sh $(DISTNAME) $(sdir_top) $(dir_top) DOC \
	    $(MAKE) $(MAKEDEFS)
	tar cf - $(DISTNAME) | gzip -9 > $@
	rm -rf $(DISTNAME)

FORCE:
