diff --git a/.gitignore b/.gitignore index 2a6f249275c32e..1290dbefb0cd1f 100644 --- a/.gitignore +++ b/.gitignore @@ -63,6 +63,7 @@ Doc/.venv/ Doc/env/ Doc/.env/ Include/pydtrace_probes.h +Include/pyconfig.h Lib/site-packages/* !Lib/site-packages/README.txt Lib/test/data/* diff --git a/Android/testbed/app/build.gradle.kts b/Android/testbed/app/build.gradle.kts index c627cb1b0e0b22..89ee9418a026f6 100644 --- a/Android/testbed/app/build.gradle.kts +++ b/Android/testbed/app/build.gradle.kts @@ -10,7 +10,7 @@ val ANDROID_DIR = file("../..") val PYTHON_DIR = ANDROID_DIR.parentFile!! val PYTHON_CROSS_DIR = file("$PYTHON_DIR/cross-build") val inSourceTree = ( - ANDROID_DIR.name == "Android" && file("$PYTHON_DIR/pyconfig.h.in").exists() + ANDROID_DIR.name == "Android" && file("$PYTHON_DIR/Include/pyconfig.h.in").exists() ) val KNOWN_ABIS = mapOf( diff --git a/pyconfig.h.in b/Include/pyconfig.h.in similarity index 99% rename from pyconfig.h.in rename to Include/pyconfig.h.in index c91facbedf94e5..7a18bf552e5578 100644 --- a/pyconfig.h.in +++ b/Include/pyconfig.h.in @@ -1,4 +1,4 @@ -/* pyconfig.h.in. Generated from configure.ac by autoheader. */ +/* Include/pyconfig.h.in. Generated from configure.ac by autoheader. */ #ifndef Py_PYCONFIG_H diff --git a/Lib/sysconfig/__init__.py b/Lib/sysconfig/__init__.py index 68890b45b82008..a79038028584e3 100644 --- a/Lib/sysconfig/__init__.py +++ b/Lib/sysconfig/__init__.py @@ -455,14 +455,16 @@ def parse_config_h(fp, vars=None): def get_config_h_filename(): """Return the path of pyconfig.h.""" + parts = [] if _PYTHON_BUILD: if os.name == "nt": - inc_dir = os.path.dirname(sys._base_executable) + parts.append(os.path.dirname(sys._base_executable)) else: - inc_dir = _PROJECT_BASE + parts.extend([_PROJECT_BASE, 'Include']) else: - inc_dir = get_path('platinclude') - return os.path.join(inc_dir, 'pyconfig.h') + parts.append(get_path('platinclude')) + parts.append('pyconfig.h') + return os.path.join(*parts) def get_scheme_names(): diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py index 53e55383bf9c72..00f8c3e8547f6b 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py @@ -533,7 +533,7 @@ def test_srcdir(self): # /PC/pyconfig.h.in always exists even if unused pyconfig_h = os.path.join(srcdir, 'PC', 'pyconfig.h.in') self.assertTrue(os.path.exists(pyconfig_h), pyconfig_h) - pyconfig_h_in = os.path.join(srcdir, 'pyconfig.h.in') + pyconfig_h_in = os.path.join(srcdir, 'Include', 'pyconfig.h.in') self.assertTrue(os.path.exists(pyconfig_h_in), pyconfig_h_in) if os.name == 'nt': # /pyconfig.h exists on Windows in a build tree diff --git a/Makefile.pre.in b/Makefile.pre.in index 3ab7c3d6c48ad9..07ec6d24d1f48b 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -269,7 +269,7 @@ SRCDIRS= @SRCDIRS@ SUBDIRSTOO= Include Lib Misc # Files and directories to be distributed -CONFIGFILES= configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in +CONFIGFILES= configure configure.ac acconfig.h Include/pyconfig.h.in Makefile.pre.in DISTFILES= README.rst ChangeLog $(CONFIGFILES) DISTDIRS= $(SUBDIRS) $(SUBDIRSTOO) Ext-dummy DIST= $(DISTFILES) $(DISTDIRS) @@ -1207,7 +1207,7 @@ PYTHON_HEADERS= \ $(srcdir)/Include/warnings.h \ $(srcdir)/Include/weakrefobject.h \ \ - pyconfig.h \ + Include/pyconfig.h \ $(PARSER_HEADERS) \ \ $(srcdir)/Include/cpython/abstract.h \ @@ -2875,8 +2875,8 @@ inclinstall: $(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY)/internal/mimalloc/mimalloc; \ done; \ fi - echo $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h - $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h + echo $(INSTALL_DATA) Include/pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h + $(INSTALL_DATA) Include/pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h # Install the library and miscellaneous stuff needed for extending/embedding # This goes into $(exec_prefix) @@ -3076,7 +3076,7 @@ JIT_DEPS = \ $(srcdir)/Tools/jit/*.c \ $(srcdir)/Tools/jit/*.py \ $(srcdir)/Python/executor_cases.c.h \ - pyconfig.h + Include/pyconfig.h jit_stencils.h: $(JIT_DEPS) @REGEN_JIT_COMMAND@ @@ -3209,7 +3209,7 @@ clean: clean-retain-profile clean-bolt clobber: clean -rm -f $(BUILDPYTHON) $(LIBRARY) $(LDLIBRARY) $(DLLLIBRARY) \ tags TAGS \ - config.cache config.log pyconfig.h Modules/config.c + config.cache config.log Include/pyconfig.h Modules/config.c -rm -rf build platform -rm -rf $(PYTHONFRAMEWORKDIR) -rm -rf iOS/Frameworks diff --git a/Tools/build/smelly.py b/Tools/build/smelly.py index 9a360412a73a4d..771c60b65271ad 100755 --- a/Tools/build/smelly.py +++ b/Tools/build/smelly.py @@ -119,10 +119,10 @@ def check_library(library, dynamic=False): def check_extensions(): print(__file__) - # This assumes pybuilddir.txt is in same directory as pyconfig.h. + # This assumes pybuilddir.txt is in same directory as Makefile. # In the case of out-of-tree builds, we can't assume pybuilddir.txt is # in the source folder. - config_dir = os.path.dirname(sysconfig.get_config_h_filename()) + config_dir = os.path.dirname(sysconfig.get_makefile_filename()) filename = os.path.join(config_dir, "pybuilddir.txt") try: with open(filename, encoding="utf-8") as fp: diff --git a/Tools/patchcheck/patchcheck.py b/Tools/patchcheck/patchcheck.py index 0dcf6ef844a048..23b7dcd970cf40 100755 --- a/Tools/patchcheck/patchcheck.py +++ b/Tools/patchcheck/patchcheck.py @@ -178,7 +178,7 @@ def regenerated_configure(file_paths): def regenerated_pyconfig_h_in(file_paths): """Check if pyconfig.h.in has been regenerated.""" if 'configure.ac' in file_paths: - return "yes" if 'pyconfig.h.in' in file_paths else "no" + return "yes" if os.path.join('Include', 'pyconfig.h.in') in file_paths else "no" else: return "not needed" diff --git a/configure b/configure index 2649a800f91a48..b53a506d2bb0f6 100755 --- a/configure +++ b/configure @@ -3645,7 +3645,7 @@ else fi -ac_config_headers="$ac_config_headers pyconfig.h" +ac_config_headers="$ac_config_headers Include/pyconfig.h" @@ -35075,7 +35075,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 for ac_config_target in $ac_config_targets do case $ac_config_target in - "pyconfig.h") CONFIG_HEADERS="$CONFIG_HEADERS pyconfig.h" ;; + "Include/pyconfig.h") CONFIG_HEADERS="$CONFIG_HEADERS Include/pyconfig.h" ;; "Mac/Makefile") CONFIG_FILES="$CONFIG_FILES Mac/Makefile" ;; "Mac/PythonLauncher/Makefile") CONFIG_FILES="$CONFIG_FILES Mac/PythonLauncher/Makefile" ;; "Mac/Resources/framework/Info.plist") CONFIG_FILES="$CONFIG_FILES Mac/Resources/framework/Info.plist" ;; diff --git a/configure.ac b/configure.ac index 5525a5b0ed5240..fb244b436a4e5a 100644 --- a/configure.ac +++ b/configure.ac @@ -132,7 +132,7 @@ else fi AC_CONFIG_SRCDIR([Include/object.h]) -AC_CONFIG_HEADERS([pyconfig.h]) +AC_CONFIG_HEADERS([Include/pyconfig.h]) AC_CANONICAL_HOST AC_SUBST([build])