[Libvir] [PATCH] Make "make distcheck" work.

Here's another infrastructure-fixing patch. I got most of the way to an honest "make distcheck", but fixing a final failing sub-test wasn't worth the effort, so I punted and added the top level "distuninstallcheck" target to make it skip that part. Make "make distcheck" work. * Makefile.am: Expand some "*" wildcards, and (for now) disable the relatively unimportant, distuninstallcheck target. Fix a few redirect-directly-to-target bugs. Add a few $(srcdir)/ prefixes and add an uninstall-local rule. * docs/Makefile.am: More of the same. Split some long lines. * docs/examples/Makefile.am: Likewise. * python/Makefile.am: Likewise. * python/tests/Makefile.am: Likewise. * qemud/Makefile.am: Likewise. * tests/Makefile.am: Remove the directories already listed in SUBDIRS. --- Makefile.am | 3 + docs/Makefile.am | 95 +++++++++++++++++++++++++++++++++++++++----- docs/examples/Makefile.am | 13 ++++-- python/Makefile.am | 6 ++- python/tests/Makefile.am | 2 + qemud/Makefile.am | 26 ++++++++---- tests/Makefile.am | 8 +--- 7 files changed, 120 insertions(+), 33 deletions(-) diff --git a/Makefile.am b/Makefile.am index e1e6884..eaa204e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -41,3 +41,6 @@ cov-am: > $(top_builddir)/coverage/index.html for i in $(top_builddir)/src/*.gcov ; do o=`echo $$i | sed -e 's,$(top_builddir)/src,coverage,'` ; \ perl $(srcdir)/scripts/coverage-report-entry.pl $$i > $$o.html ; done + +# disable this check +distuninstallcheck: diff --git a/docs/Makefile.am b/docs/Makefile.am index c7dfe24..2aa923d 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -7,18 +7,82 @@ DOC_SOURCE_DIR=../src PAGES= index.html bugs.html FAQ.html remote.html APIPAGES=APIconstructors.html APIfiles.html APIfunctions.html \ APIsymbols.html APIchunk0.html -EXTRA_DIST= \ - libvirt-api.xml libvirt-refs.xml apibuild.py \ - *.xsl *.html *.gif html/*.html html/*.png \ - *.xml *.rng - man_MANS= +html = \ + book1.html \ + index.html \ + libvirt-conf.html \ + libvirt-lib.html \ + libvirt-libvirt.html \ + libvirt-virterror.html + +png = \ + left.png \ + up.png \ + home.png \ + right.png + +gif = \ + Libxml2-Logo-90x34.gif \ + architecture.gif \ + node.gif \ + redhat.gif + +dot_html = \ + APIchunk0.html \ + APIchunk1.html \ + APIchunk2.html \ + APIchunk3.html \ + APIchunk4.html \ + APIchunk5.html \ + APIchunk6.html \ + APIchunk7.html \ + APIconstructors.html \ + APIfiles.html \ + APIfunctions.html \ + APIsymbols.html \ + FAQ.html \ + architecture.html \ + bugs.html \ + downloads.html \ + errors.html \ + format.html \ + hvsupport.html \ + index.html \ + intro.html \ + libvir.html \ + news.html \ + python.html \ + remote.html \ + uri.html + +xml = \ + libvirt-api.xml \ + libvirt-refs.xml \ + testdomfc4.xml \ + testdomfv0.xml \ + testnetdef.xml \ + testnetpriv.xml \ + testnode.xml + +rng = \ + libvirt.rng \ + network.rng + +EXTRA_DIST= \ + libvirt-api.xml libvirt-refs.xml apibuild.py \ + site.xsl newapi.xsl api.xsl \ + $(dot_html) $(gif) html \ + $(xml) $(rng) + all: web $(top_builddir)/NEWS $(man_MANS) virsh.1: virsh.pod - pod2man -c "Virtualization Support" virsh.pod > virsh.1 && cp virsh.1 $(top_builddir) + pod2man -c "Virtualization Support" $(srcdir)/virsh.pod > $@-t + mv $@-t $@ + cp $@ $(top_builddir) api: libvirt-api.xml libvirt-refs.xml $(APIPAGES) $(srcdir)/html/index.html @@ -50,7 +114,9 @@ $(srcdir)/html/index.html: libvirt-api.xml $(srcdir)/newapi.xsl echo "Validating the resulting XHTML pages" ; \ $(XMLLINT) --nonet --valid --noout html/*.html ; fi ); -libvirt-api.xml libvirt-refs.xml: apibuild.py ../include/libvirt/*.h ../src/*.h ../src/*.c +libvirt-api.xml libvirt-refs.xml: apibuild.py \ + $(srcdir)/../include/libvirt/*.h \ + $(srcdir)/../src/*.h $(srcdir)/../src/*.c -(./apibuild.py) $(top_builddir)/NEWS: $(top_srcdir)/docs/news.xsl $(top_srcdir)/docs/news.html @@ -67,8 +133,15 @@ rebuild: api all install-data-local: $(mkinstalldirs) $(DESTDIR)$(HTML_DIR) - -@INSTALL@ -m 0644 $(srcdir)/libvir.html $(srcdir)/FAQ.html $(srcdir)/redhat.gif $(srcdir)/Libxml2-Logo-90x34.gif $(DESTDIR)$(HTML_DIR) + -@INSTALL@ -m 0644 $(srcdir)/libvir.html $(srcdir)/FAQ.html \ + $(srcdir)/redhat.gif $(srcdir)/Libxml2-Logo-90x34.gif \ + $(DESTDIR)$(HTML_DIR) $(mkinstalldirs) $(DESTDIR)$(HTML_DIR)/html - -@INSTALL@ -m 0644 $(srcdir)/html/*.html $(DESTDIR)$(HTML_DIR)/html - -@INSTALL@ -m 0644 $(srcdir)/html/*.png $(DESTDIR)$(HTML_DIR)/html - + for h in $(html); do \ + $(INSTALL) -m 0644 $(srcdir)/html/$$h $(DESTDIR)$(HTML_DIR)/html; done + for p in $(png); do \ + $(INSTALL) -m 0644 $(srcdir)/html/$$p $(DESTDIR)$(HTML_DIR)/html; done + +uninstall-local: + for h in $(html); do rm $(DESTDIR)$(HTML_DIR)/html/$$h; done + for p in $(png); do rm $(DESTDIR)$(HTML_DIR)/html/$$p; done diff --git a/docs/examples/Makefile.am b/docs/examples/Makefile.am index c62d128..8a66999 100644 --- a/docs/examples/Makefile.am +++ b/docs/examples/Makefile.am @@ -6,15 +6,20 @@ LDADDS = @STATIC_BINARIES@ $(WARN_CFLAGS) $(top_builddir)/src/libvirt.la rebuild: examples.xml index.html -examples.xml: index.py *.c +examples.xml: index.py info1.c suspend.c -@($(srcdir)/index.py) index.html: examples.xml examples.xsl $(top_srcdir)/docs/site.xsl - -@(if [ -x $(XSLTPROC) ] ; then $(XSLTPROC) examples.xsl examples.xml && echo "Rebuilt web page" && xmllint --valid --noout index.html ; fi) + -@(if [ -x $(XSLTPROC) ] ; then \ + $(XSLTPROC) examples.xsl examples.xml \ + && echo "Rebuilt web page" \ + && xmllint --valid --noout index.html; \ + fi) install-data-local: $(mkinstalldirs) $(DESTDIR)$(HTML_DIR) - -@INSTALL@ -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR) + -@INSTALL@ -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml \ + $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR) EXTRA_DIST=examples.xsl index.py examples.xml @@ -37,5 +42,3 @@ tests: $(noinst_PROGRAMS) @(echo '## examples regression tests') @($(CHECKER) ./suspend) @($(CHECKER) ./info1) - - diff --git a/python/Makefile.am b/python/Makefile.am index 4f97610..1fe60ff 100644 --- a/python/Makefile.am +++ b/python/Makefile.am @@ -49,7 +49,8 @@ $(GENERATED): $(srcdir)/$(GENERATE) $(API_DESC) $(PYTHON) $(srcdir)/$(GENERATE) $(srcdir) libvirt.py: $(srcdir)/libvir.py libvirtclass.py - cat $(srcdir)/libvir.py libvirtclass.py > libvirt.py + cat $(srcdir)/libvir.py libvirtclass.py > $@-t + mv $@-t $@ $(libvirtmod_la_OBJECTS): $(GENERATED) @@ -60,6 +61,9 @@ install-data-local: @(for doc in $(DOCS) ; \ do @INSTALL@ -m 0644 $$doc $(DESTDIR)$(DOCS_DIR) ; done) +uninstall-local: + rm -f $(DESTDIR)$(pythondir)/libvirt.py + CLEANFILES= $(GENERATED) libvirt.py else diff --git a/python/tests/Makefile.am b/python/tests/Makefile.am index dfa52e4..6011fef 100644 --- a/python/tests/Makefile.am +++ b/python/tests/Makefile.am @@ -32,3 +32,5 @@ install-data-local: -(for test in $(PYTESTS); \ do @INSTALL@ -m 0644 $(srcdir)/$$test $(DESTDIR)$(EXAMPLE_DIR) ; done) +uninstall-local: + for test in $(PYTESTS); do rm -f $(DESTDIR)$(EXAMPLE_DIR)/$$test; done diff --git a/qemud/Makefile.am b/qemud/Makefile.am index 3da6265..6aedf8c 100644 --- a/qemud/Makefile.am +++ b/qemud/Makefile.am @@ -47,19 +47,23 @@ libvirtd_CFLAGS += $(AVAHI_CFLAGS) libvirtd_LDADD += $(AVAHI_LIBS) endif +default_xml_dest = libvirt/qemu/networks/default.xml install-data-local: install-init mkdir -p $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart - $(INSTALL_DATA) $(srcdir)/default-network.xml $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml - sed -i -e "s,</name>,</name>\n <uuid>$(UUID)</uuid>," $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml + $(INSTALL_DATA) $(srcdir)/default-network.xml \ + $(DESTDIR)$(sysconfdir)/$(default_xml_dest) + sed -i -e "s,</name>,</name>\n <uuid>$(UUID)</uuid>," \ + $(DESTDIR)$(sysconfdir)/$(default_xml_dest) test -e $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml || \ - ln -s ../default.xml $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml + ln -s ../default.xml \ + $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml mkdir -p $(DESTDIR)$(localstatedir)/log/libvirt/qemu mkdir -p $(DESTDIR)$(localstatedir)/run/libvirt mkdir -p $(DESTDIR)$(localstatedir)/lib/libvirt uninstall-local: uninstall-init rm -f $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml - rm -f $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml + rm -f $(DESTDIR)$(sysconfdir)/$(default_xml_dest) rmdir $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart || : rmdir $(DESTDIR)$(localstatedir)/log/libvirt/qemu || : rmdir $(DESTDIR)$(localstatedir)/run/libvirt || : @@ -95,20 +99,24 @@ remote_dispatch_proc_switch.h: remote_generate_stubs.pl remote_protocol.x if LIBVIRT_INIT_SCRIPTS_RED_HAT install-init: libvirtd.init mkdir -p $(DESTDIR)$(sysconfdir)/rc.d/init.d - $(INSTALL_SCRIPT) libvirtd.init $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd + $(INSTALL_SCRIPT) libvirtd.init \ + $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd mkdir -p $(DESTDIR)$(sysconfdir)/sysconfig - $(INSTALL_SCRIPT) $(srcdir)/libvirtd.sysconf $(DESTDIR)$(sysconfdir)/sysconfig/libvirtd + $(INSTALL_SCRIPT) $(srcdir)/libvirtd.sysconf \ + $(DESTDIR)$(sysconfdir)/sysconfig/libvirtd uninstall-init: - rm -f $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd + rm -f $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd \ + $(DESTDIR)$(sysconfdir)/sysconfig/libvirtd libvirtd.init: libvirtd.init.in sed \ -e s!\@localstatedir\@!@localstatedir@!g \ -e s!\@sbindir\@!@sbindir@!g \ -e s!\@sysconfdir\@!@sysconfdir@!g \ - < $< > $@ - chmod a+x libvirtd.init + < $< > $@-t + chmod a+x $@-t + mv $@-t $@ CLEANFILES = libvirtd.init else diff --git a/tests/Makefile.am b/tests/Makefile.am index fec2f20..998877a 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -34,14 +34,8 @@ LDADDS = \ EXTRA_DIST = \ xmlrpcserver.py \ test_conf.sh \ - confdata \ qemuxml2argvdata \ - xml2sexprdata \ - nodeinfodata \ - virshdata \ - xencapsdata \ - sexpr2xmldata \ - xmconfigdata + nodeinfodata noinst_PROGRAMS = xmlrpctest xml2sexprtest sexpr2xmltest virshtest conftest \ reconnect xmconfigtest xencapstest qemuxml2argvtest qemuxml2xmltest \ -- 1.5.3.5.666.gfb5f

On Wed, Nov 14, 2007 at 03:57:10PM +0100, Jim Meyering wrote:
Here's another infrastructure-fixing patch. I got most of the way to an honest "make distcheck", but fixing a final failing sub-test wasn't worth the effort, so I punted and added the top level "distuninstallcheck" target to make it skip that part.
Make "make distcheck" work.
* Makefile.am: Expand some "*" wildcards, and (for now) disable the relatively unimportant, distuninstallcheck target. Fix a few redirect-directly-to-target bugs. Add a few $(srcdir)/ prefixes and add an uninstall-local rule. * docs/Makefile.am: More of the same. Split some long lines. * docs/examples/Makefile.am: Likewise. * python/Makefile.am: Likewise. * python/tests/Makefile.am: Likewise. * qemud/Makefile.am: Likewise. * tests/Makefile.am: Remove the directories already listed in SUBDIRS.
okay, lot of this makes sense. The only drawback seems to be loosing the ability to use wildcards to list for example the HTML pages or C examples ... BTW, have you noticed that docs/examples/Makefile.am is automatically generated, so for that part you will instead need to fix index.py which does the indexing/generation. okay in principle but the docs/examples/Makefile.am change need to be fixed differently. Daniel -- Red Hat Virtualization group http://redhat.com/virtualization/ Daniel Veillard | virtualization library http://libvirt.org/ veillard@redhat.com | libxml GNOME XML XSLT toolkit http://xmlsoft.org/ http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/

Daniel Veillard <veillard@redhat.com> wrote:
On Wed, Nov 14, 2007 at 03:57:10PM +0100, Jim Meyering wrote:
Here's another infrastructure-fixing patch. I got most of the way to an honest "make distcheck", but fixing a final failing sub-test wasn't worth the effort, so I punted and added the top level "distuninstallcheck" target to make it skip that part.
Hi Daniel, Thanks for the thorough review!
Make "make distcheck" work.
* Makefile.am: Expand some "*" wildcards, and (for now) disable the relatively unimportant, distuninstallcheck target. Fix a few redirect-directly-to-target bugs. Add a few $(srcdir)/ prefixes and add an uninstall-local rule. * docs/Makefile.am: More of the same. Split some long lines. * docs/examples/Makefile.am: Likewise. * python/Makefile.am: Likewise. * python/tests/Makefile.am: Likewise. * qemud/Makefile.am: Likewise. * tests/Makefile.am: Remove the directories already listed in SUBDIRS.
okay, lot of this makes sense. The only drawback seems to be loosing the ability to use wildcards to list for example the HTML pages or C examples ...
At first, it does seem like using wildcards is easier than listing the files explicitly, but listing them has advantages: - with wildcards, one can accidentally distribute/install files just because there was a spare .c, .xml, .html file in the wrong directory. With explicit lists, that can't happen. - with the explicit list, you have a record in version control of which files were distributed: less reliance on state of build directory, hence more reproducible. Note that if you forget to add the name of a new file to a list, there is little chance it'll make it past "make distcheck", as long as something depends on the new file.
BTW, have you noticed that docs/examples/Makefile.am is automatically generated, so for that part you will instead need to fix index.py which does the indexing/generation.
Oh! Thanks. I didn't know that. Will adjust. At the same time, I'll tweak the build rules so that the generated file is read-only. That should serve as a warning to anyone else who is tempted to modify that file directly.
okay in principle but the docs/examples/Makefile.am change need to be fixed differently.
New patch coming up...

Daniel Veillard <veillard@redhat.com> wrote:
Here's another infrastructure-fixing patch. I got most of the way to an honest "make distcheck", but fixing a final failing sub-test wasn't worth the effort, so I punted and added the top level "distuninstallcheck" target to make it skip that part. ... okay, lot of this makes sense. The only drawback seems to be loosing
On Wed, Nov 14, 2007 at 03:57:10PM +0100, Jim Meyering wrote: the ability to use wildcards to list for example the HTML pages or C examples ... BTW, have you noticed that docs/examples/Makefile.am is automatically generated, so for that part you will instead need to fix index.py which does the indexing/generation.
okay in principle but the docs/examples/Makefile.am change need to be fixed differently.
Adjusted patch below. I've changed index.py so it generates what you saw before. I noticed differences due to use of unsorted glob.glob, so made index.py sort that 2-item list. Also, it now emits this first line: +# -*- buffer-read-only: t -*- vi: set ro: so at least two editors will see it as a read-only file. Make "make distcheck" work. * Makefile.am: Expand some "*" wildcards, and (for now) disable the relatively unimportant, distuninstallcheck target. Fix a few redirect-directly-to-target bugs. Add a few $(srcdir)/ prefixes and add an uninstall-local rule. * docs/Makefile.am: More of the same. Split some long lines. * python/Makefile.am: Likewise. * python/tests/Makefile.am: Likewise. * qemud/Makefile.am: Likewise. * tests/Makefile.am: Remove the directories already listed in SUBDIRS. * docs/examples/index.py: Adapt to produce the desired changes in docs/examples/Makefile.am. Also, sort *.c, so results are reproducible, and emit a comment telling emacs and vi that the file is read-only. * docs/examples/Makefile.am: Regenerate. --- Makefile.am | 3 + docs/Makefile.am | 95 +++++++++++++++++++++++++++++++++++++++----- docs/examples/Makefile.am | 32 ++++++++------- docs/examples/index.py | 34 ++++++++++------ python/Makefile.am | 6 ++- python/tests/Makefile.am | 2 + qemud/Makefile.am | 26 ++++++++---- tests/Makefile.am | 8 +--- 8 files changed, 151 insertions(+), 55 deletions(-) diff --git a/Makefile.am b/Makefile.am index e1e6884..eaa204e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -41,3 +41,6 @@ cov-am: > $(top_builddir)/coverage/index.html for i in $(top_builddir)/src/*.gcov ; do o=`echo $$i | sed -e 's,$(top_builddir)/src,coverage,'` ; \ perl $(srcdir)/scripts/coverage-report-entry.pl $$i > $$o.html ; done + +# disable this check +distuninstallcheck: diff --git a/docs/Makefile.am b/docs/Makefile.am index c7dfe24..2aa923d 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -7,18 +7,82 @@ DOC_SOURCE_DIR=../src PAGES= index.html bugs.html FAQ.html remote.html APIPAGES=APIconstructors.html APIfiles.html APIfunctions.html \ APIsymbols.html APIchunk0.html -EXTRA_DIST= \ - libvirt-api.xml libvirt-refs.xml apibuild.py \ - *.xsl *.html *.gif html/*.html html/*.png \ - *.xml *.rng - man_MANS= +html = \ + book1.html \ + index.html \ + libvirt-conf.html \ + libvirt-lib.html \ + libvirt-libvirt.html \ + libvirt-virterror.html + +png = \ + left.png \ + up.png \ + home.png \ + right.png + +gif = \ + Libxml2-Logo-90x34.gif \ + architecture.gif \ + node.gif \ + redhat.gif + +dot_html = \ + APIchunk0.html \ + APIchunk1.html \ + APIchunk2.html \ + APIchunk3.html \ + APIchunk4.html \ + APIchunk5.html \ + APIchunk6.html \ + APIchunk7.html \ + APIconstructors.html \ + APIfiles.html \ + APIfunctions.html \ + APIsymbols.html \ + FAQ.html \ + architecture.html \ + bugs.html \ + downloads.html \ + errors.html \ + format.html \ + hvsupport.html \ + index.html \ + intro.html \ + libvir.html \ + news.html \ + python.html \ + remote.html \ + uri.html + +xml = \ + libvirt-api.xml \ + libvirt-refs.xml \ + testdomfc4.xml \ + testdomfv0.xml \ + testnetdef.xml \ + testnetpriv.xml \ + testnode.xml + +rng = \ + libvirt.rng \ + network.rng + +EXTRA_DIST= \ + libvirt-api.xml libvirt-refs.xml apibuild.py \ + site.xsl newapi.xsl api.xsl \ + $(dot_html) $(gif) html \ + $(xml) $(rng) + all: web $(top_builddir)/NEWS $(man_MANS) virsh.1: virsh.pod - pod2man -c "Virtualization Support" virsh.pod > virsh.1 && cp virsh.1 $(top_builddir) + pod2man -c "Virtualization Support" $(srcdir)/virsh.pod > $@-t + mv $@-t $@ + cp $@ $(top_builddir) api: libvirt-api.xml libvirt-refs.xml $(APIPAGES) $(srcdir)/html/index.html @@ -50,7 +114,9 @@ $(srcdir)/html/index.html: libvirt-api.xml $(srcdir)/newapi.xsl echo "Validating the resulting XHTML pages" ; \ $(XMLLINT) --nonet --valid --noout html/*.html ; fi ); -libvirt-api.xml libvirt-refs.xml: apibuild.py ../include/libvirt/*.h ../src/*.h ../src/*.c +libvirt-api.xml libvirt-refs.xml: apibuild.py \ + $(srcdir)/../include/libvirt/*.h \ + $(srcdir)/../src/*.h $(srcdir)/../src/*.c -(./apibuild.py) $(top_builddir)/NEWS: $(top_srcdir)/docs/news.xsl $(top_srcdir)/docs/news.html @@ -67,8 +133,15 @@ rebuild: api all install-data-local: $(mkinstalldirs) $(DESTDIR)$(HTML_DIR) - -@INSTALL@ -m 0644 $(srcdir)/libvir.html $(srcdir)/FAQ.html $(srcdir)/redhat.gif $(srcdir)/Libxml2-Logo-90x34.gif $(DESTDIR)$(HTML_DIR) + -@INSTALL@ -m 0644 $(srcdir)/libvir.html $(srcdir)/FAQ.html \ + $(srcdir)/redhat.gif $(srcdir)/Libxml2-Logo-90x34.gif \ + $(DESTDIR)$(HTML_DIR) $(mkinstalldirs) $(DESTDIR)$(HTML_DIR)/html - -@INSTALL@ -m 0644 $(srcdir)/html/*.html $(DESTDIR)$(HTML_DIR)/html - -@INSTALL@ -m 0644 $(srcdir)/html/*.png $(DESTDIR)$(HTML_DIR)/html - + for h in $(html); do \ + $(INSTALL) -m 0644 $(srcdir)/html/$$h $(DESTDIR)$(HTML_DIR)/html; done + for p in $(png); do \ + $(INSTALL) -m 0644 $(srcdir)/html/$$p $(DESTDIR)$(HTML_DIR)/html; done + +uninstall-local: + for h in $(html); do rm $(DESTDIR)$(HTML_DIR)/html/$$h; done + for p in $(png); do rm $(DESTDIR)$(HTML_DIR)/html/$$p; done diff --git a/docs/examples/Makefile.am b/docs/examples/Makefile.am index c62d128..6b5963e 100644 --- a/docs/examples/Makefile.am +++ b/docs/examples/Makefile.am @@ -1,41 +1,45 @@ +# -*- buffer-read-only: t -*- vi: set ro: # Beware this is autogenerated by index.py SUBDIRS=python INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I@srcdir@/include DEPS = $(top_builddir)/src/libvirt.la -LDADDS = @STATIC_BINARIES@ $(WARN_CFLAGS) $(top_builddir)/src/libvirt.la +LDADDS = @STATIC_BINARIES@ $(WARN_CFLAGS) $(top_builddir)/src/libvirt.la rebuild: examples.xml index.html -examples.xml: index.py *.c +examples.xml: index.py info1.c suspend.c -@($(srcdir)/index.py) index.html: examples.xml examples.xsl $(top_srcdir)/docs/site.xsl - -@(if [ -x $(XSLTPROC) ] ; then $(XSLTPROC) examples.xsl examples.xml && echo "Rebuilt web page" && xmllint --valid --noout index.html ; fi) + -@(if [ -x $(XSLTPROC) ] ; then \ + $(XSLTPROC) examples.xsl examples.xml \ + && echo "Rebuilt web page" \ + && xmllint --valid --noout index.html; \ + fi) -install-data-local: +install-data-local: $(mkinstalldirs) $(DESTDIR)$(HTML_DIR) - -@INSTALL@ -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR) + -@INSTALL@ -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml \ + $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR) EXTRA_DIST=examples.xsl index.py examples.xml -noinst_PROGRAMS=suspend info1 - -suspend_SOURCES=suspend.c -suspend_LDFLAGS= -suspend_DEPENDENCIES= $(DEPS) -suspend_LDADD= $(LDADDS) +noinst_PROGRAMS=info1 suspend info1_SOURCES=info1.c info1_LDFLAGS= info1_DEPENDENCIES= $(DEPS) info1_LDADD= $(LDADDS) +suspend_SOURCES=suspend.c +suspend_LDFLAGS= +suspend_DEPENDENCIES= $(DEPS) +suspend_LDADD= $(LDADDS) + valgrind: $(MAKE) CHECKER='valgrind' tests tests: $(noinst_PROGRAMS) @(echo '## examples regression tests') - @($(CHECKER) ./suspend) @($(CHECKER) ./info1) - - + @($(CHECKER) ./suspend) diff --git a/docs/examples/index.py b/docs/examples/index.py index 2bc2b16..7ea89e1 100755 --- a/docs/examples/index.py +++ b/docs/examples/index.py @@ -177,10 +177,10 @@ def parse(filename, output): type = id.get_type() output.write(" <%s line='%d' name='%s'/>\n" % (type, line, name)) - + output.write(" </uses>\n") output.write(" </example>\n") - + return idx def dump_symbols(output): @@ -220,24 +220,29 @@ def dump_Makefile(): extras.append(file) for file in glob.glob('*.res'): extras.append(file) - Makefile="""# Beware this is autogenerated by index.py + Makefile="""# -*- buffer-read-only: t -*- vi: set ro: +# Beware this is autogenerated by index.py SUBDIRS=python INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I@srcdir@/include DEPS = $(top_builddir)/src/libvirt.la -LDADDS = @STATIC_BINARIES@ $(WARN_CFLAGS) $(top_builddir)/src/libvirt.la +LDADDS = @STATIC_BINARIES@ $(WARN_CFLAGS) $(top_builddir)/src/libvirt.la rebuild: examples.xml index.html -examples.xml: index.py *.c +examples.xml: index.py __C_SOURCES__ -@($(srcdir)/index.py) index.html: examples.xml examples.xsl $(top_srcdir)/docs/site.xsl - -@(if [ -x $(XSLTPROC) ] ; then \ - $(XSLTPROC) examples.xsl examples.xml && echo "Rebuilt web page" && xmllint --valid --noout index.html ; fi) + -@(if [ -x $(XSLTPROC) ] ; then \\ + $(XSLTPROC) examples.xsl examples.xml \\ + && echo "Rebuilt web page" \\ + && xmllint --valid --noout index.html; \\ + fi) -install-data-local: +install-data-local: $(mkinstalldirs) $(DESTDIR)$(HTML_DIR) - -@INSTALL@ -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR) + -@INSTALL@ -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml \\ + $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR) """ EXTRA_DIST="" @@ -258,7 +263,9 @@ install-data-local: for test in tests: Makefile = Makefile + "\t@($(CHECKER) %s)\n" % (test) # Makefile = Makefile + '\t@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)\n' - Makefile = Makefile + "\n\n" + + c_src = [("%s.c" % x) for x in examples] + Makefile = Makefile.replace("__C_SOURCES__", string.join(c_src, ' ')) try: old = open("Makefile.am", "r").read() if old != Makefile: @@ -284,13 +291,15 @@ Makefile print "Updated .cvsignore" except: print "Failed to read or save .cvsignore" - + if __name__ == "__main__": load_api() output = open("examples.xml", "w") output.write("<examples>\n") - for file in glob.glob('*.c'): + c_src = glob.glob('*.c') + c_src.sort() + for file in c_src: parse(file, output) examples.append(file[:-2]) @@ -299,4 +308,3 @@ if __name__ == "__main__": output.write("</examples>\n") output.close() dump_Makefile() - diff --git a/python/Makefile.am b/python/Makefile.am index 4f97610..1fe60ff 100644 --- a/python/Makefile.am +++ b/python/Makefile.am @@ -49,7 +49,8 @@ $(GENERATED): $(srcdir)/$(GENERATE) $(API_DESC) $(PYTHON) $(srcdir)/$(GENERATE) $(srcdir) libvirt.py: $(srcdir)/libvir.py libvirtclass.py - cat $(srcdir)/libvir.py libvirtclass.py > libvirt.py + cat $(srcdir)/libvir.py libvirtclass.py > $@-t + mv $@-t $@ $(libvirtmod_la_OBJECTS): $(GENERATED) @@ -60,6 +61,9 @@ install-data-local: @(for doc in $(DOCS) ; \ do @INSTALL@ -m 0644 $$doc $(DESTDIR)$(DOCS_DIR) ; done) +uninstall-local: + rm -f $(DESTDIR)$(pythondir)/libvirt.py + CLEANFILES= $(GENERATED) libvirt.py else diff --git a/python/tests/Makefile.am b/python/tests/Makefile.am index dfa52e4..6011fef 100644 --- a/python/tests/Makefile.am +++ b/python/tests/Makefile.am @@ -32,3 +32,5 @@ install-data-local: -(for test in $(PYTESTS); \ do @INSTALL@ -m 0644 $(srcdir)/$$test $(DESTDIR)$(EXAMPLE_DIR) ; done) +uninstall-local: + for test in $(PYTESTS); do rm -f $(DESTDIR)$(EXAMPLE_DIR)/$$test; done diff --git a/qemud/Makefile.am b/qemud/Makefile.am index 3da6265..6aedf8c 100644 --- a/qemud/Makefile.am +++ b/qemud/Makefile.am @@ -47,19 +47,23 @@ libvirtd_CFLAGS += $(AVAHI_CFLAGS) libvirtd_LDADD += $(AVAHI_LIBS) endif +default_xml_dest = libvirt/qemu/networks/default.xml install-data-local: install-init mkdir -p $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart - $(INSTALL_DATA) $(srcdir)/default-network.xml $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml - sed -i -e "s,</name>,</name>\n <uuid>$(UUID)</uuid>," $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml + $(INSTALL_DATA) $(srcdir)/default-network.xml \ + $(DESTDIR)$(sysconfdir)/$(default_xml_dest) + sed -i -e "s,</name>,</name>\n <uuid>$(UUID)</uuid>," \ + $(DESTDIR)$(sysconfdir)/$(default_xml_dest) test -e $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml || \ - ln -s ../default.xml $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml + ln -s ../default.xml \ + $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml mkdir -p $(DESTDIR)$(localstatedir)/log/libvirt/qemu mkdir -p $(DESTDIR)$(localstatedir)/run/libvirt mkdir -p $(DESTDIR)$(localstatedir)/lib/libvirt uninstall-local: uninstall-init rm -f $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml - rm -f $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml + rm -f $(DESTDIR)$(sysconfdir)/$(default_xml_dest) rmdir $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart || : rmdir $(DESTDIR)$(localstatedir)/log/libvirt/qemu || : rmdir $(DESTDIR)$(localstatedir)/run/libvirt || : @@ -95,20 +99,24 @@ remote_dispatch_proc_switch.h: remote_generate_stubs.pl remote_protocol.x if LIBVIRT_INIT_SCRIPTS_RED_HAT install-init: libvirtd.init mkdir -p $(DESTDIR)$(sysconfdir)/rc.d/init.d - $(INSTALL_SCRIPT) libvirtd.init $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd + $(INSTALL_SCRIPT) libvirtd.init \ + $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd mkdir -p $(DESTDIR)$(sysconfdir)/sysconfig - $(INSTALL_SCRIPT) $(srcdir)/libvirtd.sysconf $(DESTDIR)$(sysconfdir)/sysconfig/libvirtd + $(INSTALL_SCRIPT) $(srcdir)/libvirtd.sysconf \ + $(DESTDIR)$(sysconfdir)/sysconfig/libvirtd uninstall-init: - rm -f $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd + rm -f $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd \ + $(DESTDIR)$(sysconfdir)/sysconfig/libvirtd libvirtd.init: libvirtd.init.in sed \ -e s!\@localstatedir\@!@localstatedir@!g \ -e s!\@sbindir\@!@sbindir@!g \ -e s!\@sysconfdir\@!@sysconfdir@!g \ - < $< > $@ - chmod a+x libvirtd.init + < $< > $@-t + chmod a+x $@-t + mv $@-t $@ CLEANFILES = libvirtd.init else diff --git a/tests/Makefile.am b/tests/Makefile.am index fec2f20..998877a 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -34,14 +34,8 @@ LDADDS = \ EXTRA_DIST = \ xmlrpcserver.py \ test_conf.sh \ - confdata \ qemuxml2argvdata \ - xml2sexprdata \ - nodeinfodata \ - virshdata \ - xencapsdata \ - sexpr2xmldata \ - xmconfigdata + nodeinfodata noinst_PROGRAMS = xmlrpctest xml2sexprtest sexpr2xmltest virshtest conftest \ reconnect xmconfigtest xencapstest qemuxml2argvtest qemuxml2xmltest \ -- 1.5.3.5.666.gfb5f

On Wed, Nov 14, 2007 at 07:56:02PM +0100, Jim Meyering wrote:
Daniel Veillard <veillard@redhat.com> wrote:
Here's another infrastructure-fixing patch. I got most of the way to an honest "make distcheck", but fixing a final failing sub-test wasn't worth the effort, so I punted and added the top level "distuninstallcheck" target to make it skip that part. ... okay, lot of this makes sense. The only drawback seems to be loosing
On Wed, Nov 14, 2007 at 03:57:10PM +0100, Jim Meyering wrote: the ability to use wildcards to list for example the HTML pages or C examples ... BTW, have you noticed that docs/examples/Makefile.am is automatically generated, so for that part you will instead need to fix index.py which does the indexing/generation.
okay in principle but the docs/examples/Makefile.am change need to be fixed differently.
Adjusted patch below. I've changed index.py so it generates what you saw before. I noticed differences due to use of unsorted glob.glob, so made index.py sort that 2-item list.
Also, it now emits this first line:
+# -*- buffer-read-only: t -*- vi: set ro:
okay, makes sense to me, +1 thanks a lot ! Daniel -- Red Hat Virtualization group http://redhat.com/virtualization/ Daniel Veillard | virtualization library http://libvirt.org/ veillard@redhat.com | libxml GNOME XML XSLT toolkit http://xmlsoft.org/ http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
participants (2)
-
Daniel Veillard
-
Jim Meyering