Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions Doc/whatsnew/3.7.rst
Original file line number Diff line number Diff line change
Expand Up @@ -657,6 +657,12 @@ Build and C API Changes
* Support for building ``--without-threads`` is removed.
(Contributed by Antoine Pitrou in :issue:`31370`.).

* Add the ``--enable-use-setup-dist`` configure option to use
Modules/Setup.dist instead of Modules/Setup to build the Makefile. This
allows avoiding the warnings that occur whenever Modules/Setup.dist is older
than Modules/Setup after checking out another branch. (Contributed by Xavier
de Gaye in :issue:`32430`.)


Other CPython Implementation Changes
====================================
Expand Down
11 changes: 8 additions & 3 deletions Makefile.pre.in
Original file line number Diff line number Diff line change
Expand Up @@ -675,15 +675,17 @@ oldsharedmods: $(SHAREDMODS)
Makefile Modules/config.c: Makefile.pre \
$(srcdir)/Modules/config.c.in \
$(MAKESETUP) \
Modules/Setup \
@SETUP_FILE@ \
Modules/Setup.local
$(SHELL) $(MAKESETUP) -c $(srcdir)/Modules/config.c.in \
-s Modules \
Modules/Setup.local \
Modules/Setup
@SETUP_FILE@
@mv config.c Modules
@echo "The Makefile was updated, you may need to re-run make."

@SETUP_DIST_TARGET@: $(srcdir)/Modules/Setup.dist
@cp $(srcdir)/Modules/Setup.dist @SETUP_DIST_TARGET@

