New submission from Paul "TBBle" Hampson:

Noticed in Python 2.7 but a quick look in the repository suggests this is also 
true in Python 3 releases.

The Makefile rule for Makefile.pre in Makefile.pre.in is:
# Build the toplevel Makefile
Makefile.pre: Makefile.pre.in config.status
    CONFIG_FILES=Makefile.pre CONFIG_HEADERS= $(SHELL) config.status
    $(MAKE) -f Makefile.pre Makefile

However, when built out-of-tree, Makefile.pre is in the build directory, as as 
config.status, but Makefile.pre.in is in the source directory.

So the rule should be
# Build the toplevel Makefile
Makefile.pre: $(srcdir)/Makefile.pre.in config.status
    CONFIG_FILES=Makefile.pre CONFIG_HEADERS= $(SHELL) config.status
    $(MAKE) -f Makefile.pre Makefile

Note that the recipe doesn't change, as config.status internally knows where 
Makefile.pre.in is found, so it's just the rule dependency that's wrong.

This bug results in "No rule to create Makefile.pre.in" if Makefile.pre is 
somehow newer than Makefile or Modules/config.c in the build tree.

----------
components: Build
messages: 190525
nosy: TBBle
priority: normal
severity: normal
status: open
title: Out-of-tree build cannot regenerate Makefile.pre
versions: Python 2.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue18125>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to