Skip to content

Commit a0800cb

Browse files
committed
Document some suggestions for distro packaging
1 parent a9537c9 commit a0800cb

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

PACKAGING.md

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
## Wasmer distro packaging notes
2+
3+
* Where possible, do not directly invoke cargo, but use the supplied Makefile
4+
* wasmer has several compiler backends and the Makefile autodetects whether to enable llvm and singlepass.
5+
Set `ENABLE_{CRANELIFT,LLVM,SINGLEPASS}=1` to build the full set or fail trying
6+
* Set `WASMER_CAPI_USE_SYSTEM_LIBFFI=1` to force dynamic linking of libffi on the shared library
7+
* `make install` respects `DESTDIR`, but `prefix` must be configured as e.g. `WASMER_INSTALL_PREFIX=/usr make all`
8+
* In case you must build/install directly with cargo, make sure to enable at least one compiler backend feature
9+
* Beware that compiling with `cargo build --workspace/--all --features ...` will not enable features on the subcrates in the workspace and result in a headless wasmer binary that can not run wasm files directly.
10+
* If you split the package into several subpackages, beware that the create-exe command of wasmer requires `libwasmer.a` to be installed at `$WASMER_INSTALL_PREFIX/lib/libwasmer.a`.
11+
Suggestion for splitting:
12+
* `wasmer` and `wasmer-headless`, containing the respective executables
13+
* `wasmer-headless` contains a subset of `wasmer`'s functionality and should only be packaged when splitting - it must be built explicitly with `make build-wasmer-headless-minimal insteall-wasmer-headless-minimal`
14+
* `libwasmer`, containing `libwasmer.so*`
15+
* `libwasmer-dev`, containging the header files and a `.pc` file
16+
* `libwasmer-static`, containing `libwasmer.a`
17+
18+
The wasmer distro packaging story is still in its infancy, so feedback is very welcome.

0 commit comments

Comments
 (0)