# modified after stuff in /usr/include/make/commonrules
#
# Common makefile rules.
#
# Notes:
#	- After including $(ROOT)/commondefs, a makefile may
#	  say ``include $(COMMONRULES)'' to get this file.
#	- It is up to the including makefile to define a default rule before
#	  including $(COMMONRULES).
#	- The parent makefile must define TARGETS in order for clobber to work.
#	- If the parent makefile must overload the common targets with special
#	  rules (e.g. to perform recursive or subdirectory makes), then set
#	  COMMONPREF to some unique prefix before including $(COMMONRULES),
#	  and make sure that each common target depends on its prefixed name.
#	  For example, a makefile which passes common targets and install on
#	  to makes in subdirectories listed in DIRS might say
#
#		COMMONPREF=xxx
#		include $(COMMONRULES)
#
#		$(COMMONTARGS) install: $(COMMONPREF)$$@
#			@for d in $(DIRS); do \
#				$(ECHO) "\tcd $$d; $(MAKE) $@"; \
#				cd $$d; $(MAKE) $@; cd ..; \
#			done
#
#	  Thus, all of the common rules plus install are passed to sub-makes
#	  *and* executed in the current makefile (as xxxclean, xxxclobber,
#	  xxxinstall, etc).  SUBDIRS_MAKERULE in commondefs is a convenience
#	  macro that expands to the above loop.
#

#
# An always-unsatisfied target.  The name is unlikely to occur in a file tree,
# but if _force existed in a make's current directory, this target would be
# always-satisfied and targets that depended on it would not be made.
#
$(_FORCE):

#
# File removal rules: there are three.
#	- clean removes dirt
#	- clobber removes targets, dirt, and Makedepend
#	- rmtargets removes targets only
# One might 'make clean' in a large tree to reclaim disk space after targets
# are built, but before they are archived into distribution images on disk.
# One might 'make rmtargets' to remove badly-linked executables, and then
# run a 'make' to re-link the good objects.
#
$(COMMONPREF)clobber: $(COMMONPREF)clean $(COMMONPREF)rmtargets $(_FORCE)
	$(RM) $(MKDEPFILE)

$(COMMONPREF)clean: $(_FORCE)
	$(RM) $(DIRT)

$(COMMONPREF)rmtargets: $(_FORCE)
	$(RM) $(TARGETS)

#
# Lint and C tags support.
#
$(COMMONPREF)fluff: $(_FORCE)
	$(LINT) $(LINTFLAGS) $(CDEFS) $(CINCS) $(CSRCS)

$(COMMONPREF)count: $(_FORCE)
	$(WC) $(SRCS)

#
# Include the make dependency file if it exists.
#
sinclude $(MKDEPFILE)

#
# Local make rules
#
sinclude $(LOCALRULES)
