<Hermetic> Build Python2.7 statically using Soong.

1. Build Python2.7 statically (for sys libs, still dynamically get
linked) for Linux-x86-64 host.

2. Fixed a small build issue for _testcapi.

Modules/config.c is checked-in as source file. Ideally it can be
generated by parsing Android.bp file with some genrule.

Linux/pyconfig.h is for x86-64bit. For arm versioin, another pyconfig.h
will be checked-in under "Arm" dir.

Module: _ctypes is not contained within this patch. I am still trying to
figure out how the libffi works. Or we maybe use .swig directly.

For .py std libs, this static interpreter depends on /usr/lib/python2.7
for now.

Next step: pack up .py std libs, and bundle with this static
interpreter.

Test: cd out/host/linux-x86/bin/python2.7;./python -S
Bug: b/38395161

Change-Id: I680b120c1e056ff3589e8b4faa836bb204210437
diff --git a/.gitignore b/.gitignore
index fb08f55..a821f10 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,13 +16,11 @@
 Doc/tools/pygments/
 Doc/tools/sphinx/
 Lib/lib2to3/*.pickle
-Makefile
 Makefile.pre
 Misc/python.pc
 Modules/Setup
 Modules/Setup.config
 Modules/Setup.local
-Modules/config.c
 Modules/ld_so_aix
 PCbuild/*.bsc
 PCbuild/*.dll
@@ -41,7 +39,6 @@
 config.status
 libpython*.a
 libpython*.so*
-pyconfig.h
 python$
 python-gdb.py
 tags
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..69c436e
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,608 @@
+// Copyright 2017 Google Inc. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+cc_defaults {
+    name: "py2-interp-defaults",
+    cflags: [
+        "-fwrapv",
+        "-O3",
+        "-Wall",
+        "-Wstrict-prototypes",
+        "-DPy_BUILD_CORE",
+        "-Wno-missing-field-initializers",
+        "-Wno-shift-count-overflow",
+        "-Wno-sign-compare",
+        "-Wno-tautological-compare",
+        "-Wno-tautological-constant-out-of-range-compare",
+        "-Wno-unused-parameter",
+        "-Wno-unused-result",
+    ],
+    local_include_dirs: ["Include"],
+    target: {
+       darwin: {
+           enabled: false,
+       },
+       linux_x86_64: {
+           local_include_dirs: [
+               "linux_x86_64",
+           ],
+       },
+       windows: {
+           enabled: false,
+       },
+    },
+    host_supported: true,
+    device_supported: false,
+    compile_multilib: "64",
+}
+
+cc_library_static {
+    name: "py2-interp-parser",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Parser/acceler.c",
+        "Parser/bitset.c",
+        "Parser/firstsets.c",
+        "Parser/grammar.c",
+        "Parser/grammar1.c",
+        "Parser/listnode.c",
+        "Parser/metagrammar.c",
+        "Parser/myreadline.c",
+        "Parser/node.c",
+        "Parser/parser.c",
+        "Parser/parsetok.c",
+        "Parser/pgen.c",
+        "Parser/tokenizer.c",
+    ],
+}
+
+cc_library_static {
+    name: "py2-interp-object",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Objects/abstract.c",
+        "Objects/boolobject.c",
+        "Objects/bufferobject.c",
+        "Objects/bytes_methods.c",
+        "Objects/bytearrayobject.c",
+        "Objects/capsule.c",
+        "Objects/cellobject.c",
+        "Objects/classobject.c",
+        "Objects/cobject.c",
+        "Objects/codeobject.c",
+        "Objects/complexobject.c",
+        "Objects/descrobject.c",
+        "Objects/enumobject.c",
+        "Objects/exceptions.c",
+        "Objects/genobject.c",
+        "Objects/fileobject.c",
+        "Objects/floatobject.c",
+        "Objects/frameobject.c",
+        "Objects/funcobject.c",
+        "Objects/intobject.c",
+        "Objects/iterobject.c",
+        "Objects/listobject.c",
+        "Objects/longobject.c",
+        "Objects/dictobject.c",
+        "Objects/memoryobject.c",
+        "Objects/methodobject.c",
+        "Objects/moduleobject.c",
+        "Objects/object.c",
+        "Objects/obmalloc.c",
+        "Objects/rangeobject.c",
+        "Objects/setobject.c",
+        "Objects/sliceobject.c",
+        "Objects/stringobject.c",
+        "Objects/structseq.c",
+        "Objects/tupleobject.c",
+        "Objects/typeobject.c",
+        "Objects/weakrefobject.c",
+        "Objects/unicodeobject.c",
+        "Objects/unicodectype.c",
+    ],
+}
+
+cc_library_static {
+    name: "py2-interp-python",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Python/_warnings.c",
+        "Python/Python-ast.c",
+        "Python/asdl.c",
+        "Python/ast.c",
+        "Python/bltinmodule.c",
+        "Python/ceval.c",
+        "Python/compile.c",
+        "Python/codecs.c",
+        "Python/errors.c",
+        "Python/frozen.c",
+        "Python/frozenmain.c",
+        "Python/future.c",
+        "Python/getargs.c",
+        "Python/getcompiler.c",
+        "Python/getcopyright.c",
+        "Python/getplatform.c",
+        "Python/getversion.c",
+        "Python/graminit.c",
+        "Python/import.c",
+        "Python/importdl.c",
+        "Python/marshal.c",
+        "Python/modsupport.c",
+        "Python/mystrtoul.c",
+        "Python/mysnprintf.c",
+        "Python/peephole.c",
+        "Python/pyarena.c",
+        "Python/pyctype.c",
+        "Python/pyfpe.c",
+        "Python/pymath.c",
+        "Python/pystate.c",
+        "Python/pythonrun.c",
+        "Python/random.c",
+        "Python/structmember.c",
+        "Python/symtable.c",
+        "Python/sysmodule.c",
+        "Python/traceback.c",
+        "Python/getopt.c",
+        "Python/pystrcmp.c",
+        "Python/pystrtod.c",
+        "Python/dtoa.c",
+        "Python/formatter_unicode.c",
+        "Python/formatter_string.c",
+        "Python/dynload_shlib.c",
+        "Python/thread.c",
+    ],
+}
+
+cc_binary {
+    name: "python",
+    defaults: ["py2-interp-defaults"],
+    relative_install_path: "python2.7",
+    cflags: [
+        // Depends on /usr/lib/python2.7 for now to fetch Python standard Libs.
+        // This will be changed after std Libs are packed up within hermetic Python.
+        "-DVERSION=\"2.7\"",
+        "-DVPATH=\".\"",
+        "-DPREFIX=\".\"",
+        "-DEXEC_PREFIX=\".\"",
+        "-DPYTHONPATH=\".\"",
+    ],
+    srcs: [
+        "Modules/main.c",
+        "Modules/python.c",
+        "Modules/gcmodule.c",
+        "Modules/getpath.c",
+        "Modules/config.c",
+        "Modules/getbuildinfo.c",
+        // Default built-in extension C-modules.
+        "Modules/threadmodule.c",
+        "Modules/signalmodule.c",
+        "Modules/posixmodule.c",
+        "Modules/errnomodule.c",
+        "Modules/pwdmodule.c",
+        "Modules/_sre.c",
+        "Modules/_codecsmodule.c",
+        "Modules/_weakref.c",
+        "Modules/zipimport.c",
+        "Modules/symtablemodule.c",
+    ],
+    static_libs: [
+        "py2-interp-parser",
+        "py2-interp-object",
+        "py2-interp-python",
+        "c-module-array",
+        "c-module-cmath",
+        "c-module-math",
+        "c-module-_struct",
+        "c-module-time",
+        "c-module-operator",
+        "c-module-_testcapi",
+        "c-module-_random",
+        "c-module-_collections",
+        "c-module-_heapq",
+        "c-module-itertools",
+        "c-module-strop",
+        "c-module-_functools",
+        "c-module-datetime",
+        "c-module-_bisect",
+        "c-module-unicodedata",
+        "c-module-_io",
+        "c-module-fcntl",
+        "c-module-select",
+        "c-module-mmap",
+        "c-module-_csv",
+        "c-module-_socket",
+        "c-module-termios",
+        "c-module-_md5",
+        "c-module-_sha",
+        "c-module-_sha256",
+        "c-module-_sha512",
+        "c-module-binascii",
+        "c-module-parser",
+        "c-module-cStringIO",
+        "c-module-cPickle",
+        "c-module-xxsubtype",
+        "c-module-future_builtins",
+        "c-module-_json",
+        "c-module-_hotshot",
+        "c-module-_lsprof",
+        "c-module-grp",
+        "c-module-syslog",
+        "c-module-audioop",
+        "c-module-resource",
+        "c-module-_multibytecodec",
+        "c-module-_multiprocessing",
+    ],
+    host_ldlibs: [
+        "-lpthread",
+        "-ldl",
+        "-lutil",
+        "-lm"
+    ],
+    stl: "none",
+}
+
+// Enabled extension C-modules.
+
+cc_library_static {
+    name: "c-module-array",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/arraymodule.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-cmath",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/cmathmodule.c",
+        "Modules/_math.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-math",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/mathmodule.c",
+        "Modules/_math.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-_struct",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/_struct.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-time",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/timemodule.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-operator",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/operator.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-_testcapi",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/_testcapimodule.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-_random",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/_randommodule.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-_collections",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/_collectionsmodule.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-_heapq",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/_heapqmodule.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-itertools",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/itertoolsmodule.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-strop",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/stropmodule.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-_functools",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/_functoolsmodule.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-datetime",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/datetimemodule.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-_bisect",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/_bisectmodule.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-unicodedata",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/unicodedata.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-_io",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/_io/bufferedio.c",
+        "Modules/_io/bytesio.c",
+        "Modules/_io/fileio.c",
+        "Modules/_io/iobase.c",
+        "Modules/_io/_iomodule.c",
+        "Modules/_io/stringio.c",
+        "Modules/_io/textio.c",
+    ],
+    local_include_dirs: [
+        "Modules/_io",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-fcntl",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/fcntlmodule.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-select",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/selectmodule.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-mmap",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/mmapmodule.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-_csv",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/_csv.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-_socket",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/socketmodule.c",
+        "Modules/timemodule.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-termios",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/termios.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-_md5",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/md5module.c",
+        "Modules/md5.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-_sha",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/shamodule.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-_sha256",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/sha256module.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-_sha512",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/sha512module.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-binascii",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/binascii.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-parser",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/parsermodule.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-cStringIO",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/cStringIO.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-cPickle",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/cPickle.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-xxsubtype",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/xxsubtype.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-future_builtins",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/future_builtins.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-_json",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/_json.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-_hotshot",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/_hotshot.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-_lsprof",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/_lsprof.c",
+        "Modules/rotatingtree.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-grp",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/grpmodule.c",
+        "Modules/rotatingtree.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-syslog",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/syslogmodule.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-audioop",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/audioop.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-resource",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/resource.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-_multibytecodec",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/cjkcodecs/multibytecodec.c",
+    ],
+}
+
+cc_library_static {
+    name: "c-module-_multiprocessing",
+    defaults: ["py2-interp-defaults"],
+    srcs: [
+        "Modules/_multiprocessing/multiprocessing.c",
+        "Modules/_multiprocessing/semaphore.c",
+        "Modules/_multiprocessing/socket_connection.c",
+    ],
+}
diff --git a/Lib/site.py b/Lib/site.py
index 3b51e81..d09cda3 100644
--- a/Lib/site.py
+++ b/Lib/site.py
@@ -203,6 +203,10 @@
     False: Disabled by user (command line option)
     True: Safe and enabled
     """
+    # GOOGLE(nanzhang): Don't enable user-site directories,
+    # everything's supposed to be hermetic.
+    return None
+
     if sys.flags.no_user_site:
         return False
 
@@ -518,7 +522,9 @@
     known_paths = removeduppaths()
     if ENABLE_USER_SITE is None:
         ENABLE_USER_SITE = check_enableusersite()
-    known_paths = addusersitepackages(known_paths)
+    if ENABLE_USER_SITE:
+        known_paths = addusersitepackages(known_paths)
+
     known_paths = addsitepackages(known_paths)
     if sys.platform == 'os2emx':
         setBEGINLIBPATH()
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c
index 69f59fc..f306b1c 100644
--- a/Modules/_testcapimodule.c
+++ b/Modules/_testcapimodule.c
@@ -1824,7 +1824,7 @@
     Py_RETURN_NONE;
 }
 
-#ifdef Py_USING_UNICODE
+#if defined(Py_USING_UNICODE) && !defined(Py_BUILD_CORE)
 static int test_run_counter = 0;
 
 static PyObject *
@@ -2486,7 +2486,7 @@
     {"raise_exception",         raise_exception,                 METH_VARARGS},
     {"set_errno",               set_errno,                       METH_VARARGS},
     {"test_config",             (PyCFunction)test_config,        METH_NOARGS},
-#ifdef Py_USING_UNICODE
+#if defined(Py_USING_UNICODE) && !defined(Py_BUILD_CORE)
     {"test_datetime_capi",  test_datetime_capi,              METH_NOARGS},
 #endif
     {"test_list_api",           (PyCFunction)test_list_api,      METH_NOARGS},
diff --git a/Modules/config.c b/Modules/config.c
new file mode 100644
index 0000000..4f0e55e
--- /dev/null
+++ b/Modules/config.c
@@ -0,0 +1,172 @@
+/* Generated automatically from ./Modules/config.c.in by makesetup. */
+/* -*- C -*- ***********************************************
+Copyright (c) 2000, BeOpen.com.
+Copyright (c) 1995-2000, Corporation for National Research Initiatives.
+Copyright (c) 1990-1995, Stichting Mathematisch Centrum.
+All rights reserved.
+
+See the file "Misc/COPYRIGHT" for information on usage and
+redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+******************************************************************/
+
+/* Module configuration */
+
+/* !!! !!! !!! This file is edited by the makesetup script !!! !!! !!! */
+
+/* This file contains the table of built-in modules.
+   See init_builtin() in import.c. */
+
+#include "Python.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern void initthread(void);
+extern void initsignal(void);
+extern void initposix(void);
+extern void initerrno(void);
+extern void initpwd(void);
+extern void init_sre(void);
+extern void init_codecs(void);
+extern void init_weakref(void);
+extern void initzipimport(void);
+extern void init_symtable(void);
+extern void initarray(void);
+extern void initcmath(void);
+extern void initmath(void);
+extern void init_struct(void);
+extern void inittime(void);
+extern void initoperator(void);
+extern void init_testcapi(void);
+extern void init_random(void);
+extern void init_collections(void);
+extern void init_heapq(void);
+extern void inititertools(void);
+extern void initstrop(void);
+extern void init_functools(void);
+extern void initdatetime(void);
+extern void init_bisect(void);
+extern void initunicodedata(void);
+extern void init_io(void);
+extern void initfcntl(void);
+extern void initselect(void);
+extern void initmmap(void);
+extern void init_csv(void);
+extern void init_socket(void);
+extern void inittermios(void);
+extern void init_md5(void);
+extern void init_sha(void);
+extern void init_sha256(void);
+extern void init_sha512(void);
+extern void initbinascii(void);
+extern void initparser(void);
+extern void initcStringIO(void);
+extern void initcPickle(void);
+extern void initxxsubtype(void);
+extern void initfuture_builtins(void);
+extern void init_json(void);
+extern void init_hotshot(void);
+extern void init_lsprof(void);
+extern void initgrp(void);
+extern void initsyslog(void);
+extern void initaudioop(void);
+extern void initresource(void);
+extern void init_multibytecodec(void);
+extern void init_multiprocessing(void);
+
+/* -- ADDMODULE MARKER 1 -- */
+
+extern void PyMarshal_Init(void);
+extern void initimp(void);
+extern void initgc(void);
+extern void init_ast(void);
+extern void _PyWarnings_Init(void);
+
+struct _inittab _PyImport_Inittab[] = {
+
+    {"thread", initthread},
+    {"signal", initsignal},
+    {"posix", initposix},
+    {"errno", initerrno},
+    {"pwd", initpwd},
+    {"_sre", init_sre},
+    {"_codecs", init_codecs},
+    {"_weakref", init_weakref},
+    {"zipimport", initzipimport},
+    {"_symtable", init_symtable},
+    {"array", initarray},
+    {"cmath", initcmath},
+    {"math", initmath},
+    {"_struct", init_struct},
+    {"time", inittime},
+    {"operator", initoperator},
+    {"_testcapi", init_testcapi},
+    {"_random", init_random},
+    {"_collections", init_collections},
+    {"_heapq", init_heapq},
+    {"itertools", inititertools},
+    {"strop", initstrop},
+    {"_functools", init_functools},
+    {"datetime", initdatetime},
+    {"_bisect", init_bisect},
+    {"unicodedata", initunicodedata},
+    {"_io", init_io},
+    {"fcntl", initfcntl},
+    {"select", initselect},
+    {"mmap", initmmap},
+    {"_csv", init_csv},
+    {"_socket", init_socket},
+    {"termios", inittermios},
+    {"_md5", init_md5},
+    {"_sha", init_sha},
+    {"_sha256", init_sha256},
+    {"_sha512", init_sha512},
+    {"binascii", initbinascii},
+    {"parser", initparser},
+    {"cStringIO", initcStringIO},
+    {"cPickle", initcPickle},
+    {"xxsubtype", initxxsubtype},
+    {"future_builtins", initfuture_builtins},
+    {"_json", init_json},
+    {"_hotshot", init_hotshot},
+    {"_lsprof", init_lsprof},
+    {"grp", initgrp},
+    {"syslog", initsyslog},
+    {"audioop", initaudioop},
+    {"resource", initresource},
+    {"_multibytecodec", init_multibytecodec},
+    {"_multiprocessing", init_multiprocessing},
+
+/* -- ADDMODULE MARKER 2 -- */
+
+    /* This module lives in marshal.c */
+    {"marshal", PyMarshal_Init},
+
+    /* This lives in import.c */
+    {"imp", initimp},
+
+    /* This lives in Python/Python-ast.c */
+    {"_ast", init_ast},
+
+    /* These entries are here for sys.builtin_module_names */
+    {"__main__", NULL},
+    {"__builtin__", NULL},
+    {"sys", NULL},
+    {"exceptions", NULL},
+
+    /* This lives in gcmodule.c */
+    {"gc", initgc},
+
+    /* This lives in _warnings.c */
+    {"_warnings", _PyWarnings_Init},
+
+    /* Sentinel */
+    {0, 0}
+};
+
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/linux_x86_64/pyconfig.h b/linux_x86_64/pyconfig.h
new file mode 100644
index 0000000..0b72946
--- /dev/null
+++ b/linux_x86_64/pyconfig.h
@@ -0,0 +1,1287 @@
+/* pyconfig.h.  Generated from pyconfig.h.in by configure.  */
+/* pyconfig.h.in.  Generated from configure.ac by autoheader.  */
+
+
+#ifndef Py_PYCONFIG_H
+#define Py_PYCONFIG_H
+
+
+/* Define if building universal (internal helper macro) */
+/* #undef AC_APPLE_UNIVERSAL_BUILD */
+
+/* Define for AIX if your compiler is a genuine IBM xlC/xlC_r and you want
+   support for AIX C++ shared extension modules. */
+/* #undef AIX_GENUINE_CPLUSPLUS */
+
+/* Define this if you have AtheOS threads. */
+/* #undef ATHEOS_THREADS */
+
+/* Define this if you have BeOS threads. */
+/* #undef BEOS_THREADS */
+
+/* Define if you have the Mach cthreads package */
+/* #undef C_THREADS */
+
+/* Define if C doubles are 64-bit IEEE 754 binary format, stored in ARM
+   mixed-endian order (byte order 45670123) */
+/* #undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 */
+
+/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the most
+   significant byte first */
+/* #undef DOUBLE_IS_BIG_ENDIAN_IEEE754 */
+
+/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the
+   least significant byte first */
+#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1
+
+/* Define if --enable-ipv6 is specified */
+#define ENABLE_IPV6 1
+
+/* Define if flock needs to be linked with bsd library. */
+/* #undef FLOCK_NEEDS_LIBBSD */
+
+/* Define if getpgrp() must be called as getpgrp(0). */
+/* #undef GETPGRP_HAVE_ARG */
+
+/* Define if gettimeofday() does not have second (timezone) argument This is
+   the case on Motorola V4 (R40V4.2) */
+/* #undef GETTIMEOFDAY_NO_TZ */
+
+/* Define to 1 if you have the `acosh' function. */
+#define HAVE_ACOSH 1
+
+/* struct addrinfo (netdb.h) */
+#define HAVE_ADDRINFO 1
+
+/* Define to 1 if you have the `alarm' function. */
+#define HAVE_ALARM 1
+
+/* Define to 1 if you have the <alloca.h> header file. */
+#define HAVE_ALLOCA_H 1
+
+/* Define this if your time.h defines altzone. */
+/* #undef HAVE_ALTZONE */
+
+/* Define to 1 if you have the `asinh' function. */
+#define HAVE_ASINH 1
+
+/* Define to 1 if you have the <asm/types.h> header file. */
+#define HAVE_ASM_TYPES_H 1
+
+/* Define to 1 if you have the `atanh' function. */
+#define HAVE_ATANH 1
+
+/* Define if GCC supports __attribute__((format(PyArg_ParseTuple, 2, 3))) */
+/* #undef HAVE_ATTRIBUTE_FORMAT_PARSETUPLE */
+
+/* Define to 1 if you have the `bind_textdomain_codeset' function. */
+#define HAVE_BIND_TEXTDOMAIN_CODESET 1
+
+/* Define to 1 if you have the <bluetooth/bluetooth.h> header file. */
+/* #undef HAVE_BLUETOOTH_BLUETOOTH_H */
+
+/* Define to 1 if you have the <bluetooth.h> header file. */
+/* #undef HAVE_BLUETOOTH_H */
+
+/* Define if nice() returns success/failure instead of the new priority. */
+/* #undef HAVE_BROKEN_NICE */
+
+/* Define if the system reports an invalid PIPE_BUF value. */
+/* #undef HAVE_BROKEN_PIPE_BUF */
+
+/* Define if poll() sets errno on invalid file descriptors. */
+/* #undef HAVE_BROKEN_POLL */
+
+/* Define if the Posix semaphores do not work on your system */
+/* #undef HAVE_BROKEN_POSIX_SEMAPHORES */
+
+/* Define if pthread_sigmask() does not work on your system. */
+/* #undef HAVE_BROKEN_PTHREAD_SIGMASK */
+
+/* define to 1 if your sem_getvalue is broken. */
+/* #undef HAVE_BROKEN_SEM_GETVALUE */
+
+/* Define if `unsetenv` does not return an int. */
+/* #undef HAVE_BROKEN_UNSETENV */
+
+/* Define this if you have the type _Bool. */
+#define HAVE_C99_BOOL 1
+
+/* Define to 1 if you have the 'chflags' function. */
+/* #undef HAVE_CHFLAGS */
+
+/* Define to 1 if you have the `chown' function. */
+#define HAVE_CHOWN 1
+
+/* Define if you have the 'chroot' function. */
+#define HAVE_CHROOT 1
+
+/* Define to 1 if you have the `clock' function. */
+#define HAVE_CLOCK 1
+
+/* Define if the C compiler supports computed gotos. */
+#define HAVE_COMPUTED_GOTOS 1
+
+/* Define to 1 if you have the `confstr' function. */
+#define HAVE_CONFSTR 1
+
+/* Define to 1 if you have the <conio.h> header file. */
+/* #undef HAVE_CONIO_H */
+
+/* Define to 1 if you have the `copysign' function. */
+#define HAVE_COPYSIGN 1
+
+/* Define to 1 if you have the `ctermid' function. */
+#define HAVE_CTERMID 1
+
+/* Define if you have the 'ctermid_r' function. */
+/* #undef HAVE_CTERMID_R */
+
+/* Define to 1 if you have the <curses.h> header file. */
+#define HAVE_CURSES_H 1
+
+/* Define if you have the 'is_term_resized' function. */
+#define HAVE_CURSES_IS_TERM_RESIZED 1
+
+/* Define if you have the 'resizeterm' function. */
+#define HAVE_CURSES_RESIZETERM 1
+
+/* Define if you have the 'resize_term' function. */
+#define HAVE_CURSES_RESIZE_TERM 1
+
+/* Define to 1 if you have the declaration of `isfinite', and to 0 if you
+   don't. */
+#define HAVE_DECL_ISFINITE 1
+
+/* Define to 1 if you have the declaration of `isinf', and to 0 if you don't.
+   */
+#define HAVE_DECL_ISINF 1
+
+/* Define to 1 if you have the declaration of `isnan', and to 0 if you don't.
+   */
+#define HAVE_DECL_ISNAN 1
+
+/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
+   */
+/* #undef HAVE_DECL_TZNAME */
+
+/* Define to 1 if you have the device macros. */
+#define HAVE_DEVICE_MACROS 1
+
+/* Define to 1 if you have the /dev/ptc device file. */
+/* #undef HAVE_DEV_PTC */
+
+/* Define to 1 if you have the /dev/ptmx device file. */
+#define HAVE_DEV_PTMX 1
+
+/* Define to 1 if you have the <direct.h> header file. */
+/* #undef HAVE_DIRECT_H */
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+   */
+#define HAVE_DIRENT_H 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the `dlopen' function. */
+#define HAVE_DLOPEN 1
+
+/* Define to 1 if you have the `dup2' function. */
+#define HAVE_DUP2 1
+
+/* Defined when any dynamic module loading is enabled. */
+#define HAVE_DYNAMIC_LOADING 1
+
+/* Define if you have the 'epoll' functions. */
+#define HAVE_EPOLL 1
+
+/* Define to 1 if you have the `erf' function. */
+#define HAVE_ERF 1
+
+/* Define to 1 if you have the `erfc' function. */
+#define HAVE_ERFC 1
+
+/* Define to 1 if you have the <errno.h> header file. */
+#define HAVE_ERRNO_H 1
+
+/* Define to 1 if you have the `execv' function. */
+#define HAVE_EXECV 1
+
+/* Define to 1 if you have the `expm1' function. */
+#define HAVE_EXPM1 1
+
+/* Define if you have the 'fchdir' function. */
+#define HAVE_FCHDIR 1
+
+/* Define to 1 if you have the `fchmod' function. */
+#define HAVE_FCHMOD 1
+
+/* Define to 1 if you have the `fchown' function. */
+#define HAVE_FCHOWN 1
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define if you have the 'fdatasync' function. */
+#define HAVE_FDATASYNC 1
+
+/* Define to 1 if you have the `finite' function. */
+#define HAVE_FINITE 1
+
+/* Define to 1 if you have the `flock' function. */
+#define HAVE_FLOCK 1
+
+/* Define to 1 if you have the `fork' function. */
+#define HAVE_FORK 1
+
+/* Define to 1 if you have the `forkpty' function. */
+#define HAVE_FORKPTY 1
+
+/* Define to 1 if you have the `fpathconf' function. */
+#define HAVE_FPATHCONF 1
+
+/* Define to 1 if you have the `fseek64' function. */
+/* #undef HAVE_FSEEK64 */
+
+/* Define to 1 if you have the `fseeko' function. */
+#define HAVE_FSEEKO 1
+
+/* Define to 1 if you have the `fstatvfs' function. */
+#define HAVE_FSTATVFS 1
+
+/* Define if you have the 'fsync' function. */
+#define HAVE_FSYNC 1
+
+/* Define to 1 if you have the `ftell64' function. */
+/* #undef HAVE_FTELL64 */
+
+/* Define to 1 if you have the `ftello' function. */
+#define HAVE_FTELLO 1
+
+/* Define to 1 if you have the `ftime' function. */
+#define HAVE_FTIME 1
+
+/* Define to 1 if you have the `ftruncate' function. */
+#define HAVE_FTRUNCATE 1
+
+/* Define to 1 if you have the `gai_strerror' function. */
+#define HAVE_GAI_STRERROR 1
+
+/* Define to 1 if you have the `gamma' function. */
+#define HAVE_GAMMA 1
+
+/* Define if we can use gcc inline assembler to get and set x87 control word
+   */
+#define HAVE_GCC_ASM_FOR_X87 1
+
+/* Define if you have the getaddrinfo function. */
+#define HAVE_GETADDRINFO 1
+
+/* Define to 1 if you have the `getcwd' function. */
+#define HAVE_GETCWD 1
+
+/* Define this if you have flockfile(), getc_unlocked(), and funlockfile() */
+#define HAVE_GETC_UNLOCKED 1
+
+/* Define to 1 if you have the `getentropy' function. */
+/* #undef HAVE_GETENTROPY */
+
+/* Define to 1 if you have the `getgroups' function. */
+#define HAVE_GETGROUPS 1
+
+/* Define to 1 if you have the `gethostbyname' function. */
+/* #undef HAVE_GETHOSTBYNAME */
+
+/* Define this if you have some version of gethostbyname_r() */
+#define HAVE_GETHOSTBYNAME_R 1
+
+/* Define this if you have the 3-arg version of gethostbyname_r(). */
+/* #undef HAVE_GETHOSTBYNAME_R_3_ARG */
+
+/* Define this if you have the 5-arg version of gethostbyname_r(). */
+/* #undef HAVE_GETHOSTBYNAME_R_5_ARG */
+
+/* Define this if you have the 6-arg version of gethostbyname_r(). */
+#define HAVE_GETHOSTBYNAME_R_6_ARG 1
+
+/* Define to 1 if you have the `getitimer' function. */
+#define HAVE_GETITIMER 1
+
+/* Define to 1 if you have the `getloadavg' function. */
+#define HAVE_GETLOADAVG 1
+
+/* Define to 1 if you have the `getlogin' function. */
+#define HAVE_GETLOGIN 1
+
+/* Define to 1 if you have the `getnameinfo' function. */
+#define HAVE_GETNAMEINFO 1
+
+/* Define if you have the 'getpagesize' function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define to 1 if you have the `getpeername' function. */
+#define HAVE_GETPEERNAME 1
+
+/* Define to 1 if you have the `getpgid' function. */
+#define HAVE_GETPGID 1
+
+/* Define to 1 if you have the `getpgrp' function. */
+#define HAVE_GETPGRP 1
+
+/* Define to 1 if you have the `getpid' function. */
+#define HAVE_GETPID 1
+
+/* Define to 1 if you have the `getpriority' function. */
+#define HAVE_GETPRIORITY 1
+
+/* Define to 1 if you have the `getpwent' function. */
+#define HAVE_GETPWENT 1
+
+/* Define to 1 if you have the `getresgid' function. */
+#define HAVE_GETRESGID 1
+
+/* Define to 1 if you have the `getresuid' function. */
+#define HAVE_GETRESUID 1
+
+/* Define to 1 if you have the `getsid' function. */
+#define HAVE_GETSID 1
+
+/* Define to 1 if you have the `getspent' function. */
+#define HAVE_GETSPENT 1
+
+/* Define to 1 if you have the `getspnam' function. */
+#define HAVE_GETSPNAM 1
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#define HAVE_GETTIMEOFDAY 1
+
+/* Define to 1 if you have the `getwd' function. */
+#define HAVE_GETWD 1
+
+/* Define to 1 if you have the <grp.h> header file. */
+#define HAVE_GRP_H 1
+
+/* Define if you have the 'hstrerror' function. */
+#define HAVE_HSTRERROR 1
+
+/* Define to 1 if you have the `hypot' function. */
+#define HAVE_HYPOT 1
+
+/* Define to 1 if you have the <ieeefp.h> header file. */
+/* #undef HAVE_IEEEFP_H */
+
+/* Define if you have the 'inet_aton' function. */
+#define HAVE_INET_ATON 1
+
+/* Define if you have the 'inet_pton' function. */
+#define HAVE_INET_PTON 1
+
+/* Define to 1 if you have the `initgroups' function. */
+#define HAVE_INITGROUPS 1
+
+/* Define if your compiler provides int32_t. */
+#define HAVE_INT32_T 1
+
+/* Define if your compiler provides int64_t. */
+#define HAVE_INT64_T 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <io.h> header file. */
+/* #undef HAVE_IO_H */
+
+/* Define to 1 if you have the `kill' function. */
+#define HAVE_KILL 1
+
+/* Define to 1 if you have the `killpg' function. */
+#define HAVE_KILLPG 1
+
+/* Define if you have the 'kqueue' functions. */
+/* #undef HAVE_KQUEUE */
+
+/* Define to 1 if you have the <langinfo.h> header file. */
+#define HAVE_LANGINFO_H 1
+
+/* Defined to enable large file support when an off_t is bigger than a long
+   and long long is available and at least as big as an off_t. You may need to
+   add some flags for configuration and compilation to enable this mode. (For
+   Solaris and Linux, the necessary defines are already defined.) */
+/* #undef HAVE_LARGEFILE_SUPPORT */
+
+/* Define to 1 if you have the 'lchflags' function. */
+/* #undef HAVE_LCHFLAGS */
+
+/* Define to 1 if you have the `lchmod' function. */
+/* #undef HAVE_LCHMOD */
+
+/* Define to 1 if you have the `lchown' function. */
+#define HAVE_LCHOWN 1
+
+/* Define to 1 if you have the `lgamma' function. */
+#define HAVE_LGAMMA 1
+
+/* Define to 1 if you have the `dl' library (-ldl). */
+#define HAVE_LIBDL 1
+
+/* Define to 1 if you have the `dld' library (-ldld). */
+/* #undef HAVE_LIBDLD */
+
+/* Define to 1 if you have the `ieee' library (-lieee). */
+/* #undef HAVE_LIBIEEE */
+
+/* Define to 1 if you have the <libintl.h> header file. */
+#define HAVE_LIBINTL_H 1
+
+/* Define if you have the readline library (-lreadline). */
+/* #undef HAVE_LIBREADLINE */
+
+/* Define to 1 if you have the `resolv' library (-lresolv). */
+/* #undef HAVE_LIBRESOLV */
+
+/* Define to 1 if you have the <libutil.h> header file. */
+/* #undef HAVE_LIBUTIL_H */
+
+/* Define if you have the 'link' function. */
+#define HAVE_LINK 1
+
+/* Define to 1 if you have the <linux/netlink.h> header file. */
+#define HAVE_LINUX_NETLINK_H 1
+
+/* Define to 1 if you have the <linux/tipc.h> header file. */
+#define HAVE_LINUX_TIPC_H 1
+
+/* Define to 1 if you have the `log1p' function. */
+#define HAVE_LOG1P 1
+
+/* Define this if you have the type long double. */
+#define HAVE_LONG_DOUBLE 1
+
+/* Define this if you have the type long long. */
+#define HAVE_LONG_LONG 1
+
+/* Define to 1 if you have the `lstat' function. */
+#define HAVE_LSTAT 1
+
+/* Define this if you have the makedev macro. */
+#define HAVE_MAKEDEV 1
+
+/* Define to 1 if you have the `memmove' function. */
+#define HAVE_MEMMOVE 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the `mkfifo' function. */
+#define HAVE_MKFIFO 1
+
+/* Define to 1 if you have the `mknod' function. */
+#define HAVE_MKNOD 1
+
+/* Define to 1 if you have the `mktime' function. */
+#define HAVE_MKTIME 1
+
+/* Define to 1 if you have the `mmap' function. */
+#define HAVE_MMAP 1
+
+/* Define to 1 if you have the `mremap' function. */
+#define HAVE_MREMAP 1
+
+/* Define to 1 if you have the <ncurses.h> header file. */
+#define HAVE_NCURSES_H 1
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+/* #undef HAVE_NDIR_H */
+
+/* Define to 1 if you have the <netpacket/packet.h> header file. */
+#define HAVE_NETPACKET_PACKET_H 1
+
+/* Define to 1 if you have the `nice' function. */
+#define HAVE_NICE 1
+
+/* Define to 1 if you have the `openpty' function. */
+#define HAVE_OPENPTY 1
+
+/* Define if compiling using MacOS X 10.5 SDK or later. */
+/* #undef HAVE_OSX105_SDK */
+
+/* Define to 1 if you have the `pathconf' function. */
+#define HAVE_PATHCONF 1
+
+/* Define to 1 if you have the `pause' function. */
+#define HAVE_PAUSE 1
+
+/* Define to 1 if you have the `plock' function. */
+/* #undef HAVE_PLOCK */
+
+/* Define to 1 if you have the `poll' function. */
+#define HAVE_POLL 1
+
+/* Define to 1 if you have the <poll.h> header file. */
+#define HAVE_POLL_H 1
+
+/* Define to 1 if you have the <process.h> header file. */
+/* #undef HAVE_PROCESS_H */
+
+/* Define if your compiler supports function prototype */
+#define HAVE_PROTOTYPES 1
+
+/* Define if you have GNU PTH threads. */
+/* #undef HAVE_PTH */
+
+/* Define to 1 if you have the `pthread_atfork' function. */
+#define HAVE_PTHREAD_ATFORK 1
+
+/* Defined for Solaris 2.6 bug in pthread header. */
+/* #undef HAVE_PTHREAD_DESTRUCTOR */
+
+/* Define to 1 if you have the <pthread.h> header file. */
+#define HAVE_PTHREAD_H 1
+
+/* Define to 1 if you have the `pthread_init' function. */
+/* #undef HAVE_PTHREAD_INIT */
+
+/* Define to 1 if you have the `pthread_sigmask' function. */
+#define HAVE_PTHREAD_SIGMASK 1
+
+/* Define to 1 if you have the <pty.h> header file. */
+#define HAVE_PTY_H 1
+
+/* Define to 1 if you have the `putenv' function. */
+#define HAVE_PUTENV 1
+
+/* Define to 1 if you have the `readlink' function. */
+#define HAVE_READLINK 1
+
+/* Define to 1 if you have the `realpath' function. */
+#define HAVE_REALPATH 1
+
+/* Define if you have readline 2.1 */
+/* #undef HAVE_RL_CALLBACK */
+
+/* Define if you can turn off readline's signal handling. */
+/* #undef HAVE_RL_CATCH_SIGNAL */
+
+/* Define if you have readline 2.2 */
+/* #undef HAVE_RL_COMPLETION_APPEND_CHARACTER */
+
+/* Define if you have readline 4.0 */
+/* #undef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK */
+
+/* Define if you have readline 4.2 */
+/* #undef HAVE_RL_COMPLETION_MATCHES */
+
+/* Define if you have rl_completion_suppress_append */
+/* #undef HAVE_RL_COMPLETION_SUPPRESS_APPEND */
+
+/* Define if you have readline 4.0 */
+/* #undef HAVE_RL_PRE_INPUT_HOOK */
+
+/* Define if you have readline 4.0 */
+/* #undef HAVE_RL_RESIZE_TERMINAL */
+
+/* Define to 1 if you have the `round' function. */
+#define HAVE_ROUND 1
+
+/* Define to 1 if you have the `select' function. */
+#define HAVE_SELECT 1
+
+/* Define to 1 if you have the `sem_getvalue' function. */
+#define HAVE_SEM_GETVALUE 1
+
+/* Define to 1 if you have the `sem_open' function. */
+#define HAVE_SEM_OPEN 1
+
+/* Define to 1 if you have the `sem_timedwait' function. */
+#define HAVE_SEM_TIMEDWAIT 1
+
+/* Define to 1 if you have the `sem_unlink' function. */
+#define HAVE_SEM_UNLINK 1
+
+/* Define to 1 if you have the `setegid' function. */
+#define HAVE_SETEGID 1
+
+/* Define to 1 if you have the `seteuid' function. */
+#define HAVE_SETEUID 1
+
+/* Define to 1 if you have the `setgid' function. */
+#define HAVE_SETGID 1
+
+/* Define if you have the 'setgroups' function. */
+#define HAVE_SETGROUPS 1
+
+/* Define to 1 if you have the `setitimer' function. */
+#define HAVE_SETITIMER 1
+
+/* Define to 1 if you have the `setlocale' function. */
+#define HAVE_SETLOCALE 1
+
+/* Define to 1 if you have the `setpgid' function. */
+#define HAVE_SETPGID 1
+
+/* Define to 1 if you have the `setpgrp' function. */
+#define HAVE_SETPGRP 1
+
+/* Define to 1 if you have the `setregid' function. */
+#define HAVE_SETREGID 1
+
+/* Define to 1 if you have the `setresgid' function. */
+#define HAVE_SETRESGID 1
+
+/* Define to 1 if you have the `setresuid' function. */
+#define HAVE_SETRESUID 1
+
+/* Define to 1 if you have the `setreuid' function. */
+#define HAVE_SETREUID 1
+
+/* Define to 1 if you have the `setsid' function. */
+#define HAVE_SETSID 1
+
+/* Define to 1 if you have the `setuid' function. */
+#define HAVE_SETUID 1
+
+/* Define to 1 if you have the `setvbuf' function. */
+#define HAVE_SETVBUF 1
+
+/* Define to 1 if you have the <shadow.h> header file. */
+#define HAVE_SHADOW_H 1
+
+/* Define to 1 if you have the `sigaction' function. */
+#define HAVE_SIGACTION 1
+
+/* Define to 1 if you have the `siginterrupt' function. */
+#define HAVE_SIGINTERRUPT 1
+
+/* Define to 1 if you have the <signal.h> header file. */
+#define HAVE_SIGNAL_H 1
+
+/* Define to 1 if you have the `sigrelse' function. */
+#define HAVE_SIGRELSE 1
+
+/* Define to 1 if you have the `snprintf' function. */
+#define HAVE_SNPRINTF 1
+
+/* Define if sockaddr has sa_len member */
+/* #undef HAVE_SOCKADDR_SA_LEN */
+
+/* struct sockaddr_storage (sys/socket.h) */
+#define HAVE_SOCKADDR_STORAGE 1
+
+/* Define if you have the 'socketpair' function. */
+#define HAVE_SOCKETPAIR 1
+
+/* Define to 1 if you have the <spawn.h> header file. */
+#define HAVE_SPAWN_H 1
+
+/* Define if your compiler provides ssize_t */
+#define HAVE_SSIZE_T 1
+
+/* Define to 1 if you have the `statvfs' function. */
+#define HAVE_STATVFS 1
+
+/* Define if you have struct stat.st_mtim.tv_nsec */
+#define HAVE_STAT_TV_NSEC 1
+
+/* Define if you have struct stat.st_mtimensec */
+/* #undef HAVE_STAT_TV_NSEC2 */
+
+/* Define if your compiler supports variable length function prototypes (e.g.
+   void fprintf(FILE *, char *, ...);) *and* <stdarg.h> */
+#define HAVE_STDARG_PROTOTYPES 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `strdup' function. */
+#define HAVE_STRDUP 1
+
+/* Define to 1 if you have the `strftime' function. */
+#define HAVE_STRFTIME 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <stropts.h> header file. */
+#define HAVE_STROPTS_H 1
+
+/* Define to 1 if `st_birthtime' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIME */
+
+/* Define to 1 if `st_blksize' is a member of `struct stat'. */
+#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+
+/* Define to 1 if `st_blocks' is a member of `struct stat'. */
+#define HAVE_STRUCT_STAT_ST_BLOCKS 1
+
+/* Define to 1 if `st_flags' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_FLAGS */
+
+/* Define to 1 if `st_gen' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_GEN */
+
+/* Define to 1 if `st_rdev' is a member of `struct stat'. */
+#define HAVE_STRUCT_STAT_ST_RDEV 1
+
+/* Define to 1 if `tm_zone' is a member of `struct tm'. */
+#define HAVE_STRUCT_TM_TM_ZONE 1
+
+/* Define if you have the 'symlink' function. */
+#define HAVE_SYMLINK 1
+
+/* Define to 1 if you have the `sysconf' function. */
+#define HAVE_SYSCONF 1
+
+/* Define to 1 if you have the <sysexits.h> header file. */
+#define HAVE_SYSEXITS_H 1
+
+/* Define to 1 if you have the <sys/audioio.h> header file. */
+/* #undef HAVE_SYS_AUDIOIO_H */
+
+/* Define to 1 if you have the <sys/bsdtty.h> header file. */
+/* #undef HAVE_SYS_BSDTTY_H */
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+   */
+/* #undef HAVE_SYS_DIR_H */
+
+/* Define to 1 if you have the <sys/epoll.h> header file. */
+#define HAVE_SYS_EPOLL_H 1
+
+/* Define to 1 if you have the <sys/event.h> header file. */
+/* #undef HAVE_SYS_EVENT_H */
+
+/* Define to 1 if you have the <sys/file.h> header file. */
+#define HAVE_SYS_FILE_H 1
+
+/* Define to 1 if you have the <sys/loadavg.h> header file. */
+/* #undef HAVE_SYS_LOADAVG_H */
+
+/* Define to 1 if you have the <sys/lock.h> header file. */
+/* #undef HAVE_SYS_LOCK_H */
+
+/* Define to 1 if you have the <sys/mkdev.h> header file. */
+/* #undef HAVE_SYS_MKDEV_H */
+
+/* Define to 1 if you have the <sys/modem.h> header file. */
+/* #undef HAVE_SYS_MODEM_H */
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+   */
+/* #undef HAVE_SYS_NDIR_H */
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define to 1 if you have the <sys/poll.h> header file. */
+#define HAVE_SYS_POLL_H 1
+
+/* Define to 1 if you have the <sys/random.h> header file. */
+/* #undef HAVE_SYS_RANDOM_H */
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+#define HAVE_SYS_RESOURCE_H 1
+
+/* Define to 1 if you have the <sys/select.h> header file. */
+#define HAVE_SYS_SELECT_H 1
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+#define HAVE_SYS_SOCKET_H 1
+
+/* Define to 1 if you have the <sys/statvfs.h> header file. */
+#define HAVE_SYS_STATVFS_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/termio.h> header file. */
+/* #undef HAVE_SYS_TERMIO_H */
+
+/* Define to 1 if you have the <sys/times.h> header file. */
+#define HAVE_SYS_TIMES_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/un.h> header file. */
+#define HAVE_SYS_UN_H 1
+
+/* Define to 1 if you have the <sys/utsname.h> header file. */
+#define HAVE_SYS_UTSNAME_H 1
+
+/* Define to 1 if you have the <sys/wait.h> header file. */
+#define HAVE_SYS_WAIT_H 1
+
+/* Define to 1 if you have the `tcgetpgrp' function. */
+#define HAVE_TCGETPGRP 1
+
+/* Define to 1 if you have the `tcsetpgrp' function. */
+#define HAVE_TCSETPGRP 1
+
+/* Define to 1 if you have the `tempnam' function. */
+#define HAVE_TEMPNAM 1
+
+/* Define to 1 if you have the <termios.h> header file. */
+#define HAVE_TERMIOS_H 1
+
+/* Define to 1 if you have the <term.h> header file. */
+#define HAVE_TERM_H 1
+
+/* Define to 1 if you have the `tgamma' function. */
+#define HAVE_TGAMMA 1
+
+/* Define to 1 if you have the <thread.h> header file. */
+/* #undef HAVE_THREAD_H */
+
+/* Define to 1 if you have the `timegm' function. */
+#define HAVE_TIMEGM 1
+
+/* Define to 1 if you have the `times' function. */
+#define HAVE_TIMES 1
+
+/* Define to 1 if you have the `tmpfile' function. */
+#define HAVE_TMPFILE 1
+
+/* Define to 1 if you have the `tmpnam' function. */
+#define HAVE_TMPNAM 1
+
+/* Define to 1 if you have the `tmpnam_r' function. */
+#define HAVE_TMPNAM_R 1
+
+/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
+   `HAVE_STRUCT_TM_TM_ZONE' instead. */
+#define HAVE_TM_ZONE 1
+
+/* Define to 1 if you have the `truncate' function. */
+#define HAVE_TRUNCATE 1
+
+/* Define to 1 if you don't have `tm_zone' but do have the external array
+   `tzname'. */
+/* #undef HAVE_TZNAME */
+
+/* Define this if you have tcl and TCL_UTF_MAX==6 */
+/* #undef HAVE_UCS4_TCL */
+
+/* Define if your compiler provides uint32_t. */
+#define HAVE_UINT32_T 1
+
+/* Define if your compiler provides uint64_t. */
+#define HAVE_UINT64_T 1
+
+/* Define to 1 if the system has the type `uintptr_t'. */
+#define HAVE_UINTPTR_T 1
+
+/* Define to 1 if you have the `uname' function. */
+#define HAVE_UNAME 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the `unsetenv' function. */
+#define HAVE_UNSETENV 1
+
+/* Define if you have a useable wchar_t type defined in wchar.h; useable means
+   wchar_t must be an unsigned type with at least 16 bits. (see
+   Include/unicodeobject.h). */
+/* #undef HAVE_USABLE_WCHAR_T */
+
+/* Define to 1 if you have the <util.h> header file. */
+/* #undef HAVE_UTIL_H */
+
+/* Define to 1 if you have the `utimes' function. */
+#define HAVE_UTIMES 1
+
+/* Define to 1 if you have the <utime.h> header file. */
+#define HAVE_UTIME_H 1
+
+/* Define to 1 if you have the `wait3' function. */
+#define HAVE_WAIT3 1
+
+/* Define to 1 if you have the `wait4' function. */
+#define HAVE_WAIT4 1
+
+/* Define to 1 if you have the `waitpid' function. */
+#define HAVE_WAITPID 1
+
+/* Define if the compiler provides a wchar.h header file. */
+#define HAVE_WCHAR_H 1
+
+/* Define to 1 if you have the `wcscoll' function. */
+#define HAVE_WCSCOLL 1
+
+/* Define if tzset() actually switches the local timezone in a meaningful way.
+   */
+#define HAVE_WORKING_TZSET 1
+
+/* Define if the zlib library has inflateCopy */
+#define HAVE_ZLIB_COPY 1
+
+/* Define to 1 if you have the `_getpty' function. */
+/* #undef HAVE__GETPTY */
+
+/* Define if you are using Mach cthreads directly under /include */
+/* #undef HURD_C_THREADS */
+
+/* Define if you are using Mach cthreads under mach / */
+/* #undef MACH_C_THREADS */
+
+/* Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>.
+   */
+/* #undef MAJOR_IN_MKDEV */
+
+/* Define to 1 if `major', `minor', and `makedev' are declared in
+   <sysmacros.h>. */
+/* #undef MAJOR_IN_SYSMACROS */
+
+/* Define if mvwdelch in curses.h is an expression. */
+#define MVWDELCH_IS_EXPRESSION 1
+
+/* Define to the address where bug reports for this package should be sent. */
+/* #undef PACKAGE_BUGREPORT */
+
+/* Define to the full name of this package. */
+/* #undef PACKAGE_NAME */
+
+/* Define to the full name and version of this package. */
+/* #undef PACKAGE_STRING */
+
+/* Define to the one symbol short name of this package. */
+/* #undef PACKAGE_TARNAME */
+
+/* Define to the home page for this package. */
+/* #undef PACKAGE_URL */
+
+/* Define to the version of this package. */
+/* #undef PACKAGE_VERSION */
+
+/* Define if POSIX semaphores aren't enabled on your system */
+/* #undef POSIX_SEMAPHORES_NOT_ENABLED */
+
+/* Defined if PTHREAD_SCOPE_SYSTEM supported. */
+#define PTHREAD_SYSTEM_SCHED_SUPPORTED 1
+
+/* Define as the preferred size in bits of long digits */
+/* #undef PYLONG_BITS_IN_DIGIT */
+
+/* Define to printf format modifier for long long type */
+#define PY_FORMAT_LONG_LONG "ll"
+
+/* Define to printf format modifier for Py_ssize_t */
+#define PY_FORMAT_SIZE_T "z"
+
+/* Define as the integral type used for Unicode representation. */
+#define PY_UNICODE_TYPE unsigned short
+
+/* Define if you want to build an interpreter with many run-time checks. */
+/* #undef Py_DEBUG */
+
+/* Defined if Python is built as a shared library. */
+/* #undef Py_ENABLE_SHARED */
+
+/* Define as the size of the unicode type. */
+#define Py_UNICODE_SIZE 2
+
+/* Define if you want to have a Unicode type. */
+#define Py_USING_UNICODE 1
+
+/* assume C89 semantics that RETSIGTYPE is always void */
+#define RETSIGTYPE void
+
+/* Define if setpgrp() must be called as setpgrp(0, 0). */
+/* #undef SETPGRP_HAVE_ARG */
+
+/* Define this to be extension of shared libraries (including the dot!). */
+#define SHLIB_EXT ".so"
+
+/* Define if i>>j for signed int i does not extend the sign bit when i < 0 */
+/* #undef SIGNED_RIGHT_SHIFT_ZERO_FILLS */
+
+/* The size of `double', as computed by sizeof. */
+#define SIZEOF_DOUBLE 8
+
+/* The size of `float', as computed by sizeof. */
+#define SIZEOF_FLOAT 4
+
+/* The size of `fpos_t', as computed by sizeof. */
+#define SIZEOF_FPOS_T 16
+
+/* The size of `int', as computed by sizeof. */
+#define SIZEOF_INT 4
+
+/* The size of `long', as computed by sizeof. */
+#define SIZEOF_LONG 8
+
+/* The size of `long double', as computed by sizeof. */
+#define SIZEOF_LONG_DOUBLE 16
+
+/* The size of `long long', as computed by sizeof. */
+#define SIZEOF_LONG_LONG 8
+
+/* The size of `off_t', as computed by sizeof. */
+#define SIZEOF_OFF_T 8
+
+/* The size of `pid_t', as computed by sizeof. */
+#define SIZEOF_PID_T 4
+
+/* The size of `pthread_t', as computed by sizeof. */
+#define SIZEOF_PTHREAD_T 8
+
+/* The size of `short', as computed by sizeof. */
+#define SIZEOF_SHORT 2
+
+/* The size of `size_t', as computed by sizeof. */
+#define SIZEOF_SIZE_T 8
+
+/* The size of `time_t', as computed by sizeof. */
+#define SIZEOF_TIME_T 8
+
+/* The size of `uintptr_t', as computed by sizeof. */
+#define SIZEOF_UINTPTR_T 8
+
+/* The size of `void *', as computed by sizeof. */
+#define SIZEOF_VOID_P 8
+
+/* The size of `wchar_t', as computed by sizeof. */
+#define SIZEOF_WCHAR_T 4
+
+/* The size of `_Bool', as computed by sizeof. */
+#define SIZEOF__BOOL 1
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define if you can safely include both <sys/select.h> and <sys/time.h>
+   (which you can't on SCO ODT 3.0). */
+#define SYS_SELECT_WITH_SYS_TIME 1
+
+/* Define if tanh(-0.) is -0., or if platform doesn't have signed zeros */
+#define TANH_PRESERVES_ZERO_SIGN 1
+
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#define TIME_WITH_SYS_TIME 1
+
+/* Define to 1 if your <sys/time.h> declares `struct tm'. */
+/* #undef TM_IN_SYS_TIME */
+
+/* Define if you want to use computed gotos in ceval.c. */
+/* #undef USE_COMPUTED_GOTOS */
+
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# define _ALL_SOURCE 1
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+/* Enable threading extensions on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# define _POSIX_PTHREAD_SEMANTICS 1
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# define _TANDEM_SOURCE 1
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# define __EXTENSIONS__ 1
+#endif
+
+
+/* Define if you want to use MacPython modules on MacOSX in unix-Python. */
+/* #undef USE_TOOLBOX_OBJECT_GLUE */
+
+/* Define if a va_list is an array of some kind */
+#define VA_LIST_IS_ARRAY 1
+
+/* Define if you want SIGFPE handled (see Include/pyfpe.h). */
+/* #undef WANT_SIGFPE_HANDLER */
+
+/* Define if you want wctype.h functions to be used instead of the one
+   supplied by Python itself. (see Include/unicodectype.h). */
+/* #undef WANT_WCTYPE_FUNCTIONS */
+
+/* Define if WINDOW in curses.h offers a field _flags. */
+#define WINDOW_HAS_FLAGS 1
+
+/* Define if you want documentation strings in extension modules */
+#define WITH_DOC_STRINGS 1
+
+/* Define if you want to use the new-style (Openstep, Rhapsody, MacOS) dynamic
+   linker (dyld) instead of the old-style (NextStep) dynamic linker (rld).
+   Dyld is necessary to support frameworks. */
+/* #undef WITH_DYLD */
+
+/* Define to 1 if libintl is needed for locale functions. */
+/* #undef WITH_LIBINTL */
+
+/* Define if you want to produce an OpenStep/Rhapsody framework (shared
+   library plus accessory files). */
+/* #undef WITH_NEXT_FRAMEWORK */
+
+/* Define if you want to compile in Python-specific mallocs */
+#define WITH_PYMALLOC 1
+
+/* Define if you want to compile in rudimentary thread support */
+#define WITH_THREAD 1
+
+/* Define to profile with the Pentium timestamp counter */
+/* #undef WITH_TSC */
+
+/* Define if you want pymalloc to be disabled when running under valgrind */
+/* #undef WITH_VALGRIND */
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+   significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+#  define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+/* #  undef WORDS_BIGENDIAN */
+# endif
+#endif
+
+/* Define if arithmetic is subject to x87-style double rounding issue */
+/* #undef X87_DOUBLE_ROUNDING */
+
+/* Define on OpenBSD to activate all library features */
+/* #undef _BSD_SOURCE */
+
+/* Define on Irix to enable u_int */
+#define _BSD_TYPES 1
+
+/* Define on Darwin to activate all library features */
+#define _DARWIN_C_SOURCE 1
+
+/* This must be set to 64 on some systems to enable large file support. */
+#define _FILE_OFFSET_BITS 64
+
+/* Define on Linux to activate all library features */
+#define _GNU_SOURCE 1
+
+/* This must be defined on some systems to enable large file support. */
+#define _LARGEFILE_SOURCE 1
+
+/* This must be defined on AIX systems to enable large file support. */
+/* #undef _LARGE_FILES */
+
+/* Define to 1 if on MINIX. */
+/* #undef _MINIX */
+
+/* Define on NetBSD to activate all library features */
+#define _NETBSD_SOURCE 1
+
+/* Define _OSF_SOURCE to get the makedev macro. */
+/* #undef _OSF_SOURCE */
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+   this defined. */
+/* #undef _POSIX_1_SOURCE */
+
+/* Define to activate features from IEEE Stds 1003.1-2001 */
+#define _POSIX_C_SOURCE 200112L
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+/* #undef _POSIX_SOURCE */
+
+/* Define if you have POSIX threads, and your system does not define that. */
+/* #undef _POSIX_THREADS */
+
+/* Define to force use of thread-safe errno, h_errno, and other functions */
+/* #undef _REENTRANT */
+
+/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
+   <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
+   #define below would cause a syntax error. */
+/* #undef _UINT32_T */
+
+/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>,
+   <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
+   #define below would cause a syntax error. */
+/* #undef _UINT64_T */
+
+/* Define to the level of X/Open that your system supports */
+#define _XOPEN_SOURCE 600
+
+/* Define to activate Unix95-and-earlier features */
+#define _XOPEN_SOURCE_EXTENDED 1
+
+/* Define on FreeBSD to activate all library features */
+#define __BSD_VISIBLE 1
+
+/* Define to 1 if type `char' is unsigned and you are not using gcc.  */
+#ifndef __CHAR_UNSIGNED__
+/* # undef __CHAR_UNSIGNED__ */
+#endif
+
+/* Defined on Solaris to see additional function prototypes. */
+#define __EXTENSIONS__ 1
+
+/* Define to 'long' if <time.h> doesn't define. */
+/* #undef clock_t */
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef gid_t */
+
+/* Define to the type of a signed integer type of width exactly 32 bits if
+   such a type exists and the standard includes do not define it. */
+/* #undef int32_t */
+
+/* Define to the type of a signed integer type of width exactly 64 bits if
+   such a type exists and the standard includes do not define it. */
+/* #undef int64_t */
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef mode_t */
+
+/* Define to `long int' if <sys/types.h> does not define. */
+/* #undef off_t */
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef pid_t */
+
+/* Define to empty if the keyword does not work. */
+/* #undef signed */
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+/* Define to `int' if <sys/socket.h> does not define. */
+/* #undef socklen_t */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef uid_t */
+
+/* Define to the type of an unsigned integer type of width exactly 32 bits if
+   such a type exists and the standard includes do not define it. */
+/* #undef uint32_t */
+
+/* Define to the type of an unsigned integer type of width exactly 64 bits if
+   such a type exists and the standard includes do not define it. */
+/* #undef uint64_t */
+
+/* Define to empty if the keyword does not work. */
+/* #undef volatile */
+
+
+/* Define the macros needed if on a UnixWare 7.x system. */
+#if defined(__USLC__) && defined(__SCO_VERSION__)
+#define STRICT_SYSV_CURSES /* Don't use ncurses extensions */
+#endif
+
+#endif /*Py_PYCONFIG_H*/
+