diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..2fff433
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,91 @@
+# Copyright 2013, Big Switch Networks, Inc.
+#
+# LoxiGen is licensed under the Eclipse Public License, version 1.0 (EPL), with
+# the following special exception:
+#
+# LOXI Exception
+#
+# As a special exception to the terms of the EPL, you may distribute libraries
+# generated by LoxiGen (LoxiGen Libraries) under the terms of your choice, provided
+# that copyright and licensing notices generated by LoxiGen are not altered or removed
+# from the LoxiGen Libraries and the notice provided below is (i) included in
+# the LoxiGen Libraries, if distributed in source code form and (ii) included in any
+# documentation for the LoxiGen Libraries, if distributed in binary form.
+#
+# Notice: "Copyright 2013, Big Switch Networks, Inc. This library was generated by the LoxiGen Compiler."
+#
+# You may not use this file except in compliance with the EPL or LOXI Exception. You may obtain
+# a copy of the EPL at:
+#
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# 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
+# EPL for the specific language governing permissions and limitations
+# under the EPL.
+
+# Available targets: all, c, python, clean
+
+# This Makefile is just for convenience. Users that need to pass additional
+# options to loxigen.py are encouraged to run it directly.
+
+# Where to put the generated code.
+LOXI_OUTPUT_DIR = loxi_output
+
+# Generated files depend on all Loxi code and input files
+LOXI_PY_FILES=$(shell find \( -name loxi_output -prune \
+                             -o -name templates -prune \
+                             -o -true \
+                           \) -a -name '*.py')
+LOXI_TEMPLATE_FILES=$(shell find */templates -type f -a \
+                                 \! \( -name '*.cache' -o -name '.*' \))
+INPUT_FILES = $(wildcard openflow_input/*) $(wildcard canonical/*)
+
+all: c python
+
+c: .loxi_ts.c
+
+.loxi_ts.c: ${LOXI_PY_FILES} ${LOXI_TEMPLATE_FILES} ${INPUT_FILES}
+	./loxigen.py --install-dir=${LOXI_OUTPUT_DIR} --lang=c
+	touch $@
+
+python: .loxi_ts.python
+
+.loxi_ts.python: ${LOXI_PY_FILES} ${LOXI_TEMPLATE_FILES} ${INPUT_FILES}
+	./loxigen.py --install-dir=${LOXI_OUTPUT_DIR} --lang=python
+	touch $@
+
+clean:
+	rm -rf loxi_output # only delete generated files in the default directory
+	rm -f loxigen.log loxigen-test.log .loxi_ts.c .loxi_ts.python
+
+debug:
+	@echo "LOXI_OUTPUT_DIR=\"${LOXI_OUTPUT_DIR}\""
+	@echo
+	@echo "LOXI_PY_FILES=\"${LOXI_PY_FILES}\""
+	@echo
+	@echo "LOXI_TEMPLATE_FILES=\"${LOXI_TEMPLATE_FILES}\""
+	@echo
+	@echo "INPUT_FILES=\"${INPUT_FILES}\""
+
+check:
+	@echo Sending output to loxigen-test.log
+	cd utest && \
+		./identifiers_test.py > ../loxigen-test.log && \
+		./c_utils_test.py >> ../loxigen-test.log && \
+		./of_h_utils_test.py >> ../loxigen-test.log
+	PYTHONPATH=. ./utest/test_parser.py
+
+pylint:
+	pylint -E ${LOXI_PY_FILES}
+
+.PHONY: all clean debug check pylint c python
+
+ifdef BIGCODE
+# Internal build system compatibility
+MODULE := LoxiGen
+LOXI_OUTPUT_DIR = ${BIGCODE}/Modules
+modulemake:
+.PHONY: modulemake
+endif
