diff options
author | Trent Nelson <trent@trent.me> | 2012-10-16 12:53:13 (GMT) |
---|---|---|
committer | Trent Nelson <trent@trent.me> | 2012-10-16 12:53:13 (GMT) |
commit | cd02b3f781b0a0d545bffb47741a2f5bb37c9a41 (patch) | |
tree | a42cb2b46823328c22b3065e1c4442c02ff78cab | |
parent | b16269e375ec3b9dd656d64469f3810b4a0eec81 (diff) | |
parent | 4d4ec6502d6aec31284cf2f68d81c64fcedb1049 (diff) | |
download | cpython-cd02b3f781b0a0d545bffb47741a2f5bb37c9a41.zip cpython-cd02b3f781b0a0d545bffb47741a2f5bb37c9a41.tar.gz cpython-cd02b3f781b0a0d545bffb47741a2f5bb37c9a41.tar.bz2 |
Merge issue #15819: additional fixes for out-of-tree builds from read-only src.
Specifically, make sure the 'Object', 'Python' and 'Include' directories
in the build directory take precedence over the source directory if we're
an out-of-tree build.
Fix typeslots.inc so that it gets generated into the build directory.
In addition, for 3.3, make sure importlib.h gets generated into the
build directory.
-rw-r--r-- | Makefile.pre.in | 15 | ||||
-rwxr-xr-x | configure | 20 | ||||
-rw-r--r-- | configure.ac | 18 |
3 files changed, 47 insertions, 6 deletions
diff --git a/Makefile.pre.in b/Makefile.pre.in index 10ad381..4ff801b 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -27,6 +27,8 @@ MODLIBS= _MODLIBS_ VERSION= @VERSION@ srcdir= @srcdir@ VPATH= @srcdir@ +BUILDDIR= @BUILDDIR@ + CC= @CC@ CXX= @CXX@ @@ -66,6 +68,7 @@ MAKESETUP= $(srcdir)/Modules/makesetup # Compiler options OPT= @OPT@ BASECFLAGS= @BASECFLAGS@ +BASECPPFLAGS= @BASECPPFLAGS@ CONFIGURE_CFLAGS= @CFLAGS@ CONFIGURE_CPPFLAGS= @CPPFLAGS@ CONFIGURE_LDFLAGS= @LDFLAGS@ @@ -76,7 +79,7 @@ PY_CFLAGS= $(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) # Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to # be able to build extension modules using the directories specified in the # environment variables -PY_CPPFLAGS= -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $(CPPFLAGS) +PY_CPPFLAGS= $(BASECPPFLAGS) -I. -IInclude -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $(CPPFLAGS) PY_LDFLAGS= $(CONFIGURE_LDFLAGS) $(LDFLAGS) NO_AS_NEEDED= @NO_AS_NEEDED@ LDLAST= @LDLAST@ @@ -310,7 +313,7 @@ ASDLGEN= @DISABLE_ASDLGEN@ $(srcdir)/Parser/asdl_c.py # Python OPCODETARGETS_H= \ - $(srcdir)/Python/opcode_targets.h + Python/opcode_targets.h OPCODETARGETGEN= \ $(srcdir)/Python/makeopcodetargets.py @@ -725,11 +728,11 @@ Python/ceval.o: $(OPCODETARGETS_H) $(srcdir)/Python/ceval_gil.h Python/formatter_unicode.o: $(srcdir)/Python/formatter_unicode.c \ $(BYTESTR_DEPS) -Python/frozen.o: $(srcdir)/Python/importlib.h +Python/frozen.o: Python/importlib.h -Objects/typeobject.o: $(srcdir)/Objects/typeslots.inc -$(srcdir)/Objects/typeslots.inc: $(srcdir)/Include/typeslots.h $(srcdir)/Objects/typeslots.py - $(PYTHON) $(srcdir)/Objects/typeslots.py < $(srcdir)/Include/typeslots.h > $(srcdir)/Objects/typeslots.inc +Objects/typeobject.o: Objects/typeslots.inc +Objects/typeslots.inc: $(srcdir)/Include/typeslots.h $(srcdir)/Objects/typeslots.py + $(PYTHON) $(srcdir)/Objects/typeslots.py < $(srcdir)/Include/typeslots.h > Objects/typeslots.inc ############################################################################ # Header files @@ -714,6 +714,8 @@ HAS_HG HGBRANCH HGTAG HGVERSION +BASECPPFLAGS +BUILDDIR target_alias host_alias build_alias @@ -2719,6 +2721,24 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu +BUILDDIR="`pwd`" + + +if test "$srcdir" != "$BUILDDIR"; then + # If we're building out-of-tree, we need to make sure the following + # resources get picked up before their $srcdir counterparts. + # Objects/ -> typeslots.inc + # Include/ -> Python-ast.h, graminit.h + # Python/ -> importlib.h + # (A side effect of this is that these resources will automatically be + # regenerated when building out-of-tree, regardless of whether or not + # the $srcdir counterpart is up-to-date. This is an acceptable trade + # off.) + BASECPPFLAGS="-IObjects -IInclude -IPython" +else + BASECPPFLAGS="" +fi + diff --git a/configure.ac b/configure.ac index df0b004..1762bd6 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,24 @@ AC_PREREQ(2.65) AC_INIT(python, PYTHON_VERSION, http://bugs.python.org/) +BUILDDIR="`pwd`" +AC_SUBST(BUILDDIR) +AC_SUBST(BASECPPFLAGS) +if test "$srcdir" != "$BUILDDIR"; then + # If we're building out-of-tree, we need to make sure the following + # resources get picked up before their $srcdir counterparts. + # Objects/ -> typeslots.inc + # Include/ -> Python-ast.h, graminit.h + # Python/ -> importlib.h + # (A side effect of this is that these resources will automatically be + # regenerated when building out-of-tree, regardless of whether or not + # the $srcdir counterpart is up-to-date. This is an acceptable trade + # off.) + BASECPPFLAGS="-IObjects -IInclude -IPython" +else + BASECPPFLAGS="" +fi + AC_SUBST(HGVERSION) AC_SUBST(HGTAG) AC_SUBST(HGBRANCH) |