EXTRA_DIST = Cargo.toml \
Cargo.lock \
- src/lib.rs \
- .cargo/config.in
+ src \
+ .cargo/config.in \
+ gen-c-headers.py \
+ gen/c-headers
if HAVE_RUST
EXTRA_DIST += vendor
RELEASE = --release
endif
+gen/c-headers:
+if HAVE_PYTHON
+ cd $(top_srcdir)/rust && python ./gen-c-headers.py
+else
+ @echo "python not available, will not generate headers"
+endif
+
if HAVE_RUST
all-local:
+if HAVE_PYTHON
cd $(top_srcdir)/rust && CARGO_TARGET_DIR=$(abs_builddir)/target \
+ python ./gen-c-headers.py && \
cargo build $(RELEASE) $(FROZEN)
+else
+ cd $(top_srcdir)/rust && CARGO_TARGET_DIR=$(abs_builddir)/target \
+ cargo build $(RELEASE) $(FROZEN)
+endif
clean-local:
cd $(top_srcdir)/rust && CARGO_TARGET_DIR=$(abs_builddir)/target \
distclean-local:
rm -rf vendor
+ rm -rf gen
check:
cd $(top_srcdir)/rust && CARGO_TARGET_DIR=$(abs_builddir)/target \
def make_output_filename(filename):
parts = filename.split(os.path.sep)[2:]
last = os.path.splitext(parts.pop())[0]
- outpath = "../src/rust-%s-%s.h" % (
+ outpath = "./gen/c-headers/rust-%s-%s-gen.h" % (
"-".join(parts), last)
return outpath.replace("--", "-")
if writer.tell() > 0:
print("Writing %s" % (output_filename))
+ if not os.path.exists(os.path.dirname(output_filename)):
+ os.makedirs(os.path.dirname(output_filename))
with open(output_filename, "w") as output:
output.write(template % {
"prototypes": writer.getvalue(),