Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: make oddity

On Mon, 20 Dec 2010 17:15:47 +0000
Peter Stephenson <pws@xxxxxxx> wrote:
> I had to work around a problem with make in releasing 4.3.11: in
> previous releases 'make' from a clean directory performed the equivalent
> of 'make prep' in the Src directory, this time it didn't.  I assume that
> there's some dependency missing (the standard answer) and that the
> timestamps of two files have somehow got out of order so some assumption
> isn't valid any more.
> Here's the change I committed to work around it (with a later change to
> fix a minor unintentional slip with the phony files that it's not worth
> updating the release for).  As it works well enough in practice I'm not
> going to waste time on it, but maybe somebody can see more quickly than
> I can why this step should have happened automatically in everything up to
> 4.3.10-test-3 but doesn't in the 4.3.11 release without the change.

Inevitably I did waste time on it.

I can't for the life of me see how "prep" in Makemod ever got executed
other than by an explicit "make prep".  Surely it should be done when
the timestamp for the module file gets made?

Index: Src/Makefile.in
RCS file: /cvsroot/zsh/zsh/Src/Makefile.in,v
retrieving revision 1.18
diff -p -u -r1.18 Makefile.in
--- Src/Makefile.in	20 Dec 2010 16:51:25 -0000	1.18
+++ Src/Makefile.in	20 Dec 2010 20:56:10 -0000
@@ -221,9 +221,6 @@ mostlyclean-modules clean-modules distcl
 install.modules uninstall.modules \
 modobjs modules headers proto $(MAIN_OBJS) zsh.export: Makemod
-	@if [ ! -f Builtins/Makefile.in ]; then \
-	   $(MAKE) prep; \
-	fi
 	@$(MAKE) -f Makemod $(MAKEDEFS) $@
 .PHONY: install.modules uninstall.modules headers proto
Index: Src/Makemod.in.in
RCS file: /cvsroot/zsh/zsh/Src/Makemod.in.in,v
retrieving revision 1.7
diff -p -u -r1.7 Makemod.in.in
--- Src/Makemod.in.in	1 Feb 2008 11:31:38 -0000	1.7
+++ Src/Makemod.in.in	20 Dec 2010 20:56:10 -0000
@@ -116,8 +116,9 @@ prep:
 .PHONY: prep
-headers prep: $(dir_src)/modules.stamp
+headers: $(dir_src)/modules.stamp
 $(dir_src)/modules.stamp: $(MDDS)
+	$(MAKE) -f $(makefile) $(MAKEDEFS) prep
 	echo 'timestamp for *.mdd files' > $@
 .PHONY: headers
Peter Stephenson <p.w.stephenson@xxxxxxxxxxxx>
Web page now at http://homepage.ntlworld.com/p.w.stephenson/

Messages sorted by: Reverse Date, Date, Thread, Author