make embed
vendors the keel CLI into another repository: cross-compiled binaries for
every platform, and a managed block of Makefile targets that picks the right
one.
Embedding
From a checkout of the Keel source repository:- Builds
keelfor macOS, Linux, and Windows on amd64 and arm64 intoyour-project/.keel/bin/, with aSHA256SUMSfile. - Writes
your-project/.keel/.gitignoreso Keel’s machine-local state (dev.db) stays out of version control whilebin/is committable, and removes a root-level.keel/ignore line that would override it. - Adds a marker-delimited block of
keel-*targets toyour-project/Makefile, creating the file if needed.
.keel/bin, .keel/.gitignore, and the Makefile. The binaries are
a few tens of megabytes in total.
Using the embedded CLI
Anyone who clones the project can run:.keel/bin/. Pass flags through ARGS, for example
make keel-dev ARGS="-p 3500".
Updating
Re-runmake embed DIR=../your-project from a newer Keel checkout. The
binaries are rebuilt and the managed Makefile block is replaced in place —
everything else in the Makefile is left alone. Commit the result.
When to embed and when to install
Both give the same
keel; the choice is about distribution. Keel Cloud is
the third option: nobody installs anything, and the deployment runs on a
server. See Keel Cloud.