From c44c90db277f982a4dc2aa3c04da58b2cf558877 Mon Sep 17 00:00:00 2001 From: cjwatson Date: Mon, 21 Sep 2009 18:22:27 +0000 Subject: [PATCH] 2009-09-21 Colin Watson 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'. --- ChangeLog | 19 +++++++++++++++++ Makefile.in | 54 +++++++++++++++++++++++++++++++++++++++++++++-- configure.ac | 1 + docs/version.texi | 4 ---- gendistlist.sh | 5 +++-- 5 files changed, 75 insertions(+), 8 deletions(-) delete mode 100644 docs/version.texi diff --git a/ChangeLog b/ChangeLog index 5f50e0831..22aeb6feb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,22 @@ +2009-09-21 Colin Watson + + 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'. + 2009-09-21 Felix Zielcke * kern/term.c: Fix indentation. diff --git a/Makefile.in b/Makefile.in index ff84afb7b..ee4589a78 100644 --- a/Makefile.in +++ b/Makefile.in @@ -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.log config.h \ 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) diff --git a/configure.ac b/configure.ac index 59e8510d3..e827a32c2 100644 --- a/configure.ac +++ b/configure.ac @@ -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. diff --git a/docs/version.texi b/docs/version.texi deleted file mode 100644 index 65ec1301d..000000000 --- a/docs/version.texi +++ /dev/null @@ -1,4 +0,0 @@ -@set UPDATED 7 Ago 2009 -@set UPDATED-MONTH Ago 2009 -@set EDITION 1.97~beta3 -@set VERSION 1.97~beta3 diff --git a/gendistlist.sh b/gendistlist.sh index 3278ed0b3..7f6c32a44 100644 --- a/gendistlist.sh +++ b/gendistlist.sh @@ -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