diff --git a/.gitignore b/.gitignore
index 4dece589fafee421b7fa52d894531cdbe7fcd732..1e969baca04cb3ba3ec5e427e1993da28da2ba41 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,7 @@ a.out
 src/quad_solver
 *.o
 *.out
+*.tar.gz
 
 # Ignore spike compiled files.
 spikes/ieee_floating_point/float
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000000000000000000000000000000000000..7bfcf580e35d0a302d8c8c33b0222a69688345ce
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,9 @@
+To build and run Quad Solver, simply run the following commands from the top directory:
+
+ $ make
+
+ $ ./src/quad_solver
+
+To run all tests, run:
+
+ $ make test
\ No newline at end of file
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..6434586eda934a0a9069c58aa866232724f93062
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,37 @@
+# Root Makefile for Quad Solver
+VERSION = 1.0
+PROGRAM_NAME = quad-solver
+FILE_LIST = \
+	LICENSE \
+	Makefile \
+	readme.md \
+	documents \
+	src \
+	tests \
+	spikes \
+	stories
+
+.PHONY: build distribute test clean
+
+default: build
+
+distribute:
+	make -C src clean
+	make -C tests clean
+	rm -rf $(PROGRAM_NAME)-$(VERSION)
+	mkdir -p $(PROGRAM_NAME)-$(VERSION)
+	cp -R $(FILE_LIST) $(PROGRAM_NAME)-$(VERSION)
+	tar cf - $(PROGRAM_NAME)-$(VERSION) | gzip -9c > $(PROGRAM_NAME)-$(VERSION).tar.gz
+	rm -rf $(PROGRAM_NAME)-$(VERSION)
+
+build:
+	make -C src
+	@echo "Binary created at src/quad_solver"
+
+test:
+	make -C src
+	make -C tests
+
+clean:
+	make -C src clean
+	make -C tests clean
\ No newline at end of file