ref: f9a60a06a929ecca5ad8f426176f0c0b15141078
parent: f9e8db0ec6014796b640b4da343e9f445db8ce9b
author: cancel <cancel@cancel.fm>
date: Tue Dec 4 04:57:30 EST 2018
Update README with more build notes
--- a/README.md
+++ b/README.md
@@ -8,39 +8,48 @@
## Prerequisites
-POSIX, C99 compiler, `bash` for the build script. Tested to build on Linux and
-Mac with GCC and clang. No native Windows port yet, but it will probably
-already build under cygwin.
+Core library: A C99 compiler (no VLAs required), plus enough libc for `malloc`, `realloc`, `free`, `memcpy` and `memset`.
+Command-line interpreter: The above, plus POSIX.
+
+Interactive terminal UI: The above, plus ncurses (or compatible curses library).
+
## Build
-You can use the build script directly, or with the `make` wrapper.
+The build script is in `bash`. It should work with `gcc` (including the `musl-gcc` wrapper) and `clang`, and will automatically detect your compiler.
-### Make
+Currently known to build on macOS (`gcc`, `clang`) and Linux (`gcc`, `musl-gcc`, and `clang`, optionally with `LLD`).
-```sh
-make [debug or release, default is debug]
-```
+Not yet tested on Windows, but it's likely that it already works under `cygwin`. Further testing will be performed soon.
-The built binary will be placed at `build/[debug or release]/orca`
+There is a fire-and-forget `make` wrapper around the build script.
-Clean:
+### Make
+
```sh
-make clean
+make debug # debugging build, binary placed at build/debug/orca
+make release # optimized build, binary placed at build/release/orca
+make clean # removes build/
```
-Removes `build/`
### Build Script
Run `./tool --help` to see usage info.
-## Build Tui
-
```sh
-./tool build debug tui
+./tool build debug tui # debug build of the terminal ui
+ # binary placed at build/debug/tui
+
+./tool -c clang-7 release tui # build the terminal ui with a compiler named
+ # clang-7, with optimizations enabled.
+ # binary placed at build/release/tui
+
+./tool clean # same as make clean, removes build/
```
## Run
+
+The CLI (`orca` binary) reads from a file and runs the orca simulation for 1 timestep (default) or a specified number (`-t` option) and writes the resulting state of the grid to stdout.
```sh
orca [-t timesteps] infile