Modules/Setup: $(srcdir)/Modules/Setup.dist
@if test -f Modules/Setup; then \
Expand Down Expand Up @@ -1450,7 +1452,10 @@ libainstall: @DEF_MAKE_RULE@ python-config
$(INSTALL_DATA) Programs/python.o $(DESTDIR)$(LIBPL)/python.o
$(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in
$(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile
$(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup
if test -f Modules/Setup; then \
$(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup; \
fi
$(INSTALL_DATA) $(srcdir)/Modules/Setup.dist $(DESTDIR)$(LIBPL)/Setup.dist; \
$(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local
$(INSTALL_DATA) Misc/python.pc $(DESTDIR)$(LIBPC)/python-$(VERSION).pc
$(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add the ``--enable-use-setup-dist`` configure option
2 changes: 1 addition & 1 deletion Modules/getpath.c
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,7 @@ search_for_prefix(const _PyCoreConfig *core_config,
/* Check to see if argv[0] is in the build directory */
wcsncpy(prefix, calculate->argv0_path, MAXPATHLEN);
prefix[MAXPATHLEN] = L'\0';
joinpath(prefix, L"Modules/Setup");
joinpath(prefix, L"Modules/Setup.local");
if (isfile(prefix)) {
/* Check VPATH to see if argv0_path is in the build directory. */
vpath = Py_DecodeLocale(VPATH, NULL);
Expand Down
61 changes: 42 additions & 19 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -623,6 +623,8 @@ ac_includes_default="\
#endif"

ac_subst_vars='LTLIBOBJS
SETUP_DIST_TARGET
SETUP_FILE
ENSUREPIP
SRCDIRS
THREADHEADERS
Expand Down Expand Up @@ -778,7 +780,6 @@ infodir
docdir
oldincludedir
includedir
runstatedir
localstatedir
sharedstatedir
sysconfdir
Expand Down Expand Up @@ -838,6 +839,7 @@ with_libc
enable_big_digits
with_computed_gotos
with_ensurepip
enable_use_setup_dist
'
ac_precious_vars='build_alias
host_alias
Expand Down Expand Up @@ -890,7 +892,6 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
Expand Down Expand Up @@ -1143,15 +1144,6 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;

-runstatedir | --runstatedir | --runstatedi | --runstated \
| --runstate | --runstat | --runsta | --runst | --runs \
| --run | --ru | --r)
ac_prev=runstatedir ;;
-runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
| --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
| --run=* | --ru=* | --r=*)
runstatedir=$ac_optarg ;;

-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
Expand Down Expand Up @@ -1289,7 +1281,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir runstatedir
libdir localedir mandir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
Expand Down Expand Up @@ -1442,7 +1434,6 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
Expand Down Expand Up @@ -1491,6 +1482,7 @@ Optional Features:
--disable-ipv6 Disable ipv6 support
--enable-big-digits[=BITS]
use big digits for Python longs [[BITS=30]]
--enable-use-setup-dist Enable builds from Modules/Setup.dist

Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
Expand Down Expand Up @@ -16659,6 +16651,37 @@ $as_echo "#define HAVE_GETRANDOM 1" >>confdefs.h

fi

# Enable builds from Modules/Setup.dist.
SETUP_FILE=Modules/Setup

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-use-setup-dist" >&5
$as_echo_n "checking for --enable-use-setup-dist... " >&6; }
# Check whether --enable-use-setup-dist was given.
if test "${enable_use_setup_dist+set}" = set; then :
enableval=$enable_use_setup_dist;
if test "$enable_use_setup_dist" != no
then
SETUP_FILE=Modules/Setup.dist
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; };
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; };
fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


# Avoid a circular reference when building from the source tree.
SETUP_DIST_TARGET=dummy-setup-dist-target

if test "$(realpath $srcdir)" != "$(pwd)" -a $SETUP_FILE = Modules/Setup.dist ; then
SETUP_DIST_TARGET=Modules/Setup.dist
fi


# generate output files
ac_config_files="$ac_config_files Makefile.pre Misc/python.pc Misc/python-config.sh"

Expand Down Expand Up @@ -17963,22 +17986,22 @@ $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi


echo "creating Modules/Setup" >&6
if test ! -f Modules/Setup
if test ! -f $SETUP_FILE
then
cp $srcdir/Modules/Setup.dist Modules/Setup
echo "creating $SETUP_FILE" >&6
cp $srcdir/Modules/Setup.dist $SETUP_FILE
fi

echo "creating Modules/Setup.local" >&6
if test ! -f Modules/Setup.local
then
echo "creating Modules/Setup.local" >&6
echo "# Edit this file for local setup changes" >Modules/Setup.local
fi

echo "creating Makefile" >&6
echo "creating Makefile from $SETUP_FILE" >&6
$SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
-s Modules \
Modules/Setup.local Modules/Setup
Modules/Setup.local $SETUP_FILE
mv config.c Modules

if test "$Py_OPT" = 'false' -a "$Py_DEBUG" != 'true'; then
Expand Down
34 changes: 28 additions & 6 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -5458,27 +5458,49 @@ if test "$have_getrandom" = yes; then
[Define to 1 if the getrandom() function is available])
fi

# Enable builds from Modules/Setup.dist.
AC_SUBST(SETUP_FILE, Modules/Setup)
AC_MSG_CHECKING(for --enable-use-setup-dist)
AC_ARG_ENABLE(use-setup-dist,
AS_HELP_STRING([--enable-use-setup-dist], [Enable builds from Modules/Setup.dist]),
[
if test "$enable_use_setup_dist" != no
then
SETUP_FILE=Modules/Setup.dist
AC_MSG_RESULT(yes);
else
AC_MSG_RESULT(no);
fi],
[AC_MSG_RESULT(no)])

# Avoid a circular reference when building from the source tree.
AC_SUBST(SETUP_DIST_TARGET, dummy-setup-dist-target)
if test "$(realpath $srcdir)" != "$(pwd)" -a $SETUP_FILE = Modules/Setup.dist ; then
SETUP_DIST_TARGET=Modules/Setup.dist
fi


# generate output files
AC_CONFIG_FILES(Makefile.pre Misc/python.pc Misc/python-config.sh)
AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix])
AC_OUTPUT

echo "creating Modules/Setup" >&AS_MESSAGE_FD
if test ! -f Modules/Setup
if test ! -f $SETUP_FILE
then
cp $srcdir/Modules/Setup.dist Modules/Setup
echo "creating $SETUP_FILE" >&AS_MESSAGE_FD
cp $srcdir/Modules/Setup.dist $SETUP_FILE
fi

echo "creating Modules/Setup.local" >&AS_MESSAGE_FD
if test ! -f Modules/Setup.local
then
echo "creating Modules/Setup.local" >&AS_MESSAGE_FD
echo "# Edit this file for local setup changes" >Modules/Setup.local
fi

echo "creating Makefile" >&AS_MESSAGE_FD
echo "creating Makefile from $SETUP_FILE" >&AS_MESSAGE_FD
$SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
-s Modules \
Modules/Setup.local Modules/Setup
Modules/Setup.local $SETUP_FILE
mv config.c Modules

if test "$Py_OPT" = 'false' -a "$Py_DEBUG" != 'true'; then
Expand Down