[project @ 1996-11-21 16:45:53 by simonm]
[ghc-hetmet.git] / mk / subdir.mk
1 #-----------------------------------------------------------------------------
2 # $Id: subdir.mk,v 1.2 1996/11/21 16:50:40 simonm Exp $
3
4 # Rules for passing on make commands to sub-directories
5
6 # Useful Variables to set
7
8 #       SUBDIRS = subdirectories to recurse into
9
10 #       NoAllTargetForSubdirs                   ]
11 #       NoDocsTargetForSubdirs                  ]
12 #       NoInstallTargetForSubdirs               ]
13 #       NoInstallDocsTargetForSubdirs           ] omit specified rules
14 #       NoDependTargetForSubdirs                ]
15 #       NoCleanTargetForSubdirs                 ]
16 #       NoVeryCleanTargetForSubdirs             ]
17
18 #       ProjectMakeVarsForAllInSubdirs          make variables to pass to
19 #                                               Makefiles for the all target
20 #                                               in the current project
21 #       SetupMakeVarsForAllInSubdirs            same, but for the current
22 #                                               setup
23
24 #       ProjectMakeVarsForRunTestsInSubdirs     same, for project runtests
25 #       SetupMakeVarsForRunTestsInSubdirs       same, for setup
26
27 #-----------------------------------------------------------------------------
28 # The rules...
29
30 ifndef NoAllTargetForSubdirs
31 all::
32         @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
33         for i in $(SUBDIRS) ; do \
34           $(MAKE) -C $$i $(MFLAGS) all; \
35         done
36 endif
37
38 ifndef NoDocsTargetForSubdirs
39 docs::
40         @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
41         for i in $(SUBDIRS) ; do \
42           $(MAKE) -C $$i $(MFLAGS) docs; \
43         done
44 else
45 docs::
46 endif
47
48 ifndef NoRunTestsTargetForSubdirs
49 runtests::
50         @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
51         for i in $(SUBDIRS) ; do \
52           $(MAKE) -C $$i $(MFLAGS) runtests; \
53         done
54 else
55 runtests::
56 endif
57
58 ifndef NoInstallTargetForSubdirs
59 install::
60         @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
61         for i in $(SUBDIRS) ; do \
62           $(MAKE) -C $$i $(MFLAGS) prefix='$(prefix)' install; \
63         done
64 else
65 install::
66 endif
67
68 ifndef NoInstallDocsTargetForSubdirs
69 install_docs::
70         @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
71         for i in $(SUBDIRS) ; do \
72           $(MAKE) -C $$i $(MFLAGS) prefix='$(prefix)' install_docs; \
73         done
74 else
75 install_docs::
76 endif
77
78 ifndef NoDependTargetForSubdirs
79 depend::
80         @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
81         for i in $(SUBDIRS) ; do \
82           $(MAKE) -C $$i $(MFLAGS) depend; \
83         done
84 else
85 depend::
86 endif
87
88 ifndef NoTagTargetForSubdirs
89 tags::
90         @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
91         for i in $(SUBDIRS) ; do \
92           $(MAKE) -C $$i $(MFLAGS) tags; \
93         done
94 endif
95
96 ifndef NoCleanTargetForSubdirs
97 clean::
98         @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
99         for i in $(SUBDIRS) ; do \
100           $(MAKE) -C $$i $(MFLAGS) clean; \
101         done
102 endif
103
104 ifndef NoVeryCleanTargetForSubdirs
105 veryclean::
106         @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
107         for i in $(SUBDIRS) ; do \
108           $(MAKE) -C $$i $(MFLAGS) veryclean; \
109         done
110 endif