]> git.proxmox.com Git - mirror_ovs.git/blame - vswitchd/automake.mk
vswitchd: Fail the build when the schema checksum does not match.
[mirror_ovs.git] / vswitchd / automake.mk
CommitLineData
e75e8930 1sbin_PROGRAMS += vswitchd/ovs-vswitchd
064af421 2man_MANS += \
064af421
BP
3 vswitchd/ovs-vswitchd.8 \
4 vswitchd/ovs-brcompatd.8
5DISTCLEANFILES += \
064af421
BP
6 vswitchd/ovs-vswitchd.8 \
7 vswitchd/ovs-brcompatd.8
8
9vswitchd_ovs_vswitchd_SOURCES = \
10 vswitchd/bridge.c \
11 vswitchd/bridge.h \
064af421
BP
12 vswitchd/proc-net-compat.c \
13 vswitchd/proc-net-compat.h \
14 vswitchd/ovs-vswitchd.c \
ce887677 15 vswitchd/system-stats.c \
fca426ef 16 vswitchd/system-stats.h \
c3bb4bd7 17 vswitchd/vswitch-idl.c \
d879a707 18 vswitchd/vswitch-idl.h \
064af421
BP
19 vswitchd/xenserver.c \
20 vswitchd/xenserver.h
21vswitchd_ovs_vswitchd_LDADD = \
8cd4882f 22 ofproto/libofproto.a \
72b06300 23 lib/libsflow.a \
064af421 24 lib/libopenvswitch.a \
a26cc67c 25 $(SSL_LIBS)
4cdb08c0
BP
26EXTRA_DIST += \
27 vswitchd/ovs-vswitchd.8.in \
28 vswitchd/INTERNALS
064af421 29
e75e8930
BP
30if HAVE_NETLINK
31sbin_PROGRAMS += vswitchd/ovs-brcompatd
064af421 32vswitchd_ovs_brcompatd_SOURCES = \
9852694f
JP
33 vswitchd/ovs-brcompatd.c \
34 vswitchd/vswitch-idl.c \
35 vswitchd/vswitch-idl.h
a26cc67c 36vswitchd_ovs_brcompatd_LDADD = lib/libopenvswitch.a $(SSL_LIBS)
e75e8930
BP
37endif
38EXTRA_DIST += vswitchd/ovs-brcompatd.8.in
d879a707 39
00732bf5
BP
40# vswitch schema and IDL
41OVSIDL_BUILT += \
45a7de56
BP
42 vswitchd/vswitch-idl.c \
43 vswitchd/vswitch-idl.h \
00732bf5
BP
44 vswitchd/vswitch-idl.ovsidl
45VSWITCH_IDL_FILES = vswitchd/vswitch.ovsschema vswitchd/vswitch-idl.ann
89365653 46EXTRA_DIST += $(VSWITCH_IDL_FILES)
00732bf5
BP
47vswitchd/vswitch-idl.ovsidl: $(VSWITCH_IDL_FILES)
48 $(OVSDB_IDLC) -C $(srcdir) annotate $(VSWITCH_IDL_FILES) > $@.tmp
49 mv $@.tmp $@
89365653 50
f8d739a9 51# vswitch E-R diagram
7c9b0073
BP
52#
53# There are two complications here. First, if "python" or "dot" is not
54# available, then we have to just use the existing diagram. Second, different
55# "dot" versions produce slightly different output for the same input, but we
56# don't want to gratuitously change vswitch.pic if someone tweaks the schema in
57# some minor way that doesn't affect the table structure. To avoid that we
58# store a checksum of vswitch.gv in vswitch.pic and only regenerate vswitch.pic
59# if vswitch.gv actually changes.
60$(srcdir)/vswitchd/vswitch.gv: ovsdb/ovsdb-dot.in vswitchd/vswitch.ovsschema
61if HAVE_PYTHON
62 $(OVSDB_DOT) $(srcdir)/vswitchd/vswitch.ovsschema > $@
63else
64 touch $@
65endif
66$(srcdir)/vswitchd/vswitch.pic: $(srcdir)/vswitchd/vswitch.gv ovsdb/dot2pic
67if HAVE_DOT
68 sum=`cksum < $(srcdir)/vswitchd/vswitch.gv`; \
69 if grep "$$sum" $@ >/dev/null 2>&1; then \
70 echo "vswitch.gv unchanged, not regenerating vswitch.pic"; \
71 touch $@; \
72 else \
73 echo "regenerating vswitch.pic"; \
74 (echo ".\\\" Generated from vswitch.gv with cksum \"$$sum\""; \
75 dot -T plain < $(srcdir)/vswitchd/vswitch.gv \
76 | $(srcdir)/ovsdb/dot2pic) > $@; \
77 fi
f8d739a9 78else
f8d739a9
BP
79 touch $@
80endif
7c9b0073 81EXTRA_DIST += vswitchd/vswitch.gv vswitchd/vswitch.pic
f8d739a9 82
89365653
BP
83# vswitch schema documentation
84EXTRA_DIST += vswitchd/vswitch.xml
85dist_man_MANS += vswitchd/ovs-vswitchd.conf.db.5
86vswitchd/ovs-vswitchd.conf.db.5: \
f8d739a9
BP
87 ovsdb/ovsdb-doc.in vswitchd/vswitch.xml vswitchd/vswitch.ovsschema \
88 $(srcdir)/vswitchd/vswitch.pic
89365653
BP
89 $(OVSDB_DOC) \
90 --title="ovs-vswitchd.conf.db" \
f8d739a9 91 --er-diagram=$(srcdir)/vswitchd/vswitch.pic \
89365653
BP
92 $(srcdir)/vswitchd/vswitch.ovsschema \
93 $(srcdir)/vswitchd/vswitch.xml > $@.tmp
94 mv $@.tmp $@
8159b984
BP
95
96# Version checking for vswitch.ovsschema.
97ALL_LOCAL += vswitchd/vswitch.ovsschema.stamp
98vswitchd/vswitch.ovsschema.stamp: vswitchd/vswitch.ovsschema
99 @sum=`sed '/cksum/d' $? | cksum`; \
100 expected=`sed -n 's/.*"cksum": "\(.*\)".*/\1/p' $?`; \
101 if test "X$$sum" = "X$$expected"; then \
102 touch $@; \
103 else \
104 ln=`sed -n '/"cksum":/=' $?`; \
105 echo "$?:$$ln: checksum \"$$sum\" does not match (you should probably update the version number and fix the checksum)"; \
748e066e 106 exit 1; \
8159b984 107 fi
a87c35f1 108CLEANFILES += vswitchd/vswitch.ovsschema.stamp