Skip to content

bpo-44097: add --enable-pyc-build option to the configure script #23920

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
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
66 changes: 39 additions & 27 deletions Makefile.pre.in
Original file line number Diff line number Diff line change
Expand Up @@ -1594,33 +1594,45 @@ libinstall: build_all $(srcdir)/Modules/xxmodule.c
$(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
$(DESTDIR)$(LIBDEST)/distutils/tests ; \
fi
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
$(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
-j0 -d $(LIBDEST) -f \
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
$(DESTDIR)$(LIBDEST)
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
$(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
-j0 -d $(LIBDEST) -f \
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
$(DESTDIR)$(LIBDEST)
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
$(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \
-j0 -d $(LIBDEST) -f \
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
$(DESTDIR)$(LIBDEST)
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
$(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
-j0 -d $(LIBDEST)/site-packages -f \
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
$(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
-j0 -d $(LIBDEST)/site-packages -f \
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
$(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \
-j0 -d $(LIBDEST)/site-packages -f \
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
-if test "@OPT0_PYC_BUILD@" = yes; then \
PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
$(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
-j0 -d $(LIBDEST) -f \
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
$(DESTDIR)$(LIBDEST); \
fi
-if test "@OPT1_PYC_BUILD@" = yes; then \
PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
$(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
-j0 -d $(LIBDEST) -f \
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
$(DESTDIR)$(LIBDEST); \
fi
-if test "@OPT2_PYC_BUILD@" = yes; then \
PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
$(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \
-j0 -d $(LIBDEST) -f \
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
$(DESTDIR)$(LIBDEST); \
fi
-if test "@OPT0_PYC_BUILD@" = yes; then \
PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
$(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
-j0 -d $(LIBDEST)/site-packages -f \
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages; \
fi
-if test "@OPT1_PYC_BUILD@" = yes; then \
PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
$(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
-j0 -d $(LIBDEST)/site-packages -f \
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages; \
fi
-if test "@OPT2_PYC_BUILD@" = yes; then \
PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
$(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \
-j0 -d $(LIBDEST)/site-packages -f \
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages; \
fi
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
$(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Add option ``--enable-pyc-build`` to the ``configure`` script to choose
what type of .pyc files to compile at installing libraries.
62 changes: 62 additions & 0 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -623,6 +623,9 @@ ac_includes_default="\
#endif"

ac_subst_vars='LTLIBOBJS
OPT2_PYC_BUILD
OPT1_PYC_BUILD
OPT0_PYC_BUILD
TEST_MODULES
LIBRARY_DEPS
STATIC_LIBPYTHON
Expand Down Expand Up @@ -862,6 +865,7 @@ with_builtin_hashlib_hashes
with_experimental_isolated_subinterpreters
with_static_libpython
enable_test_modules
enable_pyc_build
'
ac_precious_vars='build_alias
host_alias
Expand Down Expand Up @@ -1522,6 +1526,9 @@ Optional Features:
use big digits (30 or 15 bits) for Python longs
(default is system-dependent)]
--disable-test-modules don't build nor install test modules
--enable-pyc-build[=all|none|O0[,O1[,O2]]]
choose what type of .pyc files to compile at
installing libraries (default is all)

Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
Expand Down Expand Up @@ -17786,6 +17793,61 @@ $as_echo "no" >&6; }
fi


# choose what type of .pyc files to compile at installing libraries
OPT0_PYC_BUILD=yes
OPT1_PYC_BUILD=yes
OPT2_PYC_BUILD=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-pyc-build" >&5
$as_echo_n "checking for --enable-pyc-build... " >&6; }
# Check whether --enable-pyc-build was given.
if test "${enable_pyc_build+set}" = set; then :
enableval=$enable_pyc_build;
case $enableval in
yes|all)
;;
no|none)
OPT0_PYC_BUILD=no
OPT1_PYC_BUILD=no
OPT2_PYC_BUILD=no
;;
O[012]*)
OPT0_PYC_BUILD=no
OPT1_PYC_BUILD=no
OPT2_PYC_BUILD=no
for opt in `echo $enableval | sed 's/,/ /g'`; do
case $opt in
O0)
OPT0_PYC_BUILD=yes
;;
O1)
OPT1_PYC_BUILD=yes
;;
O2)
OPT2_PYC_BUILD=yes
;;
*)
as_fn_error $? "proper usage is --enable-pyc-build[=all|none|O0[,O1[,O2]]]" "$LINENO" 5
;;
esac
done
;;
*)
as_fn_error $? "proper usage is --enable-pyc-build[=all|none|O0[,O1[,O2]]]" "$LINENO" 5
;;
esac

else

enable_pyc_build=all

fi




{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_pyc_build" >&5
$as_echo "$enable_pyc_build" >&6; }


# generate output files
ac_config_files="$ac_config_files Makefile.pre Misc/python.pc Misc/python-embed.pc Misc/python-config.sh"
Expand Down
50 changes: 50 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -5933,6 +5933,56 @@ else
fi
AC_SUBST(TEST_MODULES)

# choose what type of .pyc files to compile at installing libraries
OPT0_PYC_BUILD=yes
OPT1_PYC_BUILD=yes
OPT2_PYC_BUILD=yes
AC_MSG_CHECKING(for --enable-pyc-build)
AC_ARG_ENABLE(pyc-build,
AS_HELP_STRING([--enable-pyc-build@<:@=all|none|O0@<:@,O1@<:@,O2@:>@@:>@@:>@],
[choose what type of .pyc files to compile at installing libraries (default is all)]),
[
case $enableval in
yes|all)
;;
no|none)
OPT0_PYC_BUILD=no
OPT1_PYC_BUILD=no
OPT2_PYC_BUILD=no
;;
O@<:@012@:>@*)
OPT0_PYC_BUILD=no
OPT1_PYC_BUILD=no
OPT2_PYC_BUILD=no
for opt in `echo $enableval | sed 's/,/ /g'`; do
case $opt in
O0)
OPT0_PYC_BUILD=yes
;;
O1)
OPT1_PYC_BUILD=yes
;;
O2)
OPT2_PYC_BUILD=yes
;;
*)
AC_MSG_ERROR([proper usage is --enable-pyc-build@<:@=all|none|O0@<:@,O1@<:@,O2@:>@@:>@@:>@])
;;
esac
done
;;
*)
AC_MSG_ERROR([proper usage is --enable-pyc-build@<:@=all|none|O0@<:@,O1@<:@,O2@:>@@:>@@:>@])
;;
esac
],[
enable_pyc_build=all
])
AC_SUBST(OPT0_PYC_BUILD)
AC_SUBST(OPT1_PYC_BUILD)
AC_SUBST(OPT2_PYC_BUILD)
AC_MSG_RESULT($enable_pyc_build)


# generate output files
AC_CONFIG_FILES(Makefile.pre Misc/python.pc Misc/python-embed.pc Misc/python-config.sh)
Expand Down