"Richard W.M. Jones" <rjones(a)redhat.com> wrote:
A new patch is attached which should address everything that you
mentioned.
That was quick ;-)
Index: src/Makefile.am
===================================================================
RCS file: /data/cvs/libvirt/src/Makefile.am,v
retrieving revision 1.86
diff -u -r1.86 Makefile.am
--- src/Makefile.am 11 Jul 2008 16:23:36 -0000 1.86
+++ src/Makefile.am 1 Aug 2008 10:33:22 -0000
@@ -138,6 +138,31 @@
virsh_DEPENDENCIES = $(DEPS)
virsh_LDADD = $(LDADDS) $(VIRSH_LIBS)
virsh_CFLAGS = $(COVERAGE_CFLAGS) $(READLINE_CFLAGS)
+BUILT_SOURCES = virsh-net-edit.c virsh-pool-edit.c
+EXTRA_DIST += virsh-net-edit.c virsh-pool-edit.c
+
+virsh-net-edit.c: virsh.c Makefile.am
+ echo '/* Automatically generated from the Makefile and virsh.c */' > $@
+ echo 'static int' >> $@
+ awk '/^cmdEdit/, /^}/' $< | \
+ sed -e 's/domain/network/g' \
+ -e 's/Domain/Network/g' \
+ -e 's/cmdEdit/cmdNetworkEdit/g' \
+ -e 's/dom/network/g' \
+ >> $@
Don't redirect directly to $@.
Otherwise, if something goes wrong before the output is completely written,
you're left with a corrupt input that has an up-to-date time stamp.
That can be a pain to diagnose.
Also, if you make each generated file read-only, then even those
who don't spot the Auto-Generated-from comment at the top will have
a hard time accidentally changing it.
Also, you can include dependent names in the comment with "$^":
I indented the "sed" command so it's clearer that it's
on a backslash-continued line:
virsh-net-edit.c: virsh.c Makefile.am
rm -f $@-t $@
echo '/* Automatically generated from: $^ */' > $@-t
echo 'static int' >> $@-t
awk '/^cmdEdit/, /^}/' $< \
| sed -e 's/domain/network/g' \
-e 's/Domain/Network/g' \
-e 's/cmdEdit/cmdNetworkEdit/g' \
-e 's/dom/network/g' \
> $@-t
chmod a-w $@-t
mv $@-t $@
This is longer than the original rule, but it's for a good cause:
the point is to better protect readers/builders/developers.
We incur the cost of writing Makefile.am once, but the audience
will be saved some small wasted effort over and over ;-)
Yes, there are many other rules that can benefit from the same
treatment. have to start somewhere.