aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile34
-rw-r--r--README.md10
2 files changed, 38 insertions, 6 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..d814302
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,34 @@
+.PHONY: all configure build ark cross soul run install clean distclean
+
+BUILD_DIR ?= build
+BUILD_TYPE ?= Debug
+PREFIX ?= $(HOME)/.local
+
+all: build
+
+configure:
+ cmake -S . -B $(BUILD_DIR) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) $(CMAKE_ARGS)
+
+build: configure
+ cmake --build $(BUILD_DIR)
+
+ark: configure
+ cmake --build $(BUILD_DIR) --target ark
+
+cross: configure
+ cmake --build $(BUILD_DIR) --target cross
+
+soul: configure
+ cmake --build $(BUILD_DIR) --target soul_build
+
+run: configure
+ cmake --build $(BUILD_DIR) --target run
+
+install: configure
+ cmake --install $(BUILD_DIR) --prefix $(PREFIX)
+
+clean:
+ cmake --build $(BUILD_DIR) --target clean
+
+distclean:
+ rm -rf $(BUILD_DIR)
diff --git a/README.md b/README.md
index c174139..1240f49 100644
--- a/README.md
+++ b/README.md
@@ -119,21 +119,19 @@ This repo uses CMake to build:
- the bundled Haskell soul (`montis.so`) via Stack
```sh
-cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
-cmake --build build
+make build
```
To build only the runtime + bridge library (no bundled soul):
```sh
-cmake -S . -B build -DMONTIS_BUILD_BUNDLED_SOUL=OFF
-cmake --build build
+make BUILD_DIR=build BUILD_TYPE=Debug CMAKE_ARGS=-DMONTIS_BUILD_BUNDLED_SOUL=OFF build
```
To run via the CMake helper target:
```sh
-cmake --build build --target run
+make run
```
Note: the `run` target currently starts `ark` with `-s foot`, so you’ll want
@@ -156,7 +154,7 @@ Runtime invocation looks like:
## Installing
```sh
-cmake --install build --prefix ~/.local
+make install PREFIX=~/.local
```
This installs: