On Wed, Jul 19, 2023 at 09:09:46AM +0000, Tage Johansson wrote: > diff --git a/rust/Makefile.am b/rust/Makefile.am > new file mode 100644 > index 0000000..cb8d7c9 > --- /dev/null > +++ b/rust/Makefile.am ... > +all-local: $(source_files) > + rm -f libnbd-sys/libnbd_version.t > + $(abs_top_builddir)/run echo $(VERSION) > libnbd-sys/libnbd_version.t > + mv libnbd-sys/libnbd_version.t libnbd-sys/libnbd_version > + $(abs_top_builddir)/run $(CARGO) build > + $(abs_top_builddir)/run $(CARGO) doc
You could split this rule to avoid all the commands being run every time, and to allow parallel builds, something like ... all-local: libnbd-sys/libnbd_version SOME_BUILT_FILE SOME_DOC_FILE libnbd-sys/libnbd_version: Makefile rm -f libnbd-sys/libnbd_version.t $(abs_top_builddir)/run echo $(VERSION) > libnbd-sys/libnbd_version.t mv libnbd-sys/libnbd_version.t $@ SOME_BUILT_FILE: $(source_files) libnbd-sys/libnbd_version $(abs_top_builddir)/run $(CARGO) build SOME_DOC_FILE: $(source_files) libnbd-sys/libnbd_version $(abs_top_builddir)/run $(CARGO) doc where SOME_BUILT_FILE and SOME_DOC_FILE are single files which are built by cargo build / cargo doc and can act as a canary that the build was successful last time. (Don't put multiple files here, make won't do what you expect.) Notice also that I made the version file depend on Makefile so that it will get properly updated when the version is changed by a source file is not touched. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into KVM guests. http://libguestfs.org/virt-v2v _______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://listman.redhat.com/mailman/listinfo/libguestfs