source: trunk/essentials/sys-devel/automake-1.9/lib/am/subdirs.am

Last change on this file was 3086, checked in by bird, 18 years ago

automake 1.9.6

File size: 3.9 KB
Line 
1## automake - create Makefile.in from Makefile.am
2## Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2005
3## Free Software Foundation, Inc.
4
5## This program is free software; you can redistribute it and/or modify
6## it under the terms of the GNU General Public License as published by
7## the Free Software Foundation; either version 2, or (at your option)
8## any later version.
9
10## This program is distributed in the hope that it will be useful,
11## but WITHOUT ANY WARRANTY; without even the implied warranty of
12## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13## GNU General Public License for more details.
14
15## You should have received a copy of the GNU General Public License
16## along with this program; if not, write to the Free Software
17## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18## 02110-1301, USA.
19
20RECURSIVE_TARGETS += \
21all-recursive check-recursive installcheck-recursive
22
23.PHONY: $(RECURSIVE_TARGETS)
24
25# This directory's subdirectories are mostly independent; you can cd
26# into them and run `make' without going through this Makefile.
27# To change the values of `make' variables: instead of editing Makefiles,
28# (1) if the variable is set in `config.status', edit `config.status'
29# (which will cause the Makefiles to be regenerated when you run `make');
30# (2) otherwise, pass the desired values on the `make' command line.
31
32$(RECURSIVE_TARGETS):
33## Using $failcom allows "-k" to keep its natural meaning when running a
34## recursive rule.
35 @failcom='exit 1'; \
36 for f in x $$MAKEFLAGS; do \
37 case $$f in \
38 *=* | --[!k]*);; \
39 *k*) failcom='fail=yes';; \
40 esac; \
41 done; \
42 dot_seen=no; \
43 target=`echo $@ | sed s/-recursive//`; \
44 list='$(SUBDIRS)'; for subdir in $$list; do \
45 echo "Making $$target in $$subdir"; \
46 if test "$$subdir" = "."; then \
47 dot_seen=yes; \
48 local_target="$$target-am"; \
49 else \
50 local_target="$$target"; \
51 fi; \
52 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
53 || eval $$failcom; \
54 done; \
55 if test "$$dot_seen" = "no"; then \
56 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
57 fi; test -z "$$fail"
58
59
60mostlyclean: mostlyclean-recursive
61clean: clean-recursive
62distclean: distclean-recursive
63maintainer-clean: maintainer-clean-recursive
64
65.PHONY: mostlyclean-recursive clean-recursive distclean-recursive \
66maintainer-clean-recursive
67
68## We run all `clean' targets in reverse order. Why? It's an attempt
69## to alleviate a problem that can happen when dependencies are
70## enabled. In this case, the .P file in one directory can depend on
71## some automatically generated header in an earlier directory. Since
72## the dependencies are required before any target is examined, make
73## bombs.
74mostlyclean-recursive clean-recursive distclean-recursive \
75maintainer-clean-recursive:
76## Using $failcom allows "-k" to keep its natural meaning when running a
77## recursive rule.
78 @failcom='exit 1'; \
79 for f in x $$MAKEFLAGS; do \
80 case $$f in \
81 *=* | --[!k]*);; \
82 *k*) failcom='fail=yes';; \
83 esac; \
84 done; \
85 dot_seen=no; \
86## For distclean and maintainer-clean we make sure to use the full
87## list of subdirectories. We do this so that `configure; make
88## distclean' really is a no-op, even if SUBDIRS is conditional. For
89## other clean targets this doesn't matter.
90 case "$@" in \
91 distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
92 *) list='$(SUBDIRS)' ;; \
93 esac; \
94 rev=''; for subdir in $$list; do \
95 if test "$$subdir" = "."; then :; else \
96 rev="$$subdir $$rev"; \
97 fi; \
98 done; \
99## Always do `.' last.
100 rev="$$rev ."; \
101 target=`echo $@ | sed s/-recursive//`; \
102 for subdir in $$rev; do \
103 echo "Making $$target in $$subdir"; \
104 if test "$$subdir" = "."; then \
105 local_target="$$target-am"; \
106 else \
107 local_target="$$target"; \
108 fi; \
109 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
110 || eval $$failcom; \
111 done && test -z "$$fail"
Note: See TracBrowser for help on using the repository browser.