All of lore.kernel.org
 help / color / mirror / Atom feed
From: Colin Watson <cjwatson@ubuntu.com>
To: grub-devel@gnu.org
Subject: [PATCH] Build info documentation
Date: Tue, 15 Sep 2009 06:20:13 +0100	[thread overview]
Message-ID: <20090915052012.GU13423@riva.ucam.org> (raw)

I'm not quite sure I've got everything right here, so please review.

It seemed much simpler to add everything to Makefile.in than to go
through conf/*.rmk for this, as there's no platform-specific work to be
done here.

2009-09-15  Colin Watson  <cjwatson@ubuntu.com>

	Build info documentation.  Some code borrowed from Automake.

	* configure.ac: Check for makeinfo.
	* Makefile.in (MAKEINFO, INFOS, info_INFOS): New variables.
	(MAINTAINER_CLEANFILES): Add $(INFOS), docs/stamp-vti, and
	docs/version.texi.
	(MOSTLYCLEANFILES): Add vti.tmp.
	(docs/version.texi, docs/stamp-vti): Update automatically.
	(docs/grub.info): Build info documentation.  Use --force and ignore
	errors for now.
	(all-local): Add $(INFOS).
	(install-local): Install info files.
	(uninstall): Uninstall info files.
	* docs/version.texi: Remove from revision control.  This file is
	automatically generated on build now.
	* gendistlist.sh: Add `*.info'.

Index: configure.ac
===================================================================
--- configure.ac	(revision 2596)
+++ configure.ac	(working copy)
@@ -147,6 +147,7 @@ AC_PROG_MAKE_SET
 
 # These are not a "must".
 AC_PATH_PROG(RUBY, ruby)
+AC_PATH_PROG(MAKEINFO, makeinfo)
 
 #
 # Checks for host programs.
Index: Makefile.in
===================================================================
--- Makefile.in	(revision 2596)
+++ Makefile.in	(working copy)
@@ -86,6 +86,10 @@ OBJCOPY = @OBJCOPY@
 STRIP = @STRIP@
 NM = @NM@
 RUBY = @RUBY@
+MAKEINFO = @MAKEINFO@
+ifeq (, $(MAKEINFO))
+MAKEINFO = true
+endif
 HELP2MAN = @HELP2MAN@
 ifeq (, $(HELP2MAN))
 HELP2MAN = true
@@ -122,6 +126,7 @@ PKGDATA = $(pkgdata_DATA)
 PROGRAMS = $(bin_UTILITIES) $(sbin_UTILITIES)
 SCRIPTS = $(bin_SCRIPTS) $(sbin_SCRIPTS) $(grub-mkconfig_SCRIPTS) \
 	$(lib_SCRIPTS)
+INFOS = $(info_INFOS)
 
 CLEANFILES =
 MOSTLYCLEANFILES =
@@ -129,7 +134,7 @@ DISTCLEANFILES = config.status config.cache config
 	Makefile stamp-h include/grub/cpu include/grub/machine \
 	gensymlist.sh genkernsyms.sh build_env.mk
 MAINTAINER_CLEANFILES = $(srcdir)/configure $(addprefix $(srcdir)/,$(MKFILES)) \
-	$(srcdir)/DISTLIST $(srcdir)/config.h.in $(srcdir)/stamp-h.in
+	$(srcdir)/DISTLIST $(srcdir)/config.h.in $(srcdir)/stamp-h.in $(INFOS)
 
 # The default target.
 all: all-local
@@ -168,6 +173,27 @@ handler.lst: $(HANDLERFILES)
 parttool.lst: $(PARTTOOLFILES)
 	cat $^ /dev/null | sort | uniq > $@
 
+info_INFOS += docs/grub.info
+
+MOSTLYCLEANFILES += vti.tmp
+MAINTAINER_CLEANFILES += docs/stamp-vti docs/version.texi
+docs/version.texi: docs/stamp-vti
+docs/stamp-vti: docs/grub.texi
+	(set `$(SHELL) $(srcdir)/docs/mdate-sh $<`; \
+	echo "@set UPDATED $$1 $$2 $$3"; \
+	echo "@set UPDATED-MONTH $$2 $$3"; \
+	echo "@set EDITION $(PACKAGE_VERSION)"; \
+	echo "@set VERSION $(PACKAGE_VERSION)") > vti.tmp
+	@cmp -s vti.tmp $(srcdir)/docs/version.texi \
+	  || (echo "Updating $(srcdir)/docs/version.texi"; \
+	      cp vti.tmp $(srcdir)/docs/version.texi)
+	-@rm -f vti.tmp
+	@cp $(srcdir)/docs/version.texi $@
+
+# Use --force until such time as the documentation is cleaned up.
+docs/grub.info: docs/grub.texi docs/version.texi docs/fdl.texi
+	$(MAKEINFO) --no-split --force $< -o $@ || :
+
 ifeq (, $(UNIFONT_BDF))
 else
 
@@ -207,7 +233,7 @@ pkglib_BUILDDIR += config.h grub_script.tab.h
 include_DATA += $(shell find $(srcdir)/include -name \*.h | sed -e "s,^$(srcdir)/,,g") \
 	include/grub/cpu include/grub/machine
 
-all-local: $(PROGRAMS) $(PKGLIB) $(PKGDATA) $(SCRIPTS) $(MKFILES)
+all-local: $(PROGRAMS) $(PKGLIB) $(PKGDATA) $(SCRIPTS) $(INFOS) $(MKFILES)
 
 install: install-local
 
@@ -285,6 +311,17 @@ install-local: all
 	  dest="`echo $$file | sed 's,.*/,,'`"; \
 	  $(INSTALL_DATA) $$dir$$file $(DESTDIR)$(libdir)/grub/$$dest; \
 	done
