Extracted kernel structures for device addressing in ifconfig.
[virt-mem.git] / Makefile.in
index 192b027..fa1ad9d 100644 (file)
@@ -20,45 +20,92 @@ PACKAGE             = @PACKAGE_NAME@
 VERSION                = @PACKAGE_VERSION@
 
 INSTALL                = @INSTALL@
+MKDIR_P                = @MKDIR_P@
+datarootdir    = @datarootdir@
+mandir         = @mandir@
+
+OCAMLDOCFLAGS  = -html -sort \
+                 -package bitstring.syntax,extlib,libvirt,gettext,xml-light \
+                 -I lib \
+                 -syntax bitstring.syntax
+OCAMLDOC       = @OCAMLDOC@
+OCAMLDOCFILES  = $(wildcard lib/*.ml) $(wildcard lib/*.mli)
 
 HAVE_PERLDOC    = @HAVE_PERLDOC@
 
-TOOLS          = uname dmesg
+TOOLS          = uname dmesg ps ifconfig
+export TOOLS
 
-SUBDIRS                = lib $(TOOLS)
+SUBDIRS_NOT_PO = lib $(TOOLS) mem extract/fedora-koji extract/codegen
+SUBDIRS                = $(SUBDIRS_NOT_PO) po
 
 ifeq ($(HAVE_PERLDOC),perldoc)
-TARGETS         += virt-mem.1 virt-mem.txt $(TOOLS:%=virt-%.1)
+MANPAGES        = virt-mem.1 $(TOOLS:%=virt-%.1)
+TEXTMANPAGES   = virt-mem.txt
 endif
 
-all install: $(TARGETS)
-       for d in $(SUBDIRS) po; do \
+TARGETS                = $(MANPAGES) $(TEXTMANPAGES)
+
+all: $(TARGETS)
+       for d in $(SUBDIRS_NOT_PO); do \
          $(MAKE) -C $$d $@; \
          if [ $$? -ne 0 ]; then exit 1; fi; \
        done
 
-depend doc:
+install: install-man
        for d in $(SUBDIRS); do \
          $(MAKE) -C $$d $@; \
          if [ $$? -ne 0 ]; then exit 1; fi; \
        done
 
+depend:
+       for d in $(SUBDIRS_NOT_PO); do \
+         $(MAKE) -C $$d $@; \
+         if [ $$? -ne 0 ]; then exit 1; fi; \
+       done
+
 clean:
        for d in . $(SUBDIRS); do \
          (cd $$d; rm -f *.cmi *.cmo *.cmx *.cma *.cmxa *.o *.a \
            *.so *.opt *~ *.dll *.exe *.annot core); \
        done
-       for d in po; do \
-         (cd $$d; rm -f *~); \
-       done
        rm -f uname/virt-uname
        rm -f dmesg/virt-dmesg
+       rm -f ps/virt-ps
+       rm -f mem/virt-mem
 
 distclean: clean
        rm -f config.h config.log config.status configure
        rm -rf autom4te.cache
        rm -f Makefile
-       rm -f virt-df/Makefile
+       rm -f */Makefile
+
+# Rebuild the PO files.
+
+update-po:
+       $(MAKE) -C po all
+
+# Download distribution kernels (warning: takes AGES).
+
+update-kerneldb:
+       cd kernels && \
+         ../extract/fedora-koji/fedora-koji-download-kernels.opt
+
+# Rebuild the generated kernel struct parsers from the kerneldb.
+
+update-kernel-structs:
+       extract/codegen/kerneldb-to-parser.opt kernels lib
+
+# Developer documentation (in html/ subdirectory).
+
+ifneq ($(OCAMLDOC),)
+ifneq ($(OCAMLDOCFILES),)
+doc:
+       rm -rf html
+       mkdir html
+       -ocamlfind ocamldoc $(OCAMLDOCFLAGS) -d html $(OCAMLDOCFILES)
+endif
+endif
 
 # Manual page.
 
@@ -72,6 +119,15 @@ virt-mem.txt: virt-mem.pod
 
 virt-%.1:
        echo '.so man1/virt-mem.1' > $@
+
+install-man:
+       $(MKDIR_P) $(DESTDIR)$(mandir)/man1
+       $(INSTALL) -m 0644 $(MANPAGES) $(DESTDIR)$(mandir)/man1/
+
+else
+
+install-man:
+
 endif
 
 # Distribution.
@@ -81,13 +137,24 @@ dist:
        rm -rf $(PACKAGE)-$(VERSION)
        mkdir $(PACKAGE)-$(VERSION)
        tar -cf - -T MANIFEST | tar -C $(PACKAGE)-$(VERSION) -xf -
+       hg log --style changelog > $(PACKAGE)-$(VERSION)/ChangeLog
        $(INSTALL) -m 0755 configure $(PACKAGE)-$(VERSION)/
+       $(INSTALL) -m 0644 config.h.in $(PACKAGE)-$(VERSION)/
        tar zcf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
        rm -rf $(PACKAGE)-$(VERSION)
+       mkdir $(PACKAGE)-$(VERSION)
+       mkdir $(PACKAGE)-$(VERSION)/kernels
+       $(INSTALL) -m 0644 kernels/*.data* kernels/*.info \
+         $(PACKAGE)-$(VERSION)/kernels/
+       tar zcf $(PACKAGE)-kerneldb-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
+       rm -rf $(PACKAGE)-$(VERSION)
        ls -l $(PACKAGE)-$(VERSION).tar.gz
+       ls -l $(PACKAGE)-kerneldb-$(VERSION).tar.gz
 
 check-manifest:
-       hg manifest | sort > .check-manifest; \
+       hg manifest | \
+         grep -Ev 'kernels/.*\.(data|info).*' | \
+         sort > .check-manifest; \
        sort MANIFEST > .orig-manifest; \
        diff -u .orig-manifest .check-manifest; rv=$$?; \
        rm -f .orig-manifest .check-manifest; \