Should sodepends.pl be copyright 2008 as well as 2011? I think the indentation is messed up with the OUTER: loop in sodepends, not sure what the correct style is though so it might be correct. Quick google search was inconclusive.
Did you intentionally add manpages.mk to the commit? I would think it would get built the first time someone calls make. Ethan On Thu, Aug 25, 2011 at 12:34, Ben Pfaff <b...@nicira.com> wrote: > This ensures that manpages actually get rebuilt if any of the lib/*.man > fragments that they depend upon are modified. > --- > Makefile.am | 16 +++- > build-aux/sodepends.pl | 69 +++++++++++ > manpages.mk | 255 > ++++++++++++++++++++++++++++++++++++++++ > ovsdb/automake.mk | 11 +- > ovsdb/ovsdbmonitor/automake.mk | 4 +- > tests/automake.mk | 2 +- > utilities/automake.mk | 20 ++-- > utilities/bugtool/automake.mk | 1 + > vswitchd/automake.mk | 7 +- > 9 files changed, 362 insertions(+), 23 deletions(-) > create mode 100644 build-aux/sodepends.pl > create mode 100644 manpages.mk > > diff --git a/Makefile.am b/Makefile.am > index 36b55d7..fd451e0 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -46,8 +46,10 @@ EXTRA_DIST = \ > SubmittingPatches \ > WHY-OVS \ > boot.sh \ > + build-aux/sodepends.pl \ > build-aux/soexpand.pl \ > - $(MAN_FRAGMENTS) > + $(MAN_FRAGMENTS) \ > + $(MAN_ROOTS) > bin_PROGRAMS = > sbin_PROGRAMS = > bin_SCRIPTS = > @@ -61,6 +63,7 @@ INSTALL_DATA_LOCAL = > UNINSTALL_LOCAL = > man_MANS = > MAN_FRAGMENTS = > +MAN_ROOTS = > noinst_DATA = > noinst_HEADERS = > noinst_LIBRARIES = > @@ -160,6 +163,17 @@ manpage-check: $(MANS) $(MAN_FRAGMENTS) > CLEANFILES += manpage-check > endif > > +include $(srcdir)/manpages.mk > +$(srcdir)/manpages.mk: $(MAN_ROOTS) build-aux/sodepends.pl > + @$(PERL) $(srcdir)/build-aux/sodepends.pl -I. -I$(srcdir) > $(MAN_ROOTS) >$(@F).tmp > + @if cmp -s $(@F).tmp $@; then \ > + touch $@; \ > + rm -f $(@F).tmp; \ > + else \ > + mv $(@F).tmp $@; \ > + fi > +CLEANFILES += manpage-dep-check > + > dist-hook: $(DIST_HOOKS) > all-local: $(ALL_LOCAL) > clean-local: $(CLEAN_LOCAL) > diff --git a/build-aux/sodepends.pl b/build-aux/sodepends.pl > new file mode 100644 > index 0000000..d03b588 > --- /dev/null > +++ b/build-aux/sodepends.pl > @@ -0,0 +1,69 @@ > +# Copyright (c) 2008, 2011 Nicira Networks. > +# > +# Licensed under the Apache License, Version 2.0 (the "License"); > +# you may not use this file except in compliance with the License. > +# You may obtain a copy of the License at: > +# > +# http://www.apache.org/licenses/LICENSE-2.0 > +# > +# Unless required by applicable law or agreed to in writing, software > +# distributed under the License is distributed on an "AS IS" BASIS, > +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > +# See the License for the specific language governing permissions and > +# limitations under the License. > + > +use strict; > +use warnings; > +use Getopt::Long; > + > +our ($exit_code) = 0; > + > +our (@include_dirs); > +Getopt::Long::Configure ("bundling"); > +GetOptions("I|include=s" => \@include_dirs) or exit(1); > +@include_dirs = ('.') if !@include_dirs; > + > +sub find_file { > + my ($name) = @_; > + foreach my $dir (@include_dirs, '.') { > + my $file = "$dir/$name"; > + if (stat($file)) { > + return $file; > + } > + } > + print STDERR "$name not found in: ", join(' ', @include_dirs), "\n"; > + $exit_code = 1; > + return; > +} > + > +print "# Generated automatically -- do not modify! -*- buffer-read-only: > t -*-\n"; > +for my $toplevel (sort(@ARGV)) { > + # Skip names that don't end in .in. > + next if $toplevel !~ /\.in$/; > + > + # Open file. > + my ($fn) = find_file($toplevel); > + next if !defined($fn); > + if (!open(OUTER, '<', $fn)) { > + print "$fn: open: $!\n"; > + $exit_code = 1; > + next; > + } > + > + my (@dependencies); > + OUTER: while (<OUTER>) { > + if (my ($name) = /^\.so (\S+)$/) { > + push(@dependencies, $name) if find_file($name); > + } > + } > + close(OUTER); > + > + my ($output) = $toplevel; > + $output =~ s/\.in//; > + > + print "\n$output:"; > + print " \\\n\t$_" foreach $toplevel, sort(@dependencies); > + print "\n"; > + print "$_:\n" foreach $toplevel, sort(@dependencies); > +} > +exit $exit_code; > diff --git a/manpages.mk b/manpages.mk > new file mode 100644 > index 0000000..d8884b3 > --- /dev/null > +++ b/manpages.mk > @@ -0,0 +1,255 @@ > +# Generated automatically -- do not modify! -*- buffer-read-only: t -*- > + > +ovsdb/ovsdb-client.1: \ > + ovsdb/ovsdb-client.1.in \ > + lib/common-syn.man \ > + lib/common.man \ > + lib/daemon-syn.man \ > + lib/daemon.man \ > + lib/ssl-bootstrap-syn.man \ > + lib/ssl-bootstrap.man \ > + lib/ssl-syn.man \ > + lib/ssl.man \ > + lib/table.man \ > + lib/vlog-syn.man \ > + lib/vlog.man \ > + ovsdb/remote-active.man \ > + ovsdb/remote-passive.man > +ovsdb/ovsdb-client.1.in: > +lib/common-syn.man: > +lib/common.man: > +lib/daemon-syn.man: > +lib/daemon.man: > +lib/ssl-bootstrap-syn.man: > +lib/ssl-bootstrap.man: > +lib/ssl-syn.man: > +lib/ssl.man: > +lib/table.man: > +lib/vlog-syn.man: > +lib/vlog.man: > +ovsdb/remote-active.man: > +ovsdb/remote-passive.man: > + > +ovsdb/ovsdb-server.1: \ > + ovsdb/ovsdb-server.1.in \ > + lib/common-syn.man \ > + lib/common.man \ > + lib/daemon-syn.man \ > + lib/daemon.man \ > + lib/ssl-bootstrap-syn.man \ > + lib/ssl-bootstrap.man \ > + lib/ssl-syn.man \ > + lib/ssl.man \ > + lib/stress-unixctl.man \ > + lib/unixctl-syn.man \ > + lib/unixctl.man \ > + lib/vlog-syn.man \ > + lib/vlog-unixctl.man \ > + lib/vlog.man \ > + ovsdb/remote-active.man \ > + ovsdb/remote-passive.man > +ovsdb/ovsdb-server.1.in: > +lib/common-syn.man: > +lib/common.man: > +lib/daemon-syn.man: > +lib/daemon.man: > +lib/ssl-bootstrap-syn.man: > +lib/ssl-bootstrap.man: > +lib/ssl-syn.man: > +lib/ssl.man: > +lib/stress-unixctl.man: > +lib/unixctl-syn.man: > +lib/unixctl.man: > +lib/vlog-syn.man: > +lib/vlog-unixctl.man: > +lib/vlog.man: > +ovsdb/remote-active.man: > +ovsdb/remote-passive.man: > + > +ovsdb/ovsdb-tool.1: \ > + ovsdb/ovsdb-tool.1.in \ > + lib/common-syn.man \ > + lib/common.man \ > + lib/vlog-syn.man \ > + lib/vlog.man > +ovsdb/ovsdb-tool.1.in: > +lib/common-syn.man: > +lib/common.man: > +lib/vlog-syn.man: > +lib/vlog.man: > + > +tests/test-openflowd.8: \ > + tests/test-openflowd.8.in \ > + lib/common.man \ > + lib/daemon.man \ > + lib/leak-checker.man \ > + lib/ssl-bootstrap.man \ > + lib/ssl.man \ > + lib/unixctl.man \ > + lib/vconn-active.man \ > + lib/vconn-passive.man \ > + lib/vlog-unixctl.man \ > + lib/vlog.man \ > + ofproto/ofproto-unixctl.man > +tests/test-openflowd.8.in: > +lib/common.man: > +lib/daemon.man: > +lib/leak-checker.man: > +lib/ssl-bootstrap.man: > +lib/ssl.man: > +lib/unixctl.man: > +lib/vconn-active.man: > +lib/vconn-passive.man: > +lib/vlog-unixctl.man: > +lib/vlog.man: > +ofproto/ofproto-unixctl.man: > + > +utilities/ovs-appctl.8: \ > + utilities/ovs-appctl.8.in \ > + lib/common.man > +utilities/ovs-appctl.8.in: > +lib/common.man: > + > +utilities/ovs-benchmark.1: \ > + utilities/ovs-benchmark.1.in > +utilities/ovs-benchmark.1.in: > + > +utilities/ovs-controller.8: \ > + utilities/ovs-controller.8.in \ > + lib/common.man \ > + lib/daemon.man \ > + lib/ssl-peer-ca-cert.man \ > + lib/ssl.man \ > + lib/unixctl.man \ > + lib/vconn-active.man \ > + lib/vconn-passive.man \ > + lib/vlog.man > +utilities/ovs-controller.8.in: > +lib/common.man: > +lib/daemon.man: > +lib/ssl-peer-ca-cert.man: > +lib/ssl.man: > +lib/unixctl.man: > +lib/vconn-active.man: > +lib/vconn-passive.man: > +lib/vlog.man: > + > +utilities/ovs-dpctl.8: \ > + utilities/ovs-dpctl.8.in \ > + lib/common.man \ > + lib/vlog.man > +utilities/ovs-dpctl.8.in: > +lib/common.man: > +lib/vlog.man: > + > +utilities/ovs-ofctl.8: \ > + utilities/ovs-ofctl.8.in \ > + lib/common.man \ > + lib/ssl.man \ > + lib/vconn-active.man \ > + lib/vlog.man > +utilities/ovs-ofctl.8.in: > +lib/common.man: > +lib/ssl.man: > +lib/vconn-active.man: > +lib/vlog.man: > + > +utilities/ovs-pcap.1: \ > + utilities/ovs-pcap.1.in \ > + lib/common-syn.man \ > + lib/common.man > +utilities/ovs-pcap.1.in: > +lib/common-syn.man: > +lib/common.man: > + > +utilities/ovs-pki.8: \ > + utilities/ovs-pki.8.in > +utilities/ovs-pki.8.in: > + > +utilities/ovs-tcpundump.1: \ > + utilities/ovs-tcpundump.1.in \ > + lib/common-syn.man \ > + lib/common.man > +utilities/ovs-tcpundump.1.in: > +lib/common-syn.man: > +lib/common.man: > + > +utilities/ovs-vlan-bug-workaround.8: \ > + utilities/ovs-vlan-bug-workaround.8.in \ > + lib/common.man \ > + utilities/ovs-vlan-bugs.man > +utilities/ovs-vlan-bug-workaround.8.in: > +lib/common.man: > +utilities/ovs-vlan-bugs.man: > + > +utilities/ovs-vlan-test.8: \ > + utilities/ovs-vlan-test.8.in \ > + lib/common-syn.man \ > + lib/common.man \ > + utilities/ovs-vlan-bugs.man > +utilities/ovs-vlan-test.8.in: > +lib/common-syn.man: > +lib/common.man: > +utilities/ovs-vlan-bugs.man: > + > +utilities/ovs-vsctl.8: \ > + utilities/ovs-vsctl.8.in \ > + lib/ssl-bootstrap.man \ > + lib/ssl-peer-ca-cert.man \ > + lib/ssl.man \ > + lib/table.man \ > + lib/vconn-active.man \ > + lib/vlog.man \ > + ovsdb/remote-active.man \ > + ovsdb/remote-active.man \ > + ovsdb/remote-passive.man \ > + ovsdb/remote-passive.man > +utilities/ovs-vsctl.8.in: > +lib/ssl-bootstrap.man: > +lib/ssl-peer-ca-cert.man: > +lib/ssl.man: > +lib/table.man: > +lib/vconn-active.man: > +lib/vlog.man: > +ovsdb/remote-active.man: > +ovsdb/remote-active.man: > +ovsdb/remote-passive.man: > +ovsdb/remote-passive.man: > + > +vswitchd/ovs-brcompatd.8: \ > + vswitchd/ovs-brcompatd.8.in \ > + lib/common.man \ > + lib/daemon.man \ > + lib/leak-checker.man \ > + lib/vlog.man > +vswitchd/ovs-brcompatd.8.in: > +lib/common.man: > +lib/daemon.man: > +lib/leak-checker.man: > +lib/vlog.man: > + > +vswitchd/ovs-vswitchd.8: \ > + vswitchd/ovs-vswitchd.8.in \ > + lib/common.man \ > + lib/daemon.man \ > + lib/leak-checker.man \ > + lib/ssl-bootstrap.man \ > + lib/ssl.man \ > + lib/stress-unixctl.man \ > + lib/vlog-unixctl.man \ > + lib/vlog.man \ > + ofproto/ofproto-unixctl.man \ > + ovsdb/remote-active.man \ > + ovsdb/remote-passive.man > +vswitchd/ovs-vswitchd.8.in: > +lib/common.man: > +lib/daemon.man: > +lib/leak-checker.man: > +lib/ssl-bootstrap.man: > +lib/ssl.man: > +lib/stress-unixctl.man: > +lib/vlog-unixctl.man: > +lib/vlog.man: > +ofproto/ofproto-unixctl.man: > +ovsdb/remote-active.man: > +ovsdb/remote-passive.man: > diff --git a/ovsdb/automake.mk b/ovsdb/automake.mk > index 39bc65f..eb34e91 100644 > --- a/ovsdb/automake.mk > +++ b/ovsdb/automake.mk > @@ -40,7 +40,7 @@ ovsdb_ovsdb_tool_LDADD = ovsdb/libovsdb.a > lib/libopenvswitch.a > # ovsdb-tool.1 > man_MANS += ovsdb/ovsdb-tool.1 > DISTCLEANFILES += ovsdb/ovsdb-tool.1 > -EXTRA_DIST += ovsdb/ovsdb-tool.1.in > +MAN_ROOTS += ovsdb/ovsdb-tool.1.in > > # ovsdb-client > bin_PROGRAMS += ovsdb/ovsdb-client > @@ -49,7 +49,7 @@ ovsdb_ovsdb_client_LDADD = ovsdb/libovsdb.a > lib/libopenvswitch.a $(SSL_LIBS) > # ovsdb-client.1 > man_MANS += ovsdb/ovsdb-client.1 > DISTCLEANFILES += ovsdb/ovsdb-client.1 > -EXTRA_DIST += ovsdb/ovsdb-client.1.in > +MAN_ROOTS += ovsdb/ovsdb-client.1.in > > # ovsdb-server > sbin_PROGRAMS += ovsdb/ovsdb-server > @@ -58,14 +58,13 @@ ovsdb_ovsdb_server_LDADD = ovsdb/libovsdb.a > lib/libopenvswitch.a $(SSL_LIBS) > # ovsdb-server.1 > man_MANS += ovsdb/ovsdb-server.1 > DISTCLEANFILES += ovsdb/ovsdb-server.1 > -EXTRA_DIST += ovsdb/ovsdb-server.1.in > +MAN_ROOTS += ovsdb/ovsdb-server.1.in > > # ovsdb-idlc > EXTRA_DIST += ovsdb/SPECS > noinst_SCRIPTS += ovsdb/ovsdb-idlc > -EXTRA_DIST += \ > - ovsdb/ovsdb-idlc.in \ > - ovsdb/ovsdb-idlc.1 > +EXTRA_DIST += ovsdb/ovsdb-idlc.in > +MAN_ROOTS += ovsdb/ovsdb-idlc.1 > DISTCLEANFILES += ovsdb/ovsdb-idlc > SUFFIXES += .ovsidl > OVSDB_IDLC = $(run_python) $(srcdir)/ovsdb/ovsdb-idlc.in > diff --git a/ovsdb/ovsdbmonitor/automake.mk b/ovsdb/ovsdbmonitor/automake.mk > index 7e832ef..59d2e2c 100644 > --- a/ovsdb/ovsdbmonitor/automake.mk > +++ b/ovsdb/ovsdbmonitor/automake.mk > @@ -25,8 +25,8 @@ EXTRA_DIST += \ > ovsdb/ovsdbmonitor/HostWindow.ui \ > ovsdb/ovsdbmonitor/LogWindow.ui \ > ovsdb/ovsdbmonitor/MainWindow.ui \ > - ovsdb/ovsdbmonitor/ovsdbmonitor.in \ > - ovsdb/ovsdbmonitor/ovsdbmonitor.1 > + ovsdb/ovsdbmonitor/ovsdbmonitor.in > +MAN_ROOTS += ovsdb/ovsdbmonitor/ovsdbmonitor.1 > > ovsdbmonitordir = ${pkgdatadir}/ovsdbmonitor > if BUILD_OVSDBMONITOR > diff --git a/tests/automake.mk b/tests/automake.mk > index 28b4e1d..a9bb086 100644 > --- a/tests/automake.mk > +++ b/tests/automake.mk > @@ -242,7 +242,7 @@ tests_test_multipath_SOURCES = tests/test-multipath.c > tests_test_multipath_LDADD = lib/libopenvswitch.a > > noinst_PROGRAMS += tests/test-openflowd > -EXTRA_DIST += tests/test-openflowd.8.in > +MAN_ROOTS += tests/test-openflowd.8.in > DISTCLEANFILES += tests/test-openflowd.8 > noinst_man_MANS += tests/ovs-openflowd.8 > tests_test_openflowd_SOURCES = tests/test-openflowd.c > diff --git a/utilities/automake.mk b/utilities/automake.mk > index 2cfdf8e..420d5fc 100644 > --- a/utilities/automake.mk > +++ b/utilities/automake.mk > @@ -15,24 +15,26 @@ noinst_SCRIPTS += utilities/ovs-pki-cgi > scripts_SCRIPTS += utilities/ovs-ctl utilities/ovs-lib.sh utilities/ovs-save > > EXTRA_DIST += \ > + utilities/ovs-ctl.in \ > + utilities/ovs-lib.sh.in \ > + utilities/ovs-parse-leaks.in \ > + utilities/ovs-pcap.in \ > + utilities/ovs-pki-cgi.in \ > + utilities/ovs-pki.in \ > + utilities/ovs-save \ > + utilities/ovs-tcpundump.in \ > + utilities/ovs-vlan-test.in > +MAN_ROOTS += \ > utilities/ovs-appctl.8.in \ > utilities/ovs-benchmark.1.in \ > utilities/ovs-controller.8.in \ > - utilities/ovs-ctl.in \ > + utilities/ovs-ctl.8 \ > utilities/ovs-dpctl.8.in \ > - utilities/ovs-lib.sh.in \ > utilities/ovs-ofctl.8.in \ > utilities/ovs-parse-leaks.8 \ > - utilities/ovs-parse-leaks.in \ > utilities/ovs-pcap.1.in \ > - utilities/ovs-pcap.in \ > - utilities/ovs-pki-cgi.in \ > utilities/ovs-pki.8.in \ > - utilities/ovs-pki.in \ > - utilities/ovs-save \ > utilities/ovs-tcpundump.1.in \ > - utilities/ovs-tcpundump.in \ > - utilities/ovs-vlan-test.in \ > utilities/ovs-vlan-bug-workaround.8.in \ > utilities/ovs-vlan-test.8.in \ > utilities/ovs-vsctl.8.in > diff --git a/utilities/bugtool/automake.mk b/utilities/bugtool/automake.mk > index 98b6db4..2dd561d 100644 > --- a/utilities/bugtool/automake.mk > +++ b/utilities/bugtool/automake.mk > @@ -2,6 +2,7 @@ if HAVE_PYTHON > sbin_SCRIPTS += utilities/bugtool/ovs-bugtool > CLEANFILES += utilities/bugtool/ovs-bugtool > man_MANS += utilities/bugtool/ovs-bugtool.8 > +MAN_ROOTS += utilities/bugtool/ovs-bugtool.8 > > bugtool_plugins = \ > utilities/bugtool/plugins/kernel-info/openvswitch.xml \ > diff --git a/vswitchd/automake.mk b/vswitchd/automake.mk > index 1df5dff..804cf58 100644 > --- a/vswitchd/automake.mk > +++ b/vswitchd/automake.mk > @@ -21,9 +21,8 @@ vswitchd_ovs_vswitchd_LDADD = \ > lib/libsflow.a \ > lib/libopenvswitch.a \ > $(SSL_LIBS) > -EXTRA_DIST += \ > - vswitchd/ovs-vswitchd.8.in \ > - vswitchd/INTERNALS > +EXTRA_DIST += vswitchd/INTERNALS > +MAN_ROOTS += vswitchd/ovs-vswitchd.8.in > > if HAVE_NETLINK > sbin_PROGRAMS += vswitchd/ovs-brcompatd > @@ -33,7 +32,7 @@ vswitchd_ovs_brcompatd_SOURCES = \ > vswitchd/vswitch-idl.h > vswitchd_ovs_brcompatd_LDADD = lib/libopenvswitch.a $(SSL_LIBS) > endif > -EXTRA_DIST += vswitchd/ovs-brcompatd.8.in > +MAN_ROOTS += vswitchd/ovs-brcompatd.8.in > > # vswitch schema and IDL > OVSIDL_BUILT += \ > -- > 1.7.4.4 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev