+
+# TODO autoconf check for cargo and bindgen
+.PHONY: cargo cargo-doc
+cargo: $(srcdir)/sbr/rust/src/bindgen.rs $(abs_srcdir)/sbr/rust/build.rs
+ cd $(srcdir) && CARGO_TARGET_DIR=$(abs_builddir)/target cargo $(CARGO_FLAGS) build
+cargo-doc: cargo
+ cd $(srcdir) && CARGO_TARGET_DIR=$(abs_builddir)/target cargo $(CARGO_FLAGS) doc --no-deps
+
+# TODO default to release build with optional debug build
+# TODO install mhimap to bindir and imap-folder-manager to libexecdir
+# TODO proper build rules, including dependency on libmh.a
+target/debug/mhimap target/debug/imap-folder-manager: cargo
+
+# TODO proper out-of-tree build
+$(abs_srcdir)/sbr/rust/build.rs: $(abs_builddir)/sbr/rust/build.rs
+ [ $(abs_srcdir) = $(abs_builddir) ] || cp $(builddir)/sbr/rust/build.rs $(srcdir)/sbr/rust/build.rs
+
+$(srcdir)/sbr/rust/src/bindgen.rs: $(srcdir)/sbr/rust/bindgen.h
+ bindgen --no-derive-copy -o $(srcdir)/sbr/rust/src/bindgen.rs.tmp $(srcdir)/sbr/rust/bindgen.h -- -I$(srcdir) \
+ && mv $(srcdir)/sbr/rust/src/bindgen.rs.tmp $(srcdir)/sbr/rust/src/bindgen.rs
+
+# TODO autoconf check for openssl
+fake.pem:
+ yes '' | openssl req -new -x509 -nodes -out fake.pem -keyout fake.pem