diff options
author | Ned Deily <nad@python.org> | 2020-05-18 13:17:22 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-18 13:17:22 (GMT) |
commit | 0da546665075aefbb476e192ed64122d340164f4 (patch) | |
tree | 7b8ab1370800158880c8bbd210ac36956c768ad7 /Makefile.pre.in | |
parent | c444108dd62672f2b41539bcc8f15da44501f405 (diff) | |
download | cpython-0da546665075aefbb476e192ed64122d340164f4.zip cpython-0da546665075aefbb476e192ed64122d340164f4.tar.gz cpython-0da546665075aefbb476e192ed64122d340164f4.tar.bz2 |
bpo-26317: Support OBJC and OBJCXX configure command line variables (GH-20176)
Add support to the configure script for OBJC and OBJCXX command line options so that the macOS builds can use the clang compiler for the macOS-specific Objective C source files. This allows third-party compilers, like GNU gcc, to be used to build the rest of the project since some of the Objective C system header files are not compilable by GNU gcc.
Co-authored-by: Jeffrey Kintscher <websurfer@surf2c.net>
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
Diffstat (limited to 'Makefile.pre.in')
-rw-r--r-- | Makefile.pre.in | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/Makefile.pre.in b/Makefile.pre.in index dbfd805..339cbfd 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -35,6 +35,7 @@ abs_builddir= @abs_builddir@ CC= @CC@ CXX= @CXX@ +OBJC= @OBJC@ MAINCC= @MAINCC@ LINKCC= @LINKCC@ AR= @AR@ @@ -613,12 +614,22 @@ $(srcdir)/Modules/_blake2/blake2s_impl.c: $(srcdir)/Modules/_blake2/blake2b_impl $(PYTHON_FOR_REGEN) $(srcdir)/Modules/_blake2/blake2b2s.py $(PYTHON_FOR_REGEN) $(srcdir)/Tools/clinic/clinic.py -f $@ +# _scproxy.o needs to be built outside of setup.py so that we can force +# the use of the OBJC compiler when the CC compiler is different. For +# example, it allows _scproxy.c to be compiled using the clang compiler +# while the rest of the project uses the GNU C compiler. +# +# see issue #26317 for details +@SCPROXY@Modules/_scproxy.o: $(srcdir)/Modules/_scproxy.c $(srcdir)/Include/Python.h +@SCPROXY@ $(OBJC) -c $(CCSHARED) $(PY_CORE_CFLAGS) -o $@ $< +@NOSCPROXY@.PHONY: Modules/_scproxy.o + # Build the shared modules # Under GNU make, MAKEFLAGS are sorted and normalized; the 's' for # -s, --silent or --quiet is always the first char. # Under BSD make, MAKEFLAGS might be " -s -v x=y". # Ignore macros passed by GNU make, passed after -- -sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o +sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o Modules/_scproxy.o @case "`echo X $$MAKEFLAGS | sed 's/^X //;s/ -- .*//'`" in \ *\ -s*|s*) quiet="-q";; \ *) quiet="";; \ |