File: commonrules

package info (click to toggle)
inventor 2.1.5-10-12
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 32,900 kB
  • ctags: 21,729
  • sloc: ansic: 33,867; lisp: 7,361; cpp: 3,874; yacc: 369; sh: 359; perl: 234; awk: 141; makefile: 75; csh: 35; sed: 11
file content (103 lines) | stat: -rw-r--r-- 2,830 bytes parent folder | download | duplicates (13)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# Copyright 1990 Silicon Graphics, Inc.  All rights reserved.
#
#ident "$Revision: 1.2 $"
#
# Common makefile rules.
#
# Notes:
#	- After including $(IVDEPTH)/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.
#

#
# 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.
#
.PHONY: $(COMMONPREF)clobber $(COMMONPREF)clean $(COMMONPREF)rmtargets

$(COMMONPREF)clobber: $(COMMONPREF)clean $(COMMONPREF)rmtargets
	rm -rf $(MKDEPFILE)

$(COMMONPREF)clean:
	rm -rf $(DIRT)

$(COMMONPREF)rmtargets:
	rm -rf $(TARGETS)

#
# Lint and C tags support.
#
.PHONY: $(COMMONPREF)fluff $(COMMONPREF)tags $(COMMONPREF)TAGS

$(COMMONPREF)fluff:
	$(LINT) $(LINTFLAGS) $(CDEFS) $(CINCS) $(CFILES) $(LDLIBS)

CTAGS=ctags

$(COMMONPREF)tags: 
	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:
	rm -f TAGS
	find . $(CTAGFILES) \
		! -name '.*' ! -name 'llib-*' ! -name '*,v' \
		$(CTAGFINDARGS) -print | \
	    sed 's:^\./::' | \
	    xargs $(ETAGS) -a $(ETAGOPTS)

#
# Implicit rule to compile files with .c++ extension.
#
.SUFFIXES: .c++

.c++.o:
	$(CXX) $(CXXFLAGS) -c $<

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

#
# Local make rules
#
sinclude $(LOCALRULES)