diff options
author | Victor Stinner <vstinner@python.org> | 2021-09-17 18:20:43 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-17 18:20:43 (GMT) |
commit | 41551ee7e24fb6c58846836d3655dbb212281206 (patch) | |
tree | e8a91d7618bd697cb83607a78abb3b13832502ef /Tools | |
parent | c5a677da9e7b2b2aa43b0b6dfb3813c0212379c0 (diff) | |
download | cpython-41551ee7e24fb6c58846836d3655dbb212281206.zip cpython-41551ee7e24fb6c58846836d3655dbb212281206.tar.gz cpython-41551ee7e24fb6c58846836d3655dbb212281206.tar.bz2 |
bpo-45020: Fix build out of source tree (GH-28410)
* Makefile.pre.in: Add $(srcdir) when needed, remove it when it was
used by mistake.
* freeze_modules.py tool uses ./Programs/_freeze_module if the
executable doesn't exist in the source tree.
Diffstat (limited to 'Tools')
-rw-r--r-- | Tools/scripts/freeze_modules.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/Tools/scripts/freeze_modules.py b/Tools/scripts/freeze_modules.py index 35849c9..bfbea5d 100644 --- a/Tools/scripts/freeze_modules.py +++ b/Tools/scripts/freeze_modules.py @@ -15,9 +15,8 @@ import textwrap from update_file import updating_file_with_tmpfile -SCRIPTS_DIR = os.path.abspath(os.path.dirname(__file__)) -TOOLS_DIR = os.path.dirname(SCRIPTS_DIR) -ROOT_DIR = os.path.dirname(TOOLS_DIR) +ROOT_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) +ROOT_DIR = os.path.abspath(ROOT_DIR) STDLIB_DIR = os.path.join(ROOT_DIR, 'Lib') # If MODULES_DIR is changed then the .gitattributes and .gitignore files @@ -26,6 +25,13 @@ MODULES_DIR = os.path.join(ROOT_DIR, 'Python', 'frozen_modules') if sys.platform != "win32": TOOL = os.path.join(ROOT_DIR, 'Programs', '_freeze_module') + if not os.path.isfile(TOOL): + # When building out of the source tree, get the tool from the current + # directory + TOOL = os.path.join('Programs', '_freeze_module') + TOOL = os.path.abspath(TOOL) + if not os.path.isfile(TOOL): + sys.exit("ERROR: missing _freeze_module") else: def find_tool(): for arch in ['amd64', 'win32']: @@ -547,7 +553,7 @@ def regen_makefile(modules): # instead of going through an intermediate file like we used to. rules.append(f'{header}: Programs/_freeze_module {pyfile}') rules.append( - (f'\t$(srcdir)/Programs/_freeze_module {src.frozenid} ' + (f'\tPrograms/_freeze_module {src.frozenid} ' f'$(srcdir)/{pyfile} $(srcdir)/{header}')) rules.append('') |