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

Reply via email to