diff --git a/Makefile.pre.in b/Makefile.pre.in index fc9822f4e6948f..d6b2179c022e5c 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -728,7 +728,7 @@ regen-test-frozenmain: $(BUILDPYTHON) # Regenerate Programs/test_frozenmain.h # from Programs/test_frozenmain.py # using Programs/freeze_test_frozenmain.py - $(RUNSHARED) ./$(BUILDPYTHON) Programs/freeze_test_frozenmain.py Programs/test_frozenmain.h + $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Programs/freeze_test_frozenmain.py Programs/test_frozenmain.h Programs/_testembed: Programs/_testembed.o $(LIBRARY_DEPS) $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) @@ -751,40 +751,40 @@ regen-frozen: Tools/scripts/freeze_modules.py $(FROZEN_FILES) # BEGIN: freezing modules Python/frozen_modules/importlib__bootstrap.h: Programs/_freeze_module Lib/importlib/_bootstrap.py - $(srcdir)/Programs/_freeze_module importlib._bootstrap $(srcdir)/Lib/importlib/_bootstrap.py $(srcdir)/Python/frozen_modules/importlib__bootstrap.h + Programs/_freeze_module importlib._bootstrap $(srcdir)/Lib/importlib/_bootstrap.py $(srcdir)/Python/frozen_modules/importlib__bootstrap.h Python/frozen_modules/importlib__bootstrap_external.h: Programs/_freeze_module Lib/importlib/_bootstrap_external.py - $(srcdir)/Programs/_freeze_module importlib._bootstrap_external $(srcdir)/Lib/importlib/_bootstrap_external.py $(srcdir)/Python/frozen_modules/importlib__bootstrap_external.h + Programs/_freeze_module importlib._bootstrap_external $(srcdir)/Lib/importlib/_bootstrap_external.py $(srcdir)/Python/frozen_modules/importlib__bootstrap_external.h Python/frozen_modules/zipimport.h: Programs/_freeze_module Lib/zipimport.py - $(srcdir)/Programs/_freeze_module zipimport $(srcdir)/Lib/zipimport.py $(srcdir)/Python/frozen_modules/zipimport.h + Programs/_freeze_module zipimport $(srcdir)/Lib/zipimport.py $(srcdir)/Python/frozen_modules/zipimport.h Python/frozen_modules/abc.h: Programs/_freeze_module Lib/abc.py - $(srcdir)/Programs/_freeze_module abc $(srcdir)/Lib/abc.py $(srcdir)/Python/frozen_modules/abc.h + Programs/_freeze_module abc $(srcdir)/Lib/abc.py $(srcdir)/Python/frozen_modules/abc.h Python/frozen_modules/io.h: Programs/_freeze_module Lib/io.py - $(srcdir)/Programs/_freeze_module io $(srcdir)/Lib/io.py $(srcdir)/Python/frozen_modules/io.h + Programs/_freeze_module io $(srcdir)/Lib/io.py $(srcdir)/Python/frozen_modules/io.h Python/frozen_modules/_collections_abc.h: Programs/_freeze_module Lib/_collections_abc.py - $(srcdir)/Programs/_freeze_module _collections_abc $(srcdir)/Lib/_collections_abc.py $(srcdir)/Python/frozen_modules/_collections_abc.h + Programs/_freeze_module _collections_abc $(srcdir)/Lib/_collections_abc.py $(srcdir)/Python/frozen_modules/_collections_abc.h Python/frozen_modules/_sitebuiltins.h: Programs/_freeze_module Lib/_sitebuiltins.py - $(srcdir)/Programs/_freeze_module _sitebuiltins $(srcdir)/Lib/_sitebuiltins.py $(srcdir)/Python/frozen_modules/_sitebuiltins.h + Programs/_freeze_module _sitebuiltins $(srcdir)/Lib/_sitebuiltins.py $(srcdir)/Python/frozen_modules/_sitebuiltins.h Python/frozen_modules/genericpath.h: Programs/_freeze_module Lib/genericpath.py - $(srcdir)/Programs/_freeze_module genericpath $(srcdir)/Lib/genericpath.py $(srcdir)/Python/frozen_modules/genericpath.h + Programs/_freeze_module genericpath $(srcdir)/Lib/genericpath.py $(srcdir)/Python/frozen_modules/genericpath.h Python/frozen_modules/ntpath.h: Programs/_freeze_module Lib/ntpath.py - $(srcdir)/Programs/_freeze_module ntpath $(srcdir)/Lib/ntpath.py $(srcdir)/Python/frozen_modules/ntpath.h + Programs/_freeze_module ntpath $(srcdir)/Lib/ntpath.py $(srcdir)/Python/frozen_modules/ntpath.h Python/frozen_modules/posixpath.h: Programs/_freeze_module Lib/posixpath.py - $(srcdir)/Programs/_freeze_module posixpath $(srcdir)/Lib/posixpath.py $(srcdir)/Python/frozen_modules/posixpath.h + Programs/_freeze_module posixpath $(srcdir)/Lib/posixpath.py $(srcdir)/Python/frozen_modules/posixpath.h Python/frozen_modules/stat.h: Programs/_freeze_module Lib/stat.py - $(srcdir)/Programs/_freeze_module stat $(srcdir)/Lib/stat.py $(srcdir)/Python/frozen_modules/stat.h + Programs/_freeze_module stat $(srcdir)/Lib/stat.py $(srcdir)/Python/frozen_modules/stat.h Python/frozen_modules/__hello__.h: Programs/_freeze_module Lib/__hello__.py - $(srcdir)/Programs/_freeze_module __hello__ $(srcdir)/Lib/__hello__.py $(srcdir)/Python/frozen_modules/__hello__.h + Programs/_freeze_module __hello__ $(srcdir)/Lib/__hello__.py $(srcdir)/Python/frozen_modules/__hello__.h # END: freezing modules diff --git a/Tools/scripts/freeze_modules.py b/Tools/scripts/freeze_modules.py index 35849c9ac5d1ee..bfbea5d27f8786 100644 --- a/Tools/scripts/freeze_modules.py +++ b/Tools/scripts/freeze_modules.py @@ -15,9 +15,8 @@ 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 @@ 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('')