X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=vswitchd%2Fautomake.mk;h=1df5dff79da6ec9bc22541d38c6466ec77f23ad8;hb=80df177a5f624a84f4c97bbe913511726c3e9bb8;hp=592be607a7a782fa1f24a70d03395274ed0e5e0d;hpb=f8d739a9fa1c1223f0b2c88fd3f0ed47be69bf65;p=sliver-openvswitch.git diff --git a/vswitchd/automake.mk b/vswitchd/automake.mk index 592be607a..1df5dff79 100644 --- a/vswitchd/automake.mk +++ b/vswitchd/automake.mk @@ -9,9 +9,9 @@ DISTCLEANFILES += \ vswitchd_ovs_vswitchd_SOURCES = \ vswitchd/bridge.c \ vswitchd/bridge.h \ - vswitchd/proc-net-compat.c \ - vswitchd/proc-net-compat.h \ vswitchd/ovs-vswitchd.c \ + vswitchd/system-stats.c \ + vswitchd/system-stats.h \ vswitchd/vswitch-idl.c \ vswitchd/vswitch-idl.h \ vswitchd/xenserver.c \ @@ -42,25 +42,42 @@ OVSIDL_BUILT += \ vswitchd/vswitch-idl.ovsidl VSWITCH_IDL_FILES = vswitchd/vswitch.ovsschema vswitchd/vswitch-idl.ann EXTRA_DIST += $(VSWITCH_IDL_FILES) +pkgdata_DATA += vswitchd/vswitch.ovsschema vswitchd/vswitch-idl.ovsidl: $(VSWITCH_IDL_FILES) $(OVSDB_IDLC) -C $(srcdir) annotate $(VSWITCH_IDL_FILES) > $@.tmp mv $@.tmp $@ # vswitch E-R diagram -if BUILD_ER_DIAGRAMS -$(srcdir)/vswitchd/vswitch.pic: ovsdb/ovsdb-dot.in vswitchd/vswitch.ovsschema - $(OVSDB_DOT) $(srcdir)/vswitchd/vswitch.ovsschema \ - | dot -T pic \ - | sed -e "/^'/d" \ - -e '/^box attrs0/d' \ - -e 's/linethick = 0;/linethick = 1;/' \ - > $@.tmp - mv $@.tmp $@ +# +# There are two complications here. First, if "python" or "dot" is not +# available, then we have to just use the existing diagram. Second, different +# "dot" versions produce slightly different output for the same input, but we +# don't want to gratuitously change vswitch.pic if someone tweaks the schema in +# some minor way that doesn't affect the table structure. To avoid that we +# store a checksum of vswitch.gv in vswitch.pic and only regenerate vswitch.pic +# if vswitch.gv actually changes. +$(srcdir)/vswitchd/vswitch.gv: ovsdb/ovsdb-dot.in vswitchd/vswitch.ovsschema +if HAVE_PYTHON + $(OVSDB_DOT) $(srcdir)/vswitchd/vswitch.ovsschema > $@ else -$(srcdir)/vswitchd/vswitch.pic: ovsdb/ovsdb-dot.in vswitchd/vswitch.ovsschema touch $@ endif -EXTRA_DIST += vswitchd/vswitch.pic +$(srcdir)/vswitchd/vswitch.pic: $(srcdir)/vswitchd/vswitch.gv ovsdb/dot2pic +if HAVE_DOT + sum=`cksum < $(srcdir)/vswitchd/vswitch.gv`; \ + if grep "$$sum" $@ >/dev/null 2>&1; then \ + echo "vswitch.gv unchanged, not regenerating vswitch.pic"; \ + touch $@; \ + else \ + echo "regenerating vswitch.pic"; \ + (echo ".\\\" Generated from vswitch.gv with cksum \"$$sum\""; \ + dot -T plain < $(srcdir)/vswitchd/vswitch.gv \ + | $(srcdir)/ovsdb/dot2pic) > $@; \ + fi +else + touch $@ +endif +EXTRA_DIST += vswitchd/vswitch.gv vswitchd/vswitch.pic # vswitch schema documentation EXTRA_DIST += vswitchd/vswitch.xml @@ -74,3 +91,17 @@ vswitchd/ovs-vswitchd.conf.db.5: \ $(srcdir)/vswitchd/vswitch.ovsschema \ $(srcdir)/vswitchd/vswitch.xml > $@.tmp mv $@.tmp $@ + +# Version checking for vswitch.ovsschema. +ALL_LOCAL += vswitchd/vswitch.ovsschema.stamp +vswitchd/vswitch.ovsschema.stamp: vswitchd/vswitch.ovsschema + @sum=`sed '/cksum/d' $? | cksum`; \ + expected=`sed -n 's/.*"cksum": "\(.*\)".*/\1/p' $?`; \ + if test "X$$sum" = "X$$expected"; then \ + touch $@; \ + else \ + ln=`sed -n '/"cksum":/=' $?`; \ + echo >&2 "$?:$$ln: checksum \"$$sum\" does not match (you should probably update the version number and fix the checksum)"; \ + exit 1; \ + fi +CLEANFILES += vswitchd/vswitch.ovsschema.stamp