9d749bc075b9e40692dd5cdc36fa56f85133a060
[ghc-hetmet.git] / mk / subdir.mk
1 #-----------------------------------------------------------------------------
2 # $Id: subdir.mk,v 1.3 1996/11/22 13:23:23 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 #-----------------------------------------------------------------------------
19 # The rules...
20
21 ifndef NoAllTargetForSubdirs
22 all::
23         @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
24         for i in $(SUBDIRS) ; do \
25           $(MAKE) -C $$i $(MFLAGS) all; \
26         done
27 endif
28
29 ifndef NoDocsTargetForSubdirs
30 docs::
31         @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
32         for i in $(SUBDIRS) ; do \
33           $(MAKE) -C $$i $(MFLAGS) docs; \
34         done
35 else
36 docs::
37 endif
38
39 ifndef NoRunTestsTargetForSubdirs
40 runtests::
41         @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
42         for i in $(SUBDIRS) ; do \
43           $(MAKE) -C $$i $(MFLAGS) runtests; \
44         done
45 else
46 runtests::
47 endif
48
49 ifndef NoInstallTargetForSubdirs
50 install::
51         @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
52         for i in $(SUBDIRS) ; do \
53           $(MAKE) -C $$i $(MFLAGS) prefix='$(prefix)' install; \
54         done
55 else
56 install::
57 endif
58
59 ifndef NoInstallDocsTargetForSubdirs
60 install_docs::
61         @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
62         for i in $(SUBDIRS) ; do \
63           $(MAKE) -C $$i $(MFLAGS) prefix='$(prefix)' install_docs; \
64         done
65 else
66 install_docs::
67 endif
68
69 ifndef NoDependTargetForSubdirs
70 depend::
71         @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
72         for i in $(SUBDIRS) ; do \
73           $(MAKE) -C $$i $(MFLAGS) depend; \
74         done
75 else
76 depend::
77 endif
78
79 ifndef NoTagTargetForSubdirs
80 tags::
81         @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
82         for i in $(SUBDIRS) ; do \
83           $(MAKE) -C $$i $(MFLAGS) tags; \
84         done
85 endif
86
87 ifndef NoCleanTargetForSubdirs
88 clean::
89         @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
90         for i in $(SUBDIRS) ; do \
91           $(MAKE) -C $$i $(MFLAGS) clean; \
92         done
93 endif
94
95 ifndef NoVeryCleanTargetForSubdirs
96 veryclean::
97         @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
98         for i in $(SUBDIRS) ; do \
99           $(MAKE) -C $$i $(MFLAGS) veryclean; \
100         done
101 endif