Refactor build_artifacts.sh and makefile
- Move everything to .data, .vendor, .artifacts and .bin in order to cleanly separate build input and output.
- Sprinkle some subshells on build_artifacts.sh to make it fail more gracefully.
- Fix fetch_third_party.sh check.
- GOBUILD make helper.
- Dockerfile with build dependencies.
Test Plan:
Ran `make clean` and build steps described in README.md, it boots:
{P84}
X-Origin-Diff: phab/D195
GitOrigin-RevId: 4106534c7248931b79e93e2a13153482033cd0d8
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..c2b0464
--- /dev/null
+++ b/README.md
@@ -0,0 +1,28 @@
+# Smalltown Operating System
+
+## Run build
+
+The build uses a Fedora 30 base image with a set of dependencies:
+
+```
+modprobe kvm
+
+podman build -t smalltown-builder .
+
+podman run -it --rm \
+ -v $(pwd):/work \
+ -v /dev/null:/work/.git \
+ -v /dev/null:/work/.idea \
+ -v /dev/null:/work/.arcconfig \
+ --device /dev/kvm \
+ smalltown-builder bash
+
+scripts/fetch_third_party.sh
+scripts/build_artifacts.sh
+
+make launch
+```
+
+Exit qemu using the monitor console: `Ctrl-A c quit`.
+
+If your host is low on entropy, consider running rngd from rng-tools for development.