Rewrite documentation
diff --git a/doc/build.rst b/doc/build.rst
new file mode 100644
index 0000000..aefa6bf
--- /dev/null
+++ b/doc/build.rst
@@ -0,0 +1,39 @@
+Building Bluejay
+================
+
+Bluejay uses the home-grown ``Jmk`` build system, which is basically just a GNU
+m4 script that generates makefiles from ``Jmk`` files --- makefiles with some
+custom macros.
+
+To build a fresh clone of Bluejay the first thing you will need to do is run
+``bin/jmk`` to generate your makefiles for you. You should get some output like
+this:
+
+.. code-block::
+
+    Processing ./boot/initrd/Jmk
+    Processing ./src/kernel/dri/ata_pio/Jmk
+    Processing ./src/kernel/dri/ahci/Jmk
+    Processing ./src/kernel/dri/pci/Jmk
+    Processing ./src/kernel/Jmk
+    Processing ./src/mkinitrd/Jmk
+    Processing ./src/lisp/Jmk
+
+Then just build using ``src/kernel/Makefile``. There are a few additional
+targets for your convenience:
+
+- ``qemu`` builds and launches the kernel using QEMU's SeaBIOS
+- ``qemu-iso`` builds a GRUB ISO and launches using QEMU
+- ``install`` builds a GRUB ISO and installs it to ``boot/bluejay.iso``
+- ``debug`` launches kernel in QEMU and launches GDB in the terminal.
+- ``debug-wait`` launches kernel in QEMU and starts a GDB server on ``localhost:1234``.
+  This is recommended if you want to debug since you can connect to it from vscode or
+  any other IDE. ``.vscode/launch.json`` is set up to work with this so you can debug
+  the kernel very easily.
+
+In order to build Bluejay you will need the following dependencies::
+
+    gcc gcc-multilib nasm qemu-system-i386 make m4 python3 awk
+
+There are some additional dependencies for building a GRUB ISO but I don't
+remember them at the time of writing.
\ No newline at end of file