From f623e255ebeed07b2907e1b6866b342d6f0f57b0 Mon Sep 17 00:00:00 2001
From: midipix <writeonce@midipix.org>
Date: Sun, 23 Dec 2018 19:53:06 -0500
Subject: project: added initial support of the 3.7.1 variant.

---
 project/config/cfgdefs.sh                  |   11 +
 project/extras.mk                          |    1 +
 project/pycompile.mk                       |    1 +
 project/tree.mk                            |    1 +
 project/variants/3.7.1/common.mk           |  175 +++
 project/variants/3.7.1/headers.mk          |  103 ++
 project/variants/3.7.1/linkage/inittab.h   |  172 +++
 project/variants/3.7.1/linkage/pycompile.h |   24 +
 project/variants/3.7.1/linkage/static.h    |   75 +
 project/variants/3.7.1/pydist.mk           | 1925 ++++++++++++++++++++++++++
 project/variants/3.7.1/pyexts.h            |  203 +++
 project/variants/3.7.1/pyexts.mk           | 2039 ++++++++++++++++++++++++++++
 project/variants/3.7.1/subsets.mk          |  155 +++
 13 files changed, 4885 insertions(+)
 create mode 100644 project/variants/3.7.1/common.mk
 create mode 100644 project/variants/3.7.1/headers.mk
 create mode 100644 project/variants/3.7.1/linkage/inittab.h
 create mode 100644 project/variants/3.7.1/linkage/pycompile.h
 create mode 100644 project/variants/3.7.1/linkage/static.h
 create mode 100644 project/variants/3.7.1/pydist.mk
 create mode 100644 project/variants/3.7.1/pyexts.h
 create mode 100644 project/variants/3.7.1/pyexts.mk
 create mode 100644 project/variants/3.7.1/subsets.mk

(limited to 'project')

diff --git a/project/config/cfgdefs.sh b/project/config/cfgdefs.sh
index 74dcee1..e976ee6 100644
--- a/project/config/cfgdefs.sh
+++ b/project/config/cfgdefs.sh
@@ -90,6 +90,8 @@ cfgdefs_perform_common_tests()
 	cfgtest_header_presence 'sys/sysmacros.h'
 	cfgtest_header_presence 'sys/uio.h'
 	cfgtest_header_presence 'sys/xattr.h'
+	cfgtest_header_presence 'uuid.h'
+	cfgtest_header_presence 'uuid/uuid.h'
 
 	# interfaces
 	mb_cfgtest_headers='sys/epoll.h'
@@ -205,6 +207,14 @@ cfgdefs_perform_common_tests()
 		cfgtest_ldflags_append '-Wl,--as-needed -lintl -Wl,--no-as-needed'
 	fi
 
+	# libuuid
+	cfgtest_newline
+	cfgtest_comment 'libuuid'
+
+	if cfgtest_library_presence -luuid; then
+		cfgtest_ldflags_append '-Wl,--as-needed -luuid -Wl,--no-as-needed'
+	fi
+
 	# ncurses
 	cfgtest_newline
 	cfgtest_comment 'ncurses/ncursesw'
@@ -356,6 +366,7 @@ cfgdefs_perform_target_tests()
 	mb_cfgtest_makevar='LDFLAGS_PYEXT_STATIC'
 
 	cfgtest_makevar_append '-Wl,--as-needed -lssl -lcrypto -Wl,--no-as-needed'
+	cfgtest_makevar_append '-Wl,--as-needed -luuid         -Wl,--no-as-needed'
 	cfgtest_makevar_append '-Wl,--as-needed -lbz2          -Wl,--no-as-needed'
 	cfgtest_makevar_append '-Wl,--as-needed -lffi          -Wl,--no-as-needed'
 	cfgtest_makevar_append '-Wl,--as-needed -lgdbm         -Wl,--no-as-needed'
diff --git a/project/extras.mk b/project/extras.mk
index b60bb1b..9c1005e 100644
--- a/project/extras.mk
+++ b/project/extras.mk
@@ -10,6 +10,7 @@ CFLAGS_CONFIG += -DEXEC_PREFIX=\"$(EXEC_PREFIX)\"
 CFLAGS_CONFIG += -DVPATH=\"$(SOURCE_DIR)\"
 CFLAGS_CONFIG += -DPYTHONPATH=\"$(PYTHON_PATH)\"
 CFLAGS_CONFIG += -DABIFLAGS=\"\"
+CFLAGS_CONFIG += -D_PYTHONFRAMEWORK=\"\"
 
 # python's front-end utility
 LDFLAGS_DEPS    += -Wl,--as-needed
diff --git a/project/pycompile.mk b/project/pycompile.mk
index d221d6c..abac1f7 100644
--- a/project/pycompile.mk
+++ b/project/pycompile.mk
@@ -25,6 +25,7 @@ PYCOMPILE_CFLAGS	+= -DEXEC_PREFIX=\"$(PYCOMPILE_PREFIX)\"
 PYCOMPILE_CFLAGS	+= -DPYTHONPATH=\"$(PYCOMPILE_PATH)\"
 PYCOMPILE_CFLAGS	+= -DSOABI=\"$(PYTHON_SOABI)\"
 PYCOMPILE_CFLAGS	+= -DABIFLAGS=\"\"
+PYCOMPILE_CFLAGS	+= -D_PYTHONFRAMEWORK=\"\"
 PYCOMPILE_CFLAGS	+= $(NATIVE_CC_CFLAGS)
 
 PYCOMPILE_LDFLAGS	+= -lreadline -lm -lutil -lpthread
diff --git a/project/tree.mk b/project/tree.mk
index 9fecefe..b55b3cb 100644
--- a/project/tree.mk
+++ b/project/tree.mk
@@ -16,5 +16,6 @@ tree.tag:
 		mkdir -p pyext/obj/_multiprocessing
 		mkdir -p pyext/obj/_sha3
 		mkdir -p pyext/obj/_sqlite
+		mkdir -p pyext/obj/_xxtestfuzz
 		mkdir -p tools
 		touch tree.tag
