@@ -59,12 +59,18 @@ MAKESETUP= $(srcdir)/Modules/makesetup
5959# Compiler options
6060OPT= @OPT@
6161BASECFLAGS= @BASECFLAGS@
62- CFLAGS= $(BASECFLAGS) @CFLAGS@ $(OPT) $(EXTRA_CFLAGS)
62+ CONFIGURE_CFLAGS= @CFLAGS@
63+ CONFIGURE_CPPFLAGS= @CPPFLAGS@
64+ CONFIGURE_LDFLAGS= @LDFLAGS@
65+ # Avoid assigning CFLAGS, LDFLAGS, etc. so users can use them on the
66+ # command line to append to these values without stomping the pre-set
67+ # values.
68+ PY_CFLAGS= $(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
6369# Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to
6470# be able to build extension modules using the directories specified in the
6571# environment variables
66- CPPFLAGS = -I. -IInclude -I$(srcdir)/Include @ CPPFLAGS@
67- LDFLAGS= @ LDFLAGS@
72+ PY_CPPFLAGS = -I. -IInclude -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $( CPPFLAGS)
73+ PY_LDFLAGS= $(CONFIGURE_LDFLAGS) $( LDFLAGS)
6874LDLAST= @LDLAST@
6975SGI_ABI= @SGI_ABI@
7076CCSHARED= @CCSHARED@
@@ -73,7 +79,7 @@ ARFLAGS= @ARFLAGS@
7379# Extra C flags added for building the interpreter object files.
7480CFLAGSFORSHARED=@CFLAGSFORSHARED@
7581# C flags used for building the interpreter object files
76- PY_CFLAGS = $(CFLAGS ) $(CPPFLAGS ) $(CFLAGSFORSHARED) -DPy_BUILD_CORE
82+ PY_CORE_CFLAGS = $(PY_CFLAGS ) $(PY_CPPFLAGS ) $(CFLAGSFORSHARED) -DPy_BUILD_CORE
7783
7884
7985# Machine-dependent subdirectories
@@ -411,7 +417,7 @@ coverage:
411417
412418# Build the interpreter
413419$(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY)
414- $(LINKCC) $(LDFLAGS ) $(LINKFORSHARED) -o $@ \
420+ $(LINKCC) $(PY_LDFLAGS ) $(LINKFORSHARED) -o $@ \
415421 Modules/python.o \
416422 $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
417423
@@ -422,8 +428,8 @@ platform: $(BUILDPYTHON)
422428# Build the shared modules
423429sharedmods: $(BUILDPYTHON)
424430 @case $$MAKEFLAGS in \
425- *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(LDFLAGS )' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
426- *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(LDFLAGS )' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
431+ *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(PY_LDFLAGS )' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
432+ *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(PY_LDFLAGS )' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
427433 esac
428434
429435# Build static library
@@ -440,18 +446,18 @@ $(LIBRARY): $(LIBRARY_OBJS)
440446
441447libpython$(VERSION).so: $(LIBRARY_OBJS)
442448 if test $(INSTSONAME) != $(LDLIBRARY); then \
443- $(LDSHARED) $(LDFLAGS ) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
449+ $(LDSHARED) $(PY_LDFLAGS ) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
444450 $(LN) -f $(INSTSONAME) $@; \
445451 else \
446- $(LDSHARED) $(LDFLAGS ) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
452+ $(LDSHARED) $(PY_LDFLAGS ) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
447453 fi
448454
449455libpython$(VERSION).dylib: $(LIBRARY_OBJS)
450- $(CC) -dynamiclib -Wl,-single_module $(LDFLAGS ) -undefined dynamic_lookup -Wl,-install_name,$(prefix)/lib/libpython$(VERSION).dylib -Wl,-compatibility_version,$(VERSION) -Wl,-current_version,$(VERSION) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
456+ $(CC) -dynamiclib -Wl,-single_module $(PY_LDFLAGS ) -undefined dynamic_lookup -Wl,-install_name,$(prefix)/lib/libpython$(VERSION).dylib -Wl,-compatibility_version,$(VERSION) -Wl,-current_version,$(VERSION) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
451457
452458
453459libpython$(VERSION).sl: $(LIBRARY_OBJS)
454- $(LDSHARED) $(LDFLAGS ) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST)
460+ $(LDSHARED) $(PY_LDFLAGS ) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST)
455461
456462# Copy up the gdb python hooks into a position where they can be automatically
457463# loaded by gdb during Lib/test/test_gdb.py
@@ -497,7 +503,7 @@ $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \
497503# for a shared core library; otherwise, this rule is a noop.
498504$(DLLLIBRARY) libpython$(VERSION).dll.a: $(LIBRARY_OBJS)
499505 if test -n "$(DLLLIBRARY)"; then \
500- $(LDSHARED) $(LDFLAGS ) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \
506+ $(LDSHARED) $(PY_LDFLAGS ) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \
501507 $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST); \
502508 else true; \
503509 fi
@@ -541,18 +547,18 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \
541547 $(SIGNAL_OBJS) \
542548 $(MODOBJS) \
543549 $(srcdir)/Modules/getbuildinfo.c
544- $(CC) -c $(PY_CFLAGS ) -DSVNVERSION="\"`LC_ALL=C $(SVNVERSION)`\"" -o $@ $(srcdir)/Modules/getbuildinfo.c
550+ $(CC) -c $(PY_CORE_CFLAGS ) -DSVNVERSION="\"`LC_ALL=C $(SVNVERSION)`\"" -o $@ $(srcdir)/Modules/getbuildinfo.c
545551
546552Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
547- $(CC) -c $(PY_CFLAGS ) -DPYTHONPATH='"$(PYTHONPATH)"' \
553+ $(CC) -c $(PY_CORE_CFLAGS ) -DPYTHONPATH='"$(PYTHONPATH)"' \
548554 -DPREFIX='"$(prefix)"' \
549555 -DEXEC_PREFIX='"$(exec_prefix)"' \
550556 -DVERSION='"$(VERSION)"' \
551557 -DVPATH='"$(VPATH)"' \
552558 -o $@ $(srcdir)/Modules/getpath.c
553559
554560Modules/python.o: $(srcdir)/Modules/python.c
555- $(MAINCC) -c $(PY_CFLAGS ) -o $@ $(srcdir)/Modules/python.c
561+ $(MAINCC) -c $(PY_CORE_CFLAGS ) -o $@ $(srcdir)/Modules/python.c
556562
557563$(IO_OBJS): $(IO_H)
558564
@@ -561,7 +567,7 @@ $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
561567 -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
562568
563569$(PGEN): $(PGENOBJS)
564- $(CC) $(OPT) $(LDFLAGS ) $(PGENOBJS) $(LIBS) -o $(PGEN)
570+ $(CC) $(OPT) $(PY_LDFLAGS ) $(PGENOBJS) $(LIBS) -o $(PGEN)
565571
566572Parser/grammar.o: $(srcdir)/Parser/grammar.c \
567573 $(srcdir)/Include/token.h \
@@ -581,10 +587,10 @@ $(AST_C): $(AST_ASDL) $(ASDLGEN_FILES)
581587Python/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H)
582588
583589Python/getplatform.o: $(srcdir)/Python/getplatform.c
584- $(CC) -c $(PY_CFLAGS ) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
590+ $(CC) -c $(PY_CORE_CFLAGS ) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
585591
586592Python/importdl.o: $(srcdir)/Python/importdl.c
587- $(CC) -c $(PY_CFLAGS ) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
593+ $(CC) -c $(PY_CORE_CFLAGS ) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
588594
589595Objects/unicodectype.o: $(srcdir)/Objects/unicodectype.c \
590596 $(srcdir)/Objects/unicodetype_db.h
@@ -1130,7 +1136,7 @@ config.status: $(srcdir)/configure
11301136
11311137# Some make's put the object file in the current directory
11321138.c.o:
1133- $(CC) -c $(PY_CFLAGS ) -o $@ $<
1139+ $(CC) -c $(PY_CORE_CFLAGS ) -o $@ $<
11341140
11351141# Run reindent on the library
11361142reindent:
0 commit comments