Mercurial > repos > rliterman > csp2
comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib/python3.8/config-3.8-x86_64-linux-gnu/Makefile @ 68:5028fdace37b
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 16:23:26 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
67:0e9998148a16 | 68:5028fdace37b |
---|---|
1 # Generated automatically from Makefile.pre by makesetup. | |
2 # Top-level Makefile for Python | |
3 # | |
4 # As distributed, this file is called Makefile.pre.in; it is processed | |
5 # into the real Makefile by running the script ./configure, which | |
6 # replaces things like @spam@ with values appropriate for your system. | |
7 # This means that if you edit Makefile, your changes get lost the next | |
8 # time you run the configure script. Ideally, you can do: | |
9 # | |
10 # ./configure | |
11 # make | |
12 # make test | |
13 # make install | |
14 # | |
15 # If you have a previous version of Python installed that you don't | |
16 # want to overwrite, you can use "make altinstall" instead of "make | |
17 # install". Refer to the "Installing" section in the README file for | |
18 # additional details. | |
19 # | |
20 # See also the section "Build instructions" in the README file. | |
21 | |
22 # === Variables set by makesetup === | |
23 | |
24 MODBUILT_NAMES= posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _symtable xxsubtype | |
25 MODDISABLED_NAMES= | |
26 MODOBJS= Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/hashtable.o Modules/symtablemodule.o Modules/xxsubtype.o | |
27 MODLIBS= $(LOCALMODLIBS) $(BASEMODLIBS) | |
28 | |
29 # === Variables set by configure | |
30 VERSION= 3.8 | |
31 srcdir= /home/conda/feedstock_root/build_artifacts/python_1580307476742/work | |
32 VPATH= /home/conda/feedstock_root/build_artifacts/python_1580307476742/work | |
33 abs_srcdir= /home/conda/feedstock_root/build_artifacts/python_1580307476742/work | |
34 abs_builddir= /home/conda/feedstock_root/build_artifacts/python_1580307476742/work/build-static | |
35 | |
36 | |
37 CC= x86_64-conda_cos6-linux-gnu-gcc -pthread | |
38 CXX= x86_64-conda_cos6-linux-gnu-c++ -pthread | |
39 MAINCC= $(CC) | |
40 LINKCC= $(PURIFY) $(MAINCC) | |
41 AR= x86_64-conda_cos6-linux-gnu-ar | |
42 READELF= x86_64-conda_cos6-linux-gnu-readelf | |
43 SOABI= cpython-38-x86_64-linux-gnu | |
44 LDVERSION= $(VERSION)$(ABIFLAGS) | |
45 LIBPYTHON= | |
46 GITVERSION= | |
47 GITTAG= | |
48 GITBRANCH= | |
49 PGO_PROF_GEN_FLAG=-fprofile-generate | |
50 PGO_PROF_USE_FLAG= | |
51 LLVM_PROF_MERGER=true | |
52 LLVM_PROF_FILE= | |
53 LLVM_PROF_ERR=no | |
54 DTRACE= | |
55 DFLAGS= | |
56 DTRACE_HEADERS= | |
57 DTRACE_OBJS= | |
58 | |
59 GNULD= yes | |
60 | |
61 # Shell used by make (some versions default to the login shell, which is bad) | |
62 SHELL= /bin/sh | |
63 | |
64 # Use this to make a link between python$(VERSION) and python in $(BINDIR) | |
65 LN= ln | |
66 | |
67 # Portable install script (configure doesn't always guess right) | |
68 INSTALL= /usr/bin/install -c | |
69 INSTALL_PROGRAM=${INSTALL} | |
70 INSTALL_SCRIPT= ${INSTALL} | |
71 INSTALL_DATA= ${INSTALL} -m 644 | |
72 # Shared libraries must be installed with executable mode on some systems; | |
73 # rather than figuring out exactly which, we always give them executable mode. | |
74 INSTALL_SHARED= ${INSTALL} -m 755 | |
75 | |
76 MKDIR_P= /bin/mkdir -p | |
77 | |
78 MAKESETUP= $(srcdir)/Modules/makesetup | |
79 | |
80 # Compiler options | |
81 OPT= -DNDEBUG -fwrapv -O2 -Wall | |
82 BASECFLAGS= -Wno-unused-result -Wsign-compare | |
83 BASECPPFLAGS= -IObjects -IInclude -IPython | |
84 CONFIGURE_CFLAGS= -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/python_1580307476742/work=/usr/local/src/conda/python-3.8.1 -fdebug-prefix-map=/mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce=/usr/local/src/conda-prefix | |
85 # CFLAGS_NODIST is used for building the interpreter and stdlib C extensions. | |
86 # Use it when a compiler flag should _not_ be part of the distutils CFLAGS | |
87 # once Python is installed (Issue #21121). | |
88 CONFIGURE_CFLAGS_NODIST= -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration | |
89 # LDFLAGS_NODIST is used in the same manner as CFLAGS_NODIST. | |
90 # Use it when a linker flag should _not_ be part of the distutils LDFLAGS | |
91 # once Python is installed (bpo-35257) | |
92 CONFIGURE_LDFLAGS_NODIST= -g | |
93 CONFIGURE_CPPFLAGS= -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include -I/mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include | |
94 CONFIGURE_LDFLAGS= -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,-rpath,/mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib -Wl,-rpath-link,/mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib -L/mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib | |
95 # Avoid assigning CFLAGS, LDFLAGS, etc. so users can use them on the | |
96 # command line to append to these values without stomping the pre-set | |
97 # values. | |
98 PY_CFLAGS= $(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) | |
99 PY_CFLAGS_NODIST=$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST) -I$(srcdir)/Include/internal | |
100 # Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to | |
101 # be able to build extension modules using the directories specified in the | |
102 # environment variables | |
103 PY_CPPFLAGS= $(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $(CPPFLAGS) | |
104 PY_LDFLAGS= $(CONFIGURE_LDFLAGS) $(LDFLAGS) | |
105 PY_LDFLAGS_NODIST=$(CONFIGURE_LDFLAGS_NODIST) $(LDFLAGS_NODIST) | |
106 NO_AS_NEEDED= -Wl,--no-as-needed | |
107 SGI_ABI= @SGI_ABI@ | |
108 CCSHARED= -fPIC | |
109 # LINKFORSHARED are the flags passed to the $(CC) command that links | |
110 # the python executable -- this is only needed for a few systems | |
111 LINKFORSHARED= -Xlinker -export-dynamic | |
112 ARFLAGS= rcs | |
113 # Extra C flags added for building the interpreter object files. | |
114 CFLAGSFORSHARED= | |
115 # C flags used for building the interpreter object files | |
116 PY_STDMODULE_CFLAGS= $(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $(CFLAGSFORSHARED) | |
117 PY_BUILTIN_MODULE_CFLAGS= $(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN | |
118 PY_CORE_CFLAGS= $(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE | |
119 # Linker flags used for building the interpreter object files | |
120 PY_CORE_LDFLAGS=$(PY_LDFLAGS) $(PY_LDFLAGS_NODIST) | |
121 # Strict or non-strict aliasing flags used to compile dtoa.c, see above | |
122 CFLAGS_ALIASING= | |
123 | |
124 | |
125 # Machine-dependent subdirectories | |
126 MACHDEP= linux | |
127 | |
128 # Multiarch directory (may be empty) | |
129 MULTIARCH= x86_64-linux-gnu | |
130 MULTIARCH_CPPFLAGS = -DMULTIARCH=\"x86_64-linux-gnu\" | |
131 | |
132 # Install prefix for architecture-independent files | |
133 prefix= /mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce | |
134 | |
135 # Install prefix for architecture-dependent files | |
136 exec_prefix= ${prefix} | |
137 | |
138 # Install prefix for data files | |
139 datarootdir= ${prefix}/share | |
140 | |
141 # Expanded directories | |
142 BINDIR= ${exec_prefix}/bin | |
143 LIBDIR= ${exec_prefix}/lib | |
144 MANDIR= ${datarootdir}/man | |
145 INCLUDEDIR= ${prefix}/include | |
146 CONFINCLUDEDIR= $(exec_prefix)/include | |
147 SCRIPTDIR= $(prefix)/lib | |
148 ABIFLAGS= | |
149 | |
150 # Detailed destination directories | |
151 BINLIBDEST= $(LIBDIR)/python$(VERSION) | |
152 LIBDEST= $(SCRIPTDIR)/python$(VERSION) | |
153 INCLUDEPY= $(INCLUDEDIR)/python$(LDVERSION) | |
154 CONFINCLUDEPY= $(CONFINCLUDEDIR)/python$(LDVERSION) | |
155 | |
156 # Symbols used for using shared libraries | |
157 SHLIB_SUFFIX= .so | |
158 EXT_SUFFIX= .cpython-38-x86_64-linux-gnu.so | |
159 LDSHARED= $(CC) -shared $(PY_LDFLAGS) | |
160 BLDSHARED= $(CC) -shared $(PY_CORE_LDFLAGS) | |
161 LDCXXSHARED= $(CXX) -shared | |
162 DESTSHARED= $(BINLIBDEST)/lib-dynload | |
163 | |
164 # Executable suffix (.exe on Windows and Mac OS X) | |
165 EXE= | |
166 BUILDEXE= | |
167 | |
168 # Short name and location for Mac OS X Python framework | |
169 UNIVERSALSDK= | |
170 PYTHONFRAMEWORK= | |
171 PYTHONFRAMEWORKDIR= no-framework | |
172 PYTHONFRAMEWORKPREFIX= | |
173 PYTHONFRAMEWORKINSTALLDIR= | |
174 # Deployment target selected during configure, to be checked | |
175 # by distutils. The export statement is needed to ensure that the | |
176 # deployment target is active during build. | |
177 MACOSX_DEPLOYMENT_TARGET= | |
178 #export MACOSX_DEPLOYMENT_TARGET | |
179 | |
180 # Option to install to strip binaries | |
181 STRIPFLAG=-s | |
182 | |
183 # Flags to lipo to produce a 32-bit-only universal executable | |
184 LIPO_32BIT_FLAGS= | |
185 | |
186 # Options to enable prebinding (for fast startup prior to Mac OS X 10.3) | |
187 OTHER_LIBTOOL_OPT= | |
188 | |
189 # Environment to run shared python without installed libraries | |
190 RUNSHARED= | |
191 | |
192 # ensurepip options | |
193 ENSUREPIP= no | |
194 | |
195 # OpenSSL options for setup.py so sysconfig can pick up AC_SUBST() vars. | |
196 OPENSSL_INCLUDES=-I/mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include | |
197 OPENSSL_LIBS=-lssl -lcrypto | |
198 OPENSSL_LDFLAGS=-L/mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib | |
199 | |
200 # Modes for directories, executables and data files created by the | |
201 # install process. Default to user-only-writable for all file types. | |
202 DIRMODE= 755 | |
203 EXEMODE= 755 | |
204 FILEMODE= 644 | |
205 | |
206 # configure script arguments | |
207 CONFIG_ARGS= '--prefix=/mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce' '--build=x86_64-conda_cos6-linux-gnu' '--host=x86_64-conda_cos6-linux-gnu' '--enable-ipv6' '--with-ensurepip=no' '--with-computed-gotos' '--with-system-ffi' '--enable-loadable-sqlite-extensions' '--with-tcltk-includes=-I/mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include' '--with-tcltk-libs=-L/mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib -ltcl8.6 -ltk8.6' '--enable-optimizations' '--with-lto' '-oldincludedir=/home/conda/feedstock_root/build_artifacts/python_1580307476742/_build_env/x86_64-conda_cos6-linux-gnu/sysroot/usr/include' '--disable-shared' 'PROFILE_TASK=-m test --pgo-extended' 'build_alias=x86_64-conda_cos6-linux-gnu' 'host_alias=x86_64-conda_cos6-linux-gnu' 'CC=x86_64-conda_cos6-linux-gnu-gcc' 'CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/python_1580307476742/work=/usr/local/src/conda/python-3.8.1 -fdebug-prefix-map=/mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce=/usr/local/src/conda-prefix ' 'LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,-rpath,/mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib -Wl,-rpath-link,/mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib -L/mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib' 'CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include -I/mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include' 'CPP=/home/conda/feedstock_root/build_artifacts/python_1580307476742/_build_env/bin/x86_64-conda_cos6-linux-gnu-cpp' 'PKG_CONFIG_PATH=/mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib/pkgconfig' | |
208 | |
209 | |
210 # Subdirectories with code | |
211 SRCDIRS= Parser Objects Python Modules Modules/_io Programs | |
212 | |
213 # Other subdirectories | |
214 SUBDIRSTOO= Include Lib Misc | |
215 | |
216 # Files and directories to be distributed | |
217 CONFIGFILES= configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in | |
218 DISTFILES= README.rst ChangeLog $(CONFIGFILES) | |
219 DISTDIRS= $(SUBDIRS) $(SUBDIRSTOO) Ext-dummy | |
220 DIST= $(DISTFILES) $(DISTDIRS) | |
221 | |
222 | |
223 LIBRARY= libpython$(VERSION)$(ABIFLAGS).a | |
224 LDLIBRARY= libpython$(VERSION)$(ABIFLAGS).a | |
225 BLDLIBRARY= $(LDLIBRARY) | |
226 PY3LIBRARY= | |
227 DLLLIBRARY= | |
228 LDLIBRARYDIR= | |
229 INSTSONAME= $(LDLIBRARY) | |
230 | |
231 | |
232 LIBS= -lcrypt -lpthread -ldl -lutil -lrt -lm | |
233 LIBM= -lm | |
234 LIBC= | |
235 SYSLIBS= $(LIBM) $(LIBC) | |
236 SHLIBS= $(LIBS) | |
237 | |
238 DLINCLDIR= . | |
239 DYNLOADFILE= dynload_shlib.o | |
240 MACHDEP_OBJS= | |
241 LIBOBJDIR= Python/ | |
242 LIBOBJS= | |
243 | |
244 PYTHON= python$(EXE) | |
245 BUILDPYTHON= python$(BUILDEXE) | |
246 | |
247 PYTHON_FOR_REGEN=python3 | |
248 UPDATE_FILE=python3 $(srcdir)/Tools/scripts/update_file.py | |
249 PY_BUILD_ENVIRON= | |
250 PYTHON_FOR_BUILD=./$(BUILDPYTHON) -E | |
251 _PYTHON_HOST_PLATFORM=linux-x86_64 | |
252 BUILD_GNU_TYPE= x86_64-conda_cos6-linux-gnu | |
253 HOST_GNU_TYPE= x86_64-conda_cos6-linux-gnu | |
254 | |
255 # Tcl and Tk config info from --with-tcltk-includes and -libs options | |
256 TCLTK_INCLUDES= -I/mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include | |
257 TCLTK_LIBS= -L/mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib -ltcl8.6 -ltk8.6 | |
258 | |
259 # The task to run while instrumented when building the profile-opt target. | |
260 # To speed up profile generation, we don't run the full unit test suite | |
261 # by default. The default is "-m test --pgo". To run more tests, use | |
262 # PROFILE_TASK="-m test --pgo-extended" | |
263 PROFILE_TASK= -m test --pgo-extended | |
264 | |
265 # report files for gcov / lcov coverage report | |
266 COVERAGE_INFO= $(abs_builddir)/coverage.info | |
267 COVERAGE_REPORT=$(abs_builddir)/lcov-report | |
268 COVERAGE_REPORT_OPTIONS=--no-branch-coverage --title "CPython lcov report" | |
269 | |
270 | |
271 # === Definitions added by makesetup === | |
272 | |
273 LOCALMODLIBS= | |
274 BASEMODLIBS= | |
275 PYTHONPATH=$(COREPYTHONPATH) | |
276 COREPYTHONPATH=$(DESTPATH)$(SITEPATH)$(TESTPATH) | |
277 TESTPATH= | |
278 SITEPATH= | |
279 DESTPATH= | |
280 MACHDESTLIB=$(BINLIBDEST) | |
281 DESTLIB=$(LIBDEST) | |
282 | |
283 | |
284 | |
285 ########################################################################## | |
286 # Modules | |
287 MODULE_OBJS= \ | |
288 Modules/config.o \ | |
289 Modules/getpath.o \ | |
290 Modules/main.o \ | |
291 Modules/gcmodule.o | |
292 | |
293 IO_H= Modules/_io/_iomodule.h | |
294 | |
295 IO_OBJS= \ | |
296 Modules/_io/_iomodule.o \ | |
297 Modules/_io/iobase.o \ | |
298 Modules/_io/fileio.o \ | |
299 Modules/_io/bufferedio.o \ | |
300 Modules/_io/textio.o \ | |
301 Modules/_io/bytesio.o \ | |
302 Modules/_io/stringio.o | |
303 | |
304 ########################################################################## | |
305 | |
306 LIBFFI_INCLUDEDIR= /mnt/c/Users/crash/Documents/BobLiterman/CSP2_Galaxy/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include | |
307 | |
308 ########################################################################## | |
309 # Parser | |
310 POBJS= \ | |
311 Parser/acceler.o \ | |
312 Parser/grammar1.o \ | |
313 Parser/listnode.o \ | |
314 Parser/node.o \ | |
315 Parser/parser.o \ | |
316 Parser/token.o \ | |
317 | |
318 PARSER_OBJS= $(POBJS) Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o | |
319 | |
320 PARSER_HEADERS= \ | |
321 $(srcdir)/Include/grammar.h \ | |
322 $(srcdir)/Include/parsetok.h \ | |
323 $(srcdir)/Parser/parser.h \ | |
324 $(srcdir)/Parser/tokenizer.h | |
325 | |
326 ########################################################################## | |
327 # Python | |
328 | |
329 PYTHON_OBJS= \ | |
330 Python/_warnings.o \ | |
331 Python/Python-ast.o \ | |
332 Python/asdl.o \ | |
333 Python/ast.o \ | |
334 Python/ast_opt.o \ | |
335 Python/ast_unparse.o \ | |
336 Python/bltinmodule.o \ | |
337 Python/ceval.o \ | |
338 Python/codecs.o \ | |
339 Python/compile.o \ | |
340 Python/context.o \ | |
341 Python/dynamic_annotations.o \ | |
342 Python/errors.o \ | |
343 Python/frozenmain.o \ | |
344 Python/future.o \ | |
345 Python/getargs.o \ | |
346 Python/getcompiler.o \ | |
347 Python/getcopyright.o \ | |
348 Python/getplatform.o \ | |
349 Python/getversion.o \ | |
350 Python/graminit.o \ | |
351 Python/hamt.o \ | |
352 Python/import.o \ | |
353 Python/importdl.o \ | |
354 Python/initconfig.o \ | |
355 Python/marshal.o \ | |
356 Python/modsupport.o \ | |
357 Python/mysnprintf.o \ | |
358 Python/mystrtoul.o \ | |
359 Python/pathconfig.o \ | |
360 Python/peephole.o \ | |
361 Python/preconfig.o \ | |
362 Python/pyarena.o \ | |
363 Python/pyctype.o \ | |
364 Python/pyfpe.o \ | |
365 Python/pyhash.o \ | |
366 Python/pylifecycle.o \ | |
367 Python/pymath.o \ | |
368 Python/pystate.o \ | |
369 Python/pythonrun.o \ | |
370 Python/pytime.o \ | |
371 Python/bootstrap_hash.o \ | |
372 Python/structmember.o \ | |
373 Python/symtable.o \ | |
374 Python/sysmodule.o \ | |
375 Python/thread.o \ | |
376 Python/traceback.o \ | |
377 Python/getopt.o \ | |
378 Python/pystrcmp.o \ | |
379 Python/pystrtod.o \ | |
380 Python/pystrhex.o \ | |
381 Python/dtoa.o \ | |
382 Python/formatter_unicode.o \ | |
383 Python/fileutils.o \ | |
384 Python/$(DYNLOADFILE) \ | |
385 $(LIBOBJS) \ | |
386 $(MACHDEP_OBJS) \ | |
387 $(DTRACE_OBJS) | |
388 | |
389 | |
390 ########################################################################## | |
391 # Objects | |
392 OBJECT_OBJS= \ | |
393 Objects/abstract.o \ | |
394 Objects/accu.o \ | |
395 Objects/boolobject.o \ | |
396 Objects/bytes_methods.o \ | |
397 Objects/bytearrayobject.o \ | |
398 Objects/bytesobject.o \ | |
399 Objects/call.o \ | |
400 Objects/capsule.o \ | |
401 Objects/cellobject.o \ | |
402 Objects/classobject.o \ | |
403 Objects/codeobject.o \ | |
404 Objects/complexobject.o \ | |
405 Objects/descrobject.o \ | |
406 Objects/enumobject.o \ | |
407 Objects/exceptions.o \ | |
408 Objects/genobject.o \ | |
409 Objects/fileobject.o \ | |
410 Objects/floatobject.o \ | |
411 Objects/frameobject.o \ | |
412 Objects/funcobject.o \ | |
413 Objects/interpreteridobject.o \ | |
414 Objects/iterobject.o \ | |
415 Objects/listobject.o \ | |
416 Objects/longobject.o \ | |
417 Objects/dictobject.o \ | |
418 Objects/odictobject.o \ | |
419 Objects/memoryobject.o \ | |
420 Objects/methodobject.o \ | |
421 Objects/moduleobject.o \ | |
422 Objects/namespaceobject.o \ | |
423 Objects/object.o \ | |
424 Objects/obmalloc.o \ | |
425 Objects/picklebufobject.o \ | |
426 Objects/rangeobject.o \ | |
427 Objects/setobject.o \ | |
428 Objects/sliceobject.o \ | |
429 Objects/structseq.o \ | |
430 Objects/tupleobject.o \ | |
431 Objects/typeobject.o \ | |
432 Objects/unicodeobject.o \ | |
433 Objects/unicodectype.o \ | |
434 Objects/weakrefobject.o | |
435 | |
436 ########################################################################## | |
437 # objects that get linked into the Python library | |
438 LIBRARY_OBJS_OMIT_FROZEN= \ | |
439 Modules/getbuildinfo.o \ | |
440 $(PARSER_OBJS) \ | |
441 $(OBJECT_OBJS) \ | |
442 $(PYTHON_OBJS) \ | |
443 $(MODULE_OBJS) \ | |
444 $(MODOBJS) | |
445 | |
446 LIBRARY_OBJS= \ | |
447 $(LIBRARY_OBJS_OMIT_FROZEN) \ | |
448 Python/frozen.o | |
449 | |
450 ########################################################################## | |
451 # DTrace | |
452 | |
453 # On some systems, object files that reference DTrace probes need to be modified | |
454 # in-place by dtrace(1). | |
455 DTRACE_DEPS = \ | |
456 Python/ceval.o Python/import.o Python/sysmodule.o Modules/gcmodule.o | |
457 | |
458 ######################################################################### | |
459 # Rules | |
460 | |
461 # Default target | |
462 all: profile-opt | |
463 build_all: check-clean-src $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks \ | |
464 Programs/_testembed python-config | |
465 | |
466 # Check that the source is clean when building out of source. | |
467 check-clean-src: | |
468 @if test -n "$(VPATH)" -a -f "$(srcdir)/Programs/python.o"; then \ | |
469 echo "Error: The source directory ($(srcdir)) is not clean" ; \ | |
470 echo "Building Python out of the source tree (in $(abs_builddir)) requires a clean source tree ($(abs_srcdir))" ; \ | |
471 echo "Try to run: make -C \"$(srcdir)\" clean" ; \ | |
472 exit 1; \ | |
473 fi | |
474 | |
475 # Profile generation build must start from a clean tree. | |
476 profile-clean-stamp: | |
477 $(MAKE) clean profile-removal | |
478 touch $@ | |
479 | |
480 # Compile with profile generation enabled. | |
481 profile-gen-stamp: profile-clean-stamp | |
482 @if [ $(LLVM_PROF_ERR) = yes ]; then \ | |
483 echo "Error: Cannot perform PGO build because llvm-profdata was not found in PATH" ;\ | |
484 echo "Please add it to PATH and run ./configure again" ;\ | |
485 exit 1;\ | |
486 fi | |
487 @echo "Building with support for profile generation:" | |
488 $(MAKE) build_all_generate_profile | |
489 touch $@ | |
490 | |
491 # Run task with profile generation build to create profile information. | |
492 profile-run-stamp: | |
493 @echo "Running code to generate profile data (this can take a while):" | |
494 # First, we need to create a clean build with profile generation | |
495 # enabled. | |
496 $(MAKE) profile-gen-stamp | |
497 # Next, run the profile task to generate the profile information. | |
498 $(MAKE) run_profile_task | |
499 $(MAKE) build_all_merge_profile | |
500 # Remove profile generation binary since we are done with it. | |
501 $(MAKE) clean | |
502 # This is an expensive target to build and it does not have proper | |
503 # makefile dependency information. So, we create a "stamp" file | |
504 # to record its completion and avoid re-running it. | |
505 touch $@ | |
506 | |
507 build_all_generate_profile: | |
508 $(MAKE) build_all CFLAGS_NODIST="$(CFLAGS_NODIST) $(PGO_PROF_GEN_FLAG)" LDFLAGS_NODIST="$(LDFLAGS_NODIST) $(PGO_PROF_GEN_FLAG)" LIBS="$(LIBS)" | |
509 | |
510 run_profile_task: | |
511 @ # FIXME: can't run for a cross build | |
512 $(LLVM_PROF_FILE) $(RUNSHARED) ./$(BUILDPYTHON) $(PROFILE_TASK) || true | |
513 | |
514 build_all_merge_profile: | |
515 $(LLVM_PROF_MERGER) | |
516 | |
517 # Compile Python binary with profile guided optimization. | |
518 # To force re-running of the profile task, remove the profile-run-stamp file. | |
519 profile-opt: profile-run-stamp | |
520 @echo "Rebuilding with profile guided optimizations:" | |
521 -rm -f profile-clean-stamp | |
522 $(MAKE) build_all CFLAGS_NODIST="$(CFLAGS_NODIST) $(PGO_PROF_USE_FLAG)" LDFLAGS_NODIST="$(LDFLAGS_NODIST)" | |
523 | |
524 # Compile and run with gcov | |
525 .PHONY=coverage coverage-lcov coverage-report | |
526 coverage: | |
527 @echo "Building with support for coverage checking:" | |
528 $(MAKE) clean profile-removal | |
529 $(MAKE) build_all CFLAGS="$(CFLAGS) -O0 -pg -fprofile-arcs -ftest-coverage" LIBS="$(LIBS) -lgcov" | |
530 | |
531 coverage-lcov: | |
532 @echo "Creating Coverage HTML report with LCOV:" | |
533 @rm -f $(COVERAGE_INFO) | |
534 @rm -rf $(COVERAGE_REPORT) | |
535 @lcov --capture --directory $(abs_builddir) \ | |
536 --base-directory $(realpath $(abs_builddir)) \ | |
537 --path $(realpath $(abs_srcdir)) \ | |
538 --output-file $(COVERAGE_INFO) | |
539 @ # remove 3rd party modules, system headers and internal files with | |
540 @ # debug, test or dummy functions. | |
541 @lcov --remove $(COVERAGE_INFO) \ | |
542 '*/Modules/_blake2/impl/*' \ | |
543 '*/Modules/_ctypes/libffi*/*' \ | |
544 '*/Modules/_decimal/libmpdec/*' \ | |
545 '*/Modules/_sha3/kcp/*' \ | |
546 '*/Modules/expat/*' \ | |
547 '*/Modules/zlib/*' \ | |
548 '*/Include/*' \ | |
549 '*/Modules/xx*.c' \ | |
550 '*/Parser/listnode.c' \ | |
551 '*/Python/pyfpe.c' \ | |
552 '*/Python/pystrcmp.c' \ | |
553 '/usr/include/*' \ | |
554 '/usr/local/include/*' \ | |
555 '/usr/lib/gcc/*' \ | |
556 --output-file $(COVERAGE_INFO) | |
557 @genhtml $(COVERAGE_INFO) --output-directory $(COVERAGE_REPORT) \ | |
558 $(COVERAGE_REPORT_OPTIONS) | |
559 @echo | |
560 @echo "lcov report at $(COVERAGE_REPORT)/index.html" | |
561 @echo | |
562 | |
563 # Force regeneration of parser and importlib | |
564 coverage-report: regen-grammar regen-token regen-importlib | |
565 @ # build with coverage info | |
566 $(MAKE) coverage | |
567 @ # run tests, ignore failures | |
568 $(TESTRUNNER) $(TESTOPTS) || true | |
569 @ # build lcov report | |
570 $(MAKE) coverage-lcov | |
571 | |
572 # Run "Argument Clinic" over all source files | |
573 .PHONY=clinic | |
574 clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c | |
575 $(PYTHON_FOR_REGEN) $(srcdir)/Tools/clinic/clinic.py --make --srcdir $(srcdir) | |
576 | |
577 # Build the interpreter | |
578 $(BUILDPYTHON): Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY) | |
579 $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) | |
580 | |
581 platform: $(BUILDPYTHON) pybuilddir.txt | |
582 $(RUNSHARED) $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) -c 'import sys ; from sysconfig import get_platform ; print("%s-%d.%d" % (get_platform(), *sys.version_info[:2]))' >platform | |
583 | |
584 # Create build directory and generate the sysconfig build-time data there. | |
585 # pybuilddir.txt contains the name of the build dir and is used for | |
586 # sys.path fixup -- see Modules/getpath.c. | |
587 # Since this step runs before shared modules are built, try to avoid bootstrap | |
588 # problems by creating a dummy pybuilddir.txt just to allow interpreter | |
589 # initialization to succeed. It will be overwritten by generate-posix-vars | |
590 # or removed in case of failure. | |
591 pybuilddir.txt: $(BUILDPYTHON) | |
592 @echo "none" > ./pybuilddir.txt | |
593 $(RUNSHARED) $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) -S -m sysconfig --generate-posix-vars ;\ | |
594 if test $$? -ne 0 ; then \ | |
595 echo "generate-posix-vars failed" ; \ | |
596 rm -f ./pybuilddir.txt ; \ | |
597 exit 1 ; \ | |
598 fi | |
599 | |
600 # This is shared by the math and cmath modules | |
601 Modules/_math.o: Modules/_math.c Modules/_math.h | |
602 $(CC) -c $(CCSHARED) $(PY_CORE_CFLAGS) -o $@ $< | |
603 | |
604 # blake2s is auto-generated from blake2b | |
605 $(srcdir)/Modules/_blake2/blake2s_impl.c: $(srcdir)/Modules/_blake2/blake2b_impl.c $(srcdir)/Modules/_blake2/blake2b2s.py | |
606 $(PYTHON_FOR_REGEN) $(srcdir)/Modules/_blake2/blake2b2s.py | |
607 $(PYTHON_FOR_REGEN) $(srcdir)/Tools/clinic/clinic.py -f $@ | |
608 | |
609 # Build the shared modules | |
610 # Under GNU make, MAKEFLAGS are sorted and normalized; the 's' for | |
611 # -s, --silent or --quiet is always the first char. | |
612 # Under BSD make, MAKEFLAGS might be " -s -v x=y". | |
613 # Ignore macros passed by GNU make, passed after -- | |
614 sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o | |
615 @case "`echo X $$MAKEFLAGS | sed 's/^X //;s/ -- .*//'`" in \ | |
616 *\ -s*|s*) quiet="-q";; \ | |
617 *) quiet="";; \ | |
618 esac; \ | |
619 echo "$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ | |
620 _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ | |
621 $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build"; \ | |
622 $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ | |
623 _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ | |
624 $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build | |
625 | |
626 | |
627 # Build static library | |
628 $(LIBRARY): $(LIBRARY_OBJS) | |
629 -rm -f $@ | |
630 $(AR) $(ARFLAGS) $@ $(LIBRARY_OBJS) | |
631 | |
632 libpython$(LDVERSION).so: $(LIBRARY_OBJS) $(DTRACE_OBJS) | |
633 if test $(INSTSONAME) != $(LDLIBRARY); then \ | |
634 $(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM); \ | |
635 $(LN) -f $(INSTSONAME) $@; \ | |
636 else \ | |
637 $(BLDSHARED) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM); \ | |
638 fi | |
639 | |
640 libpython3.so: libpython$(LDVERSION).so | |
641 $(BLDSHARED) $(NO_AS_NEEDED) -o $@ -Wl,-h$@ $^ | |
642 | |
643 libpython$(LDVERSION).dylib: $(LIBRARY_OBJS) | |
644 $(CC) -dynamiclib -Wl,-single_module $(PY_CORE_LDFLAGS) -undefined dynamic_lookup -Wl,-install_name,$(prefix)/lib/libpython$(LDVERSION).dylib -Wl,-compatibility_version,$(VERSION) -Wl,-current_version,$(VERSION) -o $@ $(LIBRARY_OBJS) $(DTRACE_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \ | |
645 | |
646 | |
647 libpython$(VERSION).sl: $(LIBRARY_OBJS) | |
648 $(LDSHARED) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) | |
649 | |
650 # Copy up the gdb python hooks into a position where they can be automatically | |
651 # loaded by gdb during Lib/test/test_gdb.py | |
652 # | |
653 # Distributors are likely to want to install this somewhere else e.g. relative | |
654 # to the stripped DWARF data for the shared library. | |
655 gdbhooks: $(BUILDPYTHON)-gdb.py | |
656 | |
657 SRC_GDB_HOOKS=$(srcdir)/Tools/gdb/libpython.py | |
658 $(BUILDPYTHON)-gdb.py: $(SRC_GDB_HOOKS) | |
659 $(INSTALL_DATA) $(SRC_GDB_HOOKS) $(BUILDPYTHON)-gdb.py | |
660 | |
661 # This rule is here for OPENSTEP/Rhapsody/MacOSX. It builds a temporary | |
662 # minimal framework (not including the Lib directory and such) in the current | |
663 # directory. | |
664 RESSRCDIR=Mac/Resources/framework | |
665 $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \ | |
666 $(LIBRARY) \ | |
667 $(RESSRCDIR)/Info.plist | |
668 $(INSTALL) -d -m $(DIRMODE) $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION) | |
669 $(CC) -o $(LDLIBRARY) $(PY_CORE_LDFLAGS) -dynamiclib \ | |
670 -all_load $(LIBRARY) -Wl,-single_module \ | |
671 -install_name $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK) \ | |
672 -compatibility_version $(VERSION) \ | |
673 -current_version $(VERSION) \ | |
674 -framework CoreFoundation $(LIBS); | |
675 $(INSTALL) -d -m $(DIRMODE) \ | |
676 $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/English.lproj | |
677 $(INSTALL_DATA) $(RESSRCDIR)/Info.plist \ | |
678 $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/Info.plist | |
679 $(LN) -fsn $(VERSION) $(PYTHONFRAMEWORKDIR)/Versions/Current | |
680 $(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(PYTHONFRAMEWORKDIR)/$(PYTHONFRAMEWORK) | |
681 $(LN) -fsn Versions/Current/Resources $(PYTHONFRAMEWORKDIR)/Resources | |
682 | |
683 # This rule builds the Cygwin Python DLL and import library if configured | |
684 # for a shared core library; otherwise, this rule is a noop. | |
685 $(DLLLIBRARY) libpython$(LDVERSION).dll.a: $(LIBRARY_OBJS) | |
686 if test -n "$(DLLLIBRARY)"; then \ | |
687 $(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \ | |
688 $(LIBS) $(MODLIBS) $(SYSLIBS); \ | |
689 else true; \ | |
690 fi | |
691 | |
692 | |
693 oldsharedmods: $(SHAREDMODS) | |
694 | |
695 | |
696 Makefile Modules/config.c: Makefile.pre \ | |
697 $(srcdir)/Modules/config.c.in \ | |
698 $(MAKESETUP) \ | |
699 $(srcdir)/Modules/Setup \ | |
700 Modules/Setup.local | |
701 $(SHELL) $(MAKESETUP) -c $(srcdir)/Modules/config.c.in \ | |
702 -s Modules \ | |
703 Modules/Setup.local \ | |
704 $(srcdir)/Modules/Setup | |
705 @mv config.c Modules | |
706 @echo "The Makefile was updated, you may need to re-run make." | |
707 | |
708 | |
709 Programs/_testembed: Programs/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY) | |
710 $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) | |
711 | |
712 ############################################################################ | |
713 # Importlib | |
714 | |
715 Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile | |
716 | |
717 Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) | |
718 $(LINKCC) $(PY_CORE_LDFLAGS) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS) | |
719 | |
720 .PHONY: regen-importlib | |
721 regen-importlib: Programs/_freeze_importlib | |
722 # Regenerate Python/importlib_external.h | |
723 # from Lib/importlib/_bootstrap_external.py using _freeze_importlib | |
724 ./Programs/_freeze_importlib importlib._bootstrap_external \ | |
725 $(srcdir)/Lib/importlib/_bootstrap_external.py \ | |
726 $(srcdir)/Python/importlib_external.h.new | |
727 $(UPDATE_FILE) $(srcdir)/Python/importlib_external.h $(srcdir)/Python/importlib_external.h.new | |
728 # Regenerate Python/importlib.h from Lib/importlib/_bootstrap.py | |
729 # using _freeze_importlib | |
730 ./Programs/_freeze_importlib importlib._bootstrap \ | |
731 $(srcdir)/Lib/importlib/_bootstrap.py \ | |
732 $(srcdir)/Python/importlib.h.new | |
733 $(UPDATE_FILE) $(srcdir)/Python/importlib.h $(srcdir)/Python/importlib.h.new | |
734 # Regenerate Python/importlib_zipimport.h from Lib/zipimport.py | |
735 # using _freeze_importlib | |
736 ./Programs/_freeze_importlib zipimport \ | |
737 $(srcdir)/Lib/zipimport.py \ | |
738 $(srcdir)/Python/importlib_zipimport.h.new | |
739 $(UPDATE_FILE) $(srcdir)/Python/importlib_zipimport.h $(srcdir)/Python/importlib_zipimport.h.new | |
740 | |
741 | |
742 ############################################################################ | |
743 # Regenerate all generated files | |
744 | |
745 regen-all: regen-opcode regen-opcode-targets regen-typeslots regen-grammar \ | |
746 regen-token regen-keyword regen-symbol regen-ast regen-importlib clinic | |
747 | |
748 ############################################################################ | |
749 # Special rules for object files | |
750 | |
751 Modules/getbuildinfo.o: $(PARSER_OBJS) \ | |
752 $(OBJECT_OBJS) \ | |
753 $(PYTHON_OBJS) \ | |
754 $(MODULE_OBJS) \ | |
755 $(MODOBJS) \ | |
756 $(DTRACE_OBJS) \ | |
757 $(srcdir)/Modules/getbuildinfo.c | |
758 $(CC) -c $(PY_CORE_CFLAGS) \ | |
759 -DGITVERSION="\"`LC_ALL=C $(GITVERSION)`\"" \ | |
760 -DGITTAG="\"`LC_ALL=C $(GITTAG)`\"" \ | |
761 -DGITBRANCH="\"`LC_ALL=C $(GITBRANCH)`\"" \ | |
762 -o $@ $(srcdir)/Modules/getbuildinfo.c | |
763 | |
764 Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile | |
765 $(CC) -c $(PY_CORE_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \ | |
766 -DPREFIX='"$(prefix)"' \ | |
767 -DEXEC_PREFIX='"$(exec_prefix)"' \ | |
768 -DVERSION='"$(VERSION)"' \ | |
769 -DVPATH='"$(VPATH)"' \ | |
770 -o $@ $(srcdir)/Modules/getpath.c | |
771 | |
772 Programs/python.o: $(srcdir)/Programs/python.c | |
773 $(MAINCC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Programs/python.c | |
774 | |
775 Programs/_testembed.o: $(srcdir)/Programs/_testembed.c | |
776 $(MAINCC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Programs/_testembed.c | |
777 | |
778 Modules/_sre.o: $(srcdir)/Modules/_sre.c $(srcdir)/Modules/sre.h $(srcdir)/Modules/sre_constants.h $(srcdir)/Modules/sre_lib.h | |
779 | |
780 Modules/posixmodule.o: $(srcdir)/Modules/posixmodule.c $(srcdir)/Modules/posixmodule.h | |
781 | |
782 Modules/grpmodule.o: $(srcdir)/Modules/grpmodule.c $(srcdir)/Modules/posixmodule.h | |
783 | |
784 Modules/pwdmodule.o: $(srcdir)/Modules/pwdmodule.c $(srcdir)/Modules/posixmodule.h | |
785 | |
786 Modules/signalmodule.o: $(srcdir)/Modules/signalmodule.c $(srcdir)/Modules/posixmodule.h | |
787 | |
788 Python/dynload_shlib.o: $(srcdir)/Python/dynload_shlib.c Makefile | |
789 $(CC) -c $(PY_CORE_CFLAGS) \ | |
790 -DSOABI='"$(SOABI)"' \ | |
791 -o $@ $(srcdir)/Python/dynload_shlib.c | |
792 | |
793 Python/dynload_hpux.o: $(srcdir)/Python/dynload_hpux.c Makefile | |
794 $(CC) -c $(PY_CORE_CFLAGS) \ | |
795 -DSHLIB_EXT='"$(EXT_SUFFIX)"' \ | |
796 -o $@ $(srcdir)/Python/dynload_hpux.c | |
797 | |
798 Python/sysmodule.o: $(srcdir)/Python/sysmodule.c Makefile $(srcdir)/Include/pydtrace.h | |
799 $(CC) -c $(PY_CORE_CFLAGS) \ | |
800 -DABIFLAGS='"$(ABIFLAGS)"' \ | |
801 $(MULTIARCH_CPPFLAGS) \ | |
802 -o $@ $(srcdir)/Python/sysmodule.c | |
803 | |
804 $(IO_OBJS): $(IO_H) | |
805 | |
806 .PHONY: regen-grammar | |
807 regen-grammar: regen-token | |
808 # Regenerate Include/graminit.h and Python/graminit.c | |
809 # from Grammar/Grammar using pgen | |
810 @$(MKDIR_P) Include | |
811 PYTHONPATH=$(srcdir) $(PYTHON_FOR_REGEN) -m Parser.pgen $(srcdir)/Grammar/Grammar \ | |
812 $(srcdir)/Grammar/Tokens \ | |
813 $(srcdir)/Include/graminit.h.new \ | |
814 $(srcdir)/Python/graminit.c.new | |
815 $(UPDATE_FILE) $(srcdir)/Include/graminit.h $(srcdir)/Include/graminit.h.new | |
816 $(UPDATE_FILE) $(srcdir)/Python/graminit.c $(srcdir)/Python/graminit.c.new | |
817 | |
818 .PHONY=regen-ast | |
819 regen-ast: | |
820 # Regenerate Include/Python-ast.h using Parser/asdl_c.py -h | |
821 $(MKDIR_P) $(srcdir)/Include | |
822 $(PYTHON_FOR_REGEN) $(srcdir)/Parser/asdl_c.py \ | |
823 -h $(srcdir)/Include/Python-ast.h.new \ | |
824 $(srcdir)/Parser/Python.asdl | |
825 $(UPDATE_FILE) $(srcdir)/Include/Python-ast.h $(srcdir)/Include/Python-ast.h.new | |
826 # Regenerate Python/Python-ast.c using Parser/asdl_c.py -c | |
827 $(MKDIR_P) $(srcdir)/Python | |
828 $(PYTHON_FOR_REGEN) $(srcdir)/Parser/asdl_c.py \ | |
829 -c $(srcdir)/Python/Python-ast.c.new \ | |
830 $(srcdir)/Parser/Python.asdl | |
831 $(UPDATE_FILE) $(srcdir)/Python/Python-ast.c $(srcdir)/Python/Python-ast.c.new | |
832 | |
833 .PHONY: regen-opcode | |
834 regen-opcode: | |
835 # Regenerate Include/opcode.h from Lib/opcode.py | |
836 # using Tools/scripts/generate_opcode_h.py | |
837 $(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_opcode_h.py \ | |
838 $(srcdir)/Lib/opcode.py \ | |
839 $(srcdir)/Include/opcode.h.new | |
840 $(UPDATE_FILE) $(srcdir)/Include/opcode.h $(srcdir)/Include/opcode.h.new | |
841 | |
842 .PHONY: regen-token | |
843 regen-token: | |
844 # Regenerate Doc/library/token-list.inc from Grammar/Tokens | |
845 # using Tools/scripts/generate_token.py | |
846 $(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_token.py rst \ | |
847 $(srcdir)/Grammar/Tokens \ | |
848 $(srcdir)/Doc/library/token-list.inc | |
849 # Regenerate Include/token.h from Grammar/Tokens | |
850 # using Tools/scripts/generate_token.py | |
851 $(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_token.py h \ | |
852 $(srcdir)/Grammar/Tokens \ | |
853 $(srcdir)/Include/token.h | |
854 # Regenerate Parser/token.c from Grammar/Tokens | |
855 # using Tools/scripts/generate_token.py | |
856 $(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_token.py c \ | |
857 $(srcdir)/Grammar/Tokens \ | |
858 $(srcdir)/Parser/token.c | |
859 # Regenerate Lib/token.py from Grammar/Tokens | |
860 # using Tools/scripts/generate_token.py | |
861 $(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_token.py py \ | |
862 $(srcdir)/Grammar/Tokens \ | |
863 $(srcdir)/Lib/token.py | |
864 | |
865 .PHONY: regen-keyword | |
866 regen-keyword: | |
867 # Regenerate Lib/keyword.py from Grammar/Grammar and Grammar/Tokens | |
868 # using Parser/pgen | |
869 PYTHONPATH=$(srcdir) $(PYTHON_FOR_REGEN) -m Parser.pgen.keywordgen $(srcdir)/Grammar/Grammar \ | |
870 $(srcdir)/Grammar/Tokens \ | |
871 $(srcdir)/Lib/keyword.py.new | |
872 $(UPDATE_FILE) $(srcdir)/Lib/keyword.py $(srcdir)/Lib/keyword.py.new | |
873 | |
874 .PHONY: regen-symbol | |
875 regen-symbol: $(srcdir)/Include/graminit.h | |
876 # Regenerate Lib/symbol.py from Include/graminit.h | |
877 # using Tools/scripts/generate_symbol_py.py | |
878 $(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_symbol_py.py \ | |
879 $(srcdir)/Include/graminit.h \ | |
880 $(srcdir)/Lib/symbol.py | |
881 | |
882 Python/compile.o Python/symtable.o Python/ast_unparse.o Python/ast.o Python/future.o Parser/parsetok.o: $(srcdir)/Include/graminit.h $(srcdir)/Include/Python-ast.h | |
883 | |
884 Python/getplatform.o: $(srcdir)/Python/getplatform.c | |
885 $(CC) -c $(PY_CORE_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c | |
886 | |
887 Python/importdl.o: $(srcdir)/Python/importdl.c | |
888 $(CC) -c $(PY_CORE_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c | |
889 | |
890 Objects/unicodectype.o: $(srcdir)/Objects/unicodectype.c \ | |
891 $(srcdir)/Objects/unicodetype_db.h | |
892 | |
893 BYTESTR_DEPS = \ | |
894 $(srcdir)/Objects/stringlib/count.h \ | |
895 $(srcdir)/Objects/stringlib/ctype.h \ | |
896 $(srcdir)/Objects/stringlib/fastsearch.h \ | |
897 $(srcdir)/Objects/stringlib/find.h \ | |
898 $(srcdir)/Objects/stringlib/join.h \ | |
899 $(srcdir)/Objects/stringlib/partition.h \ | |
900 $(srcdir)/Objects/stringlib/split.h \ | |
901 $(srcdir)/Objects/stringlib/stringdefs.h \ | |
902 $(srcdir)/Objects/stringlib/transmogrify.h | |
903 | |
904 UNICODE_DEPS = \ | |
905 $(srcdir)/Objects/stringlib/asciilib.h \ | |
906 $(srcdir)/Objects/stringlib/codecs.h \ | |
907 $(srcdir)/Objects/stringlib/count.h \ | |
908 $(srcdir)/Objects/stringlib/fastsearch.h \ | |
909 $(srcdir)/Objects/stringlib/find.h \ | |
910 $(srcdir)/Objects/stringlib/find_max_char.h \ | |
911 $(srcdir)/Objects/stringlib/localeutil.h \ | |
912 $(srcdir)/Objects/stringlib/partition.h \ | |
913 $(srcdir)/Objects/stringlib/replace.h \ | |
914 $(srcdir)/Objects/stringlib/split.h \ | |
915 $(srcdir)/Objects/stringlib/ucs1lib.h \ | |
916 $(srcdir)/Objects/stringlib/ucs2lib.h \ | |
917 $(srcdir)/Objects/stringlib/ucs4lib.h \ | |
918 $(srcdir)/Objects/stringlib/undef.h \ | |
919 $(srcdir)/Objects/stringlib/unicode_format.h \ | |
920 $(srcdir)/Objects/stringlib/unicodedefs.h | |
921 | |
922 Objects/bytes_methods.o: $(srcdir)/Objects/bytes_methods.c $(BYTESTR_DEPS) | |
923 Objects/bytesobject.o: $(srcdir)/Objects/bytesobject.c $(BYTESTR_DEPS) | |
924 Objects/bytearrayobject.o: $(srcdir)/Objects/bytearrayobject.c $(BYTESTR_DEPS) | |
925 | |
926 Objects/unicodeobject.o: $(srcdir)/Objects/unicodeobject.c $(UNICODE_DEPS) | |
927 | |
928 Objects/odictobject.o: $(srcdir)/Objects/dict-common.h | |
929 Objects/dictobject.o: $(srcdir)/Objects/stringlib/eq.h $(srcdir)/Objects/dict-common.h | |
930 Objects/setobject.o: $(srcdir)/Objects/stringlib/eq.h | |
931 | |
932 .PHONY: regen-opcode-targets | |
933 regen-opcode-targets: | |
934 # Regenerate Python/opcode_targets.h from Lib/opcode.py | |
935 # using Python/makeopcodetargets.py | |
936 $(PYTHON_FOR_REGEN) $(srcdir)/Python/makeopcodetargets.py \ | |
937 $(srcdir)/Python/opcode_targets.h.new | |
938 $(UPDATE_FILE) $(srcdir)/Python/opcode_targets.h $(srcdir)/Python/opcode_targets.h.new | |
939 | |
940 Python/ceval.o: $(srcdir)/Python/opcode_targets.h $(srcdir)/Python/ceval_gil.h \ | |
941 $(srcdir)/Python/condvar.h | |
942 | |
943 Python/frozen.o: $(srcdir)/Python/importlib.h $(srcdir)/Python/importlib_external.h \ | |
944 $(srcdir)/Python/importlib_zipimport.h | |
945 | |
946 # Generate DTrace probe macros, then rename them (PYTHON_ -> PyDTrace_) to | |
947 # follow our naming conventions. dtrace(1) uses the output filename to generate | |
948 # an include guard, so we can't use a pipeline to transform its output. | |
949 Include/pydtrace_probes.h: $(srcdir)/Include/pydtrace.d | |
950 $(MKDIR_P) Include | |
951 $(DTRACE) $(DFLAGS) -o $@ -h -s $< | |
952 : sed in-place edit with POSIX-only tools | |
953 sed 's/PYTHON_/PyDTrace_/' $@ > $@.tmp | |
954 mv $@.tmp $@ | |
955 | |
956 Python/ceval.o: $(srcdir)/Include/pydtrace.h | |
957 Python/import.o: $(srcdir)/Include/pydtrace.h | |
958 Modules/gcmodule.o: $(srcdir)/Include/pydtrace.h | |
959 | |
960 Python/pydtrace.o: $(srcdir)/Include/pydtrace.d $(DTRACE_DEPS) | |
961 $(DTRACE) $(DFLAGS) -o $@ -G -s $< $(DTRACE_DEPS) | |
962 | |
963 Objects/typeobject.o: Objects/typeslots.inc | |
964 | |
965 .PHONY: regen-typeslots | |
966 regen-typeslots: | |
967 # Regenerate Objects/typeslots.inc from Include/typeslotsh | |
968 # using Objects/typeslots.py | |
969 $(PYTHON_FOR_REGEN) $(srcdir)/Objects/typeslots.py \ | |
970 < $(srcdir)/Include/typeslots.h \ | |
971 $(srcdir)/Objects/typeslots.inc.new | |
972 $(UPDATE_FILE) $(srcdir)/Objects/typeslots.inc $(srcdir)/Objects/typeslots.inc.new | |
973 | |
974 ############################################################################ | |
975 # Header files | |
976 | |
977 PYTHON_HEADERS= \ | |
978 $(srcdir)/Include/Python.h \ | |
979 $(srcdir)/Include/abstract.h \ | |
980 $(srcdir)/Include/asdl.h \ | |
981 $(srcdir)/Include/ast.h \ | |
982 $(srcdir)/Include/bitset.h \ | |
983 $(srcdir)/Include/bltinmodule.h \ | |
984 $(srcdir)/Include/boolobject.h \ | |
985 $(srcdir)/Include/bytearrayobject.h \ | |
986 $(srcdir)/Include/bytes_methods.h \ | |
987 $(srcdir)/Include/bytesobject.h \ | |
988 $(srcdir)/Include/cellobject.h \ | |
989 $(srcdir)/Include/ceval.h \ | |
990 $(srcdir)/Include/classobject.h \ | |
991 $(srcdir)/Include/code.h \ | |
992 $(srcdir)/Include/codecs.h \ | |
993 $(srcdir)/Include/compile.h \ | |
994 $(srcdir)/Include/complexobject.h \ | |
995 $(srcdir)/Include/context.h \ | |
996 $(srcdir)/Include/descrobject.h \ | |
997 $(srcdir)/Include/dictobject.h \ | |
998 $(srcdir)/Include/dtoa.h \ | |
999 $(srcdir)/Include/dynamic_annotations.h \ | |
1000 $(srcdir)/Include/enumobject.h \ | |
1001 $(srcdir)/Include/errcode.h \ | |
1002 $(srcdir)/Include/eval.h \ | |
1003 $(srcdir)/Include/fileobject.h \ | |
1004 $(srcdir)/Include/fileutils.h \ | |
1005 $(srcdir)/Include/floatobject.h \ | |
1006 $(srcdir)/Include/frameobject.h \ | |
1007 $(srcdir)/Include/funcobject.h \ | |
1008 $(srcdir)/Include/genobject.h \ | |
1009 $(srcdir)/Include/import.h \ | |
1010 $(srcdir)/Include/interpreteridobject.h \ | |
1011 $(srcdir)/Include/intrcheck.h \ | |
1012 $(srcdir)/Include/iterobject.h \ | |
1013 $(srcdir)/Include/listobject.h \ | |
1014 $(srcdir)/Include/longintrepr.h \ | |
1015 $(srcdir)/Include/longobject.h \ | |
1016 $(srcdir)/Include/marshal.h \ | |
1017 $(srcdir)/Include/memoryobject.h \ | |
1018 $(srcdir)/Include/methodobject.h \ | |
1019 $(srcdir)/Include/modsupport.h \ | |
1020 $(srcdir)/Include/moduleobject.h \ | |
1021 $(srcdir)/Include/namespaceobject.h \ | |
1022 $(srcdir)/Include/node.h \ | |
1023 $(srcdir)/Include/object.h \ | |
1024 $(srcdir)/Include/objimpl.h \ | |
1025 $(srcdir)/Include/odictobject.h \ | |
1026 $(srcdir)/Include/opcode.h \ | |
1027 $(srcdir)/Include/osdefs.h \ | |
1028 $(srcdir)/Include/osmodule.h \ | |
1029 $(srcdir)/Include/patchlevel.h \ | |
1030 $(srcdir)/Include/picklebufobject.h \ | |
1031 $(srcdir)/Include/pyarena.h \ | |
1032 $(srcdir)/Include/pycapsule.h \ | |
1033 $(srcdir)/Include/pyctype.h \ | |
1034 $(srcdir)/Include/pydebug.h \ | |
1035 $(srcdir)/Include/pydtrace.h \ | |
1036 $(srcdir)/Include/pyerrors.h \ | |
1037 $(srcdir)/Include/pyfpe.h \ | |
1038 $(srcdir)/Include/pyhash.h \ | |
1039 $(srcdir)/Include/pylifecycle.h \ | |
1040 $(srcdir)/Include/pymacconfig.h \ | |
1041 $(srcdir)/Include/pymacro.h \ | |
1042 $(srcdir)/Include/pymath.h \ | |
1043 $(srcdir)/Include/pymem.h \ | |
1044 $(srcdir)/Include/pyport.h \ | |
1045 $(srcdir)/Include/pystate.h \ | |
1046 $(srcdir)/Include/pystrcmp.h \ | |
1047 $(srcdir)/Include/pystrhex.h \ | |
1048 $(srcdir)/Include/pystrtod.h \ | |
1049 $(srcdir)/Include/pythonrun.h \ | |
1050 $(srcdir)/Include/pythread.h \ | |
1051 $(srcdir)/Include/pytime.h \ | |
1052 $(srcdir)/Include/rangeobject.h \ | |
1053 $(srcdir)/Include/setobject.h \ | |
1054 $(srcdir)/Include/sliceobject.h \ | |
1055 $(srcdir)/Include/structmember.h \ | |
1056 $(srcdir)/Include/structseq.h \ | |
1057 $(srcdir)/Include/symtable.h \ | |
1058 $(srcdir)/Include/sysmodule.h \ | |
1059 $(srcdir)/Include/token.h \ | |
1060 $(srcdir)/Include/traceback.h \ | |
1061 $(srcdir)/Include/tracemalloc.h \ | |
1062 $(srcdir)/Include/tupleobject.h \ | |
1063 $(srcdir)/Include/ucnhash.h \ | |
1064 $(srcdir)/Include/unicodeobject.h \ | |
1065 $(srcdir)/Include/warnings.h \ | |
1066 $(srcdir)/Include/weakrefobject.h \ | |
1067 \ | |
1068 pyconfig.h \ | |
1069 $(PARSER_HEADERS) \ | |
1070 $(srcdir)/Include/Python-ast.h \ | |
1071 \ | |
1072 $(srcdir)/Include/cpython/abstract.h \ | |
1073 $(srcdir)/Include/cpython/dictobject.h \ | |
1074 $(srcdir)/Include/cpython/fileobject.h \ | |
1075 $(srcdir)/Include/cpython/initconfig.h \ | |
1076 $(srcdir)/Include/cpython/interpreteridobject.h \ | |
1077 $(srcdir)/Include/cpython/object.h \ | |
1078 $(srcdir)/Include/cpython/objimpl.h \ | |
1079 $(srcdir)/Include/cpython/pyerrors.h \ | |
1080 $(srcdir)/Include/cpython/pylifecycle.h \ | |
1081 $(srcdir)/Include/cpython/pymem.h \ | |
1082 $(srcdir)/Include/cpython/pystate.h \ | |
1083 $(srcdir)/Include/cpython/sysmodule.h \ | |
1084 $(srcdir)/Include/cpython/traceback.h \ | |
1085 $(srcdir)/Include/cpython/tupleobject.h \ | |
1086 $(srcdir)/Include/cpython/unicodeobject.h \ | |
1087 \ | |
1088 $(srcdir)/Include/internal/pycore_accu.h \ | |
1089 $(srcdir)/Include/internal/pycore_atomic.h \ | |
1090 $(srcdir)/Include/internal/pycore_ceval.h \ | |
1091 $(srcdir)/Include/internal/pycore_code.h \ | |
1092 $(srcdir)/Include/internal/pycore_condvar.h \ | |
1093 $(srcdir)/Include/internal/pycore_context.h \ | |
1094 $(srcdir)/Include/internal/pycore_fileutils.h \ | |
1095 $(srcdir)/Include/internal/pycore_getopt.h \ | |
1096 $(srcdir)/Include/internal/pycore_gil.h \ | |
1097 $(srcdir)/Include/internal/pycore_hamt.h \ | |
1098 $(srcdir)/Include/internal/pycore_initconfig.h \ | |
1099 $(srcdir)/Include/internal/pycore_object.h \ | |
1100 $(srcdir)/Include/internal/pycore_pathconfig.h \ | |
1101 $(srcdir)/Include/internal/pycore_pyerrors.h \ | |
1102 $(srcdir)/Include/internal/pycore_pyhash.h \ | |
1103 $(srcdir)/Include/internal/pycore_pylifecycle.h \ | |
1104 $(srcdir)/Include/internal/pycore_pymem.h \ | |
1105 $(srcdir)/Include/internal/pycore_pystate.h \ | |
1106 $(srcdir)/Include/internal/pycore_traceback.h \ | |
1107 $(srcdir)/Include/internal/pycore_tupleobject.h \ | |
1108 $(srcdir)/Include/internal/pycore_warnings.h \ | |
1109 $(DTRACE_HEADERS) | |
1110 | |
1111 $(LIBRARY_OBJS) $(MODOBJS) Programs/python.o: $(PYTHON_HEADERS) | |
1112 | |
1113 | |
1114 ###################################################################### | |
1115 | |
1116 TESTOPTS= $(EXTRATESTOPTS) | |
1117 TESTPYTHON= $(RUNSHARED) ./$(BUILDPYTHON) $(TESTPYTHONOPTS) | |
1118 TESTRUNNER= $(TESTPYTHON) $(srcdir)/Tools/scripts/run_tests.py | |
1119 TESTTIMEOUT= 1200 | |
1120 | |
1121 .PHONY: test testall testuniversal buildbottest pythoninfo | |
1122 | |
1123 # Remove "test_python_*" directories of previous failed test jobs. | |
1124 # Pass TESTOPTS options because it can contain --tempdir option. | |
1125 cleantest: build_all | |
1126 $(TESTRUNNER) $(TESTOPTS) --cleanup | |
1127 | |
1128 # Run a basic set of regression tests. | |
1129 # This excludes some tests that are particularly resource-intensive. | |
1130 test: build_all platform | |
1131 $(TESTRUNNER) $(TESTOPTS) | |
1132 | |
1133 # Run the full test suite twice - once without .pyc files, and once with. | |
1134 # In the past, we've had problems where bugs in the marshalling or | |
1135 # elsewhere caused bytecode read from .pyc files to behave differently | |
1136 # than bytecode generated directly from a .py source file. Sometimes | |
1137 # the bytecode read from a .pyc file had the bug, sometimes the directly | |
1138 # generated bytecode. This is sometimes a very shy bug needing a lot of | |
1139 # sample data. | |
1140 testall: build_all platform | |
1141 -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f | |
1142 $(TESTPYTHON) -E $(srcdir)/Lib/compileall.py | |
1143 -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f | |
1144 -$(TESTRUNNER) -u all $(TESTOPTS) | |
1145 $(TESTRUNNER) -u all $(TESTOPTS) | |
1146 | |
1147 # Run the test suite for both architectures in a Universal build on OSX. | |
1148 # Must be run on an Intel box. | |
1149 testuniversal: build_all platform | |
1150 @if [ `arch` != 'i386' ]; then \ | |
1151 echo "This can only be used on OSX/i386" ;\ | |
1152 exit 1 ;\ | |
1153 fi | |
1154 $(TESTRUNNER) -u all $(TESTOPTS) | |
1155 $(RUNSHARED) /usr/libexec/oah/translate \ | |
1156 ./$(BUILDPYTHON) -E -m test -j 0 -u all $(TESTOPTS) | |
1157 | |
1158 # Like testall, but with only one pass and without multiple processes. | |
1159 # Run an optional script to include information about the build environment. | |
1160 buildbottest: build_all platform | |
1161 -@if which pybuildbot.identify >/dev/null 2>&1; then \ | |
1162 pybuildbot.identify "CC='$(CC)'" "CXX='$(CXX)'"; \ | |
1163 fi | |
1164 $(TESTRUNNER) -j 1 -u all -W --slowest --fail-env-changed --timeout=$(TESTTIMEOUT) $(TESTOPTS) | |
1165 | |
1166 pythoninfo: build_all | |
1167 $(RUNSHARED) ./$(BUILDPYTHON) -m test.pythoninfo | |
1168 | |
1169 QUICKTESTOPTS= $(TESTOPTS) -x test_subprocess test_io test_lib2to3 \ | |
1170 test_multibytecodec test_urllib2_localnet test_itertools \ | |
1171 test_multiprocessing_fork test_multiprocessing_spawn \ | |
1172 test_multiprocessing_forkserver \ | |
1173 test_mailbox test_socket test_poll \ | |
1174 test_select test_zipfile test_concurrent_futures | |
1175 quicktest: build_all platform | |
1176 $(TESTRUNNER) $(QUICKTESTOPTS) | |
1177 | |
1178 # SSL tests | |
1179 .PHONY: multisslcompile multissltest | |
1180 multisslcompile: build_all | |
1181 $(RUNSHARED) ./$(BUILDPYTHON) Tools/ssl/multissltests.py --steps=modules | |
1182 | |
1183 multissltest: build_all | |
1184 $(RUNSHARED) ./$(BUILDPYTHON) Tools/ssl/multissltests.py | |
1185 | |
1186 install: commoninstall bininstall maninstall | |
1187 if test "x$(ENSUREPIP)" != "xno" ; then \ | |
1188 case $(ENSUREPIP) in \ | |
1189 upgrade) ensurepip="--upgrade" ;; \ | |
1190 install|*) ensurepip="" ;; \ | |
1191 esac; \ | |
1192 $(RUNSHARED) $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) -m ensurepip \ | |
1193 $$ensurepip --root=$(DESTDIR)/ ; \ | |
1194 fi | |
1195 | |
1196 altinstall: commoninstall | |
1197 if test "x$(ENSUREPIP)" != "xno" ; then \ | |
1198 case $(ENSUREPIP) in \ | |
1199 upgrade) ensurepip="--altinstall --upgrade" ;; \ | |
1200 install|*) ensurepip="--altinstall" ;; \ | |
1201 esac; \ | |
1202 $(RUNSHARED) $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) -m ensurepip \ | |
1203 $$ensurepip --root=$(DESTDIR)/ ; \ | |
1204 fi | |
1205 | |
1206 commoninstall: check-clean-src \ | |
1207 altbininstall libinstall inclinstall libainstall \ | |
1208 sharedinstall oldsharedinstall altmaninstall \ | |
1209 | |
1210 | |
1211 # Install shared libraries enabled by Setup | |
1212 DESTDIRS= $(exec_prefix) $(LIBDIR) $(BINLIBDEST) $(DESTSHARED) | |
1213 | |
1214 oldsharedinstall: $(DESTSHARED) $(SHAREDMODS) | |
1215 @for i in X $(SHAREDMODS); do \ | |
1216 if test $$i != X; then \ | |
1217 echo $(INSTALL_SHARED) $$i $(DESTSHARED)/`basename $$i`; \ | |
1218 $(INSTALL_SHARED) $$i $(DESTDIR)$(DESTSHARED)/`basename $$i`; \ | |
1219 fi; \ | |
1220 done | |
1221 | |
1222 $(DESTSHARED): | |
1223 @for i in $(DESTDIRS); \ | |
1224 do \ | |
1225 if test ! -d $(DESTDIR)$$i; then \ | |
1226 echo "Creating directory $$i"; \ | |
1227 $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ | |
1228 else true; \ | |
1229 fi; \ | |
1230 done | |
1231 | |
1232 # Install the interpreter with $(VERSION) affixed | |
1233 # This goes into $(exec_prefix) | |
1234 altbininstall: $(BUILDPYTHON) | |
1235 @for i in $(BINDIR) $(LIBDIR); \ | |
1236 do \ | |
1237 if test ! -d $(DESTDIR)$$i; then \ | |
1238 echo "Creating directory $$i"; \ | |
1239 $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ | |
1240 else true; \ | |
1241 fi; \ | |
1242 done | |
1243 if test "$(PYTHONFRAMEWORKDIR)" = "no-framework" ; then \ | |
1244 $(INSTALL_PROGRAM) $(BUILDPYTHON) $(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE); \ | |
1245 else \ | |
1246 $(INSTALL_PROGRAM) $(STRIPFLAG) Mac/pythonw $(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE); \ | |
1247 fi | |
1248 -if test "$(VERSION)" != "$(LDVERSION)"; then \ | |
1249 if test -f $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE) -o -h $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \ | |
1250 then rm -f $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \ | |
1251 fi; \ | |
1252 (cd $(DESTDIR)$(BINDIR); $(LN) python$(LDVERSION)$(EXE) python$(VERSION)$(EXE)); \ | |
1253 fi | |
1254 if test -f $(LDLIBRARY) && test "$(PYTHONFRAMEWORKDIR)" = "no-framework" ; then \ | |
1255 if test -n "$(DLLLIBRARY)" ; then \ | |
1256 $(INSTALL_SHARED) $(DLLLIBRARY) $(DESTDIR)$(BINDIR); \ | |
1257 else \ | |
1258 $(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(LIBDIR)/$(INSTSONAME); \ | |
1259 if test $(LDLIBRARY) != $(INSTSONAME); then \ | |
1260 (cd $(DESTDIR)$(LIBDIR); $(LN) -sf $(INSTSONAME) $(LDLIBRARY)) \ | |
1261 fi \ | |
1262 fi; \ | |
1263 if test -n "$(PY3LIBRARY)"; then \ | |
1264 $(INSTALL_SHARED) $(PY3LIBRARY) $(DESTDIR)$(LIBDIR)/$(PY3LIBRARY); \ | |
1265 fi; \ | |
1266 else true; \ | |
1267 fi | |
1268 if test "x$(LIPO_32BIT_FLAGS)" != "x" ; then \ | |
1269 rm -f $(DESTDIR)$(BINDIR)python$(VERSION)-32$(EXE); \ | |
1270 lipo $(LIPO_32BIT_FLAGS) \ | |
1271 -output $(DESTDIR)$(BINDIR)/python$(VERSION)-32$(EXE) \ | |
1272 $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \ | |
1273 fi | |
1274 | |
1275 bininstall: altbininstall | |
1276 if test ! -d $(DESTDIR)$(LIBPC); then \ | |
1277 echo "Creating directory $(LIBPC)"; \ | |
1278 $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(LIBPC); \ | |
1279 fi | |
1280 -if test -f $(DESTDIR)$(BINDIR)/python3$(EXE) -o -h $(DESTDIR)$(BINDIR)/python3$(EXE); \ | |
1281 then rm -f $(DESTDIR)$(BINDIR)/python3$(EXE); \ | |
1282 else true; \ | |
1283 fi | |
1284 (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(EXE) python3$(EXE)) | |
1285 -if test "$(VERSION)" != "$(LDVERSION)"; then \ | |
1286 rm -f $(DESTDIR)$(BINDIR)/python$(VERSION)-config; \ | |
1287 (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(LDVERSION)-config python$(VERSION)-config); \ | |
1288 rm -f $(DESTDIR)$(LIBPC)/python-$(LDVERSION).pc; \ | |
1289 (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python-$(LDVERSION).pc); \ | |
1290 rm -f $(DESTDIR)$(LIBPC)/python-$(LDVERSION)-embed.pc; \ | |
1291 (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION)-embed.pc python-$(LDVERSION)-embed.pc); \ | |
1292 fi | |
1293 -rm -f $(DESTDIR)$(BINDIR)/python3-config | |
1294 (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-config python3-config) | |
1295 -rm -f $(DESTDIR)$(LIBPC)/python3.pc | |
1296 (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python3.pc) | |
1297 -rm -f $(DESTDIR)$(LIBPC)/python3-embed.pc | |
1298 (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION)-embed.pc python3-embed.pc) | |
1299 -rm -f $(DESTDIR)$(BINDIR)/idle3 | |
1300 (cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle3) | |
1301 -rm -f $(DESTDIR)$(BINDIR)/pydoc3 | |
1302 (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3) | |
1303 -rm -f $(DESTDIR)$(BINDIR)/2to3 | |
1304 (cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3) | |
1305 if test "x$(LIPO_32BIT_FLAGS)" != "x" ; then \ | |
1306 rm -f $(DESTDIR)$(BINDIR)/python3-32$(EXE); \ | |
1307 (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-32$(EXE) python3-32$(EXE)) \ | |
1308 fi | |
1309 | |
1310 # Install the versioned manual page | |
1311 altmaninstall: | |
1312 @for i in $(MANDIR) $(MANDIR)/man1; \ | |
1313 do \ | |
1314 if test ! -d $(DESTDIR)$$i; then \ | |
1315 echo "Creating directory $$i"; \ | |
1316 $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ | |
1317 else true; \ | |
1318 fi; \ | |
1319 done | |
1320 $(INSTALL_DATA) $(srcdir)/Misc/python.man \ | |
1321 $(DESTDIR)$(MANDIR)/man1/python$(VERSION).1 | |
1322 | |
1323 # Install the unversioned manual page | |
1324 maninstall: altmaninstall | |
1325 -rm -f $(DESTDIR)$(MANDIR)/man1/python3.1 | |
1326 (cd $(DESTDIR)$(MANDIR)/man1; $(LN) -s python$(VERSION).1 python3.1) | |
1327 | |
1328 # Install the library | |
1329 XMLLIBSUBDIRS= xml xml/dom xml/etree xml/parsers xml/sax | |
1330 LIBSUBDIRS= tkinter tkinter/test tkinter/test/test_tkinter \ | |
1331 tkinter/test/test_ttk site-packages test \ | |
1332 test/audiodata \ | |
1333 test/capath test/data \ | |
1334 test/cjkencodings test/decimaltestdata \ | |
1335 test/xmltestdata test/xmltestdata/c14n-20 \ | |
1336 test/dtracedata \ | |
1337 test/eintrdata \ | |
1338 test/imghdrdata \ | |
1339 test/libregrtest \ | |
1340 test/subprocessdata test/sndhdrdata test/support \ | |
1341 test/tracedmodules test/encoded_modules \ | |
1342 test/test_import \ | |
1343 test/test_import/data \ | |
1344 test/test_import/data/circular_imports \ | |
1345 test/test_import/data/circular_imports/subpkg \ | |
1346 test/test_import/data/package \ | |
1347 test/test_import/data/package2 \ | |
1348 importlib \ | |
1349 importlib/metadata \ | |
1350 test/test_importlib \ | |
1351 test/test_importlib/builtin \ | |
1352 test/test_importlib/data \ | |
1353 test/test_importlib/data01 \ | |
1354 test/test_importlib/data01/subdirectory \ | |
1355 test/test_importlib/data02 \ | |
1356 test/test_importlib/data02/one \ | |
1357 test/test_importlib/data02/two \ | |
1358 test/test_importlib/data03 \ | |
1359 test/test_importlib/data03/namespace \ | |
1360 test/test_importlib/data03/namespace/portion1 \ | |
1361 test/test_importlib/data03/namespace/portion2 \ | |
1362 test/test_importlib/extension \ | |
1363 test/test_importlib/frozen \ | |
1364 test/test_importlib/import_ \ | |
1365 test/test_importlib/namespace_pkgs \ | |
1366 test/test_importlib/namespace_pkgs/both_portions \ | |
1367 test/test_importlib/namespace_pkgs/both_portions/foo \ | |
1368 test/test_importlib/namespace_pkgs/module_and_namespace_package \ | |
1369 test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test \ | |
1370 test/test_importlib/namespace_pkgs/not_a_namespace_pkg \ | |
1371 test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo \ | |
1372 test/test_importlib/namespace_pkgs/portion1 \ | |
1373 test/test_importlib/namespace_pkgs/portion1/foo \ | |
1374 test/test_importlib/namespace_pkgs/portion2 \ | |
1375 test/test_importlib/namespace_pkgs/portion2/foo \ | |
1376 test/test_importlib/namespace_pkgs/project1 \ | |
1377 test/test_importlib/namespace_pkgs/project1/parent \ | |
1378 test/test_importlib/namespace_pkgs/project1/parent/child \ | |
1379 test/test_importlib/namespace_pkgs/project2 \ | |
1380 test/test_importlib/namespace_pkgs/project2/parent \ | |
1381 test/test_importlib/namespace_pkgs/project2/parent/child \ | |
1382 test/test_importlib/namespace_pkgs/project3 \ | |
1383 test/test_importlib/namespace_pkgs/project3/parent \ | |
1384 test/test_importlib/namespace_pkgs/project3/parent/child \ | |
1385 test/test_importlib/source \ | |
1386 test/test_importlib/zipdata01 \ | |
1387 test/test_importlib/zipdata02 \ | |
1388 test/ziptestdata \ | |
1389 asyncio \ | |
1390 test/test_asyncio \ | |
1391 collections concurrent concurrent/futures encodings \ | |
1392 email email/mime test/test_email test/test_email/data \ | |
1393 ensurepip ensurepip/_bundled \ | |
1394 html json test/test_json http dbm xmlrpc \ | |
1395 sqlite3 sqlite3/test \ | |
1396 logging csv wsgiref urllib \ | |
1397 lib2to3 lib2to3/fixes lib2to3/pgen2 lib2to3/tests \ | |
1398 lib2to3/tests/data lib2to3/tests/data/fixers \ | |
1399 lib2to3/tests/data/fixers/myfixes \ | |
1400 ctypes ctypes/test ctypes/macholib \ | |
1401 idlelib idlelib/Icons idlelib/idle_test \ | |
1402 distutils distutils/command distutils/tests $(XMLLIBSUBDIRS) \ | |
1403 test/test_tools test/test_warnings test/test_warnings/data \ | |
1404 turtledemo \ | |
1405 multiprocessing multiprocessing/dummy \ | |
1406 unittest unittest/test unittest/test/testmock \ | |
1407 venv venv/scripts venv/scripts/common venv/scripts/posix \ | |
1408 curses pydoc_data | |
1409 libinstall: build_all $(srcdir)/Modules/xxmodule.c | |
1410 @for i in $(SCRIPTDIR) $(LIBDEST); \ | |
1411 do \ | |
1412 if test ! -d $(DESTDIR)$$i; then \ | |
1413 echo "Creating directory $$i"; \ | |
1414 $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ | |
1415 else true; \ | |
1416 fi; \ | |
1417 done | |
1418 @for d in $(LIBSUBDIRS); \ | |
1419 do \ | |
1420 a=$(srcdir)/Lib/$$d; \ | |
1421 if test ! -d $$a; then continue; else true; fi; \ | |
1422 b=$(LIBDEST)/$$d; \ | |
1423 if test ! -d $(DESTDIR)$$b; then \ | |
1424 echo "Creating directory $$b"; \ | |
1425 $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$b; \ | |
1426 else true; \ | |
1427 fi; \ | |
1428 done | |
1429 @for i in $(srcdir)/Lib/*.py; \ | |
1430 do \ | |
1431 if test -x $$i; then \ | |
1432 $(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \ | |
1433 echo $(INSTALL_SCRIPT) $$i $(LIBDEST); \ | |
1434 else \ | |
1435 $(INSTALL_DATA) $$i $(DESTDIR)$(LIBDEST); \ | |
1436 echo $(INSTALL_DATA) $$i $(LIBDEST); \ | |
1437 fi; \ | |
1438 done | |
1439 @for d in $(LIBSUBDIRS); \ | |
1440 do \ | |
1441 a=$(srcdir)/Lib/$$d; \ | |
1442 if test ! -d $$a; then continue; else true; fi; \ | |
1443 if test `ls $$a | wc -l` -lt 1; then continue; fi; \ | |
1444 b=$(LIBDEST)/$$d; \ | |
1445 for i in $$a/*; \ | |
1446 do \ | |
1447 case $$i in \ | |
1448 *CVS) ;; \ | |
1449 *.py[co]) ;; \ | |
1450 *.orig) ;; \ | |
1451 *~) ;; \ | |
1452 *) \ | |
1453 if test -d $$i; then continue; fi; \ | |
1454 if test -x $$i; then \ | |
1455 echo $(INSTALL_SCRIPT) $$i $$b; \ | |
1456 $(INSTALL_SCRIPT) $$i $(DESTDIR)$$b; \ | |
1457 else \ | |
1458 echo $(INSTALL_DATA) $$i $$b; \ | |
1459 $(INSTALL_DATA) $$i $(DESTDIR)$$b; \ | |
1460 fi;; \ | |
1461 esac; \ | |
1462 done; \ | |
1463 done | |
1464 $(INSTALL_DATA) `cat pybuilddir.txt`/_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH).py \ | |
1465 $(DESTDIR)$(LIBDEST); \ | |
1466 $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt | |
1467 if test -d $(DESTDIR)$(LIBDEST)/distutils/tests; then \ | |
1468 $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \ | |
1469 $(DESTDIR)$(LIBDEST)/distutils/tests ; \ | |
1470 fi | |
1471 -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ | |
1472 $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ | |
1473 -j0 -d $(LIBDEST) -f \ | |
1474 -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ | |
1475 $(DESTDIR)$(LIBDEST) | |
1476 -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ | |
1477 $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ | |
1478 -j0 -d $(LIBDEST) -f \ | |
1479 -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ | |
1480 $(DESTDIR)$(LIBDEST) | |
1481 -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ | |
1482 $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \ | |
1483 -j0 -d $(LIBDEST) -f \ | |
1484 -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ | |
1485 $(DESTDIR)$(LIBDEST) | |
1486 -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ | |
1487 $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ | |
1488 -j0 -d $(LIBDEST)/site-packages -f \ | |
1489 -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages | |
1490 -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ | |
1491 $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ | |
1492 -j0 -d $(LIBDEST)/site-packages -f \ | |
1493 -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages | |
1494 -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ | |
1495 $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \ | |
1496 -j0 -d $(LIBDEST)/site-packages -f \ | |
1497 -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages | |
1498 -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ | |
1499 $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt | |
1500 -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ | |
1501 $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt | |
1502 | |
1503 # bpo-21536: Misc/python-config.sh is generated in the build directory | |
1504 # from $(srcdir)Misc/python-config.sh.in. | |
1505 python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh | |
1506 @ # Substitution happens here, as the completely-expanded BINDIR | |
1507 @ # is not available in configure | |
1508 sed -e "s,@EXENAME@,$(BINDIR)/python$(LDVERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config.py | |
1509 @ # Replace makefile compat. variable references with shell script compat. ones; $(VAR) -> ${VAR} | |
1510 LC_ALL=C sed -e 's,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g' < Misc/python-config.sh >python-config | |
1511 @ # On Darwin, always use the python version of the script, the shell | |
1512 @ # version doesn't use the compiler customizations that are provided | |
1513 @ # in python (_osx_support.py). | |
1514 @if test `uname -s` = Darwin; then \ | |
1515 cp python-config.py python-config; \ | |
1516 fi | |
1517 | |
1518 | |
1519 # Install the include files | |
1520 INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY) | |
1521 inclinstall: | |
1522 @for i in $(INCLDIRSTOMAKE); \ | |
1523 do \ | |
1524 if test ! -d $(DESTDIR)$$i; then \ | |
1525 echo "Creating directory $$i"; \ | |
1526 $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ | |
1527 else true; \ | |
1528 fi; \ | |
1529 done | |
1530 @if test ! -d $(DESTDIR)$(INCLUDEPY)/cpython; then \ | |
1531 echo "Creating directory $(DESTDIR)$(INCLUDEPY)/cpython"; \ | |
1532 $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(INCLUDEPY)/cpython; \ | |
1533 else true; \ | |
1534 fi | |
1535 @if test ! -d $(DESTDIR)$(INCLUDEPY)/internal; then \ | |
1536 echo "Creating directory $(DESTDIR)$(INCLUDEPY)/internal"; \ | |
1537 $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(INCLUDEPY)/internal; \ | |
1538 else true; \ | |
1539 fi | |
1540 @for i in $(srcdir)/Include/*.h; \ | |
1541 do \ | |
1542 echo $(INSTALL_DATA) $$i $(INCLUDEPY); \ | |
1543 $(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY); \ | |
1544 done | |
1545 @for i in $(srcdir)/Include/cpython/*.h; \ | |
1546 do \ | |
1547 echo $(INSTALL_DATA) $$i $(INCLUDEPY)/cpython; \ | |
1548 $(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY)/cpython; \ | |
1549 done | |
1550 @for i in $(srcdir)/Include/internal/*.h; \ | |
1551 do \ | |
1552 echo $(INSTALL_DATA) $$i $(INCLUDEPY)/internal; \ | |
1553 $(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY)/internal; \ | |
1554 done | |
1555 $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h | |
1556 | |
1557 # Install the library and miscellaneous stuff needed for extending/embedding | |
1558 # This goes into $(exec_prefix) | |
1559 LIBPL= $(prefix)/lib/python3.8/config-$(VERSION)$(ABIFLAGS)-x86_64-linux-gnu | |
1560 | |
1561 # pkgconfig directory | |
1562 LIBPC= $(LIBDIR)/pkgconfig | |
1563 | |
1564 libainstall: build_all python-config | |
1565 @for i in $(LIBDIR) $(LIBPL) $(LIBPC); \ | |
1566 do \ | |
1567 if test ! -d $(DESTDIR)$$i; then \ | |
1568 echo "Creating directory $$i"; \ | |
1569 $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ | |
1570 else true; \ | |
1571 fi; \ | |
1572 done | |
1573 @if test -d $(LIBRARY); then :; else \ | |
1574 if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \ | |
1575 if test "$(SHLIB_SUFFIX)" = .dll; then \ | |
1576 $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \ | |
1577 else \ | |
1578 $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \ | |
1579 fi; \ | |
1580 else \ | |
1581 echo Skip install of $(LIBRARY) - use make frameworkinstall; \ | |
1582 fi; \ | |
1583 fi | |
1584 $(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c | |
1585 $(INSTALL_DATA) Programs/python.o $(DESTDIR)$(LIBPL)/python.o | |
1586 $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in | |
1587 $(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile | |
1588 $(INSTALL_DATA) $(srcdir)/Modules/Setup $(DESTDIR)$(LIBPL)/Setup | |
1589 $(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local | |
1590 $(INSTALL_DATA) Misc/python.pc $(DESTDIR)$(LIBPC)/python-$(VERSION).pc | |
1591 $(INSTALL_DATA) Misc/python-embed.pc $(DESTDIR)$(LIBPC)/python-$(VERSION)-embed.pc | |
1592 $(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup | |
1593 $(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh | |
1594 $(INSTALL_SCRIPT) python-config.py $(DESTDIR)$(LIBPL)/python-config.py | |
1595 $(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(LDVERSION)-config | |
1596 @if [ -s Modules/python.exp -a \ | |
1597 "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \ | |
1598 echo; echo "Installing support files for building shared extension modules on AIX:"; \ | |
1599 $(INSTALL_DATA) Modules/python.exp \ | |
1600 $(DESTDIR)$(LIBPL)/python.exp; \ | |
1601 echo; echo "$(LIBPL)/python.exp"; \ | |
1602 $(INSTALL_SCRIPT) $(srcdir)/Modules/makexp_aix \ | |
1603 $(DESTDIR)$(LIBPL)/makexp_aix; \ | |
1604 echo "$(LIBPL)/makexp_aix"; \ | |
1605 $(INSTALL_SCRIPT) Modules/ld_so_aix \ | |
1606 $(DESTDIR)$(LIBPL)/ld_so_aix; \ | |
1607 echo "$(LIBPL)/ld_so_aix"; \ | |
1608 echo; echo "See Misc/AIX-NOTES for details."; \ | |
1609 else true; \ | |
1610 fi | |
1611 | |
1612 # Install the dynamically loadable modules | |
1613 # This goes into $(exec_prefix) | |
1614 sharedinstall: sharedmods | |
1615 $(RUNSHARED) $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \ | |
1616 --prefix=$(prefix) \ | |
1617 --install-scripts=$(BINDIR) \ | |
1618 --install-platlib=$(DESTSHARED) \ | |
1619 --root=$(DESTDIR)/ | |
1620 -rm $(DESTDIR)$(DESTSHARED)/_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH).py | |
1621 -rm -r $(DESTDIR)$(DESTSHARED)/__pycache__ | |
1622 | |
1623 # Here are a couple of targets for MacOSX again, to install a full | |
1624 # framework-based Python. frameworkinstall installs everything, the | |
1625 # subtargets install specific parts. Much of the actual work is offloaded to | |
1626 # the Makefile in Mac | |
1627 # | |
1628 # | |
1629 # This target is here for backward compatibility, previous versions of Python | |
1630 # hadn't integrated framework installation in the normal install process. | |
1631 frameworkinstall: install | |
1632 | |
1633 # On install, we re-make the framework | |
1634 # structure in the install location, /Library/Frameworks/ or the argument to | |
1635 # --enable-framework. If --enable-framework has been specified then we have | |
1636 # automatically set prefix to the location deep down in the framework, so we | |
1637 # only have to cater for the structural bits of the framework. | |
1638 | |
1639 frameworkinstallframework: frameworkinstallstructure install frameworkinstallmaclib | |
1640 | |
1641 frameworkinstallstructure: $(LDLIBRARY) | |
1642 @if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \ | |
1643 echo Not configured with --enable-framework; \ | |
1644 exit 1; \ | |
1645 else true; \ | |
1646 fi | |
1647 @for i in $(prefix)/Resources/English.lproj $(prefix)/lib; do\ | |
1648 if test ! -d $(DESTDIR)$$i; then \ | |
1649 echo "Creating directory $(DESTDIR)$$i"; \ | |
1650 $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ | |
1651 else true; \ | |
1652 fi; \ | |
1653 done | |
1654 $(LN) -fsn include/python$(LDVERSION) $(DESTDIR)$(prefix)/Headers | |
1655 sed 's/%VERSION%/'"`$(RUNSHARED) ./$(BUILDPYTHON) -c 'import platform; print(platform.python_version())'`"'/g' < $(RESSRCDIR)/Info.plist > $(DESTDIR)$(prefix)/Resources/Info.plist | |
1656 $(LN) -fsn $(VERSION) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/Current | |
1657 $(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/$(PYTHONFRAMEWORK) | |
1658 $(LN) -fsn Versions/Current/Headers $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Headers | |
1659 $(LN) -fsn Versions/Current/Resources $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Resources | |
1660 $(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(PYTHONFRAMEWORKPREFIX)/$(LDLIBRARY) | |
1661 | |
1662 # This installs Mac/Lib into the framework | |
1663 # Install a number of symlinks to keep software that expects a normal unix | |
1664 # install (which includes python-config) happy. | |
1665 frameworkinstallmaclib: | |
1666 $(LN) -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(LIBPL)/libpython$(LDVERSION).a" | |
1667 $(LN) -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(LIBPL)/libpython$(LDVERSION).dylib" | |
1668 $(LN) -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(LIBPL)/libpython$(VERSION).a" | |
1669 $(LN) -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(LIBPL)/libpython$(VERSION).dylib" | |
1670 $(LN) -fs "../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(prefix)/lib/libpython$(LDVERSION).dylib" | |
1671 $(LN) -fs "../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(prefix)/lib/libpython$(VERSION).dylib" | |
1672 | |
1673 # This installs the IDE, the Launcher and other apps into /Applications | |
1674 frameworkinstallapps: | |
1675 cd Mac && $(MAKE) installapps DESTDIR="$(DESTDIR)" | |
1676 | |
1677 # Build the bootstrap executable that will spawn the interpreter inside | |
1678 # an app bundle within the framework. This allows the interpreter to | |
1679 # run OS X GUI APIs. | |
1680 frameworkpythonw: | |
1681 cd Mac && $(MAKE) pythonw | |
1682 | |
1683 # This installs the python* and other bin symlinks in $prefix/bin or in | |
1684 # a bin directory relative to the framework root | |
1685 frameworkinstallunixtools: | |
1686 cd Mac && $(MAKE) installunixtools DESTDIR="$(DESTDIR)" | |
1687 | |
1688 frameworkaltinstallunixtools: | |
1689 cd Mac && $(MAKE) altinstallunixtools DESTDIR="$(DESTDIR)" | |
1690 | |
1691 # This installs the Tools into the applications directory. | |
1692 # It is not part of a normal frameworkinstall | |
1693 frameworkinstallextras: | |
1694 cd Mac && $(MAKE) installextras DESTDIR="$(DESTDIR)" | |
1695 | |
1696 # Build the toplevel Makefile | |
1697 Makefile.pre: $(srcdir)/Makefile.pre.in config.status | |
1698 CONFIG_FILES=Makefile.pre CONFIG_HEADERS= $(SHELL) config.status | |
1699 $(MAKE) -f Makefile.pre Makefile | |
1700 | |
1701 # Run the configure script. | |
1702 config.status: $(srcdir)/configure | |
1703 $(SHELL) $(srcdir)/configure $(CONFIG_ARGS) | |
1704 | |
1705 .PRECIOUS: config.status $(BUILDPYTHON) Makefile Makefile.pre | |
1706 | |
1707 # Some make's put the object file in the current directory | |
1708 .c.o: | |
1709 $(CC) -c $(PY_CORE_CFLAGS) -o $@ $< | |
1710 | |
1711 # bpo-30104: dtoa.c uses union to cast double to unsigned long[2]. clang 4.0 | |
1712 # with -O2 or higher and strict aliasing miscompiles the ratio() function | |
1713 # causing rounding issues. Compile dtoa.c using -fno-strict-aliasing on clang. | |
1714 # https://bugs.llvm.org//show_bug.cgi?id=31928 | |
1715 Python/dtoa.o: Python/dtoa.c | |
1716 $(CC) -c $(PY_CORE_CFLAGS) $(CFLAGS_ALIASING) -o $@ $< | |
1717 | |
1718 # Run reindent on the library | |
1719 reindent: | |
1720 ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/reindent.py -r $(srcdir)/Lib | |
1721 | |
1722 # Rerun configure with the same options as it was run last time, | |
1723 # provided the config.status script exists | |
1724 recheck: | |
1725 $(SHELL) config.status --recheck | |
1726 $(SHELL) config.status | |
1727 | |
1728 # Regenerate configure and pyconfig.h.in | |
1729 .PHONY: autoconf | |
1730 autoconf: | |
1731 # Regenerate the configure script from configure.ac using autoconf | |
1732 (cd $(srcdir); autoconf -Wall) | |
1733 # Regenerate pyconfig.h.in from configure.ac using autoheader | |
1734 (cd $(srcdir); autoheader -Wall) | |
1735 | |
1736 # Create a tags file for vi | |
1737 tags:: | |
1738 ctags -w $(srcdir)/Include/*.h $(srcdir)/Include/cpython/*.h $(srcdir)/Include/internal/*.h | |
1739 for i in $(SRCDIRS); do ctags -f tags -w -a $(srcdir)/$$i/*.[ch]; done | |
1740 ctags -f tags -w -a $(srcdir)/Modules/_ctypes/*.[ch] | |
1741 LC_ALL=C sort -o tags tags | |
1742 | |
1743 # Create a tags file for GNU Emacs | |
1744 TAGS:: | |
1745 cd $(srcdir); \ | |
1746 etags Include/*.h Include/cpython/*.h Include/internal/*.h; \ | |
1747 for i in $(SRCDIRS); do etags -a $$i/*.[ch]; done | |
1748 | |
1749 # Sanitation targets -- clean leaves libraries, executables and tags | |
1750 # files, which clobber removes as well | |
1751 pycremoval: | |
1752 -find $(srcdir) -depth -name '__pycache__' -exec rm -rf {} ';' | |
1753 -find $(srcdir) -name '*.py[co]' -exec rm -f {} ';' | |
1754 | |
1755 rmtestturds: | |
1756 -rm -f *BAD *GOOD *SKIPPED | |
1757 -rm -rf OUT | |
1758 -rm -f *.TXT | |
1759 -rm -f *.txt | |
1760 -rm -f gb-18030-2000.xml | |
1761 | |
1762 docclean: | |
1763 -rm -rf Doc/build | |
1764 -rm -rf Doc/tools/sphinx Doc/tools/pygments Doc/tools/docutils | |
1765 | |
1766 clean: pycremoval | |
1767 find . -name '*.[oa]' -exec rm -f {} ';' | |
1768 find . -name '*.s[ol]' -exec rm -f {} ';' | |
1769 find . -name '*.so.[0-9]*.[0-9]*' -exec rm -f {} ';' | |
1770 find build -name 'fficonfig.h' -exec rm -f {} ';' || true | |
1771 find build -name '*.py' -exec rm -f {} ';' || true | |
1772 find build -name '*.py[co]' -exec rm -f {} ';' || true | |
1773 -rm -f pybuilddir.txt | |
1774 -rm -f Lib/lib2to3/*Grammar*.pickle | |
1775 -rm -f Programs/_testembed Programs/_freeze_importlib | |
1776 -find build -type f -a ! -name '*.gc??' -exec rm -f {} ';' | |
1777 -rm -f Include/pydtrace_probes.h | |
1778 -rm -f profile-gen-stamp | |
1779 | |
1780 profile-removal: | |
1781 find . -name '*.gc??' -exec rm -f {} ';' | |
1782 find . -name '*.profclang?' -exec rm -f {} ';' | |
1783 find . -name '*.dyn' -exec rm -f {} ';' | |
1784 rm -f $(COVERAGE_INFO) | |
1785 rm -rf $(COVERAGE_REPORT) | |
1786 rm -f profile-run-stamp | |
1787 | |
1788 clobber: clean profile-removal | |
1789 -rm -f $(BUILDPYTHON) $(LIBRARY) $(LDLIBRARY) $(DLLLIBRARY) \ | |
1790 tags TAGS \ | |
1791 config.cache config.log pyconfig.h Modules/config.c | |
1792 -rm -rf build platform | |
1793 -rm -rf $(PYTHONFRAMEWORKDIR) | |
1794 -rm -f python-config.py python-config | |
1795 -rm -f profile-gen-stamp profile-clean-stamp | |
1796 | |
1797 # Make things extra clean, before making a distribution: | |
1798 # remove all generated files, even Makefile[.pre] | |
1799 # Keep configure and Python-ast.[ch], it's possible they can't be generated | |
1800 distclean: clobber | |
1801 for file in $(srcdir)/Lib/test/data/* ; do \ | |
1802 if test "$$file" != "$(srcdir)/Lib/test/data/README"; then rm "$$file"; fi; \ | |
1803 done | |
1804 -rm -f core Makefile Makefile.pre config.status Modules/Setup.local \ | |
1805 Modules/ld_so_aix Modules/python.exp Misc/python.pc \ | |
1806 Misc/python-embed.pc Misc/python-config.sh | |
1807 -rm -f python*-gdb.py | |
1808 # Issue #28258: set LC_ALL to avoid issues with Estonian locale. | |
1809 # Expansion is performed here by shell (spawned by make) itself before | |
1810 # arguments are passed to find. So LC_ALL=C must be set as a separate | |
1811 # command. | |
1812 LC_ALL=C; find $(srcdir)/[a-zA-Z]* '(' -name '*.fdc' -o -name '*~' \ | |
1813 -o -name '[@,#]*' -o -name '*.old' \ | |
1814 -o -name '*.orig' -o -name '*.rej' \ | |
1815 -o -name '*.bak' ')' \ | |
1816 -exec rm -f {} ';' | |
1817 | |
1818 # Check that all symbols exported by libpython start with "Py" or "_Py" | |
1819 smelly: build_all | |
1820 $(RUNSHARED) ./$(BUILDPYTHON) Tools/scripts/smelly.py | |
1821 | |
1822 # Find files with funny names | |
1823 funny: | |
1824 find $(SUBDIRS) $(SUBDIRSTOO) \ | |
1825 -type d \ | |
1826 -o -name '*.[chs]' \ | |
1827 -o -name '*.py' \ | |
1828 -o -name '*.pyw' \ | |
1829 -o -name '*.dat' \ | |
1830 -o -name '*.el' \ | |
1831 -o -name '*.fd' \ | |
1832 -o -name '*.in' \ | |
1833 -o -name '*.gif' \ | |
1834 -o -name '*.txt' \ | |
1835 -o -name '*.xml' \ | |
1836 -o -name '*.xbm' \ | |
1837 -o -name '*.xpm' \ | |
1838 -o -name '*.uue' \ | |
1839 -o -name '*.decTest' \ | |
1840 -o -name '*.tmCommand' \ | |
1841 -o -name '*.tmSnippet' \ | |
1842 -o -name 'Setup' \ | |
1843 -o -name 'Setup.*' \ | |
1844 -o -name README \ | |
1845 -o -name NEWS \ | |
1846 -o -name HISTORY \ | |
1847 -o -name Makefile \ | |
1848 -o -name ChangeLog \ | |
1849 -o -name .hgignore \ | |
1850 -o -name MANIFEST \ | |
1851 -o -print | |
1852 | |
1853 # Perform some verification checks on any modified files. | |
1854 patchcheck: build_all | |
1855 $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/patchcheck.py | |
1856 | |
1857 # Dependencies | |
1858 | |
1859 Python/thread.o: $(srcdir)/Python/thread_nt.h $(srcdir)/Python/thread_pthread.h $(srcdir)/Python/condvar.h | |
1860 | |
1861 # Declare targets that aren't real files | |
1862 .PHONY: all build_all sharedmods check-clean-src oldsharedmods test quicktest | |
1863 .PHONY: install altinstall oldsharedinstall bininstall altbininstall | |
1864 .PHONY: maninstall libinstall inclinstall libainstall sharedinstall | |
1865 .PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure | |
1866 .PHONY: frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools | |
1867 .PHONY: frameworkaltinstallunixtools recheck clean clobber distclean | |
1868 .PHONY: smelly funny patchcheck touch altmaninstall commoninstall | |
1869 .PHONY: gdbhooks | |
1870 | |
1871 # IF YOU PUT ANYTHING HERE IT WILL GO AWAY | |
1872 # Local Variables: | |
1873 # mode: makefile | |
1874 # End: | |
1875 | |
1876 # Rules appended by makesetup | |
1877 | |
1878 Modules/posixmodule.o: $(srcdir)/Modules/posixmodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -c $(srcdir)/Modules/posixmodule.c -o Modules/posixmodule.o | |
1879 Modules/posix$(EXT_SUFFIX): Modules/posixmodule.o; $(BLDSHARED) Modules/posixmodule.o -o Modules/posix$(EXT_SUFFIX) | |
1880 Modules/errnomodule.o: $(srcdir)/Modules/errnomodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/errnomodule.c -o Modules/errnomodule.o | |
1881 Modules/errno$(EXT_SUFFIX): Modules/errnomodule.o; $(BLDSHARED) Modules/errnomodule.o -o Modules/errno$(EXT_SUFFIX) | |
1882 Modules/pwdmodule.o: $(srcdir)/Modules/pwdmodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/pwdmodule.c -o Modules/pwdmodule.o | |
1883 Modules/pwd$(EXT_SUFFIX): Modules/pwdmodule.o; $(BLDSHARED) Modules/pwdmodule.o -o Modules/pwd$(EXT_SUFFIX) | |
1884 Modules/_sre.o: $(srcdir)/Modules/_sre.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/_sre.c -o Modules/_sre.o | |
1885 Modules/_sre$(EXT_SUFFIX): Modules/_sre.o; $(BLDSHARED) Modules/_sre.o -o Modules/_sre$(EXT_SUFFIX) | |
1886 Modules/_codecsmodule.o: $(srcdir)/Modules/_codecsmodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/_codecsmodule.c -o Modules/_codecsmodule.o | |
1887 Modules/_codecs$(EXT_SUFFIX): Modules/_codecsmodule.o; $(BLDSHARED) Modules/_codecsmodule.o -o Modules/_codecs$(EXT_SUFFIX) | |
1888 Modules/_weakref.o: $(srcdir)/Modules/_weakref.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/_weakref.c -o Modules/_weakref.o | |
1889 Modules/_weakref$(EXT_SUFFIX): Modules/_weakref.o; $(BLDSHARED) Modules/_weakref.o -o Modules/_weakref$(EXT_SUFFIX) | |
1890 Modules/_functoolsmodule.o: $(srcdir)/Modules/_functoolsmodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -c $(srcdir)/Modules/_functoolsmodule.c -o Modules/_functoolsmodule.o | |
1891 Modules/_functools$(EXT_SUFFIX): Modules/_functoolsmodule.o; $(BLDSHARED) Modules/_functoolsmodule.o -o Modules/_functools$(EXT_SUFFIX) | |
1892 Modules/_operator.o: $(srcdir)/Modules/_operator.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/_operator.c -o Modules/_operator.o | |
1893 Modules/_operator$(EXT_SUFFIX): Modules/_operator.o; $(BLDSHARED) Modules/_operator.o -o Modules/_operator$(EXT_SUFFIX) | |
1894 Modules/_collectionsmodule.o: $(srcdir)/Modules/_collectionsmodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/_collectionsmodule.c -o Modules/_collectionsmodule.o | |
1895 Modules/_collections$(EXT_SUFFIX): Modules/_collectionsmodule.o; $(BLDSHARED) Modules/_collectionsmodule.o -o Modules/_collections$(EXT_SUFFIX) | |
1896 Modules/_abc.o: $(srcdir)/Modules/_abc.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/_abc.c -o Modules/_abc.o | |
1897 Modules/_abc$(EXT_SUFFIX): Modules/_abc.o; $(BLDSHARED) Modules/_abc.o -o Modules/_abc$(EXT_SUFFIX) | |
1898 Modules/itertoolsmodule.o: $(srcdir)/Modules/itertoolsmodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/itertoolsmodule.c -o Modules/itertoolsmodule.o | |
1899 Modules/itertools$(EXT_SUFFIX): Modules/itertoolsmodule.o; $(BLDSHARED) Modules/itertoolsmodule.o -o Modules/itertools$(EXT_SUFFIX) | |
1900 Modules/atexitmodule.o: $(srcdir)/Modules/atexitmodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/atexitmodule.c -o Modules/atexitmodule.o | |
1901 Modules/atexit$(EXT_SUFFIX): Modules/atexitmodule.o; $(BLDSHARED) Modules/atexitmodule.o -o Modules/atexit$(EXT_SUFFIX) | |
1902 Modules/signalmodule.o: $(srcdir)/Modules/signalmodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -c $(srcdir)/Modules/signalmodule.c -o Modules/signalmodule.o | |
1903 Modules/_signal$(EXT_SUFFIX): Modules/signalmodule.o; $(BLDSHARED) Modules/signalmodule.o -o Modules/_signal$(EXT_SUFFIX) | |
1904 Modules/_stat.o: $(srcdir)/Modules/_stat.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/_stat.c -o Modules/_stat.o | |
1905 Modules/_stat$(EXT_SUFFIX): Modules/_stat.o; $(BLDSHARED) Modules/_stat.o -o Modules/_stat$(EXT_SUFFIX) | |
1906 Modules/timemodule.o: $(srcdir)/Modules/timemodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -c $(srcdir)/Modules/timemodule.c -o Modules/timemodule.o | |
1907 Modules/time$(EXT_SUFFIX): Modules/timemodule.o; $(BLDSHARED) Modules/timemodule.o -o Modules/time$(EXT_SUFFIX) | |
1908 Modules/_threadmodule.o: $(srcdir)/Modules/_threadmodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -c $(srcdir)/Modules/_threadmodule.c -o Modules/_threadmodule.o | |
1909 Modules/_thread$(EXT_SUFFIX): Modules/_threadmodule.o; $(BLDSHARED) Modules/_threadmodule.o -o Modules/_thread$(EXT_SUFFIX) | |
1910 Modules/_localemodule.o: $(srcdir)/Modules/_localemodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -c $(srcdir)/Modules/_localemodule.c -o Modules/_localemodule.o | |
1911 Modules/_locale$(EXT_SUFFIX): Modules/_localemodule.o; $(BLDSHARED) Modules/_localemodule.o -o Modules/_locale$(EXT_SUFFIX) | |
1912 Modules/_iomodule.o: $(srcdir)/Modules/_io/_iomodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/_iomodule.c -o Modules/_iomodule.o | |
1913 Modules/iobase.o: $(srcdir)/Modules/_io/iobase.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/iobase.c -o Modules/iobase.o | |
1914 Modules/fileio.o: $(srcdir)/Modules/_io/fileio.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/fileio.c -o Modules/fileio.o | |
1915 Modules/bytesio.o: $(srcdir)/Modules/_io/bytesio.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/bytesio.c -o Modules/bytesio.o | |
1916 Modules/bufferedio.o: $(srcdir)/Modules/_io/bufferedio.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/bufferedio.c -o Modules/bufferedio.o | |
1917 Modules/textio.o: $(srcdir)/Modules/_io/textio.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/textio.c -o Modules/textio.o | |
1918 Modules/stringio.o: $(srcdir)/Modules/_io/stringio.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/stringio.c -o Modules/stringio.o | |
1919 Modules/_io$(EXT_SUFFIX): Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o; $(BLDSHARED) Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o -o Modules/_io$(EXT_SUFFIX) | |
1920 Modules/faulthandler.o: $(srcdir)/Modules/faulthandler.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/faulthandler.c -o Modules/faulthandler.o | |
1921 Modules/faulthandler$(EXT_SUFFIX): Modules/faulthandler.o; $(BLDSHARED) Modules/faulthandler.o -o Modules/faulthandler$(EXT_SUFFIX) | |
1922 Modules/_tracemalloc.o: $(srcdir)/Modules/_tracemalloc.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/_tracemalloc.c -o Modules/_tracemalloc.o | |
1923 Modules/hashtable.o: $(srcdir)/Modules/hashtable.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/hashtable.c -o Modules/hashtable.o | |
1924 Modules/_tracemalloc$(EXT_SUFFIX): Modules/_tracemalloc.o Modules/hashtable.o; $(BLDSHARED) Modules/_tracemalloc.o Modules/hashtable.o -o Modules/_tracemalloc$(EXT_SUFFIX) | |
1925 Modules/symtablemodule.o: $(srcdir)/Modules/symtablemodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/symtablemodule.c -o Modules/symtablemodule.o | |
1926 Modules/_symtable$(EXT_SUFFIX): Modules/symtablemodule.o; $(BLDSHARED) Modules/symtablemodule.o -o Modules/_symtable$(EXT_SUFFIX) | |
1927 Modules/xxsubtype.o: $(srcdir)/Modules/xxsubtype.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/xxsubtype.c -o Modules/xxsubtype.o | |
1928 Modules/xxsubtype$(EXT_SUFFIX): Modules/xxsubtype.o; $(BLDSHARED) Modules/xxsubtype.o -o Modules/xxsubtype$(EXT_SUFFIX) |