diff --git a/project/variants/3.7.1/common.mk b/project/variants/3.7.1/common.mk
new file mode 100644
index 0000000..0b79544
--- /dev/null
+++ b/project/variants/3.7.1/common.mk
@@ -0,0 +1,175 @@
+core/%.lo:		CFLAGS_SHARED += -DPy_BUILD_CORE
+core/%.o:		CFLAGS_STATIC += -DPy_BUILD_CORE
+core/%.o:		CFLAGS_APP    += -DPy_BUILD_CORE
+
+core/Modules/config.lo:	build/config.c $(ALL_HEADERS) host.tag tree.tag config.tag
+			$(CC) -c -o $@ $< $(CFLAGS_SHARED)
+
+core/Modules/config.o:	build/config.c $(ALL_HEADERS) host.tag tree.tag config.tag
+			$(CC) -c -o $@ $< $(CFLAGS_STATIC)
+
+core/%.lo:		$(SOURCE_DIR)/%.c $(ALL_HEADERS) host.tag tree.tag config.tag
+			$(CC) -c -o $@ $< $(CFLAGS_SHARED)
+
+core/%.o:		$(SOURCE_DIR)/%.c $(ALL_HEADERS) host.tag tree.tag config.tag
+			$(CC) -c -o $@ $< $(CFLAGS_STATIC)
+
+
+MODULE_SRCS = \
+	core/Modules/_abc.c \
+	core/Modules/_codecsmodule.c \
+	core/Modules/_collectionsmodule.c \
+	core/Modules/_functoolsmodule.c \
+	core/Modules/_localemodule.c \
+	core/Modules/_operator.c \
+	core/Modules/_sre.c \
+	core/Modules/_stat.c \
+	core/Modules/_threadmodule.c \
+	core/Modules/_tracemalloc.c \
+	core/Modules/_weakref.c \
+	core/Modules/atexitmodule.c \
+	core/Modules/config.c \
+	core/Modules/errnomodule.c \
+	core/Modules/faulthandler.c \
+	core/Modules/gcmodule.c \
+	core/Modules/getbuildinfo.c \
+	core/Modules/getpath.c \
+	core/Modules/hashtable.c \
+	core/Modules/itertoolsmodule.c \
+	core/Modules/main.c \
+	core/Modules/posixmodule.c \
+	core/Modules/pwdmodule.c \
+	core/Modules/signalmodule.c \
+	core/Modules/symtablemodule.c \
+	core/Modules/timemodule.c \
+	core/Modules/xxsubtype.c \
+	core/Modules/zipimport.c \
+	core/Modules/_io/_iomodule.c \
+	core/Modules/_io/bufferedio.c \
+	core/Modules/_io/bytesio.c \
+	core/Modules/_io/fileio.c \
+	core/Modules/_io/iobase.c \
+	core/Modules/_io/stringio.c \
+	core/Modules/_io/textio.c \
+
+OBJECT_SRCS = \
+	core/Objects/abstract.c \
+	core/Objects/accu.c \
+	core/Objects/boolobject.c \
+	core/Objects/bytearrayobject.c \
+	core/Objects/bytes_methods.c \
+	core/Objects/bytesobject.c \
+	core/Objects/call.c \
+	core/Objects/capsule.c \
+	core/Objects/cellobject.c \
+	core/Objects/classobject.c \
+	core/Objects/codeobject.c \
+	core/Objects/complexobject.c \
+	core/Objects/descrobject.c \
+	core/Objects/dictobject.c \
+	core/Objects/enumobject.c \
+	core/Objects/exceptions.c \
+	core/Objects/fileobject.c \
+	core/Objects/floatobject.c \
+	core/Objects/frameobject.c \
+	core/Objects/funcobject.c \
+	core/Objects/genobject.c \
+	core/Objects/iterobject.c \
+	core/Objects/listobject.c \
+	core/Objects/longobject.c \
+	core/Objects/memoryobject.c \
+	core/Objects/methodobject.c \
+	core/Objects/moduleobject.c \
+	core/Objects/namespaceobject.c \
+	core/Objects/object.c \
+	core/Objects/obmalloc.c \
+	core/Objects/odictobject.c \
+	core/Objects/rangeobject.c \
+	core/Objects/setobject.c \
+	core/Objects/sliceobject.c \
+	core/Objects/structseq.c \
+	core/Objects/tupleobject.c \
+	core/Objects/typeobject.c \
+	core/Objects/unicodectype.c \
+	core/Objects/unicodeobject.c \
+	core/Objects/weakrefobject.c \
+
+PARSER_SRCS = \
+	core/Parser/acceler.c \
+	core/Parser/bitset.c \
+	core/Parser/firstsets.c \
+	core/Parser/grammar.c \
+	core/Parser/grammar1.c \
+	core/Parser/listnode.c \
+	core/Parser/metagrammar.c \
+	core/Parser/myreadline.c \
+	core/Parser/node.c \
+	core/Parser/parser.c \
+	core/Parser/parsetok.c \
+	core/Parser/pgen.c \
+	core/Parser/tokenizer.c \
+
+PYTHON_SRCS = \
+	core/Python/Python-ast.c \
+	core/Python/_warnings.c \
+	core/Python/asdl.c \
+	core/Python/ast.c \
+	core/Python/ast_opt.c \
+	core/Python/ast_unparse.c \
+	core/Python/bltinmodule.c \
+	core/Python/bootstrap_hash.c \
+	core/Python/ceval.c \
+	core/Python/codecs.c \
+	core/Python/compile.c \
+	core/Python/context.c \
+	core/Python/dtoa.c \
+	core/Python/dynamic_annotations.c \
+	core/Python/errors.c \
+	core/Python/fileutils.c \
+	core/Python/formatter_unicode.c \
+	core/Python/frozen.c \
+	core/Python/frozenmain.c \
+	core/Python/future.c \
+	core/Python/getargs.c \
+	core/Python/getcompiler.c \
+	core/Python/getcopyright.c \
+	core/Python/getopt.c \
+	core/Python/getplatform.c \
+	core/Python/getversion.c \
+	core/Python/graminit.c \
+	core/Python/hamt.c \
+	core/Python/import.c \
+	core/Python/importdl.c \
+	core/Python/marshal.c \
+	core/Python/modsupport.c \
+	core/Python/mysnprintf.c \
+	core/Python/mystrtoul.c \
+	core/Python/pathconfig.c \
+	core/Python/peephole.c \
+	core/Python/pyarena.c \
+	core/Python/pyctype.c \
+	core/Python/pyfpe.c \
+	core/Python/pyhash.c \
+	core/Python/pylifecycle.c \
+	core/Python/pymath.c \
+	core/Python/pystate.c \
+	core/Python/pystrcmp.c \
+	core/Python/pystrhex.c \
+	core/Python/pystrtod.c \
+	core/Python/pythonrun.c \
+	core/Python/pytime.c \
+	core/Python/structmember.c \
+	core/Python/symtable.c \
+	core/Python/sysmodule.c \
+	core/Python/thread.c \
+	core/Python/traceback.c \
+
+APP_SRCS = \
+	core/Programs/python.c \
+
+COMMON_SRCS = \
+	$(CONFIG_SRCS)     \
+	$(MODULE_SRCS)     \
+	$(OBJECT_SRCS)     \
+	$(PARSER_SRCS)     \
+	$(PYTHON_SRCS)     \
diff --git a/project/variants/3.7.1/headers.mk b/project/variants/3.7.1/headers.mk
new file mode 100644
index 0000000..61f8004
--- /dev/null
+++ b/project/variants/3.7.1/headers.mk
@@ -0,0 +1,103 @@
+API_HEADERS = \
+	build/pyconfig.h \
+	$(SOURCE_DIR)/Include/Python-ast.h \
+	$(SOURCE_DIR)/Include/Python.h \
+	$(SOURCE_DIR)/Include/abstract.h \
+	$(SOURCE_DIR)/Include/accu.h \
+	$(SOURCE_DIR)/Include/asdl.h \
+	$(SOURCE_DIR)/Include/ast.h \
+	$(SOURCE_DIR)/Include/bitset.h \
+	$(SOURCE_DIR)/Include/bltinmodule.h \
+	$(SOURCE_DIR)/Include/boolobject.h \
+	$(SOURCE_DIR)/Include/bytearrayobject.h \
+	$(SOURCE_DIR)/Include/bytes_methods.h \
+	$(SOURCE_DIR)/Include/bytesobject.h \
+	$(SOURCE_DIR)/Include/cellobject.h \
+	$(SOURCE_DIR)/Include/ceval.h \
+	$(SOURCE_DIR)/Include/classobject.h \
+	$(SOURCE_DIR)/Include/code.h \
+	$(SOURCE_DIR)/Include/codecs.h \
+	$(SOURCE_DIR)/Include/compile.h \
+	$(SOURCE_DIR)/Include/complexobject.h \
+	$(SOURCE_DIR)/Include/context.h \
+	$(SOURCE_DIR)/Include/datetime.h \
+	$(SOURCE_DIR)/Include/descrobject.h \
+	$(SOURCE_DIR)/Include/dictobject.h \
+	$(SOURCE_DIR)/Include/dtoa.h \
+	$(SOURCE_DIR)/Include/dynamic_annotations.h \
+	$(SOURCE_DIR)/Include/enumobject.h \
+	$(SOURCE_DIR)/Include/errcode.h \
+	$(SOURCE_DIR)/Include/eval.h \
+	$(SOURCE_DIR)/Include/fileobject.h \
+	$(SOURCE_DIR)/Include/fileutils.h \
+	$(SOURCE_DIR)/Include/floatobject.h \
+	$(SOURCE_DIR)/Include/frameobject.h \
+	$(SOURCE_DIR)/Include/funcobject.h \
+	$(SOURCE_DIR)/Include/genobject.h \
+	$(SOURCE_DIR)/Include/graminit.h \
+	$(SOURCE_DIR)/Include/grammar.h \
+	$(SOURCE_DIR)/Include/import.h \
+	$(SOURCE_DIR)/Include/intrcheck.h \
+	$(SOURCE_DIR)/Include/iterobject.h \
+	$(SOURCE_DIR)/Include/listobject.h \
+	$(SOURCE_DIR)/Include/longintrepr.h \
+	$(SOURCE_DIR)/Include/longobject.h \
+	$(SOURCE_DIR)/Include/marshal.h \
+	$(SOURCE_DIR)/Include/memoryobject.h \
+	$(SOURCE_DIR)/Include/metagrammar.h \
+	$(SOURCE_DIR)/Include/methodobject.h \
+	$(SOURCE_DIR)/Include/modsupport.h \
+	$(SOURCE_DIR)/Include/moduleobject.h \
+	$(SOURCE_DIR)/Include/namespaceobject.h \
+	$(SOURCE_DIR)/Include/node.h \
+	$(SOURCE_DIR)/Include/object.h \
+	$(SOURCE_DIR)/Include/objimpl.h \
+	$(SOURCE_DIR)/Include/odictobject.h \
+	$(SOURCE_DIR)/Include/opcode.h \
+	$(SOURCE_DIR)/Include/osdefs.h \
+	$(SOURCE_DIR)/Include/osmodule.h \
+	$(SOURCE_DIR)/Include/parsetok.h \
+	$(SOURCE_DIR)/Include/patchlevel.h \
+	$(SOURCE_DIR)/Include/pgen.h \
+	$(SOURCE_DIR)/Include/pgenheaders.h \
+	$(SOURCE_DIR)/Include/py_curses.h \
+	$(SOURCE_DIR)/Include/pyarena.h \
+	$(SOURCE_DIR)/Include/pyatomic.h \
+	$(SOURCE_DIR)/Include/pycapsule.h \
+	$(SOURCE_DIR)/Include/pyctype.h \
+	$(SOURCE_DIR)/Include/pydebug.h \
+	$(SOURCE_DIR)/Include/pydtrace.h \
+	$(SOURCE_DIR)/Include/pyerrors.h \
+	$(SOURCE_DIR)/Include/pyexpat.h \
+	$(SOURCE_DIR)/Include/pyfpe.h \
+	$(SOURCE_DIR)/Include/pyhash.h \
+	$(SOURCE_DIR)/Include/pylifecycle.h \
+	$(SOURCE_DIR)/Include/pymacconfig.h \
+	$(SOURCE_DIR)/Include/pymacro.h \
+	$(SOURCE_DIR)/Include/pymath.h \
+	$(SOURCE_DIR)/Include/pymem.h \
+	$(SOURCE_DIR)/Include/pyport.h \
+	$(SOURCE_DIR)/Include/pystate.h \
+	$(SOURCE_DIR)/Include/pystrcmp.h \
+	$(SOURCE_DIR)/Include/pystrhex.h \
+	$(SOURCE_DIR)/Include/pystrtod.h \
+	$(SOURCE_DIR)/Include/pythonrun.h \
+	$(SOURCE_DIR)/Include/pythread.h \
+	$(SOURCE_DIR)/Include/pytime.h \
+	$(SOURCE_DIR)/Include/rangeobject.h \
+	$(SOURCE_DIR)/Include/setobject.h \
+	$(SOURCE_DIR)/Include/sliceobject.h \
+	$(SOURCE_DIR)/Include/structmember.h \
+	$(SOURCE_DIR)/Include/structseq.h \
+	$(SOURCE_DIR)/Include/symtable.h \
+	$(SOURCE_DIR)/Include/sysmodule.h \
+	$(SOURCE_DIR)/Include/token.h \
+	$(SOURCE_DIR)/Include/traceback.h \
+	$(SOURCE_DIR)/Include/tupleobject.h \
+	$(SOURCE_DIR)/Include/typeslots.h \
+	$(SOURCE_DIR)/Include/ucnhash.h \
+	$(SOURCE_DIR)/Include/unicodeobject.h \
+	$(SOURCE_DIR)/Include/warnings.h \
+	$(SOURCE_DIR)/Include/weakrefobject.h \
+
+ALL_HEADERS = $(API_HEADERS) $(INTERNAL_HEADERS)
diff --git a/project/variants/3.7.1/linkage/inittab.h b/project/variants/3.7.1/linkage/inittab.h
new file mode 100644
index 0000000..00bdb28
--- /dev/null
+++ b/project/variants/3.7.1/linkage/inittab.h
@@ -0,0 +1,172 @@
+#ifndef PY_LINKAGE_INITTAB_H
+#define PY_LINKAGE_INITTAB_H
+
+#define PY_CORE_INIT(x) extern void x##_Init(void)
+#define PY_INIT_FUNC(x) extern void PyInit_##x(void)
+#define PY_INIT_PTR(x)  void (*x)(void)
+
+#ifdef   PY_ALL_STATIC
+#include "static.h"
+#endif
+
+#ifdef   PY_FOR_PYCOMPILE
+#include "pycompile.h"
+#endif
+
+struct _inittab {
+	char * name;
+	PY_INIT_PTR(initfunc);
+};
+
+PY_CORE_INIT(_PyWarnings);
+PY_CORE_INIT(PyMarshal);
+
+PY_INIT_FUNC(_ast);
+PY_INIT_FUNC(_string);
+PY_INIT_FUNC(_imp);
+PY_INIT_FUNC(gc);
+
+PY_INIT_FUNC(_abc);
+PY_INIT_FUNC(_codecs);
+PY_INIT_FUNC(_collections);
+PY_INIT_FUNC(_functools);
+PY_INIT_FUNC(_io);
+PY_INIT_FUNC(_locale);
+PY_INIT_FUNC(_operator);
+PY_INIT_FUNC(_signal);
+PY_INIT_FUNC(_sre);
+PY_INIT_FUNC(_stat);
+PY_INIT_FUNC(_symtable);
+PY_INIT_FUNC(_thread);
+PY_INIT_FUNC(_tracemalloc);
+PY_INIT_FUNC(_weakref);
+
+PY_INIT_FUNC(atexit);
+PY_INIT_FUNC(errno);
+PY_INIT_FUNC(faulthandler);
+PY_INIT_FUNC(itertools);
+PY_INIT_FUNC(posix);
+PY_INIT_FUNC(pwd);
+PY_INIT_FUNC(time);
+PY_INIT_FUNC(xxsubtype);
+PY_INIT_FUNC(zipimport);
+
+#define PY_IMPORT_INITTAB_BASE                  \
+	{"builtins",    0},                     \
+	{"sys",         0},                     \
+	{"_ast",        PyInit__ast},           \
+	{"_imp",        PyInit__imp},           \
+	{"_string",     PyInit__string},        \
+	{"gc",          PyInit_gc},             \
+	{"marshal",     PyMarshal_Init},        \
+	{"_warnings",   _PyWarnings_Init}
+
+
+#define PY_IMPORT_INITTAB_COMMON                      \
+	{"_abc",                PyInit__abc},         \
+	{"_codecs",             PyInit__codecs},      \
+	{"_collections",        PyInit__collections}, \
+	{"_functools",          PyInit__functools},   \
+	{"_io",                 PyInit__io},          \
+	{"_locale",             PyInit__locale},      \
+	{"_operator",           PyInit__operator},    \
+	{"_signal",             PyInit__signal},      \
+	{"_sre",                PyInit__sre},         \
+	{"_stat",               PyInit__stat},        \
+	{"_symtable",           PyInit__symtable},    \
+	{"_thread",             PyInit__thread},      \
+	{"_tracemalloc",        PyInit__tracemalloc}, \
+	{"_weakref",            PyInit__weakref},     \
+	{"atexit",              PyInit_atexit},       \
+	{"errno",               PyInit_errno},        \
+	{"faulthandler",        PyInit_faulthandler}, \
+	{"itertools",           PyInit_itertools},    \
+	{"posix",               PyInit_posix},        \
+	{"pwd",                 PyInit_pwd},          \
+	{"time",                PyInit_time},         \
+	{"xxsubtype",           PyInit_xxsubtype},    \
+	{"zipimport",           PyInit_zipimport}
+
+
+#define PY_IMPORT_INITTAB_ANYOS_CORE                            \
+	{"_asyncio",            PyInit__asyncio},               \
+	{"_bisect",             PyInit__bisect},                \
+	{"_blake2",             PyInit__blake2},                \
+	{"_bz2",                PyInit__bz2},                   \
+	{"_codecs_cn",          PyInit__codecs_cn},             \
+	{"_codecs_hk",          PyInit__codecs_hk},             \
+	{"_codecs_iso2022",     PyInit__codecs_iso2022},        \
+	{"_codecs_jp",          PyInit__codecs_jp},             \
+	{"_codecs_kr",          PyInit__codecs_kr},             \
+	{"_codecs_tw",          PyInit__codecs_tw},             \
+	{"_contextvars",        PyInit__contextvars},           \
+	{"_crypt",              PyInit__crypt},                 \
+	{"_csv",                PyInit__csv},                   \
+	{"_ctypes",             PyInit__ctypes},                \
+	{"_ctypes_test",        PyInit__ctypes_test},           \
+	{"_curses",             PyInit__curses},                \
+	{"_curses_panel",       PyInit__curses_panel},          \
+	{"_datetime",           PyInit__datetime},              \
+	{"_dbm",                PyInit__dbm},                   \
+	{"_decimal",            PyInit__decimal},               \
+	{"_elementtree",        PyInit__elementtree},           \
+	{"_gdbm",               PyInit__gdbm},                  \
+	{"_hashlib",            PyInit__hashlib},               \
+	{"_heapq",              PyInit__heapq},                 \
+	{"_json",               PyInit__json},                  \
+	{"_lsprof",             PyInit__lsprof},                \
+	{"_lzma",               PyInit__lzma},                  \
+	{"_md5",                PyInit__md5},                   \
+	{"_multibytecodec",     PyInit__multibytecodec},        \
+	{"_multiprocessing",    PyInit__multiprocessing},       \
+	{"_opcode",             PyInit__opcode},                \
+	{"_pickle",             PyInit__pickle},                \
+	{"_posixsubprocess",    PyInit__posixsubprocess},       \
+	{"_queue",              PyInit__queue},                 \
+	{"_random",             PyInit__random},                \
+	{"_sha1",               PyInit__sha1},                  \
+	{"_sha256",             PyInit__sha256},                \
+	{"_sha3",               PyInit__sha3},                  \
+	{"_sha512",             PyInit__sha512},                \
+	{"_socket",             PyInit__socket},                \
+	{"_sqlite3",            PyInit__sqlite3},               \
+	{"_struct",             PyInit__struct},                \
+	{"_testbuffer",         PyInit__testbuffer},            \
+	{"_testcapi",           PyInit__testcapi},              \
+	{"_testimportmultiple", PyInit__testimportmultiple},    \
+	{"_testmultiphase",     PyInit__testmultiphase},        \
+	{"_uuid",               PyInit__uuid},                  \
+	{"_xxtestfuzz",         PyInit__xxtestfuzz},            \
+	{"array",               PyInit_array},                  \
+	{"binascii",            PyInit_binascii},               \
+	{"cmath",               PyInit_cmath},                  \
+	{"fcntl",               PyInit_fcntl},                  \
+	{"grp",                 PyInit_grp},                    \
+	{"math",                PyInit_math},                   \
+	{"mmap",                PyInit_mmap},                   \
+	{"parser",              PyInit_parser},                 \
+	{"pyexpat",             PyInit_pyexpat},                \
+	{"readline",            PyInit_readline},               \
+	{"resource",            PyInit_resource},               \
+	{"select",              PyInit_select},                 \
+	{"spwd",                PyInit_spwd},                   \
+	{"syslog",              PyInit_syslog},                 \
+	{"termios",             PyInit_termios},                \
+	{"unicodedata",         PyInit_unicodedata},            \
+	{"xxlimited",           PyInit_xxlimited},              \
+	{"zlib",                PyInit_zlib}
+
+
+#define PY_IMPORT_INITTAB_ANYOS_AUDIO                           \
+	{"audioop",             PyInit_audioop},                \
+	{"ossaudiodev",         PyInit_ossaudiodev}
+
+
+#define PY_IMPORT_INITTAB_ANYOS_SSL                             \
+	{"_ssl",                PyInit__ssl}
+
+
+#define PY_IMPORT_INITTAB_ANYOS_TCLTK                           \
+	{"_tkinter",            PyInit__tkinter}
+
+#endif
diff --git a/project/variants/3.7.1/linkage/pycompile.h b/project/variants/3.7.1/linkage/pycompile.h
new file mode 100644
index 0000000..ad74185
--- /dev/null
+++ b/project/variants/3.7.1/linkage/pycompile.h
@@ -0,0 +1,24 @@
+#ifndef PY_LINKAGE_PYCOMPILE_H
+#define PY_LINKAGE_PYCOMPILE_H
+
+PY_INIT_FUNC(_decimal);
+PY_INIT_FUNC(_elementtree);
+PY_INIT_FUNC(_heapq);
+PY_INIT_FUNC(_posixsubprocess);
+
+PY_INIT_FUNC(math);
+PY_INIT_FUNC(readline);
+PY_INIT_FUNC(select);
+PY_INIT_FUNC(termios);
+
+#define PY_IMPORT_INITTAB_PYCOMPILE_CORE                    \
+	{"_decimal",            PyInit__decimal},           \
+	{"_elementtree",        PyInit__elementtree},       \
+	{"_heapq",              PyInit__heapq},             \
+	{"_posixsubprocess",    PyInit__posixsubprocess},   \
+	{"math",                PyInit_math},               \
+	{"readline",            PyInit_readline},           \
+	{"select",              PyInit_select},             \
+	{"termios",             PyInit_termios}
+
+#endif
diff --git a/project/variants/3.7.1/linkage/static.h b/project/variants/3.7.1/linkage/static.h
new file mode 100644
index 0000000..d817b5c
--- /dev/null
+++ b/project/variants/3.7.1/linkage/static.h
@@ -0,0 +1,75 @@
+#ifndef PY_LINKAGE_STATIC_H
+#define PY_LINKAGE_STATIC_H
+
+PY_INIT_FUNC(_asyncio);
+PY_INIT_FUNC(_bisect);
+PY_INIT_FUNC(_blake2);
+PY_INIT_FUNC(_bz2);
+PY_INIT_FUNC(_codecs_cn);
+PY_INIT_FUNC(_codecs_hk);
+PY_INIT_FUNC(_codecs_iso2022);
+PY_INIT_FUNC(_codecs_jp);
+PY_INIT_FUNC(_codecs_kr);
+PY_INIT_FUNC(_codecs_tw);
+PY_INIT_FUNC(_contextvars);
+PY_INIT_FUNC(_crypt);
+PY_INIT_FUNC(_csv);
+PY_INIT_FUNC(_ctypes);
+PY_INIT_FUNC(_ctypes_test);
+PY_INIT_FUNC(_curses);
+PY_INIT_FUNC(_curses_panel);
+PY_INIT_FUNC(_datetime);
+PY_INIT_FUNC(_dbm);
+PY_INIT_FUNC(_decimal);
+PY_INIT_FUNC(_elementtree);
+PY_INIT_FUNC(_gdbm);
+PY_INIT_FUNC(_hashlib);
+PY_INIT_FUNC(_heapq);
+PY_INIT_FUNC(_json);
+PY_INIT_FUNC(_lsprof);
+PY_INIT_FUNC(_lzma);
+PY_INIT_FUNC(_md5);
+PY_INIT_FUNC(_multibytecodec);
+PY_INIT_FUNC(_multiprocessing);
+PY_INIT_FUNC(_opcode);
+PY_INIT_FUNC(_pickle);
+PY_INIT_FUNC(_posixsubprocess);
+PY_INIT_FUNC(_queue);
+PY_INIT_FUNC(_random);
+PY_INIT_FUNC(_sha1);
+PY_INIT_FUNC(_sha256);
+PY_INIT_FUNC(_sha3);
+PY_INIT_FUNC(_sha512);
+PY_INIT_FUNC(_socket);
+PY_INIT_FUNC(_sqlite3);
+PY_INIT_FUNC(_ssl);
+PY_INIT_FUNC(_struct);
+PY_INIT_FUNC(_testbuffer);
+PY_INIT_FUNC(_testcapi);
+PY_INIT_FUNC(_testimportmultiple);
+PY_INIT_FUNC(_testmultiphase);
+PY_INIT_FUNC(_tkinter);
+PY_INIT_FUNC(_uuid);
+PY_INIT_FUNC(_xxtestfuzz);
+PY_INIT_FUNC(array);
+PY_INIT_FUNC(audioop);
+PY_INIT_FUNC(binascii);
+PY_INIT_FUNC(cmath);
+PY_INIT_FUNC(fcntl);
+PY_INIT_FUNC(grp);
+PY_INIT_FUNC(math);
+PY_INIT_FUNC(mmap);
+PY_INIT_FUNC(ossaudiodev);
+PY_INIT_FUNC(parser);
+PY_INIT_FUNC(pyexpat);
+PY_INIT_FUNC(readline);
+PY_INIT_FUNC(resource);
+PY_INIT_FUNC(select);
+PY_INIT_FUNC(spwd);
+PY_INIT_FUNC(syslog);
+PY_INIT_FUNC(termios);
+PY_INIT_FUNC(unicodedata);
+PY_INIT_FUNC(xxlimited);
+PY_INIT_FUNC(zlib);
+
+#endif
diff --git a/project/variants/3.7.1/pydist.mk b/project/variants/3.7.1/pydist.mk
new file mode 100644
index 0000000..40f02b0
--- /dev/null
+++ b/project/variants/3.7.1/pydist.mk
@@ -0,0 +1,1925 @@
+PYCOPY        = $(PROJECT_DIR)/project/pycopy.sh
+PYCABI        = cpython-$(PYTHON_MAJOR)$(PYTHON_MINOR)
+PYCOPY_PYTHON = $(NICKNAME)
+PYCOPY_PREFIX = $(PREFIX)
+
+PYDIST_LIBDIR = lib
+PYDIST_PYCDIR = lib/$(NICKNAME)
+
+
+PYDIST_SYSCFG_SRCS = \
+	$(PYDIST_PYCDIR)/./_sysconfigdata__$(PYTHON_PLATFORM)_.py
+
+PYDIST_SRCS = \
+	$(PYDIST_PYCDIR)/./__future__.py \
+	$(PYDIST_PYCDIR)/./__phello__.foo.py \
+	$(PYDIST_PYCDIR)/./_bootlocale.py \
+	$(PYDIST_PYCDIR)/./_collections_abc.py \
+	$(PYDIST_PYCDIR)/./_compat_pickle.py \
+	$(PYDIST_PYCDIR)/./_compression.py \
+	$(PYDIST_PYCDIR)/./_dummy_thread.py \
+	$(PYDIST_PYCDIR)/./_markupbase.py \
+	$(PYDIST_PYCDIR)/./_osx_support.py \
+	$(PYDIST_PYCDIR)/./_py_abc.py \
+	$(PYDIST_PYCDIR)/./_pydecimal.py \
+	$(PYDIST_PYCDIR)/./_pyio.py \
+	$(PYDIST_PYCDIR)/./_sitebuiltins.py \
+	$(PYDIST_PYCDIR)/./_strptime.py \
+	$(PYDIST_PYCDIR)/./_threading_local.py \
+	$(PYDIST_PYCDIR)/./_weakrefset.py \
+	$(PYDIST_PYCDIR)/./abc.py \
+	$(PYDIST_PYCDIR)/./aifc.py \
+	$(PYDIST_PYCDIR)/./antigravity.py \
+	$(PYDIST_PYCDIR)/./argparse.py \
+	$(PYDIST_PYCDIR)/./ast.py \
+	$(PYDIST_PYCDIR)/./asynchat.py \
+	$(PYDIST_PYCDIR)/./asyncore.py \
+	$(PYDIST_PYCDIR)/./base64.py \
+	$(PYDIST_PYCDIR)/./bdb.py \
+	$(PYDIST_PYCDIR)/./binhex.py \
+	$(PYDIST_PYCDIR)/./bisect.py \
+	$(PYDIST_PYCDIR)/./bz2.py \
+	$(PYDIST_PYCDIR)/./cProfile.py \
+	$(PYDIST_PYCDIR)/./calendar.py \
+	$(PYDIST_PYCDIR)/./cgi.py \
+	$(PYDIST_PYCDIR)/./cgitb.py \
+	$(PYDIST_PYCDIR)/./chunk.py \
+	$(PYDIST_PYCDIR)/./cmd.py \
+	$(PYDIST_PYCDIR)/./code.py \
+	$(PYDIST_PYCDIR)/./codecs.py \
+	$(PYDIST_PYCDIR)/./codeop.py \
+	$(PYDIST_PYCDIR)/./colorsys.py \
+	$(PYDIST_PYCDIR)/./compileall.py \
+	$(PYDIST_PYCDIR)/./configparser.py \
+	$(PYDIST_PYCDIR)/./contextlib.py \
+	$(PYDIST_PYCDIR)/./contextvars.py \
+	$(PYDIST_PYCDIR)/./copy.py \
+	$(PYDIST_PYCDIR)/./copyreg.py \
+	$(PYDIST_PYCDIR)/./crypt.py \
+	$(PYDIST_PYCDIR)/./csv.py \
+	$(PYDIST_PYCDIR)/./dataclasses.py \
+	$(PYDIST_PYCDIR)/./datetime.py \
+	$(PYDIST_PYCDIR)/./decimal.py \
+	$(PYDIST_PYCDIR)/./difflib.py \
+	$(PYDIST_PYCDIR)/./dis.py \
+	$(PYDIST_PYCDIR)/./doctest.py \
+	$(PYDIST_PYCDIR)/./dummy_threading.py \
+	$(PYDIST_PYCDIR)/./enum.py \
+	$(PYDIST_PYCDIR)/./filecmp.py \
+	$(PYDIST_PYCDIR)/./fileinput.py \
+	$(PYDIST_PYCDIR)/./fnmatch.py \
+	$(PYDIST_PYCDIR)/./formatter.py \
+	$(PYDIST_PYCDIR)/./fractions.py \
+	$(PYDIST_PYCDIR)/./ftplib.py \
+	$(PYDIST_PYCDIR)/./functools.py \
+	$(PYDIST_PYCDIR)/./genericpath.py \
+	$(PYDIST_PYCDIR)/./getopt.py \
+	$(PYDIST_PYCDIR)/./getpass.py \
+	$(PYDIST_PYCDIR)/./gettext.py \
+	$(PYDIST_PYCDIR)/./glob.py \
+	$(PYDIST_PYCDIR)/./gzip.py \
+	$(PYDIST_PYCDIR)/./hashlib.py \
+	$(PYDIST_PYCDIR)/./heapq.py \
+	$(PYDIST_PYCDIR)/./hmac.py \
+	$(PYDIST_PYCDIR)/./imaplib.py \
+	$(PYDIST_PYCDIR)/./imghdr.py \
+	$(PYDIST_PYCDIR)/./imp.py \
+	$(PYDIST_PYCDIR)/./inspect.py \
+	$(PYDIST_PYCDIR)/./io.py \
+	$(PYDIST_PYCDIR)/./ipaddress.py \
+	$(PYDIST_PYCDIR)/./keyword.py \
+	$(PYDIST_PYCDIR)/./linecache.py \
+	$(PYDIST_PYCDIR)/./locale.py \
+	$(PYDIST_PYCDIR)/./lzma.py \
+	$(PYDIST_PYCDIR)/./macpath.py \
+	$(PYDIST_PYCDIR)/./mailbox.py \
+	$(PYDIST_PYCDIR)/./mailcap.py \
+	$(PYDIST_PYCDIR)/./mimetypes.py \
+	$(PYDIST_PYCDIR)/./modulefinder.py \
+	$(PYDIST_PYCDIR)/./netrc.py \
+	$(PYDIST_PYCDIR)/./nntplib.py \
+	$(PYDIST_PYCDIR)/./ntpath.py \
+	$(PYDIST_PYCDIR)/./nturl2path.py \
+	$(PYDIST_PYCDIR)/./numbers.py \
+	$(PYDIST_PYCDIR)/./opcode.py \
+	$(PYDIST_PYCDIR)/./operator.py \
+	$(PYDIST_PYCDIR)/./optparse.py \
+	$(PYDIST_PYCDIR)/./os.py \
+	$(PYDIST_PYCDIR)/./pathlib.py \
+	$(PYDIST_PYCDIR)/./pdb.py \
+	$(PYDIST_PYCDIR)/./pickle.py \
+	$(PYDIST_PYCDIR)/./pickletools.py \
+	$(PYDIST_PYCDIR)/./pipes.py \
+	$(PYDIST_PYCDIR)/./pkgutil.py \
+	$(PYDIST_PYCDIR)/./platform.py \
+	$(PYDIST_PYCDIR)/./plistlib.py \
+	$(PYDIST_PYCDIR)/./poplib.py \
+	$(PYDIST_PYCDIR)/./posixpath.py \
+	$(PYDIST_PYCDIR)/./pprint.py \
+	$(PYDIST_PYCDIR)/./profile.py \
+	$(PYDIST_PYCDIR)/./pstats.py \
+	$(PYDIST_PYCDIR)/./pty.py \
+	$(PYDIST_PYCDIR)/./py_compile.py \
+	$(PYDIST_PYCDIR)/./pyclbr.py \
+	$(PYDIST_PYCDIR)/./pydoc.py \
+	$(PYDIST_PYCDIR)/./queue.py \
+	$(PYDIST_PYCDIR)/./quopri.py \
+	$(PYDIST_PYCDIR)/./random.py \
+	$(PYDIST_PYCDIR)/./re.py \
+	$(PYDIST_PYCDIR)/./reprlib.py \
+	$(PYDIST_PYCDIR)/./rlcompleter.py \
+	$(PYDIST_PYCDIR)/./runpy.py \
+	$(PYDIST_PYCDIR)/./sched.py \
+	$(PYDIST_PYCDIR)/./secrets.py \
+	$(PYDIST_PYCDIR)/./selectors.py \
+	$(PYDIST_PYCDIR)/./shelve.py \
+	$(PYDIST_PYCDIR)/./shlex.py \
+	$(PYDIST_PYCDIR)/./shutil.py \
+	$(PYDIST_PYCDIR)/./signal.py \
+	$(PYDIST_PYCDIR)/./site.py \
+	$(PYDIST_PYCDIR)/./smtpd.py \
+	$(PYDIST_PYCDIR)/./smtplib.py \
+	$(PYDIST_PYCDIR)/./sndhdr.py \
+	$(PYDIST_PYCDIR)/./socket.py \
+	$(PYDIST_PYCDIR)/./socketserver.py \
+	$(PYDIST_PYCDIR)/./sre_compile.py \
+	$(PYDIST_PYCDIR)/./sre_constants.py \
+	$(PYDIST_PYCDIR)/./sre_parse.py \
+	$(PYDIST_PYCDIR)/./ssl.py \
+	$(PYDIST_PYCDIR)/./stat.py \
+	$(PYDIST_PYCDIR)/./statistics.py \
+	$(PYDIST_PYCDIR)/./string.py \
+	$(PYDIST_PYCDIR)/./stringprep.py \
+	$(PYDIST_PYCDIR)/./struct.py \
+	$(PYDIST_PYCDIR)/./subprocess.py \
+	$(PYDIST_PYCDIR)/./sunau.py \
+	$(PYDIST_PYCDIR)/./symbol.py \
+	$(PYDIST_PYCDIR)/./symtable.py \
+	$(PYDIST_PYCDIR)/./sysconfig.py \
+	$(PYDIST_PYCDIR)/./tabnanny.py \
+	$(PYDIST_PYCDIR)/./tarfile.py \
+	$(PYDIST_PYCDIR)/./telnetlib.py \
+	$(PYDIST_PYCDIR)/./tempfile.py \
+	$(PYDIST_PYCDIR)/./textwrap.py \
+	$(PYDIST_PYCDIR)/./this.py \
+	$(PYDIST_PYCDIR)/./threading.py \
+	$(PYDIST_PYCDIR)/./timeit.py \
+	$(PYDIST_PYCDIR)/./token.py \
+	$(PYDIST_PYCDIR)/./tokenize.py \
+	$(PYDIST_PYCDIR)/./trace.py \
+	$(PYDIST_PYCDIR)/./traceback.py \
+	$(PYDIST_PYCDIR)/./tracemalloc.py \
+	$(PYDIST_PYCDIR)/./tty.py \
+	$(PYDIST_PYCDIR)/./turtle.py \
+	$(PYDIST_PYCDIR)/./types.py \
+	$(PYDIST_PYCDIR)/./typing.py \
+	$(PYDIST_PYCDIR)/./uu.py \
+	$(PYDIST_PYCDIR)/./uuid.py \
+	$(PYDIST_PYCDIR)/./warnings.py \
+	$(PYDIST_PYCDIR)/./wave.py \
+	$(PYDIST_PYCDIR)/./weakref.py \
+	$(PYDIST_PYCDIR)/./webbrowser.py \
+	$(PYDIST_PYCDIR)/./xdrlib.py \
+	$(PYDIST_PYCDIR)/./zipapp.py \
+	$(PYDIST_PYCDIR)/./zipfile.py \
+
+PYDIST_ASYNCIO_SRCS = \
+	$(PYDIST_PYCDIR)/./asyncio/__init__.py \
+	$(PYDIST_PYCDIR)/./asyncio/base_events.py \
+	$(PYDIST_PYCDIR)/./asyncio/base_futures.py \
+	$(PYDIST_PYCDIR)/./asyncio/base_subprocess.py \
+	$(PYDIST_PYCDIR)/./asyncio/base_tasks.py \
+	$(PYDIST_PYCDIR)/./asyncio/constants.py \
+	$(PYDIST_PYCDIR)/./asyncio/coroutines.py \
+	$(PYDIST_PYCDIR)/./asyncio/events.py \
+	$(PYDIST_PYCDIR)/./asyncio/format_helpers.py \
+	$(PYDIST_PYCDIR)/./asyncio/futures.py \
+	$(PYDIST_PYCDIR)/./asyncio/locks.py \
+	$(PYDIST_PYCDIR)/./asyncio/log.py \
+	$(PYDIST_PYCDIR)/./asyncio/proactor_events.py \
+	$(PYDIST_PYCDIR)/./asyncio/protocols.py \
+	$(PYDIST_PYCDIR)/./asyncio/queues.py \
+	$(PYDIST_PYCDIR)/./asyncio/runners.py \
+	$(PYDIST_PYCDIR)/./asyncio/selector_events.py \
+	$(PYDIST_PYCDIR)/./asyncio/sslproto.py \
+	$(PYDIST_PYCDIR)/./asyncio/streams.py \
+	$(PYDIST_PYCDIR)/./asyncio/subprocess.py \
+	$(PYDIST_PYCDIR)/./asyncio/tasks.py \
+	$(PYDIST_PYCDIR)/./asyncio/transports.py \
+	$(PYDIST_PYCDIR)/./asyncio/unix_events.py \
+	$(PYDIST_PYCDIR)/./asyncio/windows_events.py \
+	$(PYDIST_PYCDIR)/./asyncio/windows_utils.py \
+
+PYDIST_COLLECTIONS_SRCS = \
+	$(PYDIST_PYCDIR)/./collections/__init__.py \
+	$(PYDIST_PYCDIR)/./collections/abc.py \
+
+PYDIST_CONCURRENT_SRCS = \
+	$(PYDIST_PYCDIR)/./concurrent/__init__.py \
+
+PYDIST_CONCURRENT_FUTURES_SRCS = \
+	$(PYDIST_PYCDIR)/./concurrent/futures/__init__.py \
+	$(PYDIST_PYCDIR)/./concurrent/futures/_base.py \
+	$(PYDIST_PYCDIR)/./concurrent/futures/process.py \
+	$(PYDIST_PYCDIR)/./concurrent/futures/thread.py \
+
+PYDIST_CTYPES_SRCS = \
+	$(PYDIST_PYCDIR)/./ctypes/__init__.py \
+	$(PYDIST_PYCDIR)/./ctypes/_aix.py \
+	$(PYDIST_PYCDIR)/./ctypes/_endian.py \
+	$(PYDIST_PYCDIR)/./ctypes/util.py \
+	$(PYDIST_PYCDIR)/./ctypes/wintypes.py \
+
+PYDIST_CTYPES_MACHOLIB_SRCS = \
+	$(PYDIST_PYCDIR)/./ctypes/macholib/__init__.py \
+	$(PYDIST_PYCDIR)/./ctypes/macholib/dyld.py \
+	$(PYDIST_PYCDIR)/./ctypes/macholib/dylib.py \
+	$(PYDIST_PYCDIR)/./ctypes/macholib/framework.py \
+
+PYDIST_CTYPES_TEST_SRCS = \
+	$(PYDIST_PYCDIR)/./ctypes/test/__init__.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/__main__.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_anon.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_array_in_pointer.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_arrays.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_as_parameter.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_bitfields.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_buffers.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_bytes.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_byteswap.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_callbacks.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_cast.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_cfuncs.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_checkretval.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_delattr.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_errno.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_find.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_frombuffer.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_funcptr.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_functions.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_incomplete.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_init.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_internals.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_keeprefs.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_libc.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_loading.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_macholib.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_memfunctions.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_numbers.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_objects.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_parameters.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_pep3118.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_pickling.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_pointers.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_prototypes.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_python_api.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_random_things.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_refcounts.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_repr.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_returnfuncptrs.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_simplesubclasses.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_sizes.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_slicing.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_stringptr.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_strings.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_struct_fields.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_structures.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_unaligned_structures.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_unicode.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_values.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_varsize_struct.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_win32.py \
+	$(PYDIST_PYCDIR)/./ctypes/test/test_wintypes.py \
+
+PYDIST_CURSES_SRCS = \
+	$(PYDIST_PYCDIR)/./curses/__init__.py \
+	$(PYDIST_PYCDIR)/./curses/ascii.py \
+	$(PYDIST_PYCDIR)/./curses/has_key.py \
+	$(PYDIST_PYCDIR)/./curses/panel.py \
+	$(PYDIST_PYCDIR)/./curses/textpad.py \
+
+PYDIST_DBM_SRCS = \
+	$(PYDIST_PYCDIR)/./dbm/__init__.py \
+	$(PYDIST_PYCDIR)/./dbm/dumb.py \
+	$(PYDIST_PYCDIR)/./dbm/gnu.py \
+	$(PYDIST_PYCDIR)/./dbm/ndbm.py \
+
+PYDIST_DISTUTILS_SRCS = \
+	$(PYDIST_PYCDIR)/./distutils/__init__.py \
+	$(PYDIST_PYCDIR)/./distutils/_msvccompiler.py \
+	$(PYDIST_PYCDIR)/./distutils/archive_util.py \
+	$(PYDIST_PYCDIR)/./distutils/bcppcompiler.py \
+	$(PYDIST_PYCDIR)/./distutils/ccompiler.py \
+	$(PYDIST_PYCDIR)/./distutils/cmd.py \
+	$(PYDIST_PYCDIR)/./distutils/config.py \
+	$(PYDIST_PYCDIR)/./distutils/core.py \
+	$(PYDIST_PYCDIR)/./distutils/cygwinccompiler.py \
+	$(PYDIST_PYCDIR)/./distutils/debug.py \
+	$(PYDIST_PYCDIR)/./distutils/dep_util.py \
+	$(PYDIST_PYCDIR)/./distutils/dir_util.py \
+	$(PYDIST_PYCDIR)/./distutils/dist.py \
+	$(PYDIST_PYCDIR)/./distutils/errors.py \
+	$(PYDIST_PYCDIR)/./distutils/extension.py \
+	$(PYDIST_PYCDIR)/./distutils/fancy_getopt.py \
+	$(PYDIST_PYCDIR)/./distutils/file_util.py \
+	$(PYDIST_PYCDIR)/./distutils/filelist.py \
+	$(PYDIST_PYCDIR)/./distutils/log.py \
+	$(PYDIST_PYCDIR)/./distutils/msvc9compiler.py \
+	$(PYDIST_PYCDIR)/./distutils/msvccompiler.py \
+	$(PYDIST_PYCDIR)/./distutils/spawn.py \
+	$(PYDIST_PYCDIR)/./distutils/sysconfig.py \
+	$(PYDIST_PYCDIR)/./distutils/text_file.py \
+	$(PYDIST_PYCDIR)/./distutils/unixccompiler.py \
+	$(PYDIST_PYCDIR)/./distutils/util.py \
+	$(PYDIST_PYCDIR)/./distutils/version.py \
+	$(PYDIST_PYCDIR)/./distutils/versionpredicate.py \
+
+PYDIST_DISTUTILS_COMMAND_SRCS = \
+	$(PYDIST_PYCDIR)/./distutils/command/__init__.py \
+	$(PYDIST_PYCDIR)/./distutils/command/bdist.py \
+	$(PYDIST_PYCDIR)/./distutils/command/bdist_dumb.py \
+	$(PYDIST_PYCDIR)/./distutils/command/bdist_msi.py \
+	$(PYDIST_PYCDIR)/./distutils/command/bdist_rpm.py \
+	$(PYDIST_PYCDIR)/./distutils/command/bdist_wininst.py \
+	$(PYDIST_PYCDIR)/./distutils/command/build.py \
+	$(PYDIST_PYCDIR)/./distutils/command/build_clib.py \
+	$(PYDIST_PYCDIR)/./distutils/command/build_ext.py \
+	$(PYDIST_PYCDIR)/./distutils/command/build_py.py \
+	$(PYDIST_PYCDIR)/./distutils/command/build_scripts.py \
+	$(PYDIST_PYCDIR)/./distutils/command/check.py \
+	$(PYDIST_PYCDIR)/./distutils/command/clean.py \
+	$(PYDIST_PYCDIR)/./distutils/command/config.py \
+	$(PYDIST_PYCDIR)/./distutils/command/install.py \
+	$(PYDIST_PYCDIR)/./distutils/command/install_data.py \
+	$(PYDIST_PYCDIR)/./distutils/command/install_egg_info.py \
+	$(PYDIST_PYCDIR)/./distutils/command/install_headers.py \
+	$(PYDIST_PYCDIR)/./distutils/command/install_lib.py \
+	$(PYDIST_PYCDIR)/./distutils/command/install_scripts.py \
+	$(PYDIST_PYCDIR)/./distutils/command/register.py \
+	$(PYDIST_PYCDIR)/./distutils/command/sdist.py \
+	$(PYDIST_PYCDIR)/./distutils/command/upload.py \
+
+PYDIST_DISTUTILS_TESTS_SRCS = \
+	$(PYDIST_PYCDIR)/./distutils/tests/__init__.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/support.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_archive_util.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_bdist.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_bdist_dumb.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_bdist_msi.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_bdist_rpm.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_bdist_wininst.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_build.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_build_clib.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_build_ext.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_build_py.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_build_scripts.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_check.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_clean.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_cmd.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_config.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_config_cmd.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_core.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_cygwinccompiler.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_dep_util.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_dir_util.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_dist.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_extension.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_file_util.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_filelist.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_install.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_install_data.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_install_headers.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_install_lib.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_install_scripts.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_log.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_msvc9compiler.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_msvccompiler.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_register.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_sdist.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_spawn.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_sysconfig.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_text_file.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_unixccompiler.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_upload.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_util.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_version.py \
+	$(PYDIST_PYCDIR)/./distutils/tests/test_versionpredicate.py \
+
+PYDIST_EMAIL_SRCS = \
+	$(PYDIST_PYCDIR)/./email/__init__.py \
+	$(PYDIST_PYCDIR)/./email/_encoded_words.py \
+	$(PYDIST_PYCDIR)/./email/_header_value_parser.py \
+	$(PYDIST_PYCDIR)/./email/_parseaddr.py \
+	$(PYDIST_PYCDIR)/./email/_policybase.py \
+	$(PYDIST_PYCDIR)/./email/base64mime.py \
+	$(PYDIST_PYCDIR)/./email/charset.py \
+	$(PYDIST_PYCDIR)/./email/contentmanager.py \
+	$(PYDIST_PYCDIR)/./email/encoders.py \
+	$(PYDIST_PYCDIR)/./email/errors.py \
+	$(PYDIST_PYCDIR)/./email/feedparser.py \
+	$(PYDIST_PYCDIR)/./email/generator.py \
+	$(PYDIST_PYCDIR)/./email/header.py \
+	$(PYDIST_PYCDIR)/./email/headerregistry.py \
+	$(PYDIST_PYCDIR)/./email/iterators.py \
+	$(PYDIST_PYCDIR)/./email/message.py \
+	$(PYDIST_PYCDIR)/./email/parser.py \
+	$(PYDIST_PYCDIR)/./email/policy.py \
+	$(PYDIST_PYCDIR)/./email/quoprimime.py \
+	$(PYDIST_PYCDIR)/./email/utils.py \
+
+PYDIST_EMAIL_MIME_SRCS = \
+	$(PYDIST_PYCDIR)/./email/mime/__init__.py \
+	$(PYDIST_PYCDIR)/./email/mime/application.py \
+	$(PYDIST_PYCDIR)/./email/mime/audio.py \
+	$(PYDIST_PYCDIR)/./email/mime/base.py \
+	$(PYDIST_PYCDIR)/./email/mime/image.py \
+	$(PYDIST_PYCDIR)/./email/mime/message.py \
+	$(PYDIST_PYCDIR)/./email/mime/multipart.py \
+	$(PYDIST_PYCDIR)/./email/mime/nonmultipart.py \
+	$(PYDIST_PYCDIR)/./email/mime/text.py \
+
+PYDIST_ENCODINGS_SRCS = \
+	$(PYDIST_PYCDIR)/./encodings/__init__.py \
+	$(PYDIST_PYCDIR)/./encodings/aliases.py \
+	$(PYDIST_PYCDIR)/./encodings/ascii.py \
+	$(PYDIST_PYCDIR)/./encodings/base64_codec.py \
+	$(PYDIST_PYCDIR)/./encodings/big5.py \
+	$(PYDIST_PYCDIR)/./encodings/big5hkscs.py \
+	$(PYDIST_PYCDIR)/./encodings/bz2_codec.py \
+	$(PYDIST_PYCDIR)/./encodings/charmap.py \
+	$(PYDIST_PYCDIR)/./encodings/cp037.py \
+	$(PYDIST_PYCDIR)/./encodings/cp1006.py \
+	$(PYDIST_PYCDIR)/./encodings/cp1026.py \
+	$(PYDIST_PYCDIR)/./encodings/cp1125.py \
+	$(PYDIST_PYCDIR)/./encodings/cp1140.py \
+	$(PYDIST_PYCDIR)/./encodings/cp1250.py \
+	$(PYDIST_PYCDIR)/./encodings/cp1251.py \
+	$(PYDIST_PYCDIR)/./encodings/cp1252.py \
+	$(PYDIST_PYCDIR)/./encodings/cp1253.py \
+	$(PYDIST_PYCDIR)/./encodings/cp1254.py \
+	$(PYDIST_PYCDIR)/./encodings/cp1255.py \
+	$(PYDIST_PYCDIR)/./encodings/cp1256.py \
+	$(PYDIST_PYCDIR)/./encodings/cp1257.py \
+	$(PYDIST_PYCDIR)/./encodings/cp1258.py \
+	$(PYDIST_PYCDIR)/./encodings/cp273.py \
+	$(PYDIST_PYCDIR)/./encodings/cp424.py \
+	$(PYDIST_PYCDIR)/./encodings/cp437.py \
+	$(PYDIST_PYCDIR)/./encodings/cp500.py \
+	$(PYDIST_PYCDIR)/./encodings/cp65001.py \
+	$(PYDIST_PYCDIR)/./encodings/cp720.py \
+	$(PYDIST_PYCDIR)/./encodings/cp737.py \
+	$(PYDIST_PYCDIR)/./encodings/cp775.py \
+	$(PYDIST_PYCDIR)/./encodings/cp850.py \
+	$(PYDIST_PYCDIR)/./encodings/cp852.py \
+	$(PYDIST_PYCDIR)/./encodings/cp855.py \
+	$(PYDIST_PYCDIR)/./encodings/cp856.py \
+	$(PYDIST_PYCDIR)/./encodings/cp857.py \
+	$(PYDIST_PYCDIR)/./encodings/cp858.py \
+	$(PYDIST_PYCDIR)/./encodings/cp860.py \
+	$(PYDIST_PYCDIR)/./encodings/cp861.py \
+	$(PYDIST_PYCDIR)/./encodings/cp862.py \
+	$(PYDIST_PYCDIR)/./encodings/cp863.py \
+	$(PYDIST_PYCDIR)/./encodings/cp864.py \
+	$(PYDIST_PYCDIR)/./encodings/cp865.py \
+	$(PYDIST_PYCDIR)/./encodings/cp866.py \
+	$(PYDIST_PYCDIR)/./encodings/cp869.py \
+	$(PYDIST_PYCDIR)/./encodings/cp874.py \
+	$(PYDIST_PYCDIR)/./encodings/cp875.py \
+	$(PYDIST_PYCDIR)/./encodings/cp932.py \
+	$(PYDIST_PYCDIR)/./encodings/cp949.py \
+	$(PYDIST_PYCDIR)/./encodings/cp950.py \
+	$(PYDIST_PYCDIR)/./encodings/euc_jis_2004.py \
+	$(PYDIST_PYCDIR)/./encodings/euc_jisx0213.py \
+	$(PYDIST_PYCDIR)/./encodings/euc_jp.py \
+	$(PYDIST_PYCDIR)/./encodings/euc_kr.py \
+	$(PYDIST_PYCDIR)/./encodings/gb18030.py \
+	$(PYDIST_PYCDIR)/./encodings/gb2312.py \
+	$(PYDIST_PYCDIR)/./encodings/gbk.py \
+	$(PYDIST_PYCDIR)/./encodings/hex_codec.py \
+	$(PYDIST_PYCDIR)/./encodings/hp_roman8.py \
+	$(PYDIST_PYCDIR)/./encodings/hz.py \
+	$(PYDIST_PYCDIR)/./encodings/idna.py \
+	$(PYDIST_PYCDIR)/./encodings/iso2022_jp.py \
+	$(PYDIST_PYCDIR)/./encodings/iso2022_jp_1.py \
+	$(PYDIST_PYCDIR)/./encodings/iso2022_jp_2.py \
+	$(PYDIST_PYCDIR)/./encodings/iso2022_jp_2004.py \
+	$(PYDIST_PYCDIR)/./encodings/iso2022_jp_3.py \
+	$(PYDIST_PYCDIR)/./encodings/iso2022_jp_ext.py \
+	$(PYDIST_PYCDIR)/./encodings/iso2022_kr.py \
+	$(PYDIST_PYCDIR)/./encodings/iso8859_1.py \
+	$(PYDIST_PYCDIR)/./encodings/iso8859_10.py \
+	$(PYDIST_PYCDIR)/./encodings/iso8859_11.py \
+	$(PYDIST_PYCDIR)/./encodings/iso8859_13.py \
+	$(PYDIST_PYCDIR)/./encodings/iso8859_14.py \
+	$(PYDIST_PYCDIR)/./encodings/iso8859_15.py \
+	$(PYDIST_PYCDIR)/./encodings/iso8859_16.py \
+	$(PYDIST_PYCDIR)/./encodings/iso8859_2.py \
+	$(PYDIST_PYCDIR)/./encodings/iso8859_3.py \
+	$(PYDIST_PYCDIR)/./encodings/iso8859_4.py \
+	$(PYDIST_PYCDIR)/./encodings/iso8859_5.py \
+	$(PYDIST_PYCDIR)/./encodings/iso8859_6.py \
+	$(PYDIST_PYCDIR)/./encodings/iso8859_7.py \
+	$(PYDIST_PYCDIR)/./encodings/iso8859_8.py \
+	$(PYDIST_PYCDIR)/./encodings/iso8859_9.py \
+	$(PYDIST_PYCDIR)/./encodings/johab.py \
+	$(PYDIST_PYCDIR)/./encodings/koi8_r.py \
+	$(PYDIST_PYCDIR)/./encodings/koi8_t.py \
+	$(PYDIST_PYCDIR)/./encodings/koi8_u.py \
+	$(PYDIST_PYCDIR)/./encodings/kz1048.py \
+	$(PYDIST_PYCDIR)/./encodings/latin_1.py \
+	$(PYDIST_PYCDIR)/./encodings/mac_arabic.py \
+	$(PYDIST_PYCDIR)/./encodings/mac_centeuro.py \
+	$(PYDIST_PYCDIR)/./encodings/mac_croatian.py \
+	$(PYDIST_PYCDIR)/./encodings/mac_cyrillic.py \
+	$(PYDIST_PYCDIR)/./encodings/mac_farsi.py \
+	$(PYDIST_PYCDIR)/./encodings/mac_greek.py \
+	$(PYDIST_PYCDIR)/./encodings/mac_iceland.py \
+	$(PYDIST_PYCDIR)/./encodings/mac_latin2.py \
+	$(PYDIST_PYCDIR)/./encodings/mac_roman.py \
+	$(PYDIST_PYCDIR)/./encodings/mac_romanian.py \
+	$(PYDIST_PYCDIR)/./encodings/mac_turkish.py \
+	$(PYDIST_PYCDIR)/./encodings/mbcs.py \
+	$(PYDIST_PYCDIR)/./encodings/oem.py \
+	$(PYDIST_PYCDIR)/./encodings/palmos.py \
+	$(PYDIST_PYCDIR)/./encodings/ptcp154.py \
+	$(PYDIST_PYCDIR)/./encodings/punycode.py \
+	$(PYDIST_PYCDIR)/./encodings/quopri_codec.py \
+	$(PYDIST_PYCDIR)/./encodings/raw_unicode_escape.py \
+	$(PYDIST_PYCDIR)/./encodings/rot_13.py \
+	$(PYDIST_PYCDIR)/./encodings/shift_jis.py \
+	$(PYDIST_PYCDIR)/./encodings/shift_jis_2004.py \
+	$(PYDIST_PYCDIR)/./encodings/shift_jisx0213.py \
+	$(PYDIST_PYCDIR)/./encodings/tis_620.py \
+	$(PYDIST_PYCDIR)/./encodings/undefined.py \
+	$(PYDIST_PYCDIR)/./encodings/unicode_escape.py \
+	$(PYDIST_PYCDIR)/./encodings/unicode_internal.py \
+	$(PYDIST_PYCDIR)/./encodings/utf_16.py \
+	$(PYDIST_PYCDIR)/./encodings/utf_16_be.py \
+	$(PYDIST_PYCDIR)/./encodings/utf_16_le.py \
+	$(PYDIST_PYCDIR)/./encodings/utf_32.py \
+	$(PYDIST_PYCDIR)/./encodings/utf_32_be.py \
+	$(PYDIST_PYCDIR)/./encodings/utf_32_le.py \
+	$(PYDIST_PYCDIR)/./encodings/utf_7.py \
+	$(PYDIST_PYCDIR)/./encodings/utf_8.py \
+	$(PYDIST_PYCDIR)/./encodings/utf_8_sig.py \
+	$(PYDIST_PYCDIR)/./encodings/uu_codec.py \
+	$(PYDIST_PYCDIR)/./encodings/zlib_codec.py \
+
+PYDIST_ENSUREPIP_SRCS = \
+	$(PYDIST_PYCDIR)/./ensurepip/__init__.py \
+	$(PYDIST_PYCDIR)/./ensurepip/__main__.py \
+	$(PYDIST_PYCDIR)/./ensurepip/_uninstall.py \
+
+PYDIST_HTML_SRCS = \
+	$(PYDIST_PYCDIR)/./html/__init__.py \
+	$(PYDIST_PYCDIR)/./html/entities.py \
+	$(PYDIST_PYCDIR)/./html/parser.py \
+
+PYDIST_HTTP_SRCS = \
+	$(PYDIST_PYCDIR)/./http/__init__.py \
+	$(PYDIST_PYCDIR)/./http/client.py \
+	$(PYDIST_PYCDIR)/./http/cookiejar.py \
+	$(PYDIST_PYCDIR)/./http/cookies.py \
+	$(PYDIST_PYCDIR)/./http/server.py \
+
+PYDIST_IDLELIB_SRCS = \
+	$(PYDIST_PYCDIR)/./idlelib/__init__.py \
+	$(PYDIST_PYCDIR)/./idlelib/__main__.py \
+	$(PYDIST_PYCDIR)/./idlelib/autocomplete.py \
+	$(PYDIST_PYCDIR)/./idlelib/autocomplete_w.py \
+	$(PYDIST_PYCDIR)/./idlelib/autoexpand.py \
+	$(PYDIST_PYCDIR)/./idlelib/browser.py \
+	$(PYDIST_PYCDIR)/./idlelib/calltip.py \
+	$(PYDIST_PYCDIR)/./idlelib/calltip_w.py \
+	$(PYDIST_PYCDIR)/./idlelib/codecontext.py \
+	$(PYDIST_PYCDIR)/./idlelib/colorizer.py \
+	$(PYDIST_PYCDIR)/./idlelib/config.py \
+	$(PYDIST_PYCDIR)/./idlelib/config_key.py \
+	$(PYDIST_PYCDIR)/./idlelib/configdialog.py \
+	$(PYDIST_PYCDIR)/./idlelib/debugger.py \
+	$(PYDIST_PYCDIR)/./idlelib/debugger_r.py \
+	$(PYDIST_PYCDIR)/./idlelib/debugobj.py \
+	$(PYDIST_PYCDIR)/./idlelib/debugobj_r.py \
+	$(PYDIST_PYCDIR)/./idlelib/delegator.py \
+	$(PYDIST_PYCDIR)/./idlelib/dynoption.py \
+	$(PYDIST_PYCDIR)/./idlelib/editor.py \
+	$(PYDIST_PYCDIR)/./idlelib/filelist.py \
+	$(PYDIST_PYCDIR)/./idlelib/grep.py \
+	$(PYDIST_PYCDIR)/./idlelib/help.py \
+	$(PYDIST_PYCDIR)/./idlelib/help_about.py \
+	$(PYDIST_PYCDIR)/./idlelib/history.py \
+	$(PYDIST_PYCDIR)/./idlelib/hyperparser.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle.py \
+	$(PYDIST_PYCDIR)/./idlelib/iomenu.py \
+	$(PYDIST_PYCDIR)/./idlelib/macosx.py \
+	$(PYDIST_PYCDIR)/./idlelib/mainmenu.py \
+	$(PYDIST_PYCDIR)/./idlelib/multicall.py \
+	$(PYDIST_PYCDIR)/./idlelib/outwin.py \
+	$(PYDIST_PYCDIR)/./idlelib/paragraph.py \
+	$(PYDIST_PYCDIR)/./idlelib/parenmatch.py \
+	$(PYDIST_PYCDIR)/./idlelib/pathbrowser.py \
+	$(PYDIST_PYCDIR)/./idlelib/percolator.py \
+	$(PYDIST_PYCDIR)/./idlelib/pyparse.py \
+	$(PYDIST_PYCDIR)/./idlelib/pyshell.py \
+	$(PYDIST_PYCDIR)/./idlelib/query.py \
+	$(PYDIST_PYCDIR)/./idlelib/redirector.py \
+	$(PYDIST_PYCDIR)/./idlelib/replace.py \
+	$(PYDIST_PYCDIR)/./idlelib/rpc.py \
+	$(PYDIST_PYCDIR)/./idlelib/rstrip.py \
+	$(PYDIST_PYCDIR)/./idlelib/run.py \
+	$(PYDIST_PYCDIR)/./idlelib/runscript.py \
+	$(PYDIST_PYCDIR)/./idlelib/scrolledlist.py \
+	$(PYDIST_PYCDIR)/./idlelib/search.py \
+	$(PYDIST_PYCDIR)/./idlelib/searchbase.py \
+	$(PYDIST_PYCDIR)/./idlelib/searchengine.py \
+	$(PYDIST_PYCDIR)/./idlelib/squeezer.py \
+	$(PYDIST_PYCDIR)/./idlelib/stackviewer.py \
+	$(PYDIST_PYCDIR)/./idlelib/statusbar.py \
+	$(PYDIST_PYCDIR)/./idlelib/textview.py \
+	$(PYDIST_PYCDIR)/./idlelib/tooltip.py \
+	$(PYDIST_PYCDIR)/./idlelib/tree.py \
+	$(PYDIST_PYCDIR)/./idlelib/undo.py \
+	$(PYDIST_PYCDIR)/./idlelib/window.py \
+	$(PYDIST_PYCDIR)/./idlelib/zoomheight.py \
+	$(PYDIST_PYCDIR)/./idlelib/zzdummy.py \
+
+PYDIST_IDLELIB_IDLE_TEST_SRCS = \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/__init__.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/htest.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/mock_idle.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/mock_tk.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/template.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_autocomplete.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_autocomplete_w.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_autoexpand.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_browser.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_calltip.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_calltip_w.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_codecontext.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_colorizer.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_config.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_config_key.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_configdialog.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_debugger.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_debugger_r.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_debugobj.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_debugobj_r.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_delegator.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_editmenu.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_editor.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_filelist.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_grep.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_help.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_help_about.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_history.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_hyperparser.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_iomenu.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_macosx.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_mainmenu.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_multicall.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_outwin.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_paragraph.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_parenmatch.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_pathbrowser.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_percolator.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_pyparse.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_pyshell.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_query.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_redirector.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_replace.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_rpc.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_rstrip.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_run.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_runscript.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_scrolledlist.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_search.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_searchbase.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_searchengine.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_squeezer.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_stackviewer.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_statusbar.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_text.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_textview.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_tooltip.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_tree.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_undo.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_warning.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_window.py \
+	$(PYDIST_PYCDIR)/./idlelib/idle_test/test_zoomheight.py \
+
+PYDIST_IMPORTLIB_SRCS = \
+	$(PYDIST_PYCDIR)/./importlib/__init__.py \
+	$(PYDIST_PYCDIR)/./importlib/_bootstrap.py \
+	$(PYDIST_PYCDIR)/./importlib/_bootstrap_external.py \
+	$(PYDIST_PYCDIR)/./importlib/abc.py \
+	$(PYDIST_PYCDIR)/./importlib/machinery.py \
+	$(PYDIST_PYCDIR)/./importlib/resources.py \
+	$(PYDIST_PYCDIR)/./importlib/util.py \
+
+PYDIST_JSON_SRCS = \
+	$(PYDIST_PYCDIR)/./json/__init__.py \
+	$(PYDIST_PYCDIR)/./json/decoder.py \
+	$(PYDIST_PYCDIR)/./json/encoder.py \
+	$(PYDIST_PYCDIR)/./json/scanner.py \
+	$(PYDIST_PYCDIR)/./json/tool.py \
+
+PYDIST_LIB2TO3_SRCS = \
+	$(PYDIST_PYCDIR)/./lib2to3/__init__.py \
+	$(PYDIST_PYCDIR)/./lib2to3/__main__.py \
+	$(PYDIST_PYCDIR)/./lib2to3/btm_matcher.py \
+	$(PYDIST_PYCDIR)/./lib2to3/btm_utils.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixer_base.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixer_util.py \
+	$(PYDIST_PYCDIR)/./lib2to3/main.py \
+	$(PYDIST_PYCDIR)/./lib2to3/patcomp.py \
+	$(PYDIST_PYCDIR)/./lib2to3/pygram.py \
+	$(PYDIST_PYCDIR)/./lib2to3/pytree.py \
+	$(PYDIST_PYCDIR)/./lib2to3/refactor.py \
+
+PYDIST_LIB2TO3_FIXES_SRCS = \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/__init__.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_apply.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_asserts.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_basestring.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_buffer.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_dict.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_except.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_exec.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_execfile.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_exitfunc.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_filter.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_funcattrs.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_future.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_getcwdu.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_has_key.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_idioms.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_import.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_imports.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_imports2.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_input.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_intern.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_isinstance.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_itertools.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_itertools_imports.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_long.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_map.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_metaclass.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_methodattrs.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_ne.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_next.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_nonzero.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_numliterals.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_operator.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_paren.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_print.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_raise.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_raw_input.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_reduce.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_reload.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_renames.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_repr.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_set_literal.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_standarderror.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_sys_exc.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_throw.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_tuple_params.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_types.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_unicode.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_urllib.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_ws_comma.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_xrange.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_xreadlines.py \
+	$(PYDIST_PYCDIR)/./lib2to3/fixes/fix_zip.py \
+
+PYDIST_LIB2TO3_PGEN2_SRCS = \
+	$(PYDIST_PYCDIR)/./lib2to3/pgen2/__init__.py \
+	$(PYDIST_PYCDIR)/./lib2to3/pgen2/conv.py \
+	$(PYDIST_PYCDIR)/./lib2to3/pgen2/driver.py \
+	$(PYDIST_PYCDIR)/./lib2to3/pgen2/grammar.py \
+	$(PYDIST_PYCDIR)/./lib2to3/pgen2/literals.py \
+	$(PYDIST_PYCDIR)/./lib2to3/pgen2/parse.py \
+	$(PYDIST_PYCDIR)/./lib2to3/pgen2/pgen.py \
+	$(PYDIST_PYCDIR)/./lib2to3/pgen2/token.py \
+	$(PYDIST_PYCDIR)/./lib2to3/pgen2/tokenize.py \
+
+PYDIST_LIB2TO3_TESTS_SRCS = \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/__init__.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/__main__.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/pytree_idempotency.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/support.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/test_all_fixers.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/test_fixers.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/test_main.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/test_parser.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/test_pytree.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/test_refactor.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/test_util.py \
+
+PYDIST_LIB2TO3_TESTS_DATA_SRCS = \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/data/bom.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/data/crlf.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/data/different_encoding.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/data/false_encoding.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/data/infinite_recursion.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/data/py2_test_grammar.py \
+
+PYDIST_LIB2TO3_TESTS_DATA_FIXERS_SRCS = \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/data/fixers/bad_order.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/data/fixers/no_fixer_cls.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/data/fixers/parrot_example.py \
+
+PYDIST_LIB2TO3_TESTS_DATA_FIXERS_MYFIXES_SRCS = \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/data/fixers/myfixes/__init__.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/data/fixers/myfixes/fix_explicit.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/data/fixers/myfixes/fix_first.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/data/fixers/myfixes/fix_last.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/data/fixers/myfixes/fix_parrot.py \
+	$(PYDIST_PYCDIR)/./lib2to3/tests/data/fixers/myfixes/fix_preorder.py \
+
+PYDIST_LOGGING_SRCS = \
+	$(PYDIST_PYCDIR)/./logging/__init__.py \
+	$(PYDIST_PYCDIR)/./logging/config.py \
+	$(PYDIST_PYCDIR)/./logging/handlers.py \
+
+PYDIST_MSILIB_SRCS = \
+	$(PYDIST_PYCDIR)/./msilib/__init__.py \
+	$(PYDIST_PYCDIR)/./msilib/schema.py \
+	$(PYDIST_PYCDIR)/./msilib/sequence.py \
+	$(PYDIST_PYCDIR)/./msilib/text.py \
+
+PYDIST_MULTIPROCESSING_SRCS = \
+	$(PYDIST_PYCDIR)/./multiprocessing/__init__.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/connection.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/context.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/forkserver.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/heap.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/managers.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/pool.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/popen_fork.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/popen_forkserver.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/popen_spawn_posix.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/popen_spawn_win32.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/process.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/queues.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/reduction.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/resource_sharer.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/semaphore_tracker.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/sharedctypes.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/spawn.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/synchronize.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/util.py \
+
+PYDIST_MULTIPROCESSING_DUMMY_SRCS = \
+	$(PYDIST_PYCDIR)/./multiprocessing/dummy/__init__.py \
+	$(PYDIST_PYCDIR)/./multiprocessing/dummy/connection.py \
+
+PYDIST_PYDOC_DATA_SRCS = \
+	$(PYDIST_PYCDIR)/./pydoc_data/__init__.py \
+	$(PYDIST_PYCDIR)/./pydoc_data/topics.py \
+
+PYDIST_SQLITE3_SRCS = \
+	$(PYDIST_PYCDIR)/./sqlite3/__init__.py \
+	$(PYDIST_PYCDIR)/./sqlite3/dbapi2.py \
+	$(PYDIST_PYCDIR)/./sqlite3/dump.py \
+
+PYDIST_SQLITE3_TEST_SRCS = \
+	$(PYDIST_PYCDIR)/./sqlite3/test/__init__.py \
+	$(PYDIST_PYCDIR)/./sqlite3/test/backup.py \
+	$(PYDIST_PYCDIR)/./sqlite3/test/dbapi.py \
+	$(PYDIST_PYCDIR)/./sqlite3/test/dump.py \
+	$(PYDIST_PYCDIR)/./sqlite3/test/factory.py \
+	$(PYDIST_PYCDIR)/./sqlite3/test/hooks.py \
+	$(PYDIST_PYCDIR)/./sqlite3/test/regression.py \
+	$(PYDIST_PYCDIR)/./sqlite3/test/transactions.py \
+	$(PYDIST_PYCDIR)/./sqlite3/test/types.py \
+	$(PYDIST_PYCDIR)/./sqlite3/test/userfunctions.py \
+
+PYDIST_TKINTER_SRCS = \
+	$(PYDIST_PYCDIR)/./tkinter/__init__.py \
+	$(PYDIST_PYCDIR)/./tkinter/__main__.py \
+	$(PYDIST_PYCDIR)/./tkinter/colorchooser.py \
+	$(PYDIST_PYCDIR)/./tkinter/commondialog.py \
+	$(PYDIST_PYCDIR)/./tkinter/constants.py \
+	$(PYDIST_PYCDIR)/./tkinter/dialog.py \
+	$(PYDIST_PYCDIR)/./tkinter/dnd.py \
+	$(PYDIST_PYCDIR)/./tkinter/filedialog.py \
+	$(PYDIST_PYCDIR)/./tkinter/font.py \
+	$(PYDIST_PYCDIR)/./tkinter/messagebox.py \
+	$(PYDIST_PYCDIR)/./tkinter/scrolledtext.py \
+	$(PYDIST_PYCDIR)/./tkinter/simpledialog.py \
+	$(PYDIST_PYCDIR)/./tkinter/tix.py \
+	$(PYDIST_PYCDIR)/./tkinter/ttk.py \
+
+PYDIST_TKINTER_TEST_SRCS = \
+	$(PYDIST_PYCDIR)/./tkinter/test/__init__.py \
+	$(PYDIST_PYCDIR)/./tkinter/test/runtktests.py \
+	$(PYDIST_PYCDIR)/./tkinter/test/support.py \
+	$(PYDIST_PYCDIR)/./tkinter/test/widget_tests.py \
+
+PYDIST_TKINTER_TEST_TEST_TKINTER_SRCS = \
+	$(PYDIST_PYCDIR)/./tkinter/test/test_tkinter/__init__.py \
+	$(PYDIST_PYCDIR)/./tkinter/test/test_tkinter/test_font.py \
+	$(PYDIST_PYCDIR)/./tkinter/test/test_tkinter/test_geometry_managers.py \
+	$(PYDIST_PYCDIR)/./tkinter/test/test_tkinter/test_images.py \
+	$(PYDIST_PYCDIR)/./tkinter/test/test_tkinter/test_loadtk.py \
+	$(PYDIST_PYCDIR)/./tkinter/test/test_tkinter/test_misc.py \
+	$(PYDIST_PYCDIR)/./tkinter/test/test_tkinter/test_text.py \
+	$(PYDIST_PYCDIR)/./tkinter/test/test_tkinter/test_variables.py \
+	$(PYDIST_PYCDIR)/./tkinter/test/test_tkinter/test_widgets.py \
+
+PYDIST_TKINTER_TEST_TEST_TTK_SRCS = \
+	$(PYDIST_PYCDIR)/./tkinter/test/test_ttk/__init__.py \
+	$(PYDIST_PYCDIR)/./tkinter/test/test_ttk/test_extensions.py \
+	$(PYDIST_PYCDIR)/./tkinter/test/test_ttk/test_functions.py \
+	$(PYDIST_PYCDIR)/./tkinter/test/test_ttk/test_style.py \
+	$(PYDIST_PYCDIR)/./tkinter/test/test_ttk/test_widgets.py \
+
+PYDIST_TURTLEDEMO_SRCS = \
+	$(PYDIST_PYCDIR)/./turtledemo/__init__.py \
+	$(PYDIST_PYCDIR)/./turtledemo/__main__.py \
+	$(PYDIST_PYCDIR)/./turtledemo/bytedesign.py \
+	$(PYDIST_PYCDIR)/./turtledemo/chaos.py \
+	$(PYDIST_PYCDIR)/./turtledemo/clock.py \
+	$(PYDIST_PYCDIR)/./turtledemo/colormixer.py \
+	$(PYDIST_PYCDIR)/./turtledemo/forest.py \
+	$(PYDIST_PYCDIR)/./turtledemo/fractalcurves.py \
+	$(PYDIST_PYCDIR)/./turtledemo/lindenmayer.py \
+	$(PYDIST_PYCDIR)/./turtledemo/minimal_hanoi.py \
+	$(PYDIST_PYCDIR)/./turtledemo/nim.py \
+	$(PYDIST_PYCDIR)/./turtledemo/paint.py \
+	$(PYDIST_PYCDIR)/./turtledemo/peace.py \
+	$(PYDIST_PYCDIR)/./turtledemo/penrose.py \
+	$(PYDIST_PYCDIR)/./turtledemo/planet_and_moon.py \
+	$(PYDIST_PYCDIR)/./turtledemo/rosette.py \
+	$(PYDIST_PYCDIR)/./turtledemo/round_dance.py \
+	$(PYDIST_PYCDIR)/./turtledemo/sorting_animate.py \
+	$(PYDIST_PYCDIR)/./turtledemo/tree.py \
+	$(PYDIST_PYCDIR)/./turtledemo/two_canvases.py \
+	$(PYDIST_PYCDIR)/./turtledemo/yinyang.py \
+
+PYDIST_UNITTEST_SRCS = \
+	$(PYDIST_PYCDIR)/./unittest/__init__.py \
+	$(PYDIST_PYCDIR)/./unittest/__main__.py \
+	$(PYDIST_PYCDIR)/./unittest/case.py \
+	$(PYDIST_PYCDIR)/./unittest/loader.py \
+	$(PYDIST_PYCDIR)/./unittest/main.py \
+	$(PYDIST_PYCDIR)/./unittest/mock.py \
+	$(PYDIST_PYCDIR)/./unittest/result.py \
+	$(PYDIST_PYCDIR)/./unittest/runner.py \
+	$(PYDIST_PYCDIR)/./unittest/signals.py \
+	$(PYDIST_PYCDIR)/./unittest/suite.py \
+	$(PYDIST_PYCDIR)/./unittest/util.py \
+
+PYDIST_UNITTEST_TEST_SRCS = \
+	$(PYDIST_PYCDIR)/./unittest/test/__init__.py \
+	$(PYDIST_PYCDIR)/./unittest/test/__main__.py \
+	$(PYDIST_PYCDIR)/./unittest/test/_test_warnings.py \
+	$(PYDIST_PYCDIR)/./unittest/test/dummy.py \
+	$(PYDIST_PYCDIR)/./unittest/test/support.py \
+	$(PYDIST_PYCDIR)/./unittest/test/test_assertions.py \
+	$(PYDIST_PYCDIR)/./unittest/test/test_break.py \
+	$(PYDIST_PYCDIR)/./unittest/test/test_case.py \
+	$(PYDIST_PYCDIR)/./unittest/test/test_discovery.py \
+	$(PYDIST_PYCDIR)/./unittest/test/test_functiontestcase.py \
+	$(PYDIST_PYCDIR)/./unittest/test/test_loader.py \
+	$(PYDIST_PYCDIR)/./unittest/test/test_program.py \
+	$(PYDIST_PYCDIR)/./unittest/test/test_result.py \
+	$(PYDIST_PYCDIR)/./unittest/test/test_runner.py \
+	$(PYDIST_PYCDIR)/./unittest/test/test_setups.py \
+	$(PYDIST_PYCDIR)/./unittest/test/test_skipping.py \
+	$(PYDIST_PYCDIR)/./unittest/test/test_suite.py \
+
+PYDIST_UNITTEST_TEST_TESTMOCK_SRCS = \
+	$(PYDIST_PYCDIR)/./unittest/test/testmock/__init__.py \
+	$(PYDIST_PYCDIR)/./unittest/test/testmock/__main__.py \
+	$(PYDIST_PYCDIR)/./unittest/test/testmock/support.py \
+	$(PYDIST_PYCDIR)/./unittest/test/testmock/testcallable.py \
+	$(PYDIST_PYCDIR)/./unittest/test/testmock/testhelpers.py \
+	$(PYDIST_PYCDIR)/./unittest/test/testmock/testmagicmethods.py \
+	$(PYDIST_PYCDIR)/./unittest/test/testmock/testmock.py \
+	$(PYDIST_PYCDIR)/./unittest/test/testmock/testpatch.py \
+	$(PYDIST_PYCDIR)/./unittest/test/testmock/testsealable.py \
+	$(PYDIST_PYCDIR)/./unittest/test/testmock/testsentinel.py \
+	$(PYDIST_PYCDIR)/./unittest/test/testmock/testwith.py \
+
+PYDIST_URLLIB_SRCS = \
+	$(PYDIST_PYCDIR)/./urllib/__init__.py \
+	$(PYDIST_PYCDIR)/./urllib/error.py \
+	$(PYDIST_PYCDIR)/./urllib/parse.py \
+	$(PYDIST_PYCDIR)/./urllib/request.py \
+	$(PYDIST_PYCDIR)/./urllib/response.py \
+	$(PYDIST_PYCDIR)/./urllib/robotparser.py \
+
+PYDIST_VENV_SRCS = \
+	$(PYDIST_PYCDIR)/./venv/__init__.py \
+	$(PYDIST_PYCDIR)/./venv/__main__.py \
+
+PYDIST_WSGIREF_SRCS = \
+	$(PYDIST_PYCDIR)/./wsgiref/__init__.py \
+	$(PYDIST_PYCDIR)/./wsgiref/handlers.py \
+	$(PYDIST_PYCDIR)/./wsgiref/headers.py \
+	$(PYDIST_PYCDIR)/./wsgiref/simple_server.py \
+	$(PYDIST_PYCDIR)/./wsgiref/util.py \
+	$(PYDIST_PYCDIR)/./wsgiref/validate.py \
+
+PYDIST_XML_SRCS = \
+	$(PYDIST_PYCDIR)/./xml/__init__.py \
+
+PYDIST_XML_DOM_SRCS = \
+	$(PYDIST_PYCDIR)/./xml/dom/NodeFilter.py \
+	$(PYDIST_PYCDIR)/./xml/dom/__init__.py \
+	$(PYDIST_PYCDIR)/./xml/dom/domreg.py \
+	$(PYDIST_PYCDIR)/./xml/dom/expatbuilder.py \
+	$(PYDIST_PYCDIR)/./xml/dom/minicompat.py \
+	$(PYDIST_PYCDIR)/./xml/dom/minidom.py \
+	$(PYDIST_PYCDIR)/./xml/dom/pulldom.py \
+	$(PYDIST_PYCDIR)/./xml/dom/xmlbuilder.py \
+
+PYDIST_XML_ETREE_SRCS = \
+	$(PYDIST_PYCDIR)/./xml/etree/ElementInclude.py \
+	$(PYDIST_PYCDIR)/./xml/etree/ElementPath.py \
+	$(PYDIST_PYCDIR)/./xml/etree/ElementTree.py \
+	$(PYDIST_PYCDIR)/./xml/etree/__init__.py \
+	$(PYDIST_PYCDIR)/./xml/etree/cElementTree.py \
+
+PYDIST_XML_PARSERS_SRCS = \
+	$(PYDIST_PYCDIR)/./xml/parsers/__init__.py \
+	$(PYDIST_PYCDIR)/./xml/parsers/expat.py \
+
+PYDIST_XML_SAX_SRCS = \
+	$(PYDIST_PYCDIR)/./xml/sax/__init__.py \
+	$(PYDIST_PYCDIR)/./xml/sax/_exceptions.py \
+	$(PYDIST_PYCDIR)/./xml/sax/expatreader.py \
+	$(PYDIST_PYCDIR)/./xml/sax/handler.py \
+	$(PYDIST_PYCDIR)/./xml/sax/saxutils.py \
+	$(PYDIST_PYCDIR)/./xml/sax/xmlreader.py \
+
+PYDIST_XMLRPC_SRCS = \
+	$(PYDIST_PYCDIR)/./xmlrpc/__init__.py \
+	$(PYDIST_PYCDIR)/./xmlrpc/client.py \
+	$(PYDIST_PYCDIR)/./xmlrpc/server.py \
+
+
+
+pydist.tag:
+	mkdir -p $(PYDIST_PYCDIR)/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./asyncio
+	mkdir -p $(PYDIST_PYCDIR)/./asyncio/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./collections
+	mkdir -p $(PYDIST_PYCDIR)/./collections/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./concurrent
+	mkdir -p $(PYDIST_PYCDIR)/./concurrent/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./concurrent/futures
+	mkdir -p $(PYDIST_PYCDIR)/./concurrent/futures/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./ctypes
+	mkdir -p $(PYDIST_PYCDIR)/./ctypes/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./ctypes/macholib
+	mkdir -p $(PYDIST_PYCDIR)/./ctypes/macholib/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./ctypes/test
+	mkdir -p $(PYDIST_PYCDIR)/./ctypes/test/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./curses
+	mkdir -p $(PYDIST_PYCDIR)/./curses/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./dbm
+	mkdir -p $(PYDIST_PYCDIR)/./dbm/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./distutils
+	mkdir -p $(PYDIST_PYCDIR)/./distutils/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./distutils/command
+	mkdir -p $(PYDIST_PYCDIR)/./distutils/command/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./distutils/tests
+	mkdir -p $(PYDIST_PYCDIR)/./distutils/tests/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./email
+	mkdir -p $(PYDIST_PYCDIR)/./email/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./email/mime
+	mkdir -p $(PYDIST_PYCDIR)/./email/mime/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./encodings
+	mkdir -p $(PYDIST_PYCDIR)/./encodings/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./ensurepip
+	mkdir -p $(PYDIST_PYCDIR)/./ensurepip/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./ensurepip/_bundled
+	mkdir -p $(PYDIST_PYCDIR)/./ensurepip/_bundled/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./html
+	mkdir -p $(PYDIST_PYCDIR)/./html/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./http
+	mkdir -p $(PYDIST_PYCDIR)/./http/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./idlelib
+	mkdir -p $(PYDIST_PYCDIR)/./idlelib/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./idlelib/Icons
+	mkdir -p $(PYDIST_PYCDIR)/./idlelib/Icons/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./idlelib/idle_test
+	mkdir -p $(PYDIST_PYCDIR)/./idlelib/idle_test/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./importlib
+	mkdir -p $(PYDIST_PYCDIR)/./importlib/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./json
+	mkdir -p $(PYDIST_PYCDIR)/./json/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./lib2to3
+	mkdir -p $(PYDIST_PYCDIR)/./lib2to3/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./lib2to3/fixes
+	mkdir -p $(PYDIST_PYCDIR)/./lib2to3/fixes/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./lib2to3/pgen2
+	mkdir -p $(PYDIST_PYCDIR)/./lib2to3/pgen2/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./lib2to3/tests
+	mkdir -p $(PYDIST_PYCDIR)/./lib2to3/tests/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./lib2to3/tests/data
+	mkdir -p $(PYDIST_PYCDIR)/./lib2to3/tests/data/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./lib2to3/tests/data/fixers
+	mkdir -p $(PYDIST_PYCDIR)/./lib2to3/tests/data/fixers/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./lib2to3/tests/data/fixers/myfixes
+	mkdir -p $(PYDIST_PYCDIR)/./lib2to3/tests/data/fixers/myfixes/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./logging
+	mkdir -p $(PYDIST_PYCDIR)/./logging/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./msilib
+	mkdir -p $(PYDIST_PYCDIR)/./msilib/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./multiprocessing
+	mkdir -p $(PYDIST_PYCDIR)/./multiprocessing/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./multiprocessing/dummy
+	mkdir -p $(PYDIST_PYCDIR)/./multiprocessing/dummy/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./pydoc_data
+	mkdir -p $(PYDIST_PYCDIR)/./pydoc_data/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./site-packages
+	mkdir -p $(PYDIST_PYCDIR)/./site-packages/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./sqlite3
+	mkdir -p $(PYDIST_PYCDIR)/./sqlite3/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./sqlite3/test
+	mkdir -p $(PYDIST_PYCDIR)/./sqlite3/test/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./tkinter
+	mkdir -p $(PYDIST_PYCDIR)/./tkinter/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./tkinter/test
+	mkdir -p $(PYDIST_PYCDIR)/./tkinter/test/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./tkinter/test/test_tkinter
+	mkdir -p $(PYDIST_PYCDIR)/./tkinter/test/test_tkinter/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./tkinter/test/test_ttk
+	mkdir -p $(PYDIST_PYCDIR)/./tkinter/test/test_ttk/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./turtledemo
+	mkdir -p $(PYDIST_PYCDIR)/./turtledemo/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./unittest
+	mkdir -p $(PYDIST_PYCDIR)/./unittest/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./unittest/test
+	mkdir -p $(PYDIST_PYCDIR)/./unittest/test/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./unittest/test/testmock
+	mkdir -p $(PYDIST_PYCDIR)/./unittest/test/testmock/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./urllib
+	mkdir -p $(PYDIST_PYCDIR)/./urllib/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./venv
+	mkdir -p $(PYDIST_PYCDIR)/./venv/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./venv/scripts
+	mkdir -p $(PYDIST_PYCDIR)/./venv/scripts/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./venv/scripts/common
+	mkdir -p $(PYDIST_PYCDIR)/./venv/scripts/common/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./venv/scripts/nt
+	mkdir -p $(PYDIST_PYCDIR)/./venv/scripts/nt/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./venv/scripts/posix
+	mkdir -p $(PYDIST_PYCDIR)/./venv/scripts/posix/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./wsgiref
+	mkdir -p $(PYDIST_PYCDIR)/./wsgiref/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./xml
+	mkdir -p $(PYDIST_PYCDIR)/./xml/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./xml/dom
+	mkdir -p $(PYDIST_PYCDIR)/./xml/dom/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./xml/etree
+	mkdir -p $(PYDIST_PYCDIR)/./xml/etree/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./xml/parsers
+	mkdir -p $(PYDIST_PYCDIR)/./xml/parsers/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./xml/sax
+	mkdir -p $(PYDIST_PYCDIR)/./xml/sax/./__pycache__
+	mkdir -p $(PYDIST_PYCDIR)/./xmlrpc
+	mkdir -p $(PYDIST_PYCDIR)/./xmlrpc/./__pycache__
+	touch pydist.tag
+
+
+$(PYDIST_PYCDIR)/./%.py:                                                        $(SOURCE_DIR)/Lib/./%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/. \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./asyncio/%.py:                                                $(SOURCE_DIR)/Lib/./asyncio/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./asyncio \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./collections/%.py:                                            $(SOURCE_DIR)/Lib/./collections/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./collections \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./concurrent/%.py:                                             $(SOURCE_DIR)/Lib/./concurrent/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./concurrent \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./concurrent/futures/%.py:                                     $(SOURCE_DIR)/Lib/./concurrent/futures/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./concurrent/futures \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./ctypes/%.py:                                                 $(SOURCE_DIR)/Lib/./ctypes/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./ctypes \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./ctypes/macholib/%.py:                                        $(SOURCE_DIR)/Lib/./ctypes/macholib/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./ctypes/macholib \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./ctypes/test/%.py:                                            $(SOURCE_DIR)/Lib/./ctypes/test/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./ctypes/test \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./curses/%.py:                                                 $(SOURCE_DIR)/Lib/./curses/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./curses \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./dbm/%.py:                                                    $(SOURCE_DIR)/Lib/./dbm/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./dbm \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./distutils/%.py:                                              $(SOURCE_DIR)/Lib/./distutils/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./distutils \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./distutils/command/%.py:                                      $(SOURCE_DIR)/Lib/./distutils/command/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./distutils/command \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./distutils/tests/%.py:                                        $(SOURCE_DIR)/Lib/./distutils/tests/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./distutils/tests \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./email/%.py:                                                  $(SOURCE_DIR)/Lib/./email/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./email \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./email/mime/%.py:                                             $(SOURCE_DIR)/Lib/./email/mime/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./email/mime \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./encodings/%.py:                                              $(SOURCE_DIR)/Lib/./encodings/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./encodings \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./ensurepip/%.py:                                              $(SOURCE_DIR)/Lib/./ensurepip/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./ensurepip \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./ensurepip/_bundled/%.py:                                     $(SOURCE_DIR)/Lib/./ensurepip/_bundled/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./ensurepip/_bundled \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./html/%.py:                                                   $(SOURCE_DIR)/Lib/./html/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./html \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./http/%.py:                                                   $(SOURCE_DIR)/Lib/./http/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./http \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./idlelib/%.py:                                                $(SOURCE_DIR)/Lib/./idlelib/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./idlelib \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./idlelib/Icons/%.py:                                          $(SOURCE_DIR)/Lib/./idlelib/Icons/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./idlelib/Icons \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./idlelib/idle_test/%.py:                                      $(SOURCE_DIR)/Lib/./idlelib/idle_test/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./idlelib/idle_test \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./importlib/%.py:                                              $(SOURCE_DIR)/Lib/./importlib/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./importlib \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./json/%.py:                                                   $(SOURCE_DIR)/Lib/./json/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./json \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./lib2to3/%.py:                                                $(SOURCE_DIR)/Lib/./lib2to3/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./lib2to3 \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./lib2to3/fixes/%.py:                                          $(SOURCE_DIR)/Lib/./lib2to3/fixes/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./lib2to3/fixes \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./lib2to3/pgen2/%.py:                                          $(SOURCE_DIR)/Lib/./lib2to3/pgen2/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./lib2to3/pgen2 \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./lib2to3/tests/%.py:                                          $(SOURCE_DIR)/Lib/./lib2to3/tests/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./lib2to3/tests \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./lib2to3/tests/data/%.py:                                     $(SOURCE_DIR)/Lib/./lib2to3/tests/data/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./lib2to3/tests/data \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./lib2to3/tests/data/fixers/%.py:                              $(SOURCE_DIR)/Lib/./lib2to3/tests/data/fixers/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./lib2to3/tests/data/fixers \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./lib2to3/tests/data/fixers/myfixes/%.py:                      $(SOURCE_DIR)/Lib/./lib2to3/tests/data/fixers/myfixes/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./lib2to3/tests/data/fixers/myfixes \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./logging/%.py:                                                $(SOURCE_DIR)/Lib/./logging/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./logging \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./msilib/%.py:                                                 $(SOURCE_DIR)/Lib/./msilib/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./msilib \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./multiprocessing/%.py:                                        $(SOURCE_DIR)/Lib/./multiprocessing/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./multiprocessing \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./multiprocessing/dummy/%.py:                                  $(SOURCE_DIR)/Lib/./multiprocessing/dummy/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./multiprocessing/dummy \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./pydoc_data/%.py:                                             $(SOURCE_DIR)/Lib/./pydoc_data/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./pydoc_data \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./site-packages/%.py:                                          $(SOURCE_DIR)/Lib/./site-packages/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./site-packages \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./sqlite3/%.py:                                                $(SOURCE_DIR)/Lib/./sqlite3/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./sqlite3 \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./sqlite3/test/%.py:                                           $(SOURCE_DIR)/Lib/./sqlite3/test/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./sqlite3/test \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./tkinter/%.py:                                                $(SOURCE_DIR)/Lib/./tkinter/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./tkinter \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./tkinter/test/%.py:                                           $(SOURCE_DIR)/Lib/./tkinter/test/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./tkinter/test \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./tkinter/test/test_tkinter/%.py:                              $(SOURCE_DIR)/Lib/./tkinter/test/test_tkinter/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./tkinter/test/test_tkinter \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./tkinter/test/test_ttk/%.py:                                  $(SOURCE_DIR)/Lib/./tkinter/test/test_ttk/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./tkinter/test/test_ttk \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./turtledemo/%.py:                                             $(SOURCE_DIR)/Lib/./turtledemo/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./turtledemo \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./unittest/%.py:                                               $(SOURCE_DIR)/Lib/./unittest/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./unittest \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./unittest/test/%.py:                                          $(SOURCE_DIR)/Lib/./unittest/test/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./unittest/test \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./unittest/test/testmock/%.py:                                 $(SOURCE_DIR)/Lib/./unittest/test/testmock/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./unittest/test/testmock \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./urllib/%.py:                                                 $(SOURCE_DIR)/Lib/./urllib/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./urllib \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./venv/%.py:                                                   $(SOURCE_DIR)/Lib/./venv/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./venv \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./venv/scripts/%.py:                                           $(SOURCE_DIR)/Lib/./venv/scripts/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./venv/scripts \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./venv/scripts/common/%.py:                                    $(SOURCE_DIR)/Lib/./venv/scripts/common/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./venv/scripts/common \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./venv/scripts/nt/%.py:                                        $(SOURCE_DIR)/Lib/./venv/scripts/nt/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./venv/scripts/nt \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./venv/scripts/posix/%.py:                                     $(SOURCE_DIR)/Lib/./venv/scripts/posix/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./venv/scripts/posix \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./wsgiref/%.py:                                                $(SOURCE_DIR)/Lib/./wsgiref/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./wsgiref \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./xml/%.py:                                                    $(SOURCE_DIR)/Lib/./xml/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./xml \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./xml/dom/%.py:                                                $(SOURCE_DIR)/Lib/./xml/dom/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./xml/dom \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./xml/etree/%.py:                                              $(SOURCE_DIR)/Lib/./xml/etree/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./xml/etree \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./xml/parsers/%.py:                                            $(SOURCE_DIR)/Lib/./xml/parsers/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./xml/parsers \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./xml/sax/%.py:                                                $(SOURCE_DIR)/Lib/./xml/sax/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./xml/sax \
+		$(PYCOPY) $<
+
+$(PYDIST_PYCDIR)/./xmlrpc/%.py:                                                 $(SOURCE_DIR)/Lib/./xmlrpc/%.py pydist.tag
+		PYCOPY_PYTHON=$(PYCOPY_PYTHON) \
+		PYCOPY_PREFIX=$(PYCOPY_PREFIX) \
+		PYCOPY_DSTDIR=$(PYDIST_PYCDIR)/./xmlrpc \
+		$(PYCOPY) $<
+
+PYDIST_PY_SRCS = \
+	$(PYDIST_SYSCFG_SRCS) \
+	$(PYDIST_SRCS) \
+	$(PYDIST_ASYNCIO_SRCS) \
+	$(PYDIST_COLLECTIONS_SRCS) \
+	$(PYDIST_CONCURRENT_SRCS) \
+	$(PYDIST_CONCURRENT_FUTURES_SRCS) \
+	$(PYDIST_CTYPES_SRCS) \
+	$(PYDIST_CTYPES_MACHOLIB_SRCS) \
+	$(PYDIST_CTYPES_TEST_SRCS) \
+	$(PYDIST_CURSES_SRCS) \
+	$(PYDIST_DBM_SRCS) \
+	$(PYDIST_DISTUTILS_SRCS) \
+	$(PYDIST_DISTUTILS_COMMAND_SRCS) \
+	$(PYDIST_DISTUTILS_TESTS_SRCS) \
+	$(PYDIST_EMAIL_SRCS) \
+	$(PYDIST_EMAIL_MIME_SRCS) \
+	$(PYDIST_ENCODINGS_SRCS) \
+	$(PYDIST_ENSUREPIP_SRCS) \
+	$(PYDIST_HTML_SRCS) \
+	$(PYDIST_HTTP_SRCS) \
+	$(PYDIST_IDLELIB_SRCS) \
+	$(PYDIST_IDLELIB_IDLE_TEST_SRCS) \
+	$(PYDIST_IMPORTLIB_SRCS) \
+	$(PYDIST_JSON_SRCS) \
+	$(PYDIST_LIB2TO3_SRCS) \
+	$(PYDIST_LIB2TO3_FIXES_SRCS) \
+	$(PYDIST_LIB2TO3_PGEN2_SRCS) \
+	$(PYDIST_LIB2TO3_TESTS_SRCS) \
+	$(PYDIST_LIB2TO3_TESTS_DATA_SRCS) \
+	$(PYDIST_LIB2TO3_TESTS_DATA_FIXERS_SRCS) \
+	$(PYDIST_LIB2TO3_TESTS_DATA_FIXERS_MYFIXES_SRCS) \
+	$(PYDIST_LOGGING_SRCS) \
+	$(PYDIST_MSILIB_SRCS) \
+	$(PYDIST_MULTIPROCESSING_SRCS) \
+	$(PYDIST_MULTIPROCESSING_DUMMY_SRCS) \
+	$(PYDIST_PYDOC_DATA_SRCS) \
+	$(PYDIST_SQLITE3_SRCS) \
+	$(PYDIST_SQLITE3_TEST_SRCS) \
+	$(PYDIST_TKINTER_SRCS) \
+	$(PYDIST_TKINTER_TEST_SRCS) \
+	$(PYDIST_TKINTER_TEST_TEST_TKINTER_SRCS) \
+	$(PYDIST_TKINTER_TEST_TEST_TTK_SRCS) \
+	$(PYDIST_TURTLEDEMO_SRCS) \
+	$(PYDIST_UNITTEST_SRCS) \
+	$(PYDIST_UNITTEST_TEST_SRCS) \
+	$(PYDIST_UNITTEST_TEST_TESTMOCK_SRCS) \
+	$(PYDIST_URLLIB_SRCS) \
+	$(PYDIST_VENV_SRCS) \
+	$(PYDIST_WSGIREF_SRCS) \
+	$(PYDIST_XML_SRCS) \
+	$(PYDIST_XML_DOM_SRCS) \
+	$(PYDIST_XML_ETREE_SRCS) \
+	$(PYDIST_XML_PARSERS_SRCS) \
+	$(PYDIST_XML_SAX_SRCS) \
+	$(PYDIST_XMLRPC_SRCS) \
+
+
+pydist-py-srcs:	$(PYDIST_PY_SRCS)
+
+pydist-py-srcs-clean:
+	rm -f $(PYDIST_PY_SRCS)
+	rm -f pydist.tag
+
+clean:	pydist-py-srcs-clean
+
+
+
+pydist-install-tree:
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./asyncio
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./asyncio/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./collections
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./collections/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./concurrent
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./concurrent/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./concurrent/futures
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./concurrent/futures/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./ctypes
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./ctypes/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./ctypes/macholib
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./ctypes/macholib/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./ctypes/test
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./ctypes/test/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./curses
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./curses/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./dbm
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./dbm/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./distutils
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./distutils/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./distutils/command
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./distutils/command/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./distutils/tests
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./distutils/tests/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./email
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./email/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./email/mime
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./email/mime/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./encodings
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./encodings/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./ensurepip
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./ensurepip/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./ensurepip/_bundled
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./ensurepip/_bundled/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./html
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./html/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./http
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./http/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./idlelib
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./idlelib/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./idlelib/Icons
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./idlelib/Icons/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./idlelib/idle_test
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./idlelib/idle_test/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./importlib
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./importlib/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./json
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./json/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/fixes
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/fixes/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/pgen2
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/pgen2/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/tests
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/tests/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/tests/data
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/tests/data/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/tests/data/fixers
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/tests/data/fixers/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/tests/data/fixers/myfixes
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/tests/data/fixers/myfixes/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./logging
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./logging/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./msilib
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./msilib/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./multiprocessing
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./multiprocessing/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./multiprocessing/dummy
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./multiprocessing/dummy/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./pydoc_data
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./pydoc_data/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./site-packages
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./site-packages/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./sqlite3
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./sqlite3/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./sqlite3/test
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./sqlite3/test/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./tkinter
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./tkinter/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./tkinter/test
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./tkinter/test/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./tkinter/test/test_tkinter
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./tkinter/test/test_tkinter/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./tkinter/test/test_ttk
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./tkinter/test/test_ttk/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./turtledemo
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./turtledemo/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./unittest
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./unittest/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./unittest/test
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./unittest/test/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./unittest/test/testmock
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./unittest/test/testmock/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./urllib
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./urllib/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./venv
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./venv/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./venv/scripts
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./venv/scripts/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./venv/scripts/common
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./venv/scripts/common/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./venv/scripts/nt
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./venv/scripts/nt/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./venv/scripts/posix
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./venv/scripts/posix/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./wsgiref
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./wsgiref/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml/dom
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml/dom/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml/etree
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml/etree/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml/parsers
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml/parsers/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml/sax
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml/sax/./__pycache__
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xmlrpc
+	mkdir -p $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xmlrpc/./__pycache__
+
+
+pydist-install-py: $(PYDIST_PY_SRCS)
+pydist-install-py: pydist-install-tree
+pydist-install-py:
+	cp -p $(PYDIST_SYSCFG_SRCS)                                                    $(DESTDIR)/$(LIBDIR)/$(PACKAGE)
+	cp -p $(PYDIST_SRCS)                                                           $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/.
+	cp -p $(PYDIST_ASYNCIO_SRCS)                                                   $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./asyncio
+	cp -p $(PYDIST_COLLECTIONS_SRCS)                                               $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./collections
+	cp -p $(PYDIST_CONCURRENT_SRCS)                                                $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./concurrent
+	cp -p $(PYDIST_CONCURRENT_FUTURES_SRCS)                                        $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./concurrent/futures
+	cp -p $(PYDIST_CTYPES_SRCS)                                                    $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./ctypes
+	cp -p $(PYDIST_CTYPES_MACHOLIB_SRCS)                                           $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./ctypes/macholib
+	cp -p $(PYDIST_CTYPES_TEST_SRCS)                                               $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./ctypes/test
+	cp -p $(PYDIST_CURSES_SRCS)                                                    $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./curses
+	cp -p $(PYDIST_DBM_SRCS)                                                       $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./dbm
+	cp -p $(PYDIST_DISTUTILS_SRCS)                                                 $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./distutils
+	cp -p $(PYDIST_DISTUTILS_COMMAND_SRCS)                                         $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./distutils/command
+	cp -p $(PYDIST_DISTUTILS_TESTS_SRCS)                                           $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./distutils/tests
+	cp -p $(PYDIST_EMAIL_SRCS)                                                     $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./email
+	cp -p $(PYDIST_EMAIL_MIME_SRCS)                                                $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./email/mime
+	cp -p $(PYDIST_ENCODINGS_SRCS)                                                 $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./encodings
+	cp -p $(PYDIST_ENSUREPIP_SRCS)                                                 $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./ensurepip
+	cp -p $(PYDIST_HTML_SRCS)                                                      $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./html
+	cp -p $(PYDIST_HTTP_SRCS)                                                      $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./http
+	cp -p $(PYDIST_IDLELIB_SRCS)                                                   $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./idlelib
+	cp -p $(PYDIST_IDLELIB_IDLE_TEST_SRCS)                                         $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./idlelib/idle_test
+	cp -p $(PYDIST_IMPORTLIB_SRCS)                                                 $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./importlib
+	cp -p $(PYDIST_JSON_SRCS)                                                      $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./json
+	cp -p $(PYDIST_LIB2TO3_SRCS)                                                   $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3
+	cp -p $(PYDIST_LIB2TO3_FIXES_SRCS)                                             $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/fixes
+	cp -p $(PYDIST_LIB2TO3_PGEN2_SRCS)                                             $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/pgen2
+	cp -p $(PYDIST_LIB2TO3_TESTS_SRCS)                                             $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/tests
+	cp -p $(PYDIST_LIB2TO3_TESTS_DATA_SRCS)                                        $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/tests/data
+	cp -p $(PYDIST_LIB2TO3_TESTS_DATA_FIXERS_SRCS)                                 $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/tests/data/fixers
+	cp -p $(PYDIST_LIB2TO3_TESTS_DATA_FIXERS_MYFIXES_SRCS)                         $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/tests/data/fixers/myfixes
+	cp -p $(PYDIST_LOGGING_SRCS)                                                   $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./logging
+	cp -p $(PYDIST_MSILIB_SRCS)                                                    $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./msilib
+	cp -p $(PYDIST_MULTIPROCESSING_SRCS)                                           $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./multiprocessing
+	cp -p $(PYDIST_MULTIPROCESSING_DUMMY_SRCS)                                     $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./multiprocessing/dummy
+	cp -p $(PYDIST_PYDOC_DATA_SRCS)                                                $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./pydoc_data
+	cp -p $(PYDIST_SQLITE3_SRCS)                                                   $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./sqlite3
+	cp -p $(PYDIST_SQLITE3_TEST_SRCS)                                              $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./sqlite3/test
+	cp -p $(PYDIST_TKINTER_SRCS)                                                   $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./tkinter
+	cp -p $(PYDIST_TKINTER_TEST_SRCS)                                              $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./tkinter/test
+	cp -p $(PYDIST_TKINTER_TEST_TEST_TKINTER_SRCS)                                 $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./tkinter/test/test_tkinter
+	cp -p $(PYDIST_TKINTER_TEST_TEST_TTK_SRCS)                                     $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./tkinter/test/test_ttk
+	cp -p $(PYDIST_TURTLEDEMO_SRCS)                                                $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./turtledemo
+	cp -p $(PYDIST_UNITTEST_SRCS)                                                  $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./unittest
+	cp -p $(PYDIST_UNITTEST_TEST_SRCS)                                             $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./unittest/test
+	cp -p $(PYDIST_UNITTEST_TEST_TESTMOCK_SRCS)                                    $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./unittest/test/testmock
+	cp -p $(PYDIST_URLLIB_SRCS)                                                    $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./urllib
+	cp -p $(PYDIST_VENV_SRCS)                                                      $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./venv
+	cp -p $(PYDIST_WSGIREF_SRCS)                                                   $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./wsgiref
+	cp -p $(PYDIST_XML_SRCS)                                                       $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml
+	cp -p $(PYDIST_XML_DOM_SRCS)                                                   $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml/dom
+	cp -p $(PYDIST_XML_ETREE_SRCS)                                                 $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml/etree
+	cp -p $(PYDIST_XML_PARSERS_SRCS)                                               $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml/parsers
+	cp -p $(PYDIST_XML_SAX_SRCS)                                                   $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml/sax
+	cp -p $(PYDIST_XMLRPC_SRCS)                                                    $(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xmlrpc
+
+
+pydist-install-pyc: $(PYCGEN_OBJS)
+pydist-install-pyc: pydist-install-tree
+pydist-install-pyc:
+	cp -p $(PYDIST_SYSCFG_SRCS:$(PYDIST_PYCDIR)/./%.py=$(PYDIST_PYCDIR)/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./__pycache
+	cp -p $(PYDIST_SRCS:$(PYDIST_PYCDIR)/./%.py=$(PYDIST_PYCDIR)/././__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/././__pycache__
+	cp -p $(PYDIST_ASYNCIO_SRCS:$(PYDIST_PYCDIR)/./asyncio/%.py=$(PYDIST_PYCDIR)/./asyncio/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./asyncio/./__pycache__
+	cp -p $(PYDIST_COLLECTIONS_SRCS:$(PYDIST_PYCDIR)/./collections/%.py=$(PYDIST_PYCDIR)/./collections/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./collections/./__pycache__
+	cp -p $(PYDIST_CONCURRENT_SRCS:$(PYDIST_PYCDIR)/./concurrent/%.py=$(PYDIST_PYCDIR)/./concurrent/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./concurrent/./__pycache__
+	cp -p $(PYDIST_CONCURRENT_FUTURES_SRCS:$(PYDIST_PYCDIR)/./concurrent/futures/%.py=$(PYDIST_PYCDIR)/./concurrent/futures/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./concurrent/futures/./__pycache__
+	cp -p $(PYDIST_CTYPES_SRCS:$(PYDIST_PYCDIR)/./ctypes/%.py=$(PYDIST_PYCDIR)/./ctypes/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./ctypes/./__pycache__
+	cp -p $(PYDIST_CTYPES_MACHOLIB_SRCS:$(PYDIST_PYCDIR)/./ctypes/macholib/%.py=$(PYDIST_PYCDIR)/./ctypes/macholib/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./ctypes/macholib/./__pycache__
+	cp -p $(PYDIST_CTYPES_TEST_SRCS:$(PYDIST_PYCDIR)/./ctypes/test/%.py=$(PYDIST_PYCDIR)/./ctypes/test/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./ctypes/test/./__pycache__
+	cp -p $(PYDIST_CURSES_SRCS:$(PYDIST_PYCDIR)/./curses/%.py=$(PYDIST_PYCDIR)/./curses/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./curses/./__pycache__
+	cp -p $(PYDIST_DBM_SRCS:$(PYDIST_PYCDIR)/./dbm/%.py=$(PYDIST_PYCDIR)/./dbm/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./dbm/./__pycache__
+	cp -p $(PYDIST_DISTUTILS_SRCS:$(PYDIST_PYCDIR)/./distutils/%.py=$(PYDIST_PYCDIR)/./distutils/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./distutils/./__pycache__
+	cp -p $(PYDIST_DISTUTILS_COMMAND_SRCS:$(PYDIST_PYCDIR)/./distutils/command/%.py=$(PYDIST_PYCDIR)/./distutils/command/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./distutils/command/./__pycache__
+	cp -p $(PYDIST_DISTUTILS_TESTS_SRCS:$(PYDIST_PYCDIR)/./distutils/tests/%.py=$(PYDIST_PYCDIR)/./distutils/tests/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./distutils/tests/./__pycache__
+	cp -p $(PYDIST_EMAIL_SRCS:$(PYDIST_PYCDIR)/./email/%.py=$(PYDIST_PYCDIR)/./email/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./email/./__pycache__
+	cp -p $(PYDIST_EMAIL_MIME_SRCS:$(PYDIST_PYCDIR)/./email/mime/%.py=$(PYDIST_PYCDIR)/./email/mime/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./email/mime/./__pycache__
+	cp -p $(PYDIST_ENCODINGS_SRCS:$(PYDIST_PYCDIR)/./encodings/%.py=$(PYDIST_PYCDIR)/./encodings/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./encodings/./__pycache__
+	cp -p $(PYDIST_ENSUREPIP_SRCS:$(PYDIST_PYCDIR)/./ensurepip/%.py=$(PYDIST_PYCDIR)/./ensurepip/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./ensurepip/./__pycache__
+	cp -p $(PYDIST_HTML_SRCS:$(PYDIST_PYCDIR)/./html/%.py=$(PYDIST_PYCDIR)/./html/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./html/./__pycache__
+	cp -p $(PYDIST_HTTP_SRCS:$(PYDIST_PYCDIR)/./http/%.py=$(PYDIST_PYCDIR)/./http/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./http/./__pycache__
+	cp -p $(PYDIST_IDLELIB_SRCS:$(PYDIST_PYCDIR)/./idlelib/%.py=$(PYDIST_PYCDIR)/./idlelib/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./idlelib/./__pycache__
+	cp -p $(PYDIST_IDLELIB_IDLE_TEST_SRCS:$(PYDIST_PYCDIR)/./idlelib/idle_test/%.py=$(PYDIST_PYCDIR)/./idlelib/idle_test/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./idlelib/idle_test/./__pycache__
+	cp -p $(PYDIST_IMPORTLIB_SRCS:$(PYDIST_PYCDIR)/./importlib/%.py=$(PYDIST_PYCDIR)/./importlib/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./importlib/./__pycache__
+	cp -p $(PYDIST_JSON_SRCS:$(PYDIST_PYCDIR)/./json/%.py=$(PYDIST_PYCDIR)/./json/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./json/./__pycache__
+	cp -p $(PYDIST_LIB2TO3_SRCS:$(PYDIST_PYCDIR)/./lib2to3/%.py=$(PYDIST_PYCDIR)/./lib2to3/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/./__pycache__
+	cp -p $(PYDIST_LIB2TO3_FIXES_SRCS:$(PYDIST_PYCDIR)/./lib2to3/fixes/%.py=$(PYDIST_PYCDIR)/./lib2to3/fixes/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/fixes/./__pycache__
+	cp -p $(PYDIST_LIB2TO3_PGEN2_SRCS:$(PYDIST_PYCDIR)/./lib2to3/pgen2/%.py=$(PYDIST_PYCDIR)/./lib2to3/pgen2/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/pgen2/./__pycache__
+	cp -p $(PYDIST_LIB2TO3_TESTS_SRCS:$(PYDIST_PYCDIR)/./lib2to3/tests/%.py=$(PYDIST_PYCDIR)/./lib2to3/tests/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./lib2to3/tests/./__pycache__
+	cp -p $(PYDIST_LOGGING_SRCS:$(PYDIST_PYCDIR)/./logging/%.py=$(PYDIST_PYCDIR)/./logging/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./logging/./__pycache__
+	cp -p $(PYDIST_MSILIB_SRCS:$(PYDIST_PYCDIR)/./msilib/%.py=$(PYDIST_PYCDIR)/./msilib/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./msilib/./__pycache__
+	cp -p $(PYDIST_MULTIPROCESSING_SRCS:$(PYDIST_PYCDIR)/./multiprocessing/%.py=$(PYDIST_PYCDIR)/./multiprocessing/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./multiprocessing/./__pycache__
+	cp -p $(PYDIST_MULTIPROCESSING_DUMMY_SRCS:$(PYDIST_PYCDIR)/./multiprocessing/dummy/%.py=$(PYDIST_PYCDIR)/./multiprocessing/dummy/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./multiprocessing/dummy/./__pycache__
+	cp -p $(PYDIST_PYDOC_DATA_SRCS:$(PYDIST_PYCDIR)/./pydoc_data/%.py=$(PYDIST_PYCDIR)/./pydoc_data/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./pydoc_data/./__pycache__
+	cp -p $(PYDIST_SQLITE3_SRCS:$(PYDIST_PYCDIR)/./sqlite3/%.py=$(PYDIST_PYCDIR)/./sqlite3/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./sqlite3/./__pycache__
+	cp -p $(PYDIST_SQLITE3_TEST_SRCS:$(PYDIST_PYCDIR)/./sqlite3/test/%.py=$(PYDIST_PYCDIR)/./sqlite3/test/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./sqlite3/test/./__pycache__
+	cp -p $(PYDIST_TKINTER_SRCS:$(PYDIST_PYCDIR)/./tkinter/%.py=$(PYDIST_PYCDIR)/./tkinter/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./tkinter/./__pycache__
+	cp -p $(PYDIST_TKINTER_TEST_SRCS:$(PYDIST_PYCDIR)/./tkinter/test/%.py=$(PYDIST_PYCDIR)/./tkinter/test/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./tkinter/test/./__pycache__
+	cp -p $(PYDIST_TKINTER_TEST_TEST_TKINTER_SRCS:$(PYDIST_PYCDIR)/./tkinter/test/test_tkinter/%.py=$(PYDIST_PYCDIR)/./tkinter/test/test_tkinter/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./tkinter/test/test_tkinter/./__pycache__
+	cp -p $(PYDIST_TKINTER_TEST_TEST_TTK_SRCS:$(PYDIST_PYCDIR)/./tkinter/test/test_ttk/%.py=$(PYDIST_PYCDIR)/./tkinter/test/test_ttk/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./tkinter/test/test_ttk/./__pycache__
+	cp -p $(PYDIST_TURTLEDEMO_SRCS:$(PYDIST_PYCDIR)/./turtledemo/%.py=$(PYDIST_PYCDIR)/./turtledemo/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./turtledemo/./__pycache__
+	cp -p $(PYDIST_UNITTEST_SRCS:$(PYDIST_PYCDIR)/./unittest/%.py=$(PYDIST_PYCDIR)/./unittest/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./unittest/./__pycache__
+	cp -p $(PYDIST_UNITTEST_TEST_SRCS:$(PYDIST_PYCDIR)/./unittest/test/%.py=$(PYDIST_PYCDIR)/./unittest/test/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./unittest/test/./__pycache__
+	cp -p $(PYDIST_UNITTEST_TEST_TESTMOCK_SRCS:$(PYDIST_PYCDIR)/./unittest/test/testmock/%.py=$(PYDIST_PYCDIR)/./unittest/test/testmock/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./unittest/test/testmock/./__pycache__
+	cp -p $(PYDIST_URLLIB_SRCS:$(PYDIST_PYCDIR)/./urllib/%.py=$(PYDIST_PYCDIR)/./urllib/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./urllib/./__pycache__
+	cp -p $(PYDIST_VENV_SRCS:$(PYDIST_PYCDIR)/./venv/%.py=$(PYDIST_PYCDIR)/./venv/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./venv/./__pycache__
+	cp -p $(PYDIST_WSGIREF_SRCS:$(PYDIST_PYCDIR)/./wsgiref/%.py=$(PYDIST_PYCDIR)/./wsgiref/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./wsgiref/./__pycache__
+	cp -p $(PYDIST_XML_SRCS:$(PYDIST_PYCDIR)/./xml/%.py=$(PYDIST_PYCDIR)/./xml/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml/./__pycache__
+	cp -p $(PYDIST_XML_DOM_SRCS:$(PYDIST_PYCDIR)/./xml/dom/%.py=$(PYDIST_PYCDIR)/./xml/dom/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml/dom/./__pycache__
+	cp -p $(PYDIST_XML_ETREE_SRCS:$(PYDIST_PYCDIR)/./xml/etree/%.py=$(PYDIST_PYCDIR)/./xml/etree/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml/etree/./__pycache__
+	cp -p $(PYDIST_XML_PARSERS_SRCS:$(PYDIST_PYCDIR)/./xml/parsers/%.py=$(PYDIST_PYCDIR)/./xml/parsers/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml/parsers/./__pycache__
+	cp -p $(PYDIST_XML_SAX_SRCS:$(PYDIST_PYCDIR)/./xml/sax/%.py=$(PYDIST_PYCDIR)/./xml/sax/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xml/sax/./__pycache__
+	cp -p $(PYDIST_XMLRPC_SRCS:$(PYDIST_PYCDIR)/./xmlrpc/%.py=$(PYDIST_PYCDIR)/./xmlrpc/./__pycache__/%.$(PYCABI).pyc) \
+		$(DESTDIR)/$(LIBDIR)/$(PACKAGE)/./xmlrpc/./__pycache__
+
+
+install-app:	pydist-install-py
+install-app:	pydist-install-pyc
+
+
+.PHONY:	pydist-py-srcs
+.PHONY:	pydist-py-srcs-clean
+
+.PHONY:	pydist-install-tree
+.PHONY:	pydist-install-py
+.PHONY:	pydist-install-pyc
diff --git a/project/variants/3.7.1/pyexts.h b/project/variants/3.7.1/pyexts.h
new file mode 100644
index 0000000..40b7aa8
--- /dev/null
+++ b/project/variants/3.7.1/pyexts.h
@@ -0,0 +1,203 @@
+/*******************************************************************/
+/*  sbpython3: external configurable build project for Python-3.x. */
+/*  Copyright (C) 2018  Z. Gilboa                                  */
+/*  Released under the Standard MIT License; see COPYING.SBPYTHON3.*/
+/*******************************************************************/
+
+/*******************************************************************/
+/* pyexts.c: a simple development-time utility for generating      */
+/* make rules for python's extension modules. The utility is       */
+/* included with the sbpython3 project for reference only.         */
+/*                                                                 */
+/* cc -std=c99 -D_XOPEN_SOURCE=700 pyexts.c                        */
+/*******************************************************************/
+
+#define PYEXT_LIST(...)                   (const char *[]){__VA_ARGS__,0}
+#define PYEXT_SIMPLE(name,...)            {name,PYEXT_LIST(__VA_ARGS__),0,0,0,0}
+
+#define PYEXT_COMMON(name,hvar,lvar,...)  {name,PYEXT_LIST(__VA_ARGS__), \
+                                           PYEXT_LIST(hvar),0,           \
+                                           PYEXT_LIST(lvar),0}
+
+#define PYEXT_ALTSTD(name,cstd,...)       {name,PYEXT_LIST(__VA_ARGS__), \
+                                           0,PYEXT_LIST(cstd),0,0}
+
+struct pyext_meta {
+	const char *	name;
+	const char **	srcs;
+	const char **	hdrs;
+	const char **	cstd;
+	const char **	vars;
+	const char **	deps;
+};
+
+static const struct pyext_meta pyexts[] = {
+	PYEXT_SIMPLE("_multibytecodec",     "cjkcodecs/multibytecodec"),
+	PYEXT_SIMPLE("_codecs_cn",          "cjkcodecs/_codecs_cn"),
+	PYEXT_SIMPLE("_codecs_hk",          "cjkcodecs/_codecs_hk"),
+	PYEXT_SIMPLE("_codecs_jp",          "cjkcodecs/_codecs_jp"),
+	PYEXT_SIMPLE("_codecs_kr",          "cjkcodecs/_codecs_kr"),
+	PYEXT_SIMPLE("_codecs_tw",          "cjkcodecs/_codecs_tw"),
+	PYEXT_SIMPLE("_codecs_iso2022",     "cjkcodecs/_codecs_iso2022"),
+
+	PYEXT_SIMPLE("_asyncio",            "_asynciomodule"),
+	PYEXT_SIMPLE("_bisect",             "_bisectmodule"),
+	PYEXT_SIMPLE("_contextvars",        "_contextvarsmodule"),
+	PYEXT_SIMPLE("_crypt",              "_cryptmodule"),
+	PYEXT_SIMPLE("_csv",                "_csv"),
+	PYEXT_SIMPLE("_ctypes_test",        "_ctypes/_ctypes_test"),
+	PYEXT_SIMPLE("_datetime",           "_datetimemodule"),
+	PYEXT_SIMPLE("_elementtree",        "_elementtree"),
+	PYEXT_SIMPLE("_heapq",              "_heapqmodule"),
+	PYEXT_SIMPLE("_json",               "_json"),
+	PYEXT_SIMPLE("_md5",                "md5module"),
+	PYEXT_SIMPLE("_opcode",             "_opcode"),
+	PYEXT_SIMPLE("_pickle",             "_pickle"),
+	PYEXT_SIMPLE("_posixsubprocess",    "_posixsubprocess"),
+	PYEXT_SIMPLE("_queue",              "_queuemodule"),
+	PYEXT_SIMPLE("_random",             "_randommodule"),
+	PYEXT_SIMPLE("_sha1",               "sha1module"),
+	PYEXT_SIMPLE("_sha256",             "sha256module"),
+	PYEXT_SIMPLE("_sha3",               "_sha3/sha3module"),
+	PYEXT_SIMPLE("_sha512",             "sha512module"),
+	PYEXT_SIMPLE("_socket",             "socketmodule"),
+	PYEXT_SIMPLE("_struct",             "_struct"),
+	PYEXT_SIMPLE("_testbuffer",         "_testbuffer"),
+	PYEXT_SIMPLE("_testcapi",           "_testcapimodule"),
+	PYEXT_SIMPLE("_testimportmultiple", "_testimportmultiple"),
+	PYEXT_SIMPLE("_testmultiphase",     "_testmultiphase"),
+
+
+
+	PYEXT_SIMPLE("array",               "arraymodule"),
+	PYEXT_SIMPLE("audioop",             "audioop"),
+	PYEXT_SIMPLE("fcntl",               "fcntlmodule"),
+	PYEXT_SIMPLE("grp",                 "grpmodule"),
+	PYEXT_SIMPLE("mmap",                "mmapmodule"),
+	PYEXT_SIMPLE("ossaudiodev",         "ossaudiodev"),
+	PYEXT_SIMPLE("parser",              "parsermodule"),
+	PYEXT_SIMPLE("resource",            "resource"),
+	PYEXT_SIMPLE("select",              "selectmodule"),
+	PYEXT_SIMPLE("spwd",                "spwdmodule"),
+	PYEXT_SIMPLE("syslog",              "syslogmodule"),
+	PYEXT_SIMPLE("termios",             "termios"),
+	PYEXT_SIMPLE("unicodedata",         "unicodedata"),
+	PYEXT_SIMPLE("xxlimited",           "xxlimited"),
+
+	PYEXT_SIMPLE("_blake2",
+	             "_blake2/blake2module",
+	             "_blake2/blake2b_impl",
+	             "_blake2/blake2s_impl"),
+
+	PYEXT_SIMPLE("_lsprof",
+	             "_lsprof",
+	             "rotatingtree"),
+
+	PYEXT_SIMPLE("_multiprocessing",
+	             "_multiprocessing/multiprocessing",
+	             "_multiprocessing/semaphore"),
+
+	PYEXT_SIMPLE("_xxtestfuzz",
+	             "_xxtestfuzz/_xxtestfuzz",
+	             "_xxtestfuzz/fuzzer"),
+
+	PYEXT_SIMPLE("cmath",
+	             "cmathmodule",
+	             "_math"),
+
+	PYEXT_SIMPLE("math",
+	             "mathmodule",
+	             "_math"),
+
+	PYEXT_COMMON("_bz2",0,"-lbz2",
+	             "_bz2module"),
+
+	PYEXT_COMMON("_ctypes",0,"-lffi",
+	             "_ctypes/_ctypes",
+	             "_ctypes/callbacks",
+	             "_ctypes/callproc",
+	             "_ctypes/stgdict",
+	             "_ctypes/cfield"),
+
+	PYEXT_COMMON("_curses",
+	             "$(CFLAGS_NCURSES)",
+	             "$(LDFLAGS_NCURSES)",
+	             "_cursesmodule"),
+
+	PYEXT_COMMON("_curses_panel",
+	             "$(CFLAGS_NCURSES)",
+	             "$(LDFLAGS_NCURSES)",
+	             "_curses_panel"),
+
+	PYEXT_COMMON("_decimal",
+	             "-I$(SOURCE_DIR)/Modules/_decimal/libmpdec -DUNIVERSAL",
+                     0,
+	             "_decimal/_decimal",
+	             "_decimal/libmpdec/basearith",
+	             "_decimal/libmpdec/constants",
+	             "_decimal/libmpdec/context",
+	             "_decimal/libmpdec/convolute",
+	             "_decimal/libmpdec/crt",
+	             "_decimal/libmpdec/difradix2",
+	             "_decimal/libmpdec/fnt",
+	             "_decimal/libmpdec/fourstep",
+	             "_decimal/libmpdec/io",
+	             "_decimal/libmpdec/memory",
+	             "_decimal/libmpdec/mpdecimal",
+	             "_decimal/libmpdec/numbertheory",
+	             "_decimal/libmpdec/sixstep",
+	             "_decimal/libmpdec/transpose"),
+
+	PYEXT_COMMON("_dbm",
+	             "$(CFLAGS_DBM)",
+	             "$(LDFLAGS_DBM)",
+	             "_dbmmodule"),
+
+	PYEXT_COMMON("_gdbm",0,"-lgdbm",
+	             "_gdbmmodule"),
+
+	PYEXT_COMMON("_hashlib",0,"-lssl -lcrypto",
+	             "_hashopenssl"),
+
+	PYEXT_COMMON("_lzma",0,"-llzma",
+	             "_lzmamodule"),
+
+	PYEXT_COMMON("_sqlite3",
+	             "$(CFLAGS_SQLITE)",
+	             "$(LDFLAGS_SQLITE)",
+	             "_sqlite/cache",
+	             "_sqlite/connection",
+	             "_sqlite/cursor",
+	             "_sqlite/microprotocols",
+	             "_sqlite/module",
+	             "_sqlite/prepare_protocol",
+	             "_sqlite/row",
+	             "_sqlite/statement",
+	             "_sqlite/util"),
+
+	PYEXT_COMMON("_ssl",0,"-lssl -lcrypto",
+	             "_ssl"),
+
+	PYEXT_COMMON("_tkinter",
+	             "$(CFLAGS_TCLTK)",
+	             "$(LDFLAGS_TCLTK)",
+	             "_tkinter",
+	             "tkappinit"),
+
+	PYEXT_COMMON("_uuid",0,"-luuid",
+	             "_uuidmodule"),
+
+	PYEXT_COMMON("binascii",0,"-lz",
+	             "binascii"),
+
+	PYEXT_COMMON("pyexpat",0,"-lexpat",
+	             "pyexpat"),
+
+	PYEXT_COMMON("readline",0,"-lreadline",
+	             "readline"),
+
+	PYEXT_COMMON("zlib",0,"-lz",
+	             "zlibmodule"),
+
+	{0,0,0,0,0,0},
+};
diff --git a/project/variants/3.7.1/pyexts.mk b/project/variants/3.7.1/pyexts.mk
new file mode 100644
index 0000000..542473b
--- /dev/null
+++ b/project/variants/3.7.1/pyexts.mk
@@ -0,0 +1,2039 @@
+# _multibytecodec
+PYEXT_MULTIBYTECODEC_SRCS	+= pyext/obj/cjkcodecs/multibytecodec.c
+
+PYEXT_MULTIBYTECODEC_LOBJS	= $(PYEXT_MULTIBYTECODEC_SRCS:.c=.lo)
+PYEXT_MULTIBYTECODEC_OBJS	= $(PYEXT_MULTIBYTECODEC_SRCS:.c=.o)
+
+PYEXT_MULTIBYTECODEC_SHARED	= pyext/_multibytecodec$(PYTHON_SOEXT)
+PYEXT_MULTIBYTECODEC_STATIC	= pyext/_multibytecodec$(OS_ARCHIVE_EXT)
+
+$(PYEXT_MULTIBYTECODEC_SHARED):	$(PYEXT_MULTIBYTECODEC_LOBJS)
+$(PYEXT_MULTIBYTECODEC_STATIC):	$(PYEXT_MULTIBYTECODEC_OBJS)
+
+pyext-multibytecodec-shared:	$(PYEXT_MULTIBYTECODEC_SHARED)
+pyext-multibytecodec-static:	$(PYEXT_MULTIBYTECODEC_STATIC)
+
+pyext-multibytecodec-clean:
+	rm -f $(PYEXT_MULTIBYTECODEC_LOBJS)
+	rm -f $(PYEXT_MULTIBYTECODEC_OBJS)
+	rm -f $(PYEXT_MULTIBYTECODEC_SHARED)
+	rm -f $(PYEXT_MULTIBYTECODEC_STATIC)
+
+clean:	pyext-multibytecodec-clean
+
+.PHONY:	pyext-multibytecodec-shared
+.PHONY:	pyext-multibytecodec-static
+.PHONY:	pyext-multibytecodec-clean
+
+
+# _codecs_cn
+PYEXT_CODECS_CN_SRCS		+= pyext/obj/cjkcodecs/_codecs_cn.c
+
+PYEXT_CODECS_CN_LOBJS		= $(PYEXT_CODECS_CN_SRCS:.c=.lo)
+PYEXT_CODECS_CN_OBJS		= $(PYEXT_CODECS_CN_SRCS:.c=.o)
+
+PYEXT_CODECS_CN_SHARED		= pyext/_codecs_cn$(PYTHON_SOEXT)
+PYEXT_CODECS_CN_STATIC		= pyext/_codecs_cn$(OS_ARCHIVE_EXT)
+
+$(PYEXT_CODECS_CN_SHARED):	$(PYEXT_CODECS_CN_LOBJS)
+$(PYEXT_CODECS_CN_STATIC):	$(PYEXT_CODECS_CN_OBJS)
+
+pyext-codecs_cn-shared:		$(PYEXT_CODECS_CN_SHARED)
+pyext-codecs_cn-static:		$(PYEXT_CODECS_CN_STATIC)
+
+pyext-codecs_cn-clean:
+	rm -f $(PYEXT_CODECS_CN_LOBJS)
+	rm -f $(PYEXT_CODECS_CN_OBJS)
+	rm -f $(PYEXT_CODECS_CN_SHARED)
+	rm -f $(PYEXT_CODECS_CN_STATIC)
+
+clean:	pyext-codecs_cn-clean
+
+.PHONY:	pyext-codecs_cn-shared
+.PHONY:	pyext-codecs_cn-static
+.PHONY:	pyext-codecs_cn-clean
+
+
+# _codecs_hk
+PYEXT_CODECS_HK_SRCS		+= pyext/obj/cjkcodecs/_codecs_hk.c
+
+PYEXT_CODECS_HK_LOBJS		= $(PYEXT_CODECS_HK_SRCS:.c=.lo)
+PYEXT_CODECS_HK_OBJS		= $(PYEXT_CODECS_HK_SRCS:.c=.o)
+
+PYEXT_CODECS_HK_SHARED		= pyext/_codecs_hk$(PYTHON_SOEXT)
+PYEXT_CODECS_HK_STATIC		= pyext/_codecs_hk$(OS_ARCHIVE_EXT)
+
+$(PYEXT_CODECS_HK_SHARED):	$(PYEXT_CODECS_HK_LOBJS)
+$(PYEXT_CODECS_HK_STATIC):	$(PYEXT_CODECS_HK_OBJS)
+
+pyext-codecs_hk-shared:		$(PYEXT_CODECS_HK_SHARED)
+pyext-codecs_hk-static:		$(PYEXT_CODECS_HK_STATIC)
+
+pyext-codecs_hk-clean:
+	rm -f $(PYEXT_CODECS_HK_LOBJS)
+	rm -f $(PYEXT_CODECS_HK_OBJS)
+	rm -f $(PYEXT_CODECS_HK_SHARED)
+	rm -f $(PYEXT_CODECS_HK_STATIC)
+
+clean:	pyext-codecs_hk-clean
+
+.PHONY:	pyext-codecs_hk-shared
+.PHONY:	pyext-codecs_hk-static
+.PHONY:	pyext-codecs_hk-clean
+
+
+# _codecs_jp
+PYEXT_CODECS_JP_SRCS		+= pyext/obj/cjkcodecs/_codecs_jp.c
+
+PYEXT_CODECS_JP_LOBJS		= $(PYEXT_CODECS_JP_SRCS:.c=.lo)
+PYEXT_CODECS_JP_OBJS		= $(PYEXT_CODECS_JP_SRCS:.c=.o)
+
+PYEXT_CODECS_JP_SHARED		= pyext/_codecs_jp$(PYTHON_SOEXT)
+PYEXT_CODECS_JP_STATIC		= pyext/_codecs_jp$(OS_ARCHIVE_EXT)
+
+$(PYEXT_CODECS_JP_SHARED):	$(PYEXT_CODECS_JP_LOBJS)
+$(PYEXT_CODECS_JP_STATIC):	$(PYEXT_CODECS_JP_OBJS)
+
+pyext-codecs_jp-shared:		$(PYEXT_CODECS_JP_SHARED)
+pyext-codecs_jp-static:		$(PYEXT_CODECS_JP_STATIC)
+
+pyext-codecs_jp-clean:
+	rm -f $(PYEXT_CODECS_JP_LOBJS)
+	rm -f $(PYEXT_CODECS_JP_OBJS)
+	rm -f $(PYEXT_CODECS_JP_SHARED)
+	rm -f $(PYEXT_CODECS_JP_STATIC)
+
+clean:	pyext-codecs_jp-clean
+
+.PHONY:	pyext-codecs_jp-shared
+.PHONY:	pyext-codecs_jp-static
+.PHONY:	pyext-codecs_jp-clean
+
+
+# _codecs_kr
+PYEXT_CODECS_KR_SRCS		+= pyext/obj/cjkcodecs/_codecs_kr.c
+
+PYEXT_CODECS_KR_LOBJS		= $(PYEXT_CODECS_KR_SRCS:.c=.lo)
+PYEXT_CODECS_KR_OBJS		= $(PYEXT_CODECS_KR_SRCS:.c=.o)
+
+PYEXT_CODECS_KR_SHARED		= pyext/_codecs_kr$(PYTHON_SOEXT)
+PYEXT_CODECS_KR_STATIC		= pyext/_codecs_kr$(OS_ARCHIVE_EXT)
+
+$(PYEXT_CODECS_KR_SHARED):	$(PYEXT_CODECS_KR_LOBJS)
+$(PYEXT_CODECS_KR_STATIC):	$(PYEXT_CODECS_KR_OBJS)
+
+pyext-codecs_kr-shared:		$(PYEXT_CODECS_KR_SHARED)
+pyext-codecs_kr-static:		$(PYEXT_CODECS_KR_STATIC)
+
+pyext-codecs_kr-clean:
+	rm -f $(PYEXT_CODECS_KR_LOBJS)
+	rm -f $(PYEXT_CODECS_KR_OBJS)
+	rm -f $(PYEXT_CODECS_KR_SHARED)
+	rm -f $(PYEXT_CODECS_KR_STATIC)
+
+clean:	pyext-codecs_kr-clean
+
+.PHONY:	pyext-codecs_kr-shared
+.PHONY:	pyext-codecs_kr-static
+.PHONY:	pyext-codecs_kr-clean
+
+
+# _codecs_tw
+PYEXT_CODECS_TW_SRCS		+= pyext/obj/cjkcodecs/_codecs_tw.c
+
+PYEXT_CODECS_TW_LOBJS		= $(PYEXT_CODECS_TW_SRCS:.c=.lo)
+PYEXT_CODECS_TW_OBJS		= $(PYEXT_CODECS_TW_SRCS:.c=.o)
+
+PYEXT_CODECS_TW_SHARED		= pyext/_codecs_tw$(PYTHON_SOEXT)
+PYEXT_CODECS_TW_STATIC		= pyext/_codecs_tw$(OS_ARCHIVE_EXT)
+
+$(PYEXT_CODECS_TW_SHARED):	$(PYEXT_CODECS_TW_LOBJS)
+$(PYEXT_CODECS_TW_STATIC):	$(PYEXT_CODECS_TW_OBJS)
+
+pyext-codecs_tw-shared:		$(PYEXT_CODECS_TW_SHARED)
+pyext-codecs_tw-static:		$(PYEXT_CODECS_TW_STATIC)
+
+pyext-codecs_tw-clean:
+	rm -f $(PYEXT_CODECS_TW_LOBJS)
+	rm -f $(PYEXT_CODECS_TW_OBJS)
+	rm -f $(PYEXT_CODECS_TW_SHARED)
+	rm -f $(PYEXT_CODECS_TW_STATIC)
+
+clean:	pyext-codecs_tw-clean
+
+.PHONY:	pyext-codecs_tw-shared
+.PHONY:	pyext-codecs_tw-static
+.PHONY:	pyext-codecs_tw-clean
+
+
+# _codecs_iso2022
+PYEXT_CODECS_ISO2022_SRCS	+= pyext/obj/cjkcodecs/_codecs_iso2022.c
+
+PYEXT_CODECS_ISO2022_LOBJS	= $(PYEXT_CODECS_ISO2022_SRCS:.c=.lo)
+PYEXT_CODECS_ISO2022_OBJS	= $(PYEXT_CODECS_ISO2022_SRCS:.c=.o)
+
+PYEXT_CODECS_ISO2022_SHARED	= pyext/_codecs_iso2022$(PYTHON_SOEXT)
+PYEXT_CODECS_ISO2022_STATIC	= pyext/_codecs_iso2022$(OS_ARCHIVE_EXT)
+
+$(PYEXT_CODECS_ISO2022_SHARED):	$(PYEXT_CODECS_ISO2022_LOBJS)
+$(PYEXT_CODECS_ISO2022_STATIC):	$(PYEXT_CODECS_ISO2022_OBJS)
+
+pyext-codecs_iso2022-shared:	$(PYEXT_CODECS_ISO2022_SHARED)
+pyext-codecs_iso2022-static:	$(PYEXT_CODECS_ISO2022_STATIC)
+
+pyext-codecs_iso2022-clean:
+	rm -f $(PYEXT_CODECS_ISO2022_LOBJS)
+	rm -f $(PYEXT_CODECS_ISO2022_OBJS)
+	rm -f $(PYEXT_CODECS_ISO2022_SHARED)
+	rm -f $(PYEXT_CODECS_ISO2022_STATIC)
+
+clean:	pyext-codecs_iso2022-clean
+
+.PHONY:	pyext-codecs_iso2022-shared
+.PHONY:	pyext-codecs_iso2022-static
+.PHONY:	pyext-codecs_iso2022-clean
+
+
+# _asyncio
+PYEXT_ASYNCIO_SRCS		+= pyext/obj/_asynciomodule.c
+
+PYEXT_ASYNCIO_LOBJS		= $(PYEXT_ASYNCIO_SRCS:.c=.lo)
+PYEXT_ASYNCIO_OBJS		= $(PYEXT_ASYNCIO_SRCS:.c=.o)
+
+PYEXT_ASYNCIO_SHARED		= pyext/_asyncio$(PYTHON_SOEXT)
+PYEXT_ASYNCIO_STATIC		= pyext/_asyncio$(OS_ARCHIVE_EXT)
+
+$(PYEXT_ASYNCIO_SHARED):	$(PYEXT_ASYNCIO_LOBJS)
+$(PYEXT_ASYNCIO_STATIC):	$(PYEXT_ASYNCIO_OBJS)
+
+pyext-asyncio-shared:		$(PYEXT_ASYNCIO_SHARED)
+pyext-asyncio-static:		$(PYEXT_ASYNCIO_STATIC)
+
+pyext-asyncio-clean:
+	rm -f $(PYEXT_ASYNCIO_LOBJS)
+	rm -f $(PYEXT_ASYNCIO_OBJS)
+	rm -f $(PYEXT_ASYNCIO_SHARED)
+	rm -f $(PYEXT_ASYNCIO_STATIC)
+
+clean:	pyext-asyncio-clean
+
+.PHONY:	pyext-asyncio-shared
+.PHONY:	pyext-asyncio-static
+.PHONY:	pyext-asyncio-clean
+
+
+# _bisect
+PYEXT_BISECT_SRCS		+= pyext/obj/_bisectmodule.c
+
+PYEXT_BISECT_LOBJS		= $(PYEXT_BISECT_SRCS:.c=.lo)
+PYEXT_BISECT_OBJS		= $(PYEXT_BISECT_SRCS:.c=.o)
+
+PYEXT_BISECT_SHARED		= pyext/_bisect$(PYTHON_SOEXT)
+PYEXT_BISECT_STATIC		= pyext/_bisect$(OS_ARCHIVE_EXT)
+
+$(PYEXT_BISECT_SHARED):		$(PYEXT_BISECT_LOBJS)
+$(PYEXT_BISECT_STATIC):		$(PYEXT_BISECT_OBJS)
+
+pyext-bisect-shared:		$(PYEXT_BISECT_SHARED)
+pyext-bisect-static:		$(PYEXT_BISECT_STATIC)
+
+pyext-bisect-clean:
+	rm -f $(PYEXT_BISECT_LOBJS)
+	rm -f $(PYEXT_BISECT_OBJS)
+	rm -f $(PYEXT_BISECT_SHARED)
+	rm -f $(PYEXT_BISECT_STATIC)
+
+clean:	pyext-bisect-clean
+
+.PHONY:	pyext-bisect-shared
+.PHONY:	pyext-bisect-static
+.PHONY:	pyext-bisect-clean
+
+
+# _contextvars
+PYEXT_CONTEXTVARS_SRCS		+= pyext/obj/_contextvarsmodule.c
+
+PYEXT_CONTEXTVARS_LOBJS		= $(PYEXT_CONTEXTVARS_SRCS:.c=.lo)
+PYEXT_CONTEXTVARS_OBJS		= $(PYEXT_CONTEXTVARS_SRCS:.c=.o)
+
+PYEXT_CONTEXTVARS_SHARED	= pyext/_contextvars$(PYTHON_SOEXT)
+PYEXT_CONTEXTVARS_STATIC	= pyext/_contextvars$(OS_ARCHIVE_EXT)
+
+$(PYEXT_CONTEXTVARS_SHARED):	$(PYEXT_CONTEXTVARS_LOBJS)
+$(PYEXT_CONTEXTVARS_STATIC):	$(PYEXT_CONTEXTVARS_OBJS)
+
+pyext-contextvars-shared:	$(PYEXT_CONTEXTVARS_SHARED)
+pyext-contextvars-static:	$(PYEXT_CONTEXTVARS_STATIC)
+
+pyext-contextvars-clean:
+	rm -f $(PYEXT_CONTEXTVARS_LOBJS)
+	rm -f $(PYEXT_CONTEXTVARS_OBJS)
+	rm -f $(PYEXT_CONTEXTVARS_SHARED)
+	rm -f $(PYEXT_CONTEXTVARS_STATIC)
+
+clean:	pyext-contextvars-clean
+
+.PHONY:	pyext-contextvars-shared
+.PHONY:	pyext-contextvars-static
+.PHONY:	pyext-contextvars-clean
+
+
+# _crypt
+PYEXT_CRYPT_SRCS		+= pyext/obj/_cryptmodule.c
+
+PYEXT_CRYPT_LOBJS		= $(PYEXT_CRYPT_SRCS:.c=.lo)
+PYEXT_CRYPT_OBJS		= $(PYEXT_CRYPT_SRCS:.c=.o)
+
+PYEXT_CRYPT_SHARED		= pyext/_crypt$(PYTHON_SOEXT)
+PYEXT_CRYPT_STATIC		= pyext/_crypt$(OS_ARCHIVE_EXT)
+
+$(PYEXT_CRYPT_SHARED):		$(PYEXT_CRYPT_LOBJS)
+$(PYEXT_CRYPT_STATIC):		$(PYEXT_CRYPT_OBJS)
+
+pyext-crypt-shared:		$(PYEXT_CRYPT_SHARED)
+pyext-crypt-static:		$(PYEXT_CRYPT_STATIC)
+
+pyext-crypt-clean:
+	rm -f $(PYEXT_CRYPT_LOBJS)
+	rm -f $(PYEXT_CRYPT_OBJS)
+	rm -f $(PYEXT_CRYPT_SHARED)
+	rm -f $(PYEXT_CRYPT_STATIC)
+
+clean:	pyext-crypt-clean
+
+.PHONY:	pyext-crypt-shared
+.PHONY:	pyext-crypt-static
+.PHONY:	pyext-crypt-clean
+
+
+# _csv
+PYEXT_CSV_SRCS			+= pyext/obj/_csv.c
+
+PYEXT_CSV_LOBJS			= $(PYEXT_CSV_SRCS:.c=.lo)
+PYEXT_CSV_OBJS			= $(PYEXT_CSV_SRCS:.c=.o)
+
+PYEXT_CSV_SHARED		= pyext/_csv$(PYTHON_SOEXT)
+PYEXT_CSV_STATIC		= pyext/_csv$(OS_ARCHIVE_EXT)
+
+$(PYEXT_CSV_SHARED):		$(PYEXT_CSV_LOBJS)
+$(PYEXT_CSV_STATIC):		$(PYEXT_CSV_OBJS)
+
+pyext-csv-shared:		$(PYEXT_CSV_SHARED)
+pyext-csv-static:		$(PYEXT_CSV_STATIC)
+
+pyext-csv-clean:
+	rm -f $(PYEXT_CSV_LOBJS)
+	rm -f $(PYEXT_CSV_OBJS)
+	rm -f $(PYEXT_CSV_SHARED)
+	rm -f $(PYEXT_CSV_STATIC)
+
+clean:	pyext-csv-clean
+
+.PHONY:	pyext-csv-shared
+.PHONY:	pyext-csv-static
+.PHONY:	pyext-csv-clean
+
+
+# _ctypes_test
+PYEXT_CTYPES_TEST_SRCS		+= pyext/obj/_ctypes/_ctypes_test.c
+
+PYEXT_CTYPES_TEST_LOBJS		= $(PYEXT_CTYPES_TEST_SRCS:.c=.lo)
+PYEXT_CTYPES_TEST_OBJS		= $(PYEXT_CTYPES_TEST_SRCS:.c=.o)
+
+PYEXT_CTYPES_TEST_SHARED	= pyext/_ctypes_test$(PYTHON_SOEXT)
+PYEXT_CTYPES_TEST_STATIC	= pyext/_ctypes_test$(OS_ARCHIVE_EXT)
+
+$(PYEXT_CTYPES_TEST_SHARED):	$(PYEXT_CTYPES_TEST_LOBJS)
+$(PYEXT_CTYPES_TEST_STATIC):	$(PYEXT_CTYPES_TEST_OBJS)
+
+pyext-ctypes_test-shared:	$(PYEXT_CTYPES_TEST_SHARED)
+pyext-ctypes_test-static:	$(PYEXT_CTYPES_TEST_STATIC)
+
+pyext-ctypes_test-clean:
+	rm -f $(PYEXT_CTYPES_TEST_LOBJS)
+	rm -f $(PYEXT_CTYPES_TEST_OBJS)
+	rm -f $(PYEXT_CTYPES_TEST_SHARED)
+	rm -f $(PYEXT_CTYPES_TEST_STATIC)
+
+clean:	pyext-ctypes_test-clean
+
+.PHONY:	pyext-ctypes_test-shared
+.PHONY:	pyext-ctypes_test-static
+.PHONY:	pyext-ctypes_test-clean
+
+
+# _datetime
+PYEXT_DATETIME_SRCS		+= pyext/obj/_datetimemodule.c
+
+PYEXT_DATETIME_LOBJS		= $(PYEXT_DATETIME_SRCS:.c=.lo)
+PYEXT_DATETIME_OBJS		= $(PYEXT_DATETIME_SRCS:.c=.o)
+
+PYEXT_DATETIME_SHARED		= pyext/_datetime$(PYTHON_SOEXT)
+PYEXT_DATETIME_STATIC		= pyext/_datetime$(OS_ARCHIVE_EXT)
+
+$(PYEXT_DATETIME_SHARED):	$(PYEXT_DATETIME_LOBJS)
+$(PYEXT_DATETIME_STATIC):	$(PYEXT_DATETIME_OBJS)
+
+pyext-datetime-shared:		$(PYEXT_DATETIME_SHARED)
+pyext-datetime-static:		$(PYEXT_DATETIME_STATIC)
+
+pyext-datetime-clean:
+	rm -f $(PYEXT_DATETIME_LOBJS)
+	rm -f $(PYEXT_DATETIME_OBJS)
+	rm -f $(PYEXT_DATETIME_SHARED)
+	rm -f $(PYEXT_DATETIME_STATIC)
+
+clean:	pyext-datetime-clean
+
+.PHONY:	pyext-datetime-shared
+.PHONY:	pyext-datetime-static
+.PHONY:	pyext-datetime-clean
+
+
+# _elementtree
+PYEXT_ELEMENTTREE_SRCS		+= pyext/obj/_elementtree.c
+
+PYEXT_ELEMENTTREE_LOBJS		= $(PYEXT_ELEMENTTREE_SRCS:.c=.lo)
+PYEXT_ELEMENTTREE_OBJS		= $(PYEXT_ELEMENTTREE_SRCS:.c=.o)
+
+PYEXT_ELEMENTTREE_SHARED	= pyext/_elementtree$(PYTHON_SOEXT)
+PYEXT_ELEMENTTREE_STATIC	= pyext/_elementtree$(OS_ARCHIVE_EXT)
+
+$(PYEXT_ELEMENTTREE_SHARED):	$(PYEXT_ELEMENTTREE_LOBJS)
+$(PYEXT_ELEMENTTREE_STATIC):	$(PYEXT_ELEMENTTREE_OBJS)
+
+pyext-elementtree-shared:	$(PYEXT_ELEMENTTREE_SHARED)
+pyext-elementtree-static:	$(PYEXT_ELEMENTTREE_STATIC)
+
+pyext-elementtree-clean:
+	rm -f $(PYEXT_ELEMENTTREE_LOBJS)
+	rm -f $(PYEXT_ELEMENTTREE_OBJS)
+	rm -f $(PYEXT_ELEMENTTREE_SHARED)
+	rm -f $(PYEXT_ELEMENTTREE_STATIC)
+
+clean:	pyext-elementtree-clean
+
+.PHONY:	pyext-elementtree-shared
+.PHONY:	pyext-elementtree-static
+.PHONY:	pyext-elementtree-clean
+
+
+# _heapq
+PYEXT_HEAPQ_SRCS		+= pyext/obj/_heapqmodule.c
+
+PYEXT_HEAPQ_LOBJS		= $(PYEXT_HEAPQ_SRCS:.c=.lo)
+PYEXT_HEAPQ_OBJS		= $(PYEXT_HEAPQ_SRCS:.c=.o)
+
+PYEXT_HEAPQ_SHARED		= pyext/_heapq$(PYTHON_SOEXT)
+PYEXT_HEAPQ_STATIC		= pyext/_heapq$(OS_ARCHIVE_EXT)
+
+$(PYEXT_HEAPQ_SHARED):		$(PYEXT_HEAPQ_LOBJS)
+$(PYEXT_HEAPQ_STATIC):		$(PYEXT_HEAPQ_OBJS)
+
+pyext-heapq-shared:		$(PYEXT_HEAPQ_SHARED)
+pyext-heapq-static:		$(PYEXT_HEAPQ_STATIC)
+
+pyext-heapq-clean:
+	rm -f $(PYEXT_HEAPQ_LOBJS)
+	rm -f $(PYEXT_HEAPQ_OBJS)
+	rm -f $(PYEXT_HEAPQ_SHARED)
+	rm -f $(PYEXT_HEAPQ_STATIC)
+
+clean:	pyext-heapq-clean
+
+.PHONY:	pyext-heapq-shared
+.PHONY:	pyext-heapq-static
+.PHONY:	pyext-heapq-clean
+
+
+# _json
+PYEXT_JSON_SRCS			+= pyext/obj/_json.c
+
+PYEXT_JSON_LOBJS		= $(PYEXT_JSON_SRCS:.c=.lo)
+PYEXT_JSON_OBJS			= $(PYEXT_JSON_SRCS:.c=.o)
+
+PYEXT_JSON_SHARED		= pyext/_json$(PYTHON_SOEXT)
+PYEXT_JSON_STATIC		= pyext/_json$(OS_ARCHIVE_EXT)
+
+$(PYEXT_JSON_SHARED):		$(PYEXT_JSON_LOBJS)
+$(PYEXT_JSON_STATIC):		$(PYEXT_JSON_OBJS)
+
+pyext-json-shared:		$(PYEXT_JSON_SHARED)
+pyext-json-static:		$(PYEXT_JSON_STATIC)
+
+pyext-json-clean:
+	rm -f $(PYEXT_JSON_LOBJS)
+	rm -f $(PYEXT_JSON_OBJS)
+	rm -f $(PYEXT_JSON_SHARED)
+	rm -f $(PYEXT_JSON_STATIC)
+
+clean:	pyext-json-clean
+
+.PHONY:	pyext-json-shared
+.PHONY:	pyext-json-static
+.PHONY:	pyext-json-clean
+
+
+# _md5
+PYEXT_MD5_SRCS			+= pyext/obj/md5module.c
+
+PYEXT_MD5_LOBJS			= $(PYEXT_MD5_SRCS:.c=.lo)
+PYEXT_MD5_OBJS			= $(PYEXT_MD5_SRCS:.c=.o)
+
+PYEXT_MD5_SHARED		= pyext/_md5$(PYTHON_SOEXT)
+PYEXT_MD5_STATIC		= pyext/_md5$(OS_ARCHIVE_EXT)
+
+$(PYEXT_MD5_SHARED):		$(PYEXT_MD5_LOBJS)
+$(PYEXT_MD5_STATIC):		$(PYEXT_MD5_OBJS)
+
+pyext-md5-shared:		$(PYEXT_MD5_SHARED)
+pyext-md5-static:		$(PYEXT_MD5_STATIC)
+
+pyext-md5-clean:
+	rm -f $(PYEXT_MD5_LOBJS)
+	rm -f $(PYEXT_MD5_OBJS)
+	rm -f $(PYEXT_MD5_SHARED)
+	rm -f $(PYEXT_MD5_STATIC)
+
+clean:	pyext-md5-clean
+
+.PHONY:	pyext-md5-shared
+.PHONY:	pyext-md5-static
+.PHONY:	pyext-md5-clean
+
+
+# _opcode
+PYEXT_OPCODE_SRCS		+= pyext/obj/_opcode.c
+
+PYEXT_OPCODE_LOBJS		= $(PYEXT_OPCODE_SRCS:.c=.lo)
+PYEXT_OPCODE_OBJS		= $(PYEXT_OPCODE_SRCS:.c=.o)
+
+PYEXT_OPCODE_SHARED		= pyext/_opcode$(PYTHON_SOEXT)
+PYEXT_OPCODE_STATIC		= pyext/_opcode$(OS_ARCHIVE_EXT)
+
+$(PYEXT_OPCODE_SHARED):		$(PYEXT_OPCODE_LOBJS)
+$(PYEXT_OPCODE_STATIC):		$(PYEXT_OPCODE_OBJS)
+
+pyext-opcode-shared:		$(PYEXT_OPCODE_SHARED)
+pyext-opcode-static:		$(PYEXT_OPCODE_STATIC)
+
+pyext-opcode-clean:
+	rm -f $(PYEXT_OPCODE_LOBJS)
+	rm -f $(PYEXT_OPCODE_OBJS)
+	rm -f $(PYEXT_OPCODE_SHARED)
+	rm -f $(PYEXT_OPCODE_STATIC)
+
+clean:	pyext-opcode-clean
+
+.PHONY:	pyext-opcode-shared
+.PHONY:	pyext-opcode-static
+.PHONY:	pyext-opcode-clean
+
+
+# _pickle
+PYEXT_PICKLE_SRCS		+= pyext/obj/_pickle.c
+
+PYEXT_PICKLE_LOBJS		= $(PYEXT_PICKLE_SRCS:.c=.lo)
+PYEXT_PICKLE_OBJS		= $(PYEXT_PICKLE_SRCS:.c=.o)
+
+PYEXT_PICKLE_SHARED		= pyext/_pickle$(PYTHON_SOEXT)
+PYEXT_PICKLE_STATIC		= pyext/_pickle$(OS_ARCHIVE_EXT)
+
+$(PYEXT_PICKLE_SHARED):		$(PYEXT_PICKLE_LOBJS)
+$(PYEXT_PICKLE_STATIC):		$(PYEXT_PICKLE_OBJS)
+
+pyext-pickle-shared:		$(PYEXT_PICKLE_SHARED)
+pyext-pickle-static:		$(PYEXT_PICKLE_STATIC)
+
+pyext-pickle-clean:
+	rm -f $(PYEXT_PICKLE_LOBJS)
+	rm -f $(PYEXT_PICKLE_OBJS)
+	rm -f $(PYEXT_PICKLE_SHARED)
+	rm -f $(PYEXT_PICKLE_STATIC)
+
+clean:	pyext-pickle-clean
+
+.PHONY:	pyext-pickle-shared
+.PHONY:	pyext-pickle-static
+.PHONY:	pyext-pickle-clean
+
+
+# _posixsubprocess
+PYEXT_POSIXSUBPROCESS_SRCS	+= pyext/obj/_posixsubprocess.c
+
+PYEXT_POSIXSUBPROCESS_LOBJS	= $(PYEXT_POSIXSUBPROCESS_SRCS:.c=.lo)
+PYEXT_POSIXSUBPROCESS_OBJS	= $(PYEXT_POSIXSUBPROCESS_SRCS:.c=.o)
+
+PYEXT_POSIXSUBPROCESS_SHARED	= pyext/_posixsubprocess$(PYTHON_SOEXT)
+PYEXT_POSIXSUBPROCESS_STATIC	= pyext/_posixsubprocess$(OS_ARCHIVE_EXT)
+
+$(PYEXT_POSIXSUBPROCESS_SHARED):$(PYEXT_POSIXSUBPROCESS_LOBJS)
+$(PYEXT_POSIXSUBPROCESS_STATIC):$(PYEXT_POSIXSUBPROCESS_OBJS)
+
+pyext-posixsubprocess-shared:	$(PYEXT_POSIXSUBPROCESS_SHARED)
+pyext-posixsubprocess-static:	$(PYEXT_POSIXSUBPROCESS_STATIC)
+
+pyext-posixsubprocess-clean:
+	rm -f $(PYEXT_POSIXSUBPROCESS_LOBJS)
+	rm -f $(PYEXT_POSIXSUBPROCESS_OBJS)
+	rm -f $(PYEXT_POSIXSUBPROCESS_SHARED)
+	rm -f $(PYEXT_POSIXSUBPROCESS_STATIC)
+
+clean:	pyext-posixsubprocess-clean
+
+.PHONY:	pyext-posixsubprocess-shared
+.PHONY:	pyext-posixsubprocess-static
+.PHONY:	pyext-posixsubprocess-clean
+
+
+# _queue
+PYEXT_QUEUE_SRCS		+= pyext/obj/_queuemodule.c
+
+PYEXT_QUEUE_LOBJS		= $(PYEXT_QUEUE_SRCS:.c=.lo)
+PYEXT_QUEUE_OBJS		= $(PYEXT_QUEUE_SRCS:.c=.o)
+
+PYEXT_QUEUE_SHARED		= pyext/_queue$(PYTHON_SOEXT)
+PYEXT_QUEUE_STATIC		= pyext/_queue$(OS_ARCHIVE_EXT)
+
+$(PYEXT_QUEUE_SHARED):		$(PYEXT_QUEUE_LOBJS)
+$(PYEXT_QUEUE_STATIC):		$(PYEXT_QUEUE_OBJS)
+
+pyext-queue-shared:		$(PYEXT_QUEUE_SHARED)
+pyext-queue-static:		$(PYEXT_QUEUE_STATIC)
+
+pyext-queue-clean:
+	rm -f $(PYEXT_QUEUE_LOBJS)
+	rm -f $(PYEXT_QUEUE_OBJS)
+	rm -f $(PYEXT_QUEUE_SHARED)
+	rm -f $(PYEXT_QUEUE_STATIC)
+
+clean:	pyext-queue-clean
+
+.PHONY:	pyext-queue-shared
+.PHONY:	pyext-queue-static
+.PHONY:	pyext-queue-clean
+
+
+# _random
+PYEXT_RANDOM_SRCS		+= pyext/obj/_randommodule.c
+
+PYEXT_RANDOM_LOBJS		= $(PYEXT_RANDOM_SRCS:.c=.lo)
+PYEXT_RANDOM_OBJS		= $(PYEXT_RANDOM_SRCS:.c=.o)
+
+PYEXT_RANDOM_SHARED		= pyext/_random$(PYTHON_SOEXT)
+PYEXT_RANDOM_STATIC		= pyext/_random$(OS_ARCHIVE_EXT)
+
+$(PYEXT_RANDOM_SHARED):		$(PYEXT_RANDOM_LOBJS)
+$(PYEXT_RANDOM_STATIC):		$(PYEXT_RANDOM_OBJS)
+
+pyext-random-shared:		$(PYEXT_RANDOM_SHARED)
+pyext-random-static:		$(PYEXT_RANDOM_STATIC)
+
+pyext-random-clean:
+	rm -f $(PYEXT_RANDOM_LOBJS)
+	rm -f $(PYEXT_RANDOM_OBJS)
+	rm -f $(PYEXT_RANDOM_SHARED)
+	rm -f $(PYEXT_RANDOM_STATIC)
+
+clean:	pyext-random-clean
+
+.PHONY:	pyext-random-shared
+.PHONY:	pyext-random-static
+.PHONY:	pyext-random-clean
+
+
+# _sha1
+PYEXT_SHA1_SRCS			+= pyext/obj/sha1module.c
+
+PYEXT_SHA1_LOBJS		= $(PYEXT_SHA1_SRCS:.c=.lo)
+PYEXT_SHA1_OBJS			= $(PYEXT_SHA1_SRCS:.c=.o)
+
+PYEXT_SHA1_SHARED		= pyext/_sha1$(PYTHON_SOEXT)
+PYEXT_SHA1_STATIC		= pyext/_sha1$(OS_ARCHIVE_EXT)
+
+$(PYEXT_SHA1_SHARED):		$(PYEXT_SHA1_LOBJS)
+$(PYEXT_SHA1_STATIC):		$(PYEXT_SHA1_OBJS)
+
+pyext-sha1-shared:		$(PYEXT_SHA1_SHARED)
+pyext-sha1-static:		$(PYEXT_SHA1_STATIC)
+
+pyext-sha1-clean:
+	rm -f $(PYEXT_SHA1_LOBJS)
+	rm -f $(PYEXT_SHA1_OBJS)
+	rm -f $(PYEXT_SHA1_SHARED)
+	rm -f $(PYEXT_SHA1_STATIC)
+
+clean:	pyext-sha1-clean
+
+.PHONY:	pyext-sha1-shared
+.PHONY:	pyext-sha1-static
+.PHONY:	pyext-sha1-clean
+
+
+# _sha256
+PYEXT_SHA256_SRCS		+= pyext/obj/sha256module.c
+
+PYEXT_SHA256_LOBJS		= $(PYEXT_SHA256_SRCS:.c=.lo)
+PYEXT_SHA256_OBJS		= $(PYEXT_SHA256_SRCS:.c=.o)
+
+PYEXT_SHA256_SHARED		= pyext/_sha256$(PYTHON_SOEXT)
+PYEXT_SHA256_STATIC		= pyext/_sha256$(OS_ARCHIVE_EXT)
+
+$(PYEXT_SHA256_SHARED):		$(PYEXT_SHA256_LOBJS)
+$(PYEXT_SHA256_STATIC):		$(PYEXT_SHA256_OBJS)
+
+pyext-sha256-shared:		$(PYEXT_SHA256_SHARED)
+pyext-sha256-static:		$(PYEXT_SHA256_STATIC)
+
+pyext-sha256-clean:
+	rm -f $(PYEXT_SHA256_LOBJS)
+	rm -f $(PYEXT_SHA256_OBJS)
+	rm -f $(PYEXT_SHA256_SHARED)
+	rm -f $(PYEXT_SHA256_STATIC)
+
+clean:	pyext-sha256-clean
+
+.PHONY:	pyext-sha256-shared
+.PHONY:	pyext-sha256-static
+.PHONY:	pyext-sha256-clean
+
+
+# _sha3
+PYEXT_SHA3_SRCS			+= pyext/obj/_sha3/sha3module.c
+
+PYEXT_SHA3_LOBJS		= $(PYEXT_SHA3_SRCS:.c=.lo)
+PYEXT_SHA3_OBJS			= $(PYEXT_SHA3_SRCS:.c=.o)
+
+PYEXT_SHA3_SHARED		= pyext/_sha3$(PYTHON_SOEXT)
+PYEXT_SHA3_STATIC		= pyext/_sha3$(OS_ARCHIVE_EXT)
+
+$(PYEXT_SHA3_SHARED):		$(PYEXT_SHA3_LOBJS)
+$(PYEXT_SHA3_STATIC):		$(PYEXT_SHA3_OBJS)
+
+pyext-sha3-shared:		$(PYEXT_SHA3_SHARED)
+pyext-sha3-static:		$(PYEXT_SHA3_STATIC)
+
+pyext-sha3-clean:
+	rm -f $(PYEXT_SHA3_LOBJS)
+	rm -f $(PYEXT_SHA3_OBJS)
+	rm -f $(PYEXT_SHA3_SHARED)
+	rm -f $(PYEXT_SHA3_STATIC)
+
+clean:	pyext-sha3-clean
+
+.PHONY:	pyext-sha3-shared
+.PHONY:	pyext-sha3-static
+.PHONY:	pyext-sha3-clean
+
+
+# _sha512
+PYEXT_SHA512_SRCS		+= pyext/obj/sha512module.c
+
+PYEXT_SHA512_LOBJS		= $(PYEXT_SHA512_SRCS:.c=.lo)
+PYEXT_SHA512_OBJS		= $(PYEXT_SHA512_SRCS:.c=.o)
+
+PYEXT_SHA512_SHARED		= pyext/_sha512$(PYTHON_SOEXT)
+PYEXT_SHA512_STATIC		= pyext/_sha512$(OS_ARCHIVE_EXT)
+
+$(PYEXT_SHA512_SHARED):		$(PYEXT_SHA512_LOBJS)
+$(PYEXT_SHA512_STATIC):		$(PYEXT_SHA512_OBJS)
+
+pyext-sha512-shared:		$(PYEXT_SHA512_SHARED)
+pyext-sha512-static:		$(PYEXT_SHA512_STATIC)
+
+pyext-sha512-clean:
+	rm -f $(PYEXT_SHA512_LOBJS)
+	rm -f $(PYEXT_SHA512_OBJS)
+	rm -f $(PYEXT_SHA512_SHARED)
+	rm -f $(PYEXT_SHA512_STATIC)
+
+clean:	pyext-sha512-clean
+
+.PHONY:	pyext-sha512-shared
+.PHONY:	pyext-sha512-static
+.PHONY:	pyext-sha512-clean
+
+
+# _socket
+PYEXT_SOCKET_SRCS		+= pyext/obj/socketmodule.c
+
+PYEXT_SOCKET_LOBJS		= $(PYEXT_SOCKET_SRCS:.c=.lo)
+PYEXT_SOCKET_OBJS		= $(PYEXT_SOCKET_SRCS:.c=.o)
+
+PYEXT_SOCKET_SHARED		= pyext/_socket$(PYTHON_SOEXT)
+PYEXT_SOCKET_STATIC		= pyext/_socket$(OS_ARCHIVE_EXT)
+
+$(PYEXT_SOCKET_SHARED):		$(PYEXT_SOCKET_LOBJS)
+$(PYEXT_SOCKET_STATIC):		$(PYEXT_SOCKET_OBJS)
+
+pyext-socket-shared:		$(PYEXT_SOCKET_SHARED)
+pyext-socket-static:		$(PYEXT_SOCKET_STATIC)
+
+pyext-socket-clean:
+	rm -f $(PYEXT_SOCKET_LOBJS)
+	rm -f $(PYEXT_SOCKET_OBJS)
+	rm -f $(PYEXT_SOCKET_SHARED)
+	rm -f $(PYEXT_SOCKET_STATIC)
+
+clean:	pyext-socket-clean
+
+.PHONY:	pyext-socket-shared
+.PHONY:	pyext-socket-static
+.PHONY:	pyext-socket-clean
+
+
+# _struct
+PYEXT_STRUCT_SRCS		+= pyext/obj/_struct.c
+
+PYEXT_STRUCT_LOBJS		= $(PYEXT_STRUCT_SRCS:.c=.lo)
+PYEXT_STRUCT_OBJS		= $(PYEXT_STRUCT_SRCS:.c=.o)
+
+PYEXT_STRUCT_SHARED		= pyext/_struct$(PYTHON_SOEXT)
+PYEXT_STRUCT_STATIC		= pyext/_struct$(OS_ARCHIVE_EXT)
+
+$(PYEXT_STRUCT_SHARED):		$(PYEXT_STRUCT_LOBJS)
+$(PYEXT_STRUCT_STATIC):		$(PYEXT_STRUCT_OBJS)
+
+pyext-struct-shared:		$(PYEXT_STRUCT_SHARED)
+pyext-struct-static:		$(PYEXT_STRUCT_STATIC)
+
+pyext-struct-clean:
+	rm -f $(PYEXT_STRUCT_LOBJS)
+	rm -f $(PYEXT_STRUCT_OBJS)
+	rm -f $(PYEXT_STRUCT_SHARED)
+	rm -f $(PYEXT_STRUCT_STATIC)
+
+clean:	pyext-struct-clean
+
+.PHONY:	pyext-struct-shared
+.PHONY:	pyext-struct-static
+.PHONY:	pyext-struct-clean
+
+
+# _testbuffer
+PYEXT_TESTBUFFER_SRCS		+= pyext/obj/_testbuffer.c
+
+PYEXT_TESTBUFFER_LOBJS		= $(PYEXT_TESTBUFFER_SRCS:.c=.lo)
+PYEXT_TESTBUFFER_OBJS		= $(PYEXT_TESTBUFFER_SRCS:.c=.o)
+
+PYEXT_TESTBUFFER_SHARED		= pyext/_testbuffer$(PYTHON_SOEXT)
+PYEXT_TESTBUFFER_STATIC		= pyext/_testbuffer$(OS_ARCHIVE_EXT)
+
+$(PYEXT_TESTBUFFER_SHARED):	$(PYEXT_TESTBUFFER_LOBJS)
+$(PYEXT_TESTBUFFER_STATIC):	$(PYEXT_TESTBUFFER_OBJS)
+
+pyext-testbuffer-shared:	$(PYEXT_TESTBUFFER_SHARED)
+pyext-testbuffer-static:	$(PYEXT_TESTBUFFER_STATIC)
+
+pyext-testbuffer-clean:
+	rm -f $(PYEXT_TESTBUFFER_LOBJS)
+	rm -f $(PYEXT_TESTBUFFER_OBJS)
+	rm -f $(PYEXT_TESTBUFFER_SHARED)
+	rm -f $(PYEXT_TESTBUFFER_STATIC)
+
+clean:	pyext-testbuffer-clean
+
+.PHONY:	pyext-testbuffer-shared
+.PHONY:	pyext-testbuffer-static
+.PHONY:	pyext-testbuffer-clean
+
+
+# _testcapi
+PYEXT_TESTCAPI_SRCS		+= pyext/obj/_testcapimodule.c
+
+PYEXT_TESTCAPI_LOBJS		= $(PYEXT_TESTCAPI_SRCS:.c=.lo)
+PYEXT_TESTCAPI_OBJS		= $(PYEXT_TESTCAPI_SRCS:.c=.o)
+
+PYEXT_TESTCAPI_SHARED		= pyext/_testcapi$(PYTHON_SOEXT)
+PYEXT_TESTCAPI_STATIC		= pyext/_testcapi$(OS_ARCHIVE_EXT)
+
+$(PYEXT_TESTCAPI_SHARED):	$(PYEXT_TESTCAPI_LOBJS)
+$(PYEXT_TESTCAPI_STATIC):	$(PYEXT_TESTCAPI_OBJS)
+
+pyext-testcapi-shared:		$(PYEXT_TESTCAPI_SHARED)
+pyext-testcapi-static:		$(PYEXT_TESTCAPI_STATIC)
+
+pyext-testcapi-clean:
+	rm -f $(PYEXT_TESTCAPI_LOBJS)
+	rm -f $(PYEXT_TESTCAPI_OBJS)
+	rm -f $(PYEXT_TESTCAPI_SHARED)
+	rm -f $(PYEXT_TESTCAPI_STATIC)
+
+clean:	pyext-testcapi-clean
+
+.PHONY:	pyext-testcapi-shared
+.PHONY:	pyext-testcapi-static
+.PHONY:	pyext-testcapi-clean
+
+
+# _testimportmultiple
+PYEXT_TESTIMPORTMULTIPLE_SRCS	+= pyext/obj/_testimportmultiple.c
+
+PYEXT_TESTIMPORTMULTIPLE_LOBJS	= $(PYEXT_TESTIMPORTMULTIPLE_SRCS:.c=.lo)
+PYEXT_TESTIMPORTMULTIPLE_OBJS	= $(PYEXT_TESTIMPORTMULTIPLE_SRCS:.c=.o)
+
+PYEXT_TESTIMPORTMULTIPLE_SHARED	= pyext/_testimportmultiple$(PYTHON_SOEXT)
+PYEXT_TESTIMPORTMULTIPLE_STATIC	= pyext/_testimportmultiple$(OS_ARCHIVE_EXT)
+
+$(PYEXT_TESTIMPORTMULTIPLE_SHARED):$(PYEXT_TESTIMPORTMULTIPLE_LOBJS)
+$(PYEXT_TESTIMPORTMULTIPLE_STATIC):$(PYEXT_TESTIMPORTMULTIPLE_OBJS)
+
+pyext-testimportmultiple-shared:	$(PYEXT_TESTIMPORTMULTIPLE_SHARED)
+pyext-testimportmultiple-static:	$(PYEXT_TESTIMPORTMULTIPLE_STATIC)
+
+pyext-testimportmultiple-clean:
+	rm -f $(PYEXT_TESTIMPORTMULTIPLE_LOBJS)
+	rm -f $(PYEXT_TESTIMPORTMULTIPLE_OBJS)
+	rm -f $(PYEXT_TESTIMPORTMULTIPLE_SHARED)
+	rm -f $(PYEXT_TESTIMPORTMULTIPLE_STATIC)
+
+clean:	pyext-testimportmultiple-clean
+
+.PHONY:	pyext-testimportmultiple-shared
+.PHONY:	pyext-testimportmultiple-static
+.PHONY:	pyext-testimportmultiple-clean
+
+
+# _testmultiphase
+PYEXT_TESTMULTIPHASE_SRCS	+= pyext/obj/_testmultiphase.c
+
+PYEXT_TESTMULTIPHASE_LOBJS	= $(PYEXT_TESTMULTIPHASE_SRCS:.c=.lo)
+PYEXT_TESTMULTIPHASE_OBJS	= $(PYEXT_TESTMULTIPHASE_SRCS:.c=.o)
+
+PYEXT_TESTMULTIPHASE_SHARED	= pyext/_testmultiphase$(PYTHON_SOEXT)
+PYEXT_TESTMULTIPHASE_STATIC	= pyext/_testmultiphase$(OS_ARCHIVE_EXT)
+
+$(PYEXT_TESTMULTIPHASE_SHARED):	$(PYEXT_TESTMULTIPHASE_LOBJS)
+$(PYEXT_TESTMULTIPHASE_STATIC):	$(PYEXT_TESTMULTIPHASE_OBJS)
+
+pyext-testmultiphase-shared:	$(PYEXT_TESTMULTIPHASE_SHARED)
+pyext-testmultiphase-static:	$(PYEXT_TESTMULTIPHASE_STATIC)
+
+pyext-testmultiphase-clean:
+	rm -f $(PYEXT_TESTMULTIPHASE_LOBJS)
+	rm -f $(PYEXT_TESTMULTIPHASE_OBJS)
+	rm -f $(PYEXT_TESTMULTIPHASE_SHARED)
+	rm -f $(PYEXT_TESTMULTIPHASE_STATIC)
+
+clean:	pyext-testmultiphase-clean
+
+.PHONY:	pyext-testmultiphase-shared
+.PHONY:	pyext-testmultiphase-static
+.PHONY:	pyext-testmultiphase-clean
+
+
+# array
+PYEXT_ARRAY_SRCS		+= pyext/obj/arraymodule.c
+
+PYEXT_ARRAY_LOBJS		= $(PYEXT_ARRAY_SRCS:.c=.lo)
+PYEXT_ARRAY_OBJS		= $(PYEXT_ARRAY_SRCS:.c=.o)
+
+PYEXT_ARRAY_SHARED		= pyext/array$(PYTHON_SOEXT)
+PYEXT_ARRAY_STATIC		= pyext/array$(OS_ARCHIVE_EXT)
+
+$(PYEXT_ARRAY_SHARED):		$(PYEXT_ARRAY_LOBJS)
+$(PYEXT_ARRAY_STATIC):		$(PYEXT_ARRAY_OBJS)
+
+pyext-array-shared:		$(PYEXT_ARRAY_SHARED)
+pyext-array-static:		$(PYEXT_ARRAY_STATIC)
+
+pyext-array-clean:
+	rm -f $(PYEXT_ARRAY_LOBJS)
+	rm -f $(PYEXT_ARRAY_OBJS)
+	rm -f $(PYEXT_ARRAY_SHARED)
+	rm -f $(PYEXT_ARRAY_STATIC)
+
+clean:	pyext-array-clean
+
+.PHONY:	pyext-array-shared
+.PHONY:	pyext-array-static
+.PHONY:	pyext-array-clean
+
+
+# audioop
+PYEXT_AUDIOOP_SRCS		+= pyext/obj/audioop.c
+
+PYEXT_AUDIOOP_LOBJS		= $(PYEXT_AUDIOOP_SRCS:.c=.lo)
+PYEXT_AUDIOOP_OBJS		= $(PYEXT_AUDIOOP_SRCS:.c=.o)
+
+PYEXT_AUDIOOP_SHARED		= pyext/audioop$(PYTHON_SOEXT)
+PYEXT_AUDIOOP_STATIC		= pyext/audioop$(OS_ARCHIVE_EXT)
+
+$(PYEXT_AUDIOOP_SHARED):	$(PYEXT_AUDIOOP_LOBJS)
+$(PYEXT_AUDIOOP_STATIC):	$(PYEXT_AUDIOOP_OBJS)
+
+pyext-audioop-shared:		$(PYEXT_AUDIOOP_SHARED)
+pyext-audioop-static:		$(PYEXT_AUDIOOP_STATIC)
+
+pyext-audioop-clean:
+	rm -f $(PYEXT_AUDIOOP_LOBJS)
+	rm -f $(PYEXT_AUDIOOP_OBJS)
+	rm -f $(PYEXT_AUDIOOP_SHARED)
+	rm -f $(PYEXT_AUDIOOP_STATIC)
+
+clean:	pyext-audioop-clean
+
+.PHONY:	pyext-audioop-shared
+.PHONY:	pyext-audioop-static
+.PHONY:	pyext-audioop-clean
+
+
+# fcntl
+PYEXT_FCNTL_SRCS		+= pyext/obj/fcntlmodule.c
+
+PYEXT_FCNTL_LOBJS		= $(PYEXT_FCNTL_SRCS:.c=.lo)
+PYEXT_FCNTL_OBJS		= $(PYEXT_FCNTL_SRCS:.c=.o)
+
+PYEXT_FCNTL_SHARED		= pyext/fcntl$(PYTHON_SOEXT)
+PYEXT_FCNTL_STATIC		= pyext/fcntl$(OS_ARCHIVE_EXT)
+
+$(PYEXT_FCNTL_SHARED):		$(PYEXT_FCNTL_LOBJS)
+$(PYEXT_FCNTL_STATIC):		$(PYEXT_FCNTL_OBJS)
+
+pyext-fcntl-shared:		$(PYEXT_FCNTL_SHARED)
+pyext-fcntl-static:		$(PYEXT_FCNTL_STATIC)
+
+pyext-fcntl-clean:
+	rm -f $(PYEXT_FCNTL_LOBJS)
+	rm -f $(PYEXT_FCNTL_OBJS)
+	rm -f $(PYEXT_FCNTL_SHARED)
+	rm -f $(PYEXT_FCNTL_STATIC)
+
+clean:	pyext-fcntl-clean
+
+.PHONY:	pyext-fcntl-shared
+.PHONY:	pyext-fcntl-static
+.PHONY:	pyext-fcntl-clean
+
+
+# grp
+PYEXT_GRP_SRCS			+= pyext/obj/grpmodule.c
+
+PYEXT_GRP_LOBJS			= $(PYEXT_GRP_SRCS:.c=.lo)
+PYEXT_GRP_OBJS			= $(PYEXT_GRP_SRCS:.c=.o)
+
+PYEXT_GRP_SHARED		= pyext/grp$(PYTHON_SOEXT)
+PYEXT_GRP_STATIC		= pyext/grp$(OS_ARCHIVE_EXT)
+
+$(PYEXT_GRP_SHARED):		$(PYEXT_GRP_LOBJS)
+$(PYEXT_GRP_STATIC):		$(PYEXT_GRP_OBJS)
+
+pyext-grp-shared:		$(PYEXT_GRP_SHARED)
+pyext-grp-static:		$(PYEXT_GRP_STATIC)
+
+pyext-grp-clean:
+	rm -f $(PYEXT_GRP_LOBJS)
+	rm -f $(PYEXT_GRP_OBJS)
+	rm -f $(PYEXT_GRP_SHARED)
+	rm -f $(PYEXT_GRP_STATIC)
+
+clean:	pyext-grp-clean
+
+.PHONY:	pyext-grp-shared
+.PHONY:	pyext-grp-static
+.PHONY:	pyext-grp-clean
+
+
+# mmap
+PYEXT_MMAP_SRCS			+= pyext/obj/mmapmodule.c
+
+PYEXT_MMAP_LOBJS		= $(PYEXT_MMAP_SRCS:.c=.lo)
+PYEXT_MMAP_OBJS			= $(PYEXT_MMAP_SRCS:.c=.o)
+
+PYEXT_MMAP_SHARED		= pyext/mmap$(PYTHON_SOEXT)
+PYEXT_MMAP_STATIC		= pyext/mmap$(OS_ARCHIVE_EXT)
+
+$(PYEXT_MMAP_SHARED):		$(PYEXT_MMAP_LOBJS)
+$(PYEXT_MMAP_STATIC):		$(PYEXT_MMAP_OBJS)
+
+pyext-mmap-shared:		$(PYEXT_MMAP_SHARED)
+pyext-mmap-static:		$(PYEXT_MMAP_STATIC)
+
+pyext-mmap-clean:
+	rm -f $(PYEXT_MMAP_LOBJS)
+	rm -f $(PYEXT_MMAP_OBJS)
+	rm -f $(PYEXT_MMAP_SHARED)
+	rm -f $(PYEXT_MMAP_STATIC)
+
+clean:	pyext-mmap-clean
+
+.PHONY:	pyext-mmap-shared
+.PHONY:	pyext-mmap-static
+.PHONY:	pyext-mmap-clean
+
+
+# ossaudiodev
+PYEXT_OSSAUDIODEV_SRCS		+= pyext/obj/ossaudiodev.c
+
+PYEXT_OSSAUDIODEV_LOBJS		= $(PYEXT_OSSAUDIODEV_SRCS:.c=.lo)
+PYEXT_OSSAUDIODEV_OBJS		= $(PYEXT_OSSAUDIODEV_SRCS:.c=.o)
+
+PYEXT_OSSAUDIODEV_SHARED	= pyext/ossaudiodev$(PYTHON_SOEXT)
+PYEXT_OSSAUDIODEV_STATIC	= pyext/ossaudiodev$(OS_ARCHIVE_EXT)
+
+$(PYEXT_OSSAUDIODEV_SHARED):	$(PYEXT_OSSAUDIODEV_LOBJS)
+$(PYEXT_OSSAUDIODEV_STATIC):	$(PYEXT_OSSAUDIODEV_OBJS)
+
+pyext-ossaudiodev-shared:	$(PYEXT_OSSAUDIODEV_SHARED)
+pyext-ossaudiodev-static:	$(PYEXT_OSSAUDIODEV_STATIC)
+
+pyext-ossaudiodev-clean:
+	rm -f $(PYEXT_OSSAUDIODEV_LOBJS)
+	rm -f $(PYEXT_OSSAUDIODEV_OBJS)
+	rm -f $(PYEXT_OSSAUDIODEV_SHARED)
+	rm -f $(PYEXT_OSSAUDIODEV_STATIC)
+
+clean:	pyext-ossaudiodev-clean
+
+.PHONY:	pyext-ossaudiodev-shared
+.PHONY:	pyext-ossaudiodev-static
+.PHONY:	pyext-ossaudiodev-clean
+
+
+# parser
+PYEXT_PARSER_SRCS		+= pyext/obj/parsermodule.c
+
+PYEXT_PARSER_LOBJS		= $(PYEXT_PARSER_SRCS:.c=.lo)
+PYEXT_PARSER_OBJS		= $(PYEXT_PARSER_SRCS:.c=.o)
+
+PYEXT_PARSER_SHARED		= pyext/parser$(PYTHON_SOEXT)
+PYEXT_PARSER_STATIC		= pyext/parser$(OS_ARCHIVE_EXT)
+
+$(PYEXT_PARSER_SHARED):		$(PYEXT_PARSER_LOBJS)
+$(PYEXT_PARSER_STATIC):		$(PYEXT_PARSER_OBJS)
+
+pyext-parser-shared:		$(PYEXT_PARSER_SHARED)
+pyext-parser-static:		$(PYEXT_PARSER_STATIC)
+
+pyext-parser-clean:
+	rm -f $(PYEXT_PARSER_LOBJS)
+	rm -f $(PYEXT_PARSER_OBJS)
+	rm -f $(PYEXT_PARSER_SHARED)
+	rm -f $(PYEXT_PARSER_STATIC)
+
+clean:	pyext-parser-clean
+
+.PHONY:	pyext-parser-shared
+.PHONY:	pyext-parser-static
+.PHONY:	pyext-parser-clean
+
+
+# resource
+PYEXT_RESOURCE_SRCS		+= pyext/obj/resource.c
+
+PYEXT_RESOURCE_LOBJS		= $(PYEXT_RESOURCE_SRCS:.c=.lo)
+PYEXT_RESOURCE_OBJS		= $(PYEXT_RESOURCE_SRCS:.c=.o)
+
+PYEXT_RESOURCE_SHARED		= pyext/resource$(PYTHON_SOEXT)
+PYEXT_RESOURCE_STATIC		= pyext/resource$(OS_ARCHIVE_EXT)
+
+$(PYEXT_RESOURCE_SHARED):	$(PYEXT_RESOURCE_LOBJS)
+$(PYEXT_RESOURCE_STATIC):	$(PYEXT_RESOURCE_OBJS)
+
+pyext-resource-shared:		$(PYEXT_RESOURCE_SHARED)
+pyext-resource-static:		$(PYEXT_RESOURCE_STATIC)
+
+pyext-resource-clean:
+	rm -f $(PYEXT_RESOURCE_LOBJS)
+	rm -f $(PYEXT_RESOURCE_OBJS)
+	rm -f $(PYEXT_RESOURCE_SHARED)
+	rm -f $(PYEXT_RESOURCE_STATIC)
+
+clean:	pyext-resource-clean
+
+.PHONY:	pyext-resource-shared
+.PHONY:	pyext-resource-static
+.PHONY:	pyext-resource-clean
+
+
+# select
+PYEXT_SELECT_SRCS		+= pyext/obj/selectmodule.c
+
+PYEXT_SELECT_LOBJS		= $(PYEXT_SELECT_SRCS:.c=.lo)
+PYEXT_SELECT_OBJS		= $(PYEXT_SELECT_SRCS:.c=.o)
+
+PYEXT_SELECT_SHARED		= pyext/select$(PYTHON_SOEXT)
+PYEXT_SELECT_STATIC		= pyext/select$(OS_ARCHIVE_EXT)
+
+$(PYEXT_SELECT_SHARED):		$(PYEXT_SELECT_LOBJS)
+$(PYEXT_SELECT_STATIC):		$(PYEXT_SELECT_OBJS)
+
+pyext-select-shared:		$(PYEXT_SELECT_SHARED)
+pyext-select-static:		$(PYEXT_SELECT_STATIC)
+
+pyext-select-clean:
+	rm -f $(PYEXT_SELECT_LOBJS)
+	rm -f $(PYEXT_SELECT_OBJS)
+	rm -f $(PYEXT_SELECT_SHARED)
+	rm -f $(PYEXT_SELECT_STATIC)
+
+clean:	pyext-select-clean
+
+.PHONY:	pyext-select-shared
+.PHONY:	pyext-select-static
+.PHONY:	pyext-select-clean
+
+
+# spwd
+PYEXT_SPWD_SRCS			+= pyext/obj/spwdmodule.c
+
+PYEXT_SPWD_LOBJS		= $(PYEXT_SPWD_SRCS:.c=.lo)
+PYEXT_SPWD_OBJS			= $(PYEXT_SPWD_SRCS:.c=.o)
+
+PYEXT_SPWD_SHARED		= pyext/spwd$(PYTHON_SOEXT)
+PYEXT_SPWD_STATIC		= pyext/spwd$(OS_ARCHIVE_EXT)
+
+$(PYEXT_SPWD_SHARED):		$(PYEXT_SPWD_LOBJS)
+$(PYEXT_SPWD_STATIC):		$(PYEXT_SPWD_OBJS)
+
+pyext-spwd-shared:		$(PYEXT_SPWD_SHARED)
+pyext-spwd-static:		$(PYEXT_SPWD_STATIC)
+
+pyext-spwd-clean:
+	rm -f $(PYEXT_SPWD_LOBJS)
+	rm -f $(PYEXT_SPWD_OBJS)
+	rm -f $(PYEXT_SPWD_SHARED)
+	rm -f $(PYEXT_SPWD_STATIC)
+
+clean:	pyext-spwd-clean
+
+.PHONY:	pyext-spwd-shared
+.PHONY:	pyext-spwd-static
+.PHONY:	pyext-spwd-clean
+
+
+# syslog
+PYEXT_SYSLOG_SRCS		+= pyext/obj/syslogmodule.c
+
+PYEXT_SYSLOG_LOBJS		= $(PYEXT_SYSLOG_SRCS:.c=.lo)
+PYEXT_SYSLOG_OBJS		= $(PYEXT_SYSLOG_SRCS:.c=.o)
+
+PYEXT_SYSLOG_SHARED		= pyext/syslog$(PYTHON_SOEXT)
+PYEXT_SYSLOG_STATIC		= pyext/syslog$(OS_ARCHIVE_EXT)
+
+$(PYEXT_SYSLOG_SHARED):		$(PYEXT_SYSLOG_LOBJS)
+$(PYEXT_SYSLOG_STATIC):		$(PYEXT_SYSLOG_OBJS)
+
+pyext-syslog-shared:		$(PYEXT_SYSLOG_SHARED)
+pyext-syslog-static:		$(PYEXT_SYSLOG_STATIC)
+
+pyext-syslog-clean:
+	rm -f $(PYEXT_SYSLOG_LOBJS)
+	rm -f $(PYEXT_SYSLOG_OBJS)
+	rm -f $(PYEXT_SYSLOG_SHARED)
+	rm -f $(PYEXT_SYSLOG_STATIC)
+
+clean:	pyext-syslog-clean
+
+.PHONY:	pyext-syslog-shared
+.PHONY:	pyext-syslog-static
+.PHONY:	pyext-syslog-clean
+
+
+# termios
+PYEXT_TERMIOS_SRCS		+= pyext/obj/termios.c
+
+PYEXT_TERMIOS_LOBJS		= $(PYEXT_TERMIOS_SRCS:.c=.lo)
+PYEXT_TERMIOS_OBJS		= $(PYEXT_TERMIOS_SRCS:.c=.o)
+
+PYEXT_TERMIOS_SHARED		= pyext/termios$(PYTHON_SOEXT)
+PYEXT_TERMIOS_STATIC		= pyext/termios$(OS_ARCHIVE_EXT)
+
+$(PYEXT_TERMIOS_SHARED):	$(PYEXT_TERMIOS_LOBJS)
+$(PYEXT_TERMIOS_STATIC):	$(PYEXT_TERMIOS_OBJS)
+
+pyext-termios-shared:		$(PYEXT_TERMIOS_SHARED)
+pyext-termios-static:		$(PYEXT_TERMIOS_STATIC)
+
+pyext-termios-clean:
+	rm -f $(PYEXT_TERMIOS_LOBJS)
+	rm -f $(PYEXT_TERMIOS_OBJS)
+	rm -f $(PYEXT_TERMIOS_SHARED)
+	rm -f $(PYEXT_TERMIOS_STATIC)
+
+clean:	pyext-termios-clean
+
+.PHONY:	pyext-termios-shared
+.PHONY:	pyext-termios-static
+.PHONY:	pyext-termios-clean
+
+
+# unicodedata
+PYEXT_UNICODEDATA_SRCS		+= pyext/obj/unicodedata.c
+
+PYEXT_UNICODEDATA_LOBJS		= $(PYEXT_UNICODEDATA_SRCS:.c=.lo)
+PYEXT_UNICODEDATA_OBJS		= $(PYEXT_UNICODEDATA_SRCS:.c=.o)
+
+PYEXT_UNICODEDATA_SHARED	= pyext/unicodedata$(PYTHON_SOEXT)
+PYEXT_UNICODEDATA_STATIC	= pyext/unicodedata$(OS_ARCHIVE_EXT)
+
+$(PYEXT_UNICODEDATA_SHARED):	$(PYEXT_UNICODEDATA_LOBJS)
+$(PYEXT_UNICODEDATA_STATIC):	$(PYEXT_UNICODEDATA_OBJS)
+
+pyext-unicodedata-shared:	$(PYEXT_UNICODEDATA_SHARED)
+pyext-unicodedata-static:	$(PYEXT_UNICODEDATA_STATIC)
+
+pyext-unicodedata-clean:
+	rm -f $(PYEXT_UNICODEDATA_LOBJS)
+	rm -f $(PYEXT_UNICODEDATA_OBJS)
+	rm -f $(PYEXT_UNICODEDATA_SHARED)
+	rm -f $(PYEXT_UNICODEDATA_STATIC)
+
+clean:	pyext-unicodedata-clean
+
+.PHONY:	pyext-unicodedata-shared
+.PHONY:	pyext-unicodedata-static
+.PHONY:	pyext-unicodedata-clean
+
+
+# xxlimited
+PYEXT_XXLIMITED_SRCS		+= pyext/obj/xxlimited.c
+
+PYEXT_XXLIMITED_LOBJS		= $(PYEXT_XXLIMITED_SRCS:.c=.lo)
+PYEXT_XXLIMITED_OBJS		= $(PYEXT_XXLIMITED_SRCS:.c=.o)
+
+PYEXT_XXLIMITED_SHARED		= pyext/xxlimited$(PYTHON_SOEXT)
+PYEXT_XXLIMITED_STATIC		= pyext/xxlimited$(OS_ARCHIVE_EXT)
+
+$(PYEXT_XXLIMITED_SHARED):	$(PYEXT_XXLIMITED_LOBJS)
+$(PYEXT_XXLIMITED_STATIC):	$(PYEXT_XXLIMITED_OBJS)
+
+pyext-xxlimited-shared:		$(PYEXT_XXLIMITED_SHARED)
+pyext-xxlimited-static:		$(PYEXT_XXLIMITED_STATIC)
+
+pyext-xxlimited-clean:
+	rm -f $(PYEXT_XXLIMITED_LOBJS)
+	rm -f $(PYEXT_XXLIMITED_OBJS)
+	rm -f $(PYEXT_XXLIMITED_SHARED)
+	rm -f $(PYEXT_XXLIMITED_STATIC)
+
+clean:	pyext-xxlimited-clean
+
+.PHONY:	pyext-xxlimited-shared
+.PHONY:	pyext-xxlimited-static
+.PHONY:	pyext-xxlimited-clean
+
+
+# _blake2
+PYEXT_BLAKE2_SRCS		+= pyext/obj/_blake2/blake2module.c
+PYEXT_BLAKE2_SRCS		+= pyext/obj/_blake2/blake2b_impl.c
+PYEXT_BLAKE2_SRCS		+= pyext/obj/_blake2/blake2s_impl.c
+
+PYEXT_BLAKE2_LOBJS		= $(PYEXT_BLAKE2_SRCS:.c=.lo)
+PYEXT_BLAKE2_OBJS		= $(PYEXT_BLAKE2_SRCS:.c=.o)
+
+PYEXT_BLAKE2_SHARED		= pyext/_blake2$(PYTHON_SOEXT)
+PYEXT_BLAKE2_STATIC		= pyext/_blake2$(OS_ARCHIVE_EXT)
+
+$(PYEXT_BLAKE2_SHARED):		$(PYEXT_BLAKE2_LOBJS)
+$(PYEXT_BLAKE2_STATIC):		$(PYEXT_BLAKE2_OBJS)
+
+pyext-blake2-shared:		$(PYEXT_BLAKE2_SHARED)
+pyext-blake2-static:		$(PYEXT_BLAKE2_STATIC)
+
+pyext-blake2-clean:
+	rm -f $(PYEXT_BLAKE2_LOBJS)
+	rm -f $(PYEXT_BLAKE2_OBJS)
+	rm -f $(PYEXT_BLAKE2_SHARED)
+	rm -f $(PYEXT_BLAKE2_STATIC)
+
+clean:	pyext-blake2-clean
+
+.PHONY:	pyext-blake2-shared
+.PHONY:	pyext-blake2-static
+.PHONY:	pyext-blake2-clean
+
+
+# _lsprof
+PYEXT_LSPROF_SRCS		+= pyext/obj/_lsprof.c
+PYEXT_LSPROF_SRCS		+= pyext/obj/rotatingtree.c
+
+PYEXT_LSPROF_LOBJS		= $(PYEXT_LSPROF_SRCS:.c=.lo)
+PYEXT_LSPROF_OBJS		= $(PYEXT_LSPROF_SRCS:.c=.o)
+
+PYEXT_LSPROF_SHARED		= pyext/_lsprof$(PYTHON_SOEXT)
+PYEXT_LSPROF_STATIC		= pyext/_lsprof$(OS_ARCHIVE_EXT)
+
+$(PYEXT_LSPROF_SHARED):		$(PYEXT_LSPROF_LOBJS)
+$(PYEXT_LSPROF_STATIC):		$(PYEXT_LSPROF_OBJS)
+
+pyext-lsprof-shared:		$(PYEXT_LSPROF_SHARED)
+pyext-lsprof-static:		$(PYEXT_LSPROF_STATIC)
+
+pyext-lsprof-clean:
+	rm -f $(PYEXT_LSPROF_LOBJS)
+	rm -f $(PYEXT_LSPROF_OBJS)
+	rm -f $(PYEXT_LSPROF_SHARED)
+	rm -f $(PYEXT_LSPROF_STATIC)
+
+clean:	pyext-lsprof-clean
+
+.PHONY:	pyext-lsprof-shared
+.PHONY:	pyext-lsprof-static
+.PHONY:	pyext-lsprof-clean
+
+
+# _multiprocessing
+PYEXT_MULTIPROCESSING_SRCS	+= pyext/obj/_multiprocessing/multiprocessing.c
+PYEXT_MULTIPROCESSING_SRCS	+= pyext/obj/_multiprocessing/semaphore.c
+
+PYEXT_MULTIPROCESSING_LOBJS	= $(PYEXT_MULTIPROCESSING_SRCS:.c=.lo)
+PYEXT_MULTIPROCESSING_OBJS	= $(PYEXT_MULTIPROCESSING_SRCS:.c=.o)
+
+PYEXT_MULTIPROCESSING_SHARED	= pyext/_multiprocessing$(PYTHON_SOEXT)
+PYEXT_MULTIPROCESSING_STATIC	= pyext/_multiprocessing$(OS_ARCHIVE_EXT)
+
+$(PYEXT_MULTIPROCESSING_SHARED):$(PYEXT_MULTIPROCESSING_LOBJS)
+$(PYEXT_MULTIPROCESSING_STATIC):$(PYEXT_MULTIPROCESSING_OBJS)
+
+pyext-multiprocessing-shared:	$(PYEXT_MULTIPROCESSING_SHARED)
+pyext-multiprocessing-static:	$(PYEXT_MULTIPROCESSING_STATIC)
+
+pyext-multiprocessing-clean:
+	rm -f $(PYEXT_MULTIPROCESSING_LOBJS)
+	rm -f $(PYEXT_MULTIPROCESSING_OBJS)
+	rm -f $(PYEXT_MULTIPROCESSING_SHARED)
+	rm -f $(PYEXT_MULTIPROCESSING_STATIC)
+
+clean:	pyext-multiprocessing-clean
+
+.PHONY:	pyext-multiprocessing-shared
+.PHONY:	pyext-multiprocessing-static
+.PHONY:	pyext-multiprocessing-clean
+
+
+# _xxtestfuzz
+PYEXT_XXTESTFUZZ_SRCS		+= pyext/obj/_xxtestfuzz/_xxtestfuzz.c
+PYEXT_XXTESTFUZZ_SRCS		+= pyext/obj/_xxtestfuzz/fuzzer.c
+
+PYEXT_XXTESTFUZZ_LOBJS		= $(PYEXT_XXTESTFUZZ_SRCS:.c=.lo)
+PYEXT_XXTESTFUZZ_OBJS		= $(PYEXT_XXTESTFUZZ_SRCS:.c=.o)
+
+PYEXT_XXTESTFUZZ_SHARED		= pyext/_xxtestfuzz$(PYTHON_SOEXT)
+PYEXT_XXTESTFUZZ_STATIC		= pyext/_xxtestfuzz$(OS_ARCHIVE_EXT)
+
+$(PYEXT_XXTESTFUZZ_SHARED):	$(PYEXT_XXTESTFUZZ_LOBJS)
+$(PYEXT_XXTESTFUZZ_STATIC):	$(PYEXT_XXTESTFUZZ_OBJS)
+
+pyext-xxtestfuzz-shared:	$(PYEXT_XXTESTFUZZ_SHARED)
+pyext-xxtestfuzz-static:	$(PYEXT_XXTESTFUZZ_STATIC)
+
+pyext-xxtestfuzz-clean:
+	rm -f $(PYEXT_XXTESTFUZZ_LOBJS)
+	rm -f $(PYEXT_XXTESTFUZZ_OBJS)
+	rm -f $(PYEXT_XXTESTFUZZ_SHARED)
+	rm -f $(PYEXT_XXTESTFUZZ_STATIC)
+
+clean:	pyext-xxtestfuzz-clean
+
+.PHONY:	pyext-xxtestfuzz-shared
+.PHONY:	pyext-xxtestfuzz-static
+.PHONY:	pyext-xxtestfuzz-clean
+
+
+# cmath
+PYEXT_CMATH_SRCS		+= pyext/obj/cmathmodule.c
+PYEXT_CMATH_SRCS		+= pyext/obj/_math.c
+
+PYEXT_CMATH_LOBJS		= $(PYEXT_CMATH_SRCS:.c=.lo)
+PYEXT_CMATH_OBJS		= $(PYEXT_CMATH_SRCS:.c=.o)
+
+PYEXT_CMATH_SHARED		= pyext/cmath$(PYTHON_SOEXT)
+PYEXT_CMATH_STATIC		= pyext/cmath$(OS_ARCHIVE_EXT)
+
+$(PYEXT_CMATH_SHARED):		$(PYEXT_CMATH_LOBJS)
+$(PYEXT_CMATH_STATIC):		$(PYEXT_CMATH_OBJS)
+
+pyext-cmath-shared:		$(PYEXT_CMATH_SHARED)
+pyext-cmath-static:		$(PYEXT_CMATH_STATIC)
+
+pyext-cmath-clean:
+	rm -f $(PYEXT_CMATH_LOBJS)
+	rm -f $(PYEXT_CMATH_OBJS)
+	rm -f $(PYEXT_CMATH_SHARED)
+	rm -f $(PYEXT_CMATH_STATIC)
+
+clean:	pyext-cmath-clean
+
+.PHONY:	pyext-cmath-shared
+.PHONY:	pyext-cmath-static
+.PHONY:	pyext-cmath-clean
+
+
+# math
+PYEXT_MATH_SRCS			+= pyext/obj/mathmodule.c
+PYEXT_MATH_SRCS			+= pyext/obj/_math.c
+
+PYEXT_MATH_LOBJS		= $(PYEXT_MATH_SRCS:.c=.lo)
+PYEXT_MATH_OBJS			= $(PYEXT_MATH_SRCS:.c=.o)
+
+PYEXT_MATH_SHARED		= pyext/math$(PYTHON_SOEXT)
+PYEXT_MATH_STATIC		= pyext/math$(OS_ARCHIVE_EXT)
+
+$(PYEXT_MATH_SHARED):		$(PYEXT_MATH_LOBJS)
+$(PYEXT_MATH_STATIC):		$(PYEXT_MATH_OBJS)
+
+pyext-math-shared:		$(PYEXT_MATH_SHARED)
+pyext-math-static:		$(PYEXT_MATH_STATIC)
+
+pyext-math-clean:
+	rm -f $(PYEXT_MATH_LOBJS)
+	rm -f $(PYEXT_MATH_OBJS)
+	rm -f $(PYEXT_MATH_SHARED)
+	rm -f $(PYEXT_MATH_STATIC)
+
+clean:	pyext-math-clean
+
+.PHONY:	pyext-math-shared
+.PHONY:	pyext-math-static
+.PHONY:	pyext-math-clean
+
+
+# _bz2
+PYEXT_BZ2_SRCS			+= pyext/obj/_bz2module.c
+
+PYEXT_BZ2_LOBJS			= $(PYEXT_BZ2_SRCS:.c=.lo)
+PYEXT_BZ2_OBJS			= $(PYEXT_BZ2_SRCS:.c=.o)
+
+
+PYEXT_BZ2_SHARED		= pyext/_bz2$(PYTHON_SOEXT)
+PYEXT_BZ2_STATIC		= pyext/_bz2$(OS_ARCHIVE_EXT)
+
+$(PYEXT_BZ2_SHARED):		LDFLAGS_DYNEXT += -lbz2
+$(PYEXT_BZ2_SHARED):		$(PYEXT_BZ2_LOBJS)
+$(PYEXT_BZ2_STATIC):		$(PYEXT_BZ2_OBJS)
+
+pyext-bz2-shared:		$(PYEXT_BZ2_SHARED)
+pyext-bz2-static:		$(PYEXT_BZ2_STATIC)
+
+pyext-bz2-clean:
+	rm -f $(PYEXT_BZ2_LOBJS)
+	rm -f $(PYEXT_BZ2_OBJS)
+	rm -f $(PYEXT_BZ2_SHARED)
+	rm -f $(PYEXT_BZ2_STATIC)
+
+clean:	pyext-bz2-clean
+
+.PHONY:	pyext-bz2-shared
+.PHONY:	pyext-bz2-static
+.PHONY:	pyext-bz2-clean
+
+
+# _ctypes
+PYEXT_CTYPES_SRCS		+= pyext/obj/_ctypes/_ctypes.c
+PYEXT_CTYPES_SRCS		+= pyext/obj/_ctypes/callbacks.c
+PYEXT_CTYPES_SRCS		+= pyext/obj/_ctypes/callproc.c
+PYEXT_CTYPES_SRCS		+= pyext/obj/_ctypes/stgdict.c
+PYEXT_CTYPES_SRCS		+= pyext/obj/_ctypes/cfield.c
+
+PYEXT_CTYPES_LOBJS		= $(PYEXT_CTYPES_SRCS:.c=.lo)
+PYEXT_CTYPES_OBJS		= $(PYEXT_CTYPES_SRCS:.c=.o)
+
+
+PYEXT_CTYPES_SHARED		= pyext/_ctypes$(PYTHON_SOEXT)
+PYEXT_CTYPES_STATIC		= pyext/_ctypes$(OS_ARCHIVE_EXT)
+
+$(PYEXT_CTYPES_SHARED):		LDFLAGS_DYNEXT += -lffi
+$(PYEXT_CTYPES_SHARED):		$(PYEXT_CTYPES_LOBJS)
+$(PYEXT_CTYPES_STATIC):		$(PYEXT_CTYPES_OBJS)
+
+pyext-ctypes-shared:		$(PYEXT_CTYPES_SHARED)
+pyext-ctypes-static:		$(PYEXT_CTYPES_STATIC)
+
+pyext-ctypes-clean:
+	rm -f $(PYEXT_CTYPES_LOBJS)
+	rm -f $(PYEXT_CTYPES_OBJS)
+	rm -f $(PYEXT_CTYPES_SHARED)
+	rm -f $(PYEXT_CTYPES_STATIC)
+
+clean:	pyext-ctypes-clean
+
+.PHONY:	pyext-ctypes-shared
+.PHONY:	pyext-ctypes-static
+.PHONY:	pyext-ctypes-clean
+
+
+# _curses
+PYEXT_CURSES_SRCS		+= pyext/obj/_cursesmodule.c
+
+PYEXT_CURSES_LOBJS		= $(PYEXT_CURSES_SRCS:.c=.lo)
+PYEXT_CURSES_OBJS		= $(PYEXT_CURSES_SRCS:.c=.o)
+
+$(PYEXT_CURSES_LOBJS):		CFLAGS_CONFIG += $(CFLAGS_NCURSES)
+$(PYEXT_CURSES_OBJS):		CFLAGS_CONFIG += $(CFLAGS_NCURSES)
+
+PYEXT_CURSES_SHARED		= pyext/_curses$(PYTHON_SOEXT)
+PYEXT_CURSES_STATIC		= pyext/_curses$(OS_ARCHIVE_EXT)
+
+$(PYEXT_CURSES_SHARED):		LDFLAGS_DYNEXT += $(LDFLAGS_NCURSES)
+$(PYEXT_CURSES_SHARED):		$(PYEXT_CURSES_LOBJS)
+$(PYEXT_CURSES_STATIC):		$(PYEXT_CURSES_OBJS)
+
+pyext-curses-shared:		$(PYEXT_CURSES_SHARED)
+pyext-curses-static:		$(PYEXT_CURSES_STATIC)
+
+pyext-curses-clean:
+	rm -f $(PYEXT_CURSES_LOBJS)
+	rm -f $(PYEXT_CURSES_OBJS)
+	rm -f $(PYEXT_CURSES_SHARED)
+	rm -f $(PYEXT_CURSES_STATIC)
+
+clean:	pyext-curses-clean
+
+.PHONY:	pyext-curses-shared
+.PHONY:	pyext-curses-static
+.PHONY:	pyext-curses-clean
+
+
+# _curses_panel
+PYEXT_CURSES_PANEL_SRCS		+= pyext/obj/_curses_panel.c
+
+PYEXT_CURSES_PANEL_LOBJS	= $(PYEXT_CURSES_PANEL_SRCS:.c=.lo)
+PYEXT_CURSES_PANEL_OBJS		= $(PYEXT_CURSES_PANEL_SRCS:.c=.o)
+
+$(PYEXT_CURSES_PANEL_LOBJS):	CFLAGS_CONFIG += $(CFLAGS_NCURSES)
+$(PYEXT_CURSES_PANEL_OBJS):	CFLAGS_CONFIG += $(CFLAGS_NCURSES)
+
+PYEXT_CURSES_PANEL_SHARED	= pyext/_curses_panel$(PYTHON_SOEXT)
+PYEXT_CURSES_PANEL_STATIC	= pyext/_curses_panel$(OS_ARCHIVE_EXT)
+
+$(PYEXT_CURSES_PANEL_SHARED):	LDFLAGS_DYNEXT += $(LDFLAGS_NCURSES)
+$(PYEXT_CURSES_PANEL_SHARED):	$(PYEXT_CURSES_PANEL_LOBJS)
+$(PYEXT_CURSES_PANEL_STATIC):	$(PYEXT_CURSES_PANEL_OBJS)
+
+pyext-curses_panel-shared:	$(PYEXT_CURSES_PANEL_SHARED)
+pyext-curses_panel-static:	$(PYEXT_CURSES_PANEL_STATIC)
+
+pyext-curses_panel-clean:
+	rm -f $(PYEXT_CURSES_PANEL_LOBJS)
+	rm -f $(PYEXT_CURSES_PANEL_OBJS)
+	rm -f $(PYEXT_CURSES_PANEL_SHARED)
+	rm -f $(PYEXT_CURSES_PANEL_STATIC)
+
+clean:	pyext-curses_panel-clean
+
+.PHONY:	pyext-curses_panel-shared
+.PHONY:	pyext-curses_panel-static
+.PHONY:	pyext-curses_panel-clean
+
+
+# _decimal
+PYEXT_DECIMAL_SRCS		+= pyext/obj/_decimal/_decimal.c
+PYEXT_DECIMAL_SRCS		+= pyext/obj/_decimal/libmpdec/basearith.c
+PYEXT_DECIMAL_SRCS		+= pyext/obj/_decimal/libmpdec/constants.c
+PYEXT_DECIMAL_SRCS		+= pyext/obj/_decimal/libmpdec/context.c
+PYEXT_DECIMAL_SRCS		+= pyext/obj/_decimal/libmpdec/convolute.c
+PYEXT_DECIMAL_SRCS		+= pyext/obj/_decimal/libmpdec/crt.c
+PYEXT_DECIMAL_SRCS		+= pyext/obj/_decimal/libmpdec/difradix2.c
+PYEXT_DECIMAL_SRCS		+= pyext/obj/_decimal/libmpdec/fnt.c
+PYEXT_DECIMAL_SRCS		+= pyext/obj/_decimal/libmpdec/fourstep.c
+PYEXT_DECIMAL_SRCS		+= pyext/obj/_decimal/libmpdec/io.c
+PYEXT_DECIMAL_SRCS		+= pyext/obj/_decimal/libmpdec/memory.c
+PYEXT_DECIMAL_SRCS		+= pyext/obj/_decimal/libmpdec/mpdecimal.c
+PYEXT_DECIMAL_SRCS		+= pyext/obj/_decimal/libmpdec/numbertheory.c
+PYEXT_DECIMAL_SRCS		+= pyext/obj/_decimal/libmpdec/sixstep.c
+PYEXT_DECIMAL_SRCS		+= pyext/obj/_decimal/libmpdec/transpose.c
+
+PYEXT_DECIMAL_LOBJS		= $(PYEXT_DECIMAL_SRCS:.c=.lo)
+PYEXT_DECIMAL_OBJS		= $(PYEXT_DECIMAL_SRCS:.c=.o)
+
+$(PYEXT_DECIMAL_LOBJS):		CFLAGS_CONFIG += -I$(SOURCE_DIR)/Modules/_decimal/libmpdec -DUNIVERSAL
+$(PYEXT_DECIMAL_OBJS):		CFLAGS_CONFIG += -I$(SOURCE_DIR)/Modules/_decimal/libmpdec -DUNIVERSAL
+
+PYEXT_DECIMAL_SHARED		= pyext/_decimal$(PYTHON_SOEXT)
+PYEXT_DECIMAL_STATIC		= pyext/_decimal$(OS_ARCHIVE_EXT)
+
+$(PYEXT_DECIMAL_SHARED):	$(PYEXT_DECIMAL_LOBJS)
+$(PYEXT_DECIMAL_STATIC):	$(PYEXT_DECIMAL_OBJS)
+
+pyext-decimal-shared:		$(PYEXT_DECIMAL_SHARED)
+pyext-decimal-static:		$(PYEXT_DECIMAL_STATIC)
+
+pyext-decimal-clean:
+	rm -f $(PYEXT_DECIMAL_LOBJS)
+	rm -f $(PYEXT_DECIMAL_OBJS)
+	rm -f $(PYEXT_DECIMAL_SHARED)
+	rm -f $(PYEXT_DECIMAL_STATIC)
+
+clean:	pyext-decimal-clean
+
+.PHONY:	pyext-decimal-shared
+.PHONY:	pyext-decimal-static
+.PHONY:	pyext-decimal-clean
+
+
+# _dbm
+PYEXT_DBM_SRCS			+= pyext/obj/_dbmmodule.c
+
+PYEXT_DBM_LOBJS			= $(PYEXT_DBM_SRCS:.c=.lo)
+PYEXT_DBM_OBJS			= $(PYEXT_DBM_SRCS:.c=.o)
+
+$(PYEXT_DBM_LOBJS):		CFLAGS_CONFIG += $(CFLAGS_DBM)
+$(PYEXT_DBM_OBJS):		CFLAGS_CONFIG += $(CFLAGS_DBM)
+
+PYEXT_DBM_SHARED		= pyext/_dbm$(PYTHON_SOEXT)
+PYEXT_DBM_STATIC		= pyext/_dbm$(OS_ARCHIVE_EXT)
+
+$(PYEXT_DBM_SHARED):		LDFLAGS_DYNEXT += $(LDFLAGS_DBM)
+$(PYEXT_DBM_SHARED):		$(PYEXT_DBM_LOBJS)
+$(PYEXT_DBM_STATIC):		$(PYEXT_DBM_OBJS)
+
+pyext-dbm-shared:		$(PYEXT_DBM_SHARED)
+pyext-dbm-static:		$(PYEXT_DBM_STATIC)
+
+pyext-dbm-clean:
+	rm -f $(PYEXT_DBM_LOBJS)
+	rm -f $(PYEXT_DBM_OBJS)
+	rm -f $(PYEXT_DBM_SHARED)
+	rm -f $(PYEXT_DBM_STATIC)
+
+clean:	pyext-dbm-clean
+
+.PHONY:	pyext-dbm-shared
+.PHONY:	pyext-dbm-static
+.PHONY:	pyext-dbm-clean
+
+
+# _gdbm
+PYEXT_GDBM_SRCS			+= pyext/obj/_gdbmmodule.c
+
+PYEXT_GDBM_LOBJS		= $(PYEXT_GDBM_SRCS:.c=.lo)
+PYEXT_GDBM_OBJS			= $(PYEXT_GDBM_SRCS:.c=.o)
+
+
+PYEXT_GDBM_SHARED		= pyext/_gdbm$(PYTHON_SOEXT)
+PYEXT_GDBM_STATIC		= pyext/_gdbm$(OS_ARCHIVE_EXT)
+
+$(PYEXT_GDBM_SHARED):		LDFLAGS_DYNEXT += -lgdbm
+$(PYEXT_GDBM_SHARED):		$(PYEXT_GDBM_LOBJS)
+$(PYEXT_GDBM_STATIC):		$(PYEXT_GDBM_OBJS)
+
+pyext-gdbm-shared:		$(PYEXT_GDBM_SHARED)
+pyext-gdbm-static:		$(PYEXT_GDBM_STATIC)
+
+pyext-gdbm-clean:
+	rm -f $(PYEXT_GDBM_LOBJS)
+	rm -f $(PYEXT_GDBM_OBJS)
+	rm -f $(PYEXT_GDBM_SHARED)
+	rm -f $(PYEXT_GDBM_STATIC)
+
+clean:	pyext-gdbm-clean
+
+.PHONY:	pyext-gdbm-shared
+.PHONY:	pyext-gdbm-static
+.PHONY:	pyext-gdbm-clean
+
+
+# _hashlib
+PYEXT_HASHLIB_SRCS		+= pyext/obj/_hashopenssl.c
+
+PYEXT_HASHLIB_LOBJS		= $(PYEXT_HASHLIB_SRCS:.c=.lo)
+PYEXT_HASHLIB_OBJS		= $(PYEXT_HASHLIB_SRCS:.c=.o)
+
+
+PYEXT_HASHLIB_SHARED		= pyext/_hashlib$(PYTHON_SOEXT)
+PYEXT_HASHLIB_STATIC		= pyext/_hashlib$(OS_ARCHIVE_EXT)
+
+$(PYEXT_HASHLIB_SHARED):	LDFLAGS_DYNEXT += -lssl -lcrypto
+$(PYEXT_HASHLIB_SHARED):	$(PYEXT_HASHLIB_LOBJS)
+$(PYEXT_HASHLIB_STATIC):	$(PYEXT_HASHLIB_OBJS)
+
+pyext-hashlib-shared:		$(PYEXT_HASHLIB_SHARED)
+pyext-hashlib-static:		$(PYEXT_HASHLIB_STATIC)
+
+pyext-hashlib-clean:
+	rm -f $(PYEXT_HASHLIB_LOBJS)
+	rm -f $(PYEXT_HASHLIB_OBJS)
+	rm -f $(PYEXT_HASHLIB_SHARED)
+	rm -f $(PYEXT_HASHLIB_STATIC)
+
+clean:	pyext-hashlib-clean
+
+.PHONY:	pyext-hashlib-shared
+.PHONY:	pyext-hashlib-static
+.PHONY:	pyext-hashlib-clean
+
+
+# _lzma
+PYEXT_LZMA_SRCS			+= pyext/obj/_lzmamodule.c
+
+PYEXT_LZMA_LOBJS		= $(PYEXT_LZMA_SRCS:.c=.lo)
+PYEXT_LZMA_OBJS			= $(PYEXT_LZMA_SRCS:.c=.o)
+
+
+PYEXT_LZMA_SHARED		= pyext/_lzma$(PYTHON_SOEXT)
+PYEXT_LZMA_STATIC		= pyext/_lzma$(OS_ARCHIVE_EXT)
+
+$(PYEXT_LZMA_SHARED):		LDFLAGS_DYNEXT += -llzma
+$(PYEXT_LZMA_SHARED):		$(PYEXT_LZMA_LOBJS)
+$(PYEXT_LZMA_STATIC):		$(PYEXT_LZMA_OBJS)
+
+pyext-lzma-shared:		$(PYEXT_LZMA_SHARED)
+pyext-lzma-static:		$(PYEXT_LZMA_STATIC)
+
+pyext-lzma-clean:
+	rm -f $(PYEXT_LZMA_LOBJS)
+	rm -f $(PYEXT_LZMA_OBJS)
+	rm -f $(PYEXT_LZMA_SHARED)
+	rm -f $(PYEXT_LZMA_STATIC)
+
+clean:	pyext-lzma-clean
+
+.PHONY:	pyext-lzma-shared
+.PHONY:	pyext-lzma-static
+.PHONY:	pyext-lzma-clean
+
+
+# _sqlite3
+PYEXT_SQLITE3_SRCS		+= pyext/obj/_sqlite/cache.c
+PYEXT_SQLITE3_SRCS		+= pyext/obj/_sqlite/connection.c
+PYEXT_SQLITE3_SRCS		+= pyext/obj/_sqlite/cursor.c
+PYEXT_SQLITE3_SRCS		+= pyext/obj/_sqlite/microprotocols.c
+PYEXT_SQLITE3_SRCS		+= pyext/obj/_sqlite/module.c
+PYEXT_SQLITE3_SRCS		+= pyext/obj/_sqlite/prepare_protocol.c
+PYEXT_SQLITE3_SRCS		+= pyext/obj/_sqlite/row.c
+PYEXT_SQLITE3_SRCS		+= pyext/obj/_sqlite/statement.c
+PYEXT_SQLITE3_SRCS		+= pyext/obj/_sqlite/util.c
+
+PYEXT_SQLITE3_LOBJS		= $(PYEXT_SQLITE3_SRCS:.c=.lo)
+PYEXT_SQLITE3_OBJS		= $(PYEXT_SQLITE3_SRCS:.c=.o)
+
+$(PYEXT_SQLITE3_LOBJS):		CFLAGS_CONFIG += $(CFLAGS_SQLITE)
+$(PYEXT_SQLITE3_OBJS):		CFLAGS_CONFIG += $(CFLAGS_SQLITE)
+
+PYEXT_SQLITE3_SHARED		= pyext/_sqlite3$(PYTHON_SOEXT)
+PYEXT_SQLITE3_STATIC		= pyext/_sqlite3$(OS_ARCHIVE_EXT)
+
+$(PYEXT_SQLITE3_SHARED):	LDFLAGS_DYNEXT += $(LDFLAGS_SQLITE)
+$(PYEXT_SQLITE3_SHARED):	$(PYEXT_SQLITE3_LOBJS)
+$(PYEXT_SQLITE3_STATIC):	$(PYEXT_SQLITE3_OBJS)
+
+pyext-sqlite3-shared:		$(PYEXT_SQLITE3_SHARED)
+pyext-sqlite3-static:		$(PYEXT_SQLITE3_STATIC)
+
+pyext-sqlite3-clean:
+	rm -f $(PYEXT_SQLITE3_LOBJS)
+	rm -f $(PYEXT_SQLITE3_OBJS)
+	rm -f $(PYEXT_SQLITE3_SHARED)
+	rm -f $(PYEXT_SQLITE3_STATIC)
+
+clean:	pyext-sqlite3-clean
+
+.PHONY:	pyext-sqlite3-shared
+.PHONY:	pyext-sqlite3-static
+.PHONY:	pyext-sqlite3-clean
+
+
+# _ssl
+PYEXT_SSL_SRCS			+= pyext/obj/_ssl.c
+
+PYEXT_SSL_LOBJS			= $(PYEXT_SSL_SRCS:.c=.lo)
+PYEXT_SSL_OBJS			= $(PYEXT_SSL_SRCS:.c=.o)
+
+
+PYEXT_SSL_SHARED		= pyext/_ssl$(PYTHON_SOEXT)
+PYEXT_SSL_STATIC		= pyext/_ssl$(OS_ARCHIVE_EXT)
+
+$(PYEXT_SSL_SHARED):		LDFLAGS_DYNEXT += -lssl -lcrypto
+$(PYEXT_SSL_SHARED):		$(PYEXT_SSL_LOBJS)
+$(PYEXT_SSL_STATIC):		$(PYEXT_SSL_OBJS)
+
+pyext-ssl-shared:		$(PYEXT_SSL_SHARED)
+pyext-ssl-static:		$(PYEXT_SSL_STATIC)
+
+pyext-ssl-clean:
+	rm -f $(PYEXT_SSL_LOBJS)
+	rm -f $(PYEXT_SSL_OBJS)
+	rm -f $(PYEXT_SSL_SHARED)
+	rm -f $(PYEXT_SSL_STATIC)
+
+clean:	pyext-ssl-clean
+
+.PHONY:	pyext-ssl-shared
+.PHONY:	pyext-ssl-static
+.PHONY:	pyext-ssl-clean
+
+
+# _tkinter
+PYEXT_TKINTER_SRCS		+= pyext/obj/_tkinter.c
+PYEXT_TKINTER_SRCS		+= pyext/obj/tkappinit.c
+
+PYEXT_TKINTER_LOBJS		= $(PYEXT_TKINTER_SRCS:.c=.lo)
+PYEXT_TKINTER_OBJS		= $(PYEXT_TKINTER_SRCS:.c=.o)
+
+$(PYEXT_TKINTER_LOBJS):		CFLAGS_CONFIG += $(CFLAGS_TCLTK)
+$(PYEXT_TKINTER_OBJS):		CFLAGS_CONFIG += $(CFLAGS_TCLTK)
+
+PYEXT_TKINTER_SHARED		= pyext/_tkinter$(PYTHON_SOEXT)
+PYEXT_TKINTER_STATIC		= pyext/_tkinter$(OS_ARCHIVE_EXT)
+
+$(PYEXT_TKINTER_SHARED):	LDFLAGS_DYNEXT += $(LDFLAGS_TCLTK)
+$(PYEXT_TKINTER_SHARED):	$(PYEXT_TKINTER_LOBJS)
+$(PYEXT_TKINTER_STATIC):	$(PYEXT_TKINTER_OBJS)
+
+pyext-tkinter-shared:		$(PYEXT_TKINTER_SHARED)
+pyext-tkinter-static:		$(PYEXT_TKINTER_STATIC)
+
+pyext-tkinter-clean:
+	rm -f $(PYEXT_TKINTER_LOBJS)
+	rm -f $(PYEXT_TKINTER_OBJS)
+	rm -f $(PYEXT_TKINTER_SHARED)
+	rm -f $(PYEXT_TKINTER_STATIC)
+
+clean:	pyext-tkinter-clean
+
+.PHONY:	pyext-tkinter-shared
+.PHONY:	pyext-tkinter-static
+.PHONY:	pyext-tkinter-clean
+
+
+# _uuid
+PYEXT_UUID_SRCS			+= pyext/obj/_uuidmodule.c
+
+PYEXT_UUID_LOBJS		= $(PYEXT_UUID_SRCS:.c=.lo)
+PYEXT_UUID_OBJS			= $(PYEXT_UUID_SRCS:.c=.o)
+
+
+PYEXT_UUID_SHARED		= pyext/_uuid$(PYTHON_SOEXT)
+PYEXT_UUID_STATIC		= pyext/_uuid$(OS_ARCHIVE_EXT)
+
+$(PYEXT_UUID_SHARED):		LDFLAGS_DYNEXT += -luuid
+$(PYEXT_UUID_SHARED):		$(PYEXT_UUID_LOBJS)
+$(PYEXT_UUID_STATIC):		$(PYEXT_UUID_OBJS)
+
+pyext-uuid-shared:		$(PYEXT_UUID_SHARED)
+pyext-uuid-static:		$(PYEXT_UUID_STATIC)
+
+pyext-uuid-clean:
+	rm -f $(PYEXT_UUID_LOBJS)
+	rm -f $(PYEXT_UUID_OBJS)
+	rm -f $(PYEXT_UUID_SHARED)
+	rm -f $(PYEXT_UUID_STATIC)
+
+clean:	pyext-uuid-clean
+
+.PHONY:	pyext-uuid-shared
+.PHONY:	pyext-uuid-static
+.PHONY:	pyext-uuid-clean
+
+
+# binascii
+PYEXT_BINASCII_SRCS		+= pyext/obj/binascii.c
+
+PYEXT_BINASCII_LOBJS		= $(PYEXT_BINASCII_SRCS:.c=.lo)
+PYEXT_BINASCII_OBJS		= $(PYEXT_BINASCII_SRCS:.c=.o)
+
+
+PYEXT_BINASCII_SHARED		= pyext/binascii$(PYTHON_SOEXT)
+PYEXT_BINASCII_STATIC		= pyext/binascii$(OS_ARCHIVE_EXT)
+
+$(PYEXT_BINASCII_SHARED):	LDFLAGS_DYNEXT += -lz
+$(PYEXT_BINASCII_SHARED):	$(PYEXT_BINASCII_LOBJS)
+$(PYEXT_BINASCII_STATIC):	$(PYEXT_BINASCII_OBJS)
+
+pyext-binascii-shared:		$(PYEXT_BINASCII_SHARED)
+pyext-binascii-static:		$(PYEXT_BINASCII_STATIC)
+
+pyext-binascii-clean:
+	rm -f $(PYEXT_BINASCII_LOBJS)
+	rm -f $(PYEXT_BINASCII_OBJS)
+	rm -f $(PYEXT_BINASCII_SHARED)
+	rm -f $(PYEXT_BINASCII_STATIC)
+
+clean:	pyext-binascii-clean
+
+.PHONY:	pyext-binascii-shared
+.PHONY:	pyext-binascii-static
+.PHONY:	pyext-binascii-clean
+
+
+# pyexpat
+PYEXT_PYEXPAT_SRCS		+= pyext/obj/pyexpat.c
+
+PYEXT_PYEXPAT_LOBJS		= $(PYEXT_PYEXPAT_SRCS:.c=.lo)
+PYEXT_PYEXPAT_OBJS		= $(PYEXT_PYEXPAT_SRCS:.c=.o)
+
+
+PYEXT_PYEXPAT_SHARED		= pyext/pyexpat$(PYTHON_SOEXT)
+PYEXT_PYEXPAT_STATIC		= pyext/pyexpat$(OS_ARCHIVE_EXT)
+
+$(PYEXT_PYEXPAT_SHARED):	LDFLAGS_DYNEXT += -lexpat
+$(PYEXT_PYEXPAT_SHARED):	$(PYEXT_PYEXPAT_LOBJS)
+$(PYEXT_PYEXPAT_STATIC):	$(PYEXT_PYEXPAT_OBJS)
+
+pyext-pyexpat-shared:		$(PYEXT_PYEXPAT_SHARED)
+pyext-pyexpat-static:		$(PYEXT_PYEXPAT_STATIC)
+
+pyext-pyexpat-clean:
+	rm -f $(PYEXT_PYEXPAT_LOBJS)
+	rm -f $(PYEXT_PYEXPAT_OBJS)
+	rm -f $(PYEXT_PYEXPAT_SHARED)
+	rm -f $(PYEXT_PYEXPAT_STATIC)
+
+clean:	pyext-pyexpat-clean
+
+.PHONY:	pyext-pyexpat-shared
+.PHONY:	pyext-pyexpat-static
+.PHONY:	pyext-pyexpat-clean
+
+
+# readline
+PYEXT_READLINE_SRCS		+= pyext/obj/readline.c
+
+PYEXT_READLINE_LOBJS		= $(PYEXT_READLINE_SRCS:.c=.lo)
+PYEXT_READLINE_OBJS		= $(PYEXT_READLINE_SRCS:.c=.o)
+
+
+PYEXT_READLINE_SHARED		= pyext/readline$(PYTHON_SOEXT)
+PYEXT_READLINE_STATIC		= pyext/readline$(OS_ARCHIVE_EXT)
+
+$(PYEXT_READLINE_SHARED):	LDFLAGS_DYNEXT += -lreadline
+$(PYEXT_READLINE_SHARED):	$(PYEXT_READLINE_LOBJS)
+$(PYEXT_READLINE_STATIC):	$(PYEXT_READLINE_OBJS)
+
+pyext-readline-shared:		$(PYEXT_READLINE_SHARED)
+pyext-readline-static:		$(PYEXT_READLINE_STATIC)
+
+pyext-readline-clean:
+	rm -f $(PYEXT_READLINE_LOBJS)
+	rm -f $(PYEXT_READLINE_OBJS)
+	rm -f $(PYEXT_READLINE_SHARED)
+	rm -f $(PYEXT_READLINE_STATIC)
+
+clean:	pyext-readline-clean
+
+.PHONY:	pyext-readline-shared
+.PHONY:	pyext-readline-static
+.PHONY:	pyext-readline-clean
+
+
+# zlib
+PYEXT_ZLIB_SRCS			+= pyext/obj/zlibmodule.c
+
+PYEXT_ZLIB_LOBJS		= $(PYEXT_ZLIB_SRCS:.c=.lo)
+PYEXT_ZLIB_OBJS			= $(PYEXT_ZLIB_SRCS:.c=.o)
+
+
+PYEXT_ZLIB_SHARED		= pyext/zlib$(PYTHON_SOEXT)
+PYEXT_ZLIB_STATIC		= pyext/zlib$(OS_ARCHIVE_EXT)
+
+$(PYEXT_ZLIB_SHARED):		LDFLAGS_DYNEXT += -lz
+$(PYEXT_ZLIB_SHARED):		$(PYEXT_ZLIB_LOBJS)
+$(PYEXT_ZLIB_STATIC):		$(PYEXT_ZLIB_OBJS)
+
+pyext-zlib-shared:		$(PYEXT_ZLIB_SHARED)
+pyext-zlib-static:		$(PYEXT_ZLIB_STATIC)
+
+pyext-zlib-clean:
+	rm -f $(PYEXT_ZLIB_LOBJS)
+	rm -f $(PYEXT_ZLIB_OBJS)
+	rm -f $(PYEXT_ZLIB_SHARED)
+	rm -f $(PYEXT_ZLIB_STATIC)
+
+clean:	pyext-zlib-clean
+
+.PHONY:	pyext-zlib-shared
+.PHONY:	pyext-zlib-static
+.PHONY:	pyext-zlib-clean
+
+
diff --git a/project/variants/3.7.1/subsets.mk b/project/variants/3.7.1/subsets.mk
new file mode 100644
index 0000000..a66b59a
--- /dev/null
+++ b/project/variants/3.7.1/subsets.mk
@@ -0,0 +1,155 @@
+# extension subsets: shared
+PYEXT_SUBSET_SHARED_ANYOS_CORE = \
+	$(PYEXT_ARRAY_SHARED) \
+	$(PYEXT_ASYNCIO_SHARED) \
+	$(PYEXT_BINASCII_SHARED) \
+	$(PYEXT_BISECT_SHARED) \
+	$(PYEXT_BLAKE2_SHARED) \
+	$(PYEXT_BZ2_SHARED) \
+	$(PYEXT_CMATH_SHARED) \
+	$(PYEXT_CODECS_CN_SHARED) \
+	$(PYEXT_CODECS_HK_SHARED) \
+	$(PYEXT_CODECS_ISO2022_SHARED) \
+	$(PYEXT_CODECS_JP_SHARED) \
+	$(PYEXT_CODECS_KR_SHARED) \
+	$(PYEXT_CODECS_TW_SHARED) \
+	$(PYEXT_CONTEXTVARS_SHARED) \
+	$(PYEXT_CRYPT_SHARED) \
+	$(PYEXT_CSV_SHARED) \
+	$(PYEXT_CTYPES_SHARED) \
+	$(PYEXT_CTYPES_TEST_SHARED) \
+	$(PYEXT_CURSES_PANEL_SHARED) \
+	$(PYEXT_CURSES_SHARED) \
+	$(PYEXT_DATETIME_SHARED) \
+	$(PYEXT_DBM_SHARED) \
+	$(PYEXT_DECIMAL_SHARED) \
+	$(PYEXT_ELEMENTTREE_SHARED) \
+	$(PYEXT_FCNTL_SHARED) \
+	$(PYEXT_GDBM_SHARED) \
+	$(PYEXT_GRP_SHARED) \
+	$(PYEXT_HASHLIB_SHARED) \
+	$(PYEXT_HEAPQ_SHARED) \
+	$(PYEXT_JSON_SHARED) \
+	$(PYEXT_LSPROF_SHARED) \
+	$(PYEXT_LZMA_SHARED) \
+	$(PYEXT_MATH_SHARED) \
+	$(PYEXT_MD5_SHARED) \
+	$(PYEXT_MMAP_SHARED) \
+	$(PYEXT_MULTIBYTECODEC_SHARED) \
+	$(PYEXT_MULTIPROCESSING_SHARED) \
+	$(PYEXT_OPCODE_SHARED) \
+	$(PYEXT_PARSER_SHARED) \
+	$(PYEXT_PICKLE_SHARED) \
+	$(PYEXT_POSIXSUBPROCESS_SHARED) \
+	$(PYEXT_PYEXPAT_SHARED) \
+	$(PYEXT_QUEUE_SHARED) \
+	$(PYEXT_RANDOM_SHARED) \
+	$(PYEXT_READLINE_SHARED) \
+	$(PYEXT_RESOURCE_SHARED) \
+	$(PYEXT_SELECT_SHARED) \
+	$(PYEXT_SHA1_SHARED) \
+	$(PYEXT_SHA256_SHARED) \
+	$(PYEXT_SHA3_SHARED) \
+	$(PYEXT_SHA512_SHARED) \
+	$(PYEXT_SOCKET_SHARED) \
+	$(PYEXT_SPWD_SHARED) \
+	$(PYEXT_SQLITE3_SHARED) \
+	$(PYEXT_STRUCT_SHARED) \
+	$(PYEXT_SYSLOG_SHARED) \
+	$(PYEXT_TERMIOS_SHARED) \
+	$(PYEXT_TESTBUFFER_SHARED) \
+	$(PYEXT_TESTCAPI_SHARED) \
+	$(PYEXT_TESTIMPORTMULTIPLE_SHARED) \
+	$(PYEXT_TESTMULTIPHASE_SHARED) \
+	$(PYEXT_UNICODEDATA_SHARED) \
+	$(PYEXT_UUID_SHARED) \
+	$(PYEXT_XXLIMITED_SHARED) \
+	$(PYEXT_XXTESTFUZZ_SHARED) \
+	$(PYEXT_ZLIB_SHARED) \
+
+PYEXT_SUBSET_SHARED_ANYOS_AUDIO = \
+	$(PYEXT_AUDIOOP_SHARED) \
+	$(PYEXT_OSSAUDIODEV_SHARED) \
+
+PYEXT_SUBSET_SHARED_ANYOS_TCLTK = \
+	$(PYEXT_TKINTER_SHARED) \
+
+# extension subsets: static
+PYEXT_SUBSET_STATIC_ANYOS_CORE = \
+	$(PYEXT_ARRAY_STATIC) \
+	$(PYEXT_ASYNCIO_STATIC) \
+	$(PYEXT_BINASCII_STATIC) \
+	$(PYEXT_BISECT_STATIC) \
+	$(PYEXT_BLAKE2_STATIC) \
+	$(PYEXT_BZ2_STATIC) \
+	$(PYEXT_CMATH_STATIC) \
+	$(PYEXT_CODECS_CN_STATIC) \
+	$(PYEXT_CODECS_HK_STATIC) \
+	$(PYEXT_CODECS_ISO2022_STATIC) \
+	$(PYEXT_CODECS_JP_STATIC) \
+	$(PYEXT_CODECS_KR_STATIC) \
+	$(PYEXT_CODECS_TW_STATIC) \
+	$(PYEXT_CONTEXTVARS_STATIC) \
+	$(PYEXT_CRYPT_STATIC) \
+	$(PYEXT_CSV_STATIC) \
+	$(PYEXT_CTYPES_STATIC) \
+	$(PYEXT_CTYPES_TEST_STATIC) \
+	$(PYEXT_CURSES_PANEL_STATIC) \
+	$(PYEXT_CURSES_STATIC) \
+	$(PYEXT_DATETIME_STATIC) \
+	$(PYEXT_DBM_STATIC) \
+	$(PYEXT_DECIMAL_STATIC) \
+	$(PYEXT_ELEMENTTREE_STATIC) \
+	$(PYEXT_FCNTL_STATIC) \
+	$(PYEXT_GDBM_STATIC) \
+	$(PYEXT_GRP_STATIC) \
+	$(PYEXT_HASHLIB_STATIC) \
+	$(PYEXT_HEAPQ_STATIC) \
+	$(PYEXT_JSON_STATIC) \
+	$(PYEXT_LSPROF_STATIC) \
+	$(PYEXT_LZMA_STATIC) \
+	$(PYEXT_MATH_STATIC) \
+	$(PYEXT_MD5_STATIC) \
+	$(PYEXT_MMAP_STATIC) \
+	$(PYEXT_MULTIBYTECODEC_STATIC) \
+	$(PYEXT_MULTIPROCESSING_STATIC) \
+	$(PYEXT_OPCODE_STATIC) \
+	$(PYEXT_PARSER_STATIC) \
+	$(PYEXT_PICKLE_STATIC) \
+	$(PYEXT_POSIXSUBPROCESS_STATIC) \
+	$(PYEXT_PYEXPAT_STATIC) \
+	$(PYEXT_QUEUE_STATIC) \
+	$(PYEXT_RANDOM_STATIC) \
+	$(PYEXT_READLINE_STATIC) \
+	$(PYEXT_RESOURCE_STATIC) \
+	$(PYEXT_SELECT_STATIC) \
+	$(PYEXT_SHA1_STATIC) \
+	$(PYEXT_SHA256_STATIC) \
+	$(PYEXT_SHA3_STATIC) \
+	$(PYEXT_SHA512_STATIC) \
+	$(PYEXT_SOCKET_STATIC) \
+	$(PYEXT_SPWD_STATIC) \
+	$(PYEXT_SQLITE3_STATIC) \
+	$(PYEXT_STRUCT_STATIC) \
+	$(PYEXT_SYSLOG_STATIC) \
+	$(PYEXT_TERMIOS_STATIC) \
+	$(PYEXT_TESTBUFFER_STATIC) \
+	$(PYEXT_TESTCAPI_STATIC) \
+	$(PYEXT_TESTIMPORTMULTIPLE_STATIC) \
+	$(PYEXT_TESTMULTIPHASE_STATIC) \
+	$(PYEXT_UNICODEDATA_STATIC) \
+	$(PYEXT_UUID_STATIC) \
+	$(PYEXT_XXLIMITED_STATIC) \
+	$(PYEXT_XXTESTFUZZ_STATIC) \
+	$(PYEXT_ZLIB_STATIC) \
+
+PYEXT_SUBSET_STATIC_ANYOS_AUDIO = \
+	$(PYEXT_AUDIOOP_STATIC) \
+	$(PYEXT_OSSAUDIODEV_STATIC) \
+
+PYEXT_SUBSET_STATIC_ANYOS_TCLTK = \
+	$(PYEXT_TKINTER_STATIC) \
+
+# pending (libressl compatibility issues):
+#	$(PYEXT_SSL_SHARED) \
+#	$(PYEXT_SSL_STATIC) \
-- 
cgit v1.2.3