1############################################################
2## config/post.in
3##
4
5# in case there is no default target (very unlikely)
6all::
7
8check-windows::
9
10##############################
11# dependency generation
12#
13
14depend:: depend-postrecurse
15depend-postrecurse: depend-recurse
16depend-recurse: depend-prerecurse
17
18depend-prerecurse:
19depend-postrecurse:
20
21depend-postrecurse: depend-update-makefile
22
23ALL_DEP_SRCS= $(SRCS) $(EXTRADEPSRCS)
24
25# be sure to check ALL_DEP_SRCS against *what it would be if SRCS and
26# EXTRADEPSRCS are both empty*
27$(BUILDTOP)/.depend-verify-srcdir:
28	@if test "$(srcdir)" = "." ; then \
29		echo 1>&2 error: cannot build dependencies with srcdir=. ; \
30		echo 1>&2 "(can't distinguish generated files from source files)" ; \
31		exit 1 ; \
32	else \
33		if test -r $(BUILDTOP)/.depend-verify-srcdir; then :; \
34			else (set -x; touch $(BUILDTOP)/.depend-verify-srcdir); fi \
35	fi
36$(BUILDTOP)/.depend-verify-gcc: depend-verify-gcc-@HAVE_GCC@
37depend-verify-gcc-yes:
38	@if test -r $(BUILDTOP)/.depend-verify-gcc; then :; \
39		else (set -x; touch $(BUILDTOP)/.depend-verify-gcc); fi
40depend-verify-gcc-no:
41	@echo 1>&2 error: The '"depend"' rules are written for gcc.
42	@echo 1>&2 Please use gcc, or update the rules to handle your compiler.
43	@exit 1
44
45DEP_CFG_VERIFY = $(BUILDTOP)/.depend-verify-srcdir
46DEP_VERIFY = $(DEP_CFG_VERIFY) $(BUILDTOP)/.depend-verify-gcc
47
48.d: $(ALL_DEP_SRCS) $(DEP_CFG_VERIFY) depend-dependencies
49	if test "$(ALL_DEP_SRCS)" != " " ; then \
50		$(RM) .dtmp && $(MAKE) .dtmp && mv -f .dtmp .d ; \
51	else \
52		touch .d ; \
53	fi
54
55# These are dependencies of the depend target that do not get fed to
56# the compiler.  Examples include generated header files.
57depend-dependencies:
58
59# .dtmp must *always* be out of date so that $? can be used to perform
60# VPATH searches on the sources.
61#
62# NOTE: This will fail when using Make programs whose VPATH support is
63# broken.
64.dtmp: $(ALL_DEP_SRCS)
65	$(CC) -M -DDEPEND $(ALL_CFLAGS) $? > .dtmp
66
67# NOTE: This will also generate spurious $(OUTPRE) and $(OBJEXT)
68# references in rules for non-library objects in a directory where
69# library objects happen to be built.  It's mostly harmless.
70.depend: .d $(SRCTOP)/depfix.pl
71	perl $(SRCTOP)/depfix.pl \
72		'$(SRCTOP)' '$(mydir)' '$(srcdir)' '$(BUILDTOP)' '$(STLIBOBJS)' \
73		< .d > .depend
74
75# Temporarily keep the rule for removing the dependency line eater
76# until we're sure we've gotten everything converted and excised the
77# old stuff from Makefile.in files.
78depend-update-makefile: .depend depend-recurse
79	if test -n "$(SRCS)" ; then \
80		$(CP) .depend $(srcdir)/deps.new ; \
81	else \
82		echo "# No dependencies here." > $(srcdir)/deps.new ; \
83	fi
84	$(SRCTOP)/move-if-changed $(srcdir)/deps.new $(srcdir)/deps
85	sed -e '/^# +++ Dependency line eater +++/,$$d' \
86		< $(srcdir)/Makefile.in > $(srcdir)/Makefile.in.new
87	$(SRCTOP)/move-if-changed $(srcdir)/Makefile.in.new $(srcdir)/Makefile.in
88
89DEPTARGETS = .depend .d .dtmp $(DEP_VERIFY)
90DEPTARGETS_CLEAN = .depend .d .dtmp $(DEPTARGETS_@srcdir@)
91DEPTARGETS_@top_srcdir@ = $(DEP_VERIFY)
92
93# Clear out dependencies.  Should only be used temporarily, e.g., while
94# moving or renaming headers and then rebuilding dependencies.
95undepend:: undepend-postrecurse
96undepend-recurse:
97undepend-postrecurse: undepend-recurse
98	if test -n "$(SRCS)" ; then \
99		sed -e '/^# +++ Dependency line eater +++/,$$d' \
100			< $(srcdir)/Makefile.in \
101			> $(srcdir)/Makefile.in.new ;\
102		echo "# +++ Dependency line eater +++" >> $(srcdir)/Makefile.in.new ;\
103		echo "# (dependencies temporarily removed)" >> $(srcdir)/Makefile.in.new ;\
104		$(SRCTOP)/move-if-changed $(srcdir)/Makefile.in.new $(srcdir)/Makefile.in;\
105	else :; fi
106
107#
108# end dependency generation
109##############################
110
111clean::
112	$(RM) $(OBJS) $(DEPTARGETS_CLEAN) $(EXTRA_FILES) et-[ch]-*.et et-[ch]-*.[ch]
113	-$(RM) -r $(srcdir)/$(BUILDTOP)/autom4te.cache
114
115distclean-normal-clean:
116	$(MAKE) NORECURSE=true clean
117distclean-prerecurse: distclean-normal-clean
118distclean-nuke-configure-state:
119	$(RM) config.log config.cache config.status Makefile
120distclean-postrecurse: distclean-nuke-configure-state
121
122Makefiles-prerecurse: Makefile
123
124# thisconfigdir = relative path from this Makefile to config.status
125# mydir = relative path from config.status to this Makefile
126Makefile: $(srcdir)/Makefile.in $(srcdir)/deps $(BUILDTOP)/config.status \
127		$(SRCTOP)/pre.in $(SRCTOP)/post.in
128	cd $(BUILDTOP) && $(SHELL) config.status $(mydir)/Makefile
129$(BUILDTOP)/config.status: $(srcdir)/$(BUILDTOP)/configure
130	cd $(BUILDTOP) && $(SHELL) config.status --recheck
131# autom4te.cache supposedly improves performance with multiple runs, but
132# it breaks across versions, and around MIT we've got plenty of version
133# mixing.  So nuke it.
134$(top_srcdir)/configure: @MAINT@ \
135		$(top_srcdir)/configure.ac \
136		$(SRCTOP)/patchlevel.h \
137		$(SRCTOP)/aclocal.m4
138	-$(RM) -r $(srcdir)/$(BUILDTOP)/autom4te.cache
139	cd $(srcdir)/$(BUILDTOP) && $(AUTOCONF) $(AUTOCONFFLAGS)
140	-$(RM) -r $(srcdir)/$(BUILDTOP)/autom4te.cache
141
142RECURSE_TARGETS=all-recurse clean-recurse distclean-recurse install-recurse \
143	check-recurse depend-recurse undepend-recurse \
144	Makefiles-recurse install-headers-recurse
145
146# MY_SUBDIRS overrides any setting of SUBDIRS generated by the
147# configure script that generated this Makefile.  This is needed when
148# the configure script that produced this Makefile creates multiple
149# Makefiles in different directories; the setting of SUBDIRS will be
150# the same in each.
151#
152# LOCAL_SUBDIRS seems to account for the case where the configure
153# script doesn't call any other subsidiary configure scripts, but
154# generates multiple Makefiles.
155$(RECURSE_TARGETS):
156	@case "`echo 'x$(MFLAGS)'|sed -e 's/^x//' -e 's/ --.*$$//'`" \
157		in *[ik]*) e="status=1" ;; *) e="exit 1";; esac; \
158	do_subdirs="$(SUBDIRS)" ; \
159	status=0; \
160	if test -n "$$do_subdirs" && test -z "$(NORECURSE)"; then \
161	for i in $$do_subdirs ; do \
162		if test -d $$i && test -r $$i/Makefile ; then \
163		case $$i in .);; *) \
164			target=`echo $@|sed s/-recurse//`; \
165			echo "making $$target in $(CURRENT_DIR)$$i..."; \
166			if (cd $$i ; $(MAKE) \
167			    CURRENT_DIR=$(CURRENT_DIR)$$i/ $$target) then :; \
168			else eval $$e; fi; \
169			;; \
170		esac; \
171		else \
172			echo "Skipping missing directory $(CURRENT_DIR)$$i" ; \
173		fi; \
174	done; \
175	else :; \
176	fi;\
177	exit $$status
178
179##
180## end of post.in
181############################################################
182