@@ -9,6 +9,7 @@ LIBRUST_CHIRP = $(LIBRUST_CHIRP_TARGET_DIR)/$(RUST_TARGET)/$(CARGO_PROFILE)/libc
99LIBRUST_CHIRP_CARGO_ENV = $(CARGO_ENV) CARGO_TARGET_DIR="$(LIBRUST_CHIRP_TARGET_DIR)"
1010LIBRUST_CHIRP_CRATE_DIR = $(top_srcdir)/rust/chirp
1111LIBRUST_CHIRP_GEN_DIR = $(abs_top_builddir)/rust/chirp/gen
12+ LIBRUST_CHIRP_GEN_SRCDIR = $(top_srcdir)/rust/chirp/gen
1213LIBRUST_CHIRP_MANIFEST = $(LIBRUST_CHIRP_CRATE_DIR)/Cargo.toml
1314LIBRUST_CHIRP_CARGO_BUILD_OPTS = $(CARGO_BUILD_OPTS) --manifest-path $(LIBRUST_CHIRP_MANIFEST)
1415
@@ -27,11 +28,28 @@ LIBRUST_CHIRP_H = \
2728LIBRUST_CHIRP_INCLUDES = \
2829 -I$(LIBRUST_CHIRP_GEN_DIR)/include
2930
31+ LIBRUST_CHIRP_FILES = \
32+ $(LIBRUST_CHIRP_BUILD) \
33+ $(LIBRUST_CHIRP_MANIFEST) \
34+ $(LIBRUST_CHIRP_SRCS)
35+
3036$(LIBRUST_CHIRP_SRCS): ;
3137
32- $(LIBRUST_CHIRP_H) $(LIBRUST_CHIRP_CPP): $(LIBRUST_CHIRP_SRCS)
38+ $(LIBRUST_CHIRP_CPP): $(LIBRUST_CHIRP_SRCS)
39+ $(AM_V_at)$(MKDIR_P) $(@D)
40+ $(AM_V_GEN)if test -f $(LIBRUST_CHIRP_GEN_SRCDIR)/src/lib.cpp; then \
41+ cp $(LIBRUST_CHIRP_GEN_SRCDIR)/src/lib.cpp $@; \
42+ else \
43+ $(CXXBRIDGE) $< -o $@; \
44+ fi
45+
46+ $(LIBRUST_CHIRP_H): $(LIBRUST_CHIRP_SRCS)
3347 $(AM_V_at)$(MKDIR_P) $(@D)
34- $(AM_V_GEN)$(CXXBRIDGE) $< $(if $(filter %.h,$@),--header) -o $@
48+ $(AM_V_GEN)if test -f $(LIBRUST_CHIRP_GEN_SRCDIR)/include/rust/chirp/lib.h; then \
49+ cp $(LIBRUST_CHIRP_GEN_SRCDIR)/include/rust/chirp/lib.h $@; \
50+ else \
51+ $(CXXBRIDGE) $< --header -o $@; \
52+ fi
3553
3654$(LIBRUST_CHIRP): $(LIBRUST_CHIRP_SRCS) $(LIBRUST_CHIRP_BUILD) $(LIBRUST_CHIRP_MANIFEST)
3755 $(AM_V_GEN)$(LIBRUST_CHIRP_CARGO_ENV) $(CARGO) build $(LIBRUST_CHIRP_CARGO_BUILD_OPTS)
@@ -46,4 +64,10 @@ cxxbridge-clean-chirp:
4664
4765cxxbridge-chirp: $(LIBRUST_CHIRP_CPP) $(LIBRUST_CHIRP_H)
4866
67+ dist-hook: cxxbridge-chirp
68+ $(MKDIR_P) $(distdir)/chirp/gen/src
69+ $(MKDIR_P) $(distdir)/chirp/gen/include/rust/chirp
70+ cp $(LIBRUST_CHIRP_CPP) $(distdir)/chirp/gen/src/
71+ cp $(LIBRUST_CHIRP_H) $(distdir)/chirp/gen/include/rust/chirp/
72+
4973.PHONY: cargo-build-chirp cargo-clean-chirp cxxbridge-chirp cxxbridge-clean-chirp
0 commit comments