+	$(SHELL) $(mkinstalldirs) $(DESTDIR)$(infodir)
+	@list='$(info_INFOS)'; \
+	for file in $$list; do \
+	  if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \
+	  dest="`echo $$file | sed 's,.*/,,'`"; \
+	  $(INSTALL_DATA) $$dir$$file $(DESTDIR)$(infodir); \
+	  if (install-info --version && \
+	       install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+	    install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$dest" || :; \
+	  fi; \
+	done
 
 install-strip:
 	$(MAKE) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" install
@@ -325,6 +362,19 @@ uninstall:
 	  echo rm -f $(DESTDIR)$(libdir)/$$dest; \
 	  rm -f $(DESTDIR)$(libdir)/grub/$$dest; \
 	done
+	@list='$(info_INFOS)'; \
+	for file in $$list; do \
+	  dest="`echo $$file | sed 's,.*/,,'`"; \
+	  if (install-info --version && \
+	       install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+	    if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$dest"; then \
+	      :; \
+	    else \
+	      test ! -f "$(DESTDIR)$(infodir)/$$dest" || exit 1; \
+	    fi; \
+	  fi; \
+	  rm -f $(DESTDIR)$(infodir)/$$dest; \
+	done
 
 clean: $(CLEAN_IMAGE_TARGETS) $(CLEAN_MODULE_TARGETS) $(CLEAN_UTILITY_TARGETS)
 	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)

Property changes on: docs
___________________________________________________________________
Added: svn:ignore
   + *.info
stamp-vti
version.texi


Index: docs/version.texi
===================================================================
--- docs/version.texi	(revision 2596)
+++ docs/version.texi	(working copy)
@@ -1,4 +0,0 @@
-@set UPDATED 7 Ago 2009
-@set UPDATED-MONTH Ago 2009
-@set EDITION 1.97~beta3
-@set VERSION 1.97~beta3
Index: gendistlist.sh
===================================================================
--- gendistlist.sh	(revision 2596)
+++ gendistlist.sh	(working copy)
@@ -38,7 +38,8 @@ for dir in $DISTDIRS; do
   for d in `find $dir -type d | sed '/\/\.svn$/d;\/\.svn\//d' | sort`; do
     find $d -maxdepth 1 -name '*.[chSy]' -o -name '*.mk' -o -name '*.rmk' \
       -o -name '*.rb' -o -name '*.in' -o -name '*.tex' -o -name '*.texi' \
-      -o -name 'grub.cfg' -o -name 'README' -o -name '*.sc' -o -name 'mdate-sh' \
-      -o -name '*.sh' -o -name 'grub-dumpdevtree' -o -name '*.lua' | sort
+      -o -name '*.info' -o -name 'grub.cfg' -o -name 'README' \
+      -o -name '*.sc' -o -name 'mdate-sh' -o -name '*.sh' \
+      -o -name 'grub-dumpdevtree' -o -name '*.lua' | sort
   done
 done

-- 
Colin Watson                                       [cjwatson@ubuntu.com]



             reply	other threads:[~2009-09-15  5:20 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-15  5:20 Colin Watson [this message]
2009-09-19 21:14 ` [PATCH] Build info documentation Robert Millan
2009-09-22  7:49 ` Vladimir 'phcoder' Serbinenko
2009-09-23 17:20   ` Colin Watson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090915052012.GU13423@riva.ucam.org \
    --to=cjwatson@ubuntu.com \
    --cc=grub-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.