107 lines
3.0 KiB
Plaintext
107 lines
3.0 KiB
Plaintext
# Copyright 1990 Silicon Graphics, Inc. All rights reserved.
|
|
#
|
|
#ident "$Revision: 1.52 $"
|
|
#
|
|
# Common makefile rules.
|
|
#
|
|
# Notes:
|
|
# - After including $(ROOT)/usr/include/make/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 -rf $(MKDEPFILE)
|
|
|
|
$(COMMONPREF)clean: $(_FORCE)
|
|
rm -rf $(DIRT)
|
|
|
|
$(COMMONPREF)rmtargets: $(_FORCE)
|
|
rm -rf $(TARGETS)
|
|
|
|
#
|
|
# Lint and C tags support.
|
|
#
|
|
$(COMMONPREF)fluff: $(_FORCE)
|
|
$(LINT) $(LINTFLAGS) $(CDEFS) $(CINCS) $(CFILES) $(LDLIBS)
|
|
|
|
CTAGS=ctags
|
|
|
|
$(COMMONPREF)tags: $(_FORCE)
|
|
rm -f tags
|
|
find . $(CTAGFILES) \
|
|
! -name '.*' ! -name 'llib-*' ! -name '*,v' \
|
|
$(CTAGFINDARGS) -print | \
|
|
sed 's:^\./::' | \
|
|
xargs $(CTAGS) -a $(CTAGOPTS)
|
|
if test -f tags; then \
|
|
sort -u +0 -1 -o tags tags; \
|
|
fi
|
|
|
|
ETAGS=etags
|
|
|
|
$(COMMONPREF)TAGS: $(_FORCE)
|
|
rm -f TAGS
|
|
find . $(CTAGFILES) \
|
|
! -name '.*' ! -name 'llib-*' ! -name '*,v' \
|
|
$(CTAGFINDARGS) -print | \
|
|
sed 's:^\./::' | \
|
|
xargs $(ETAGS) -a $(ETAGOPTS)
|
|
|
|
#
|
|
# A better version of smake's makelib.mk rule.
|
|
# XXX fix makelib.mk in next release and remove this rule.
|
|
#
|
|
MAKELIB: .USE .PRECIOUS
|
|
$(AR) c$(ARFLAGS) $(.TARGET) $(.OODATE)
|
|
rm -f $(.OODATE)
|
|
|
|
#
|
|
# Include the make dependency file if it exists.
|
|
#
|
|
sinclude $(MKDEPFILE)
|
|
|
|
#
|
|
# Local make rules
|
|
#
|
|
sinclude $(LOCALRULES)
|