Daniel Veillard <veillard@xxxxxxxxxx> 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. ... > 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. 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 -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list