diff --git a/project/common.mk b/project/common.mk
index eb1a8f4..fe089de 100644
--- a/project/common.mk
+++ b/project/common.mk
@@ -10,6 +10,12 @@ Parser/%.lo:	$(SOURCE_DIR)/Parser/%.c $(ALL_HEADERS) host.tag tree.tag config.ta
 Parser/%.o:	$(SOURCE_DIR)/Parser/%.c $(ALL_HEADERS) host.tag tree.tag config.tag
 		$(CC) -c -o $@ $< $(CFLAGS_STATIC)
 
+Python/%.lo:	$(SOURCE_DIR)/Python/%.c $(ALL_HEADERS) host.tag tree.tag config.tag
+		$(CC) -c -o $@ $< $(CFLAGS_SHARED)
+
+Python/%.o:	$(SOURCE_DIR)/Python/%.c $(ALL_HEADERS) host.tag tree.tag config.tag
+		$(CC) -c -o $@ $< $(CFLAGS_STATIC)
+
 
 OBJECT_SRCS = \
 	Objects/abstract.c \
@@ -67,8 +73,54 @@ PARSER_SRCS = \
 	Parser/pgen.c \
 	Parser/tokenizer.c \
 
+PYTHON_SRCS = \
+	Python/Python-ast.c \
+	Python/_warnings.c \
+	Python/asdl.c \
+	Python/ast.c \
+	Python/bltinmodule.c \
+	Python/ceval.c \
+	Python/codecs.c \
+	Python/compile.c \
+	Python/dtoa.c \
+	Python/errors.c \
+	Python/formatter_string.c \
+	Python/formatter_unicode.c \
+	Python/frozen.c \
+	Python/frozenmain.c \
+	Python/future.c \
+	Python/getargs.c \
+	Python/getcompiler.c \
+	Python/getcopyright.c \
+	Python/getopt.c \
+	Python/getplatform.c \
+	Python/getversion.c \
+	Python/graminit.c \
+	Python/import.c \
+	Python/importdl.c \
+	Python/marshal.c \
+	Python/modsupport.c \
+	Python/mysnprintf.c \
+	Python/mystrtoul.c \
+	Python/peephole.c \
+	Python/pyarena.c \
+	Python/pyctype.c \
+	Python/pyfpe.c \
+	Python/pymath.c \
+	Python/pystate.c \
+	Python/pystrcmp.c \
+	Python/pystrtod.c \
+	Python/pythonrun.c \
+	Python/random.c \
+	Python/structmember.c \
+	Python/symtable.c \
+	Python/sysmodule.c \
+	Python/thread.c \
+	Python/traceback.c \
+
 APP_SRCS = \
 
 COMMON_SRCS = \
 	$(OBJECT_SRCS)     \
 	$(PARSER_SRCS)     \
+	$(PYTHON_SRCS)     \
diff --git a/project/tree.mk b/project/tree.mk
index df75322..48fac9e 100644
--- a/project/tree.mk
+++ b/project/tree.mk
@@ -1,4 +1,5 @@
 tree.tag:
 		mkdir -p Objects
 		mkdir -p Parser
+		mkdir -p Python
 		touch tree.tag