X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=vswitchd%2Fautomake.mk;h=4c3c07622e5c490aac578f96ffe63dfed2815e18;hb=3d785a24216d946fcce1c351e5d978043e14cbe2;hp=93c6f92eaf6dfe7ac1eb0d8a88b4fa7b7cc48152;hpb=fca426efdad5e21a55f4a106ce7b2f0d1c4a5875;p=openvswitch diff --git a/vswitchd/automake.mk b/vswitchd/automake.mk index 93c6f92e..4c3c0762 100644 --- a/vswitchd/automake.mk +++ b/vswitchd/automake.mk @@ -49,20 +49,36 @@ vswitchd/vswitch-idl.ovsidl: $(VSWITCH_IDL_FILES) 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 + touch $@ +endif +$(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 -$(srcdir)/vswitchd/vswitch.pic: ovsdb/ovsdb-dot.in vswitchd/vswitch.ovsschema touch $@ endif -EXTRA_DIST += vswitchd/vswitch.pic +EXTRA_DIST += vswitchd/vswitch.gv vswitchd/vswitch.pic # vswitch schema documentation EXTRA_DIST += vswitchd/vswitch.xml