diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | configure.in | 9 | ||||
-rw-r--r-- | doc-build/.cvsignore | 3 | ||||
-rw-r--r-- | doc-build/Makefile.am | 12 | ||||
-rw-r--r-- | doc-build/README | 9 | ||||
-rw-r--r-- | doc-build/gnome-doc-common.in | 48 | ||||
-rw-r--r-- | doc-build/omf.make | 61 | ||||
-rw-r--r-- | doc-build/xmldocs.make | 95 | ||||
-rw-r--r-- | macros2/autogen.sh | 14 |
10 files changed, 253 insertions, 7 deletions
@@ -2,6 +2,13 @@ * MAINTAINERS: Put myself in as maintainer. + * configure.in: Bump the version number to 2.3.0 + + * configure.in, Makefile.am, macros2/autogen.sh, doc-build/*: + Add in the infrastructure to allow user documentatin to be built + from some common files. This will not affect existing packages. + The changes required to use this are given in doc-build/README. + 2003-02-26 Frederic Crozat <fcrozat@mandrakesoft.com> * macros2/autogen.sh: set WANT_AUTOCONF_2_5 variable to tell diff --git a/Makefile.am b/Makefile.am index 3e50c649..8abfc479 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = bin macros macros2 doc +SUBDIRS = bin macros macros2 doc doc-build EXTRA_DIST = gnome-common.spec diff --git a/configure.in b/configure.in index 53b3da03..ad073828 100644 --- a/configure.in +++ b/configure.in @@ -1,13 +1,11 @@ AC_INIT(macros2/gnome-common.m4) -AM_INIT_AUTOMAKE(gnome-common, 1.2.4) +AM_INIT_AUTOMAKE(gnome-common, 2.3.0) AM_MAINTAINER_MODE AM_CONDITIONAL(INSIDE_GNOME_COMMON, true) -AC_DEFUN([AC_FYI], [echo "FYI: " $1]) - AC_ISC_POSIX AC_PROG_CC AC_PROG_CPP @@ -31,5 +29,8 @@ gnome-common.spec macros/Makefile macros2/Makefile bin/Makefile -doc/Makefile]) +doc/Makefile +doc-build/Makefile +doc-build/gnome-doc-common +]) diff --git a/doc-build/.cvsignore b/doc-build/.cvsignore new file mode 100644 index 00000000..dc647545 --- /dev/null +++ b/doc-build/.cvsignore @@ -0,0 +1,3 @@ +Makefile.in +Makefile +gnome-doc-common diff --git a/doc-build/Makefile.am b/doc-build/Makefile.am new file mode 100644 index 00000000..b30f9102 --- /dev/null +++ b/doc-build/Makefile.am @@ -0,0 +1,12 @@ +bin_SCRIPTS = gnome-doc-common + +pkgdatadir = $(datadir)/gnome-common/data +pkgdata_DATA = \ + omf.make \ + xmldocs.make + +EXTRA_DIST = \ + omf.make \ + xmldocs.make \ + gnome-doc-common.in \ + ChangeLog diff --git a/doc-build/README b/doc-build/README new file mode 100644 index 00000000..6b44642b --- /dev/null +++ b/doc-build/README @@ -0,0 +1,9 @@ +To automatically include the standard user documentation build files (omf.make +and xmldocs.make) in you package, set USE_COMMON_DOC_BUILD=yes in autogen.sh +before calling the macros2/autogen.sh script. + +When porting applications across to use this feature, ensure that all of the +references to xmldocs.make are to $(top_srcdir)/xmldocs.make in the appropriate +Makefile.am files. Some modules assume that xmldocs.make is in another +directory (like docs/ or something). + diff --git a/doc-build/gnome-doc-common.in b/doc-build/gnome-doc-common.in new file mode 100644 index 00000000..881122d4 --- /dev/null +++ b/doc-build/gnome-doc-common.in @@ -0,0 +1,48 @@ +#!/bin/sh + +progname=`echo "$0" | sed 's%^.*/%%'` + +PROGRAM=gnome-doc-common +PACKAGE=@PACKAGE@ +VERSION=@VERSION@ + +prefix=@prefix@ +datadir=@datadir@ + +# options +docdir=. +copy=no + +while test $# -gt 0; do + case "$1" in + --help) + echo "usage: $progname [--version|--help]" 1>&2 + exit 1 ;; + --version) + echo "$PROGRAM ($PACKAGE) $VERSION" + exit 0 ;; + --copy) + copy=yes + shift ;; + -*) + echo "$progname: unrecognised option '$1'" 1>&2 + echo "usage: $progname [--version|--help]" 1>&2 + exit 1 ;; + *) + echo "$progname: too many arguments" 1>&2 + echo "usage: $progname [--version|--help]" 1>&2 + exit 1 ;; + esac +done + +for file in omf.make xmldocs.make; do + rm -f $docdir/$file + if test "$copy" = yes; then + cp -f $datadir/$PACKAGE/data/$file $docdir/ || + exit 1 + else + ln -sf $datadir/$PACKAGE/data/$file $docdir/ || + cp -f $datadir/$PACKAGE/data/$file $docdir/ || + exit 1 + fi +done diff --git a/doc-build/omf.make b/doc-build/omf.make new file mode 100644 index 00000000..2a2b9e7d --- /dev/null +++ b/doc-build/omf.make @@ -0,0 +1,61 @@ +# +# No modifications of this Makefile should be necessary. +# +# This file contains the build instructions for installing OMF files. It is +# generally called from the makefiles for particular formats of documentation. +# +# Note that you must configure your package with --localstatedir=/var +# so that the scrollkeeper-update command below will update the database +# in the standard scrollkeeper directory. +# +# If it is impossible to configure with --localstatedir=/var, then +# modify the definition of scrollkeeper_localstate_dir so that +# it points to the correct location. Note that you must still use +# $(localstatedir) in this or when people build RPMs it will update +# the real database on their system instead of the one under RPM_BUILD_ROOT. +# +# Note: This make file is not incorporated into xmldocs.make because, in +# general, there will be other documents install besides XML documents +# and the makefiles for these formats should also include this file. +# +# About this file: +# This file was derived from scrollkeeper_example2, a package +# illustrating how to install documentation and OMF files for use with +# ScrollKeeper 0.3.x and 0.4.x. For more information, see: +# http://scrollkeeper.sourceforge.net/ +# Version: 0.1.3 (last updated: March 20, 2002) +# + +omf_dest_dir=$(datadir)/omf/@PACKAGE@ +scrollkeeper_localstate_dir = $(localstatedir)/scrollkeeper + +# At some point, it may be wise to change to something like this: +# scrollkeeper_localstate_dir = @SCROLLKEEPER_STATEDIR@ + +omf: omf_timestamp + +omf_timestamp: $(omffile) + -for file in $(omffile); do \ + scrollkeeper-preinstall $(docdir)/$(docname).xml $(srcdir)/$$file $$file.out; \ + done; \ + touch omf_timestamp + +install-data-hook-omf: + $(mkinstalldirs) $(DESTDIR)$(omf_dest_dir) + for file in $(omffile); do \ + $(INSTALL_DATA) $$file.out $(DESTDIR)$(omf_dest_dir)/$$file; \ + done + -scrollkeeper-update -p $(scrollkeeper_localstate_dir) -o $(DESTDIR)$(omf_dest_dir) + +uninstall-local-omf: + -for file in $(srcdir)/*.omf; do \ + basefile=`basename $$file`; \ + rm -f $(omf_dest_dir)/$$basefile; \ + done + -rmdir $(omf_dest_dir) + -scrollkeeper-update -p $(scrollkeeper_localstate_dir) + +clean-local-omf: + -for file in $(omffile); do \ + rm -f $$file.out; \ + done diff --git a/doc-build/xmldocs.make b/doc-build/xmldocs.make new file mode 100644 index 00000000..0bc35963 --- /dev/null +++ b/doc-build/xmldocs.make @@ -0,0 +1,95 @@ +# +# No modifications of this Makefile should be necessary. +# +# To use this template: +# 1) Define: figdir, docname, lang, omffile, and entities in +# your Makefile.am file for each document directory, +# although figdir, omffile, and entities may be empty +# 2) Make sure the Makefile in (1) also includes +# "include $(top_srcdir)/xmldocs.make" and +# "dist-hook: app-dist-hook". +# 3) Optionally define 'entities' to hold xml entities which +# you would also like installed +# 4) Figures must go under $(figdir)/ and be in PNG format +# 5) You should only have one document per directory +# 6) Note that the figure directory, $(figdir)/, should not have its +# own Makefile since this Makefile installs those figures. +# +# example Makefile.am: +# figdir = figures +# docname = scrollkeeper-manual +# lang = C +# omffile=scrollkeeper-manual-C.omf +# entities = fdl.xml +# include $(top_srcdir)/xmldocs.make +# dist-hook: app-dist-hook +# +# About this file: +# This file was taken from scrollkeeper_example2, a package illustrating +# how to install documentation and OMF files for use with ScrollKeeper +# 0.3.x and 0.4.x. For more information, see: +# http://scrollkeeper.sourceforge.net/ +# Version: 0.1.2 (last updated: March 20, 2002) +# + + +# ********** Begin of section some packagers may need to modify ********** +# This variable (docdir) specifies where the documents should be installed. +# This default value should work for most packages. +docdir = $(datadir)/gnome/help/$(docname)/$(lang) + +# ********** You should not have to edit below this line ********** +xml_files = $(entities) $(docname).xml + +EXTRA_DIST = $(xml_files) $(omffile) +CLEANFILES = omf_timestamp + +include $(top_srcdir)/omf.make + +all: omf + +$(docname).xml: $(entities) + -ourdir=`pwd`; \ + cd $(srcdir); \ + cp $(entities) $$ourdir + +app-dist-hook: + if test "$(figdir)"; then \ + $(mkinstalldirs) $(distdir)/$(figdir); \ + for file in $(srcdir)/$(figdir)/*.png; do \ + basefile=`echo $$file | sed -e 's,^.*/,,'`; \ + $(INSTALL_DATA) $$file $(distdir)/$(figdir)/$$basefile; \ + done \ + fi + +install-data-local: omf + $(mkinstalldirs) $(DESTDIR)$(docdir) + for file in $(xml_files); do \ + cp $(srcdir)/$$file $(DESTDIR)$(docdir); \ + done + if test "$(figdir)"; then \ + $(mkinstalldirs) $(DESTDIR)$(docdir)/$(figdir); \ + for file in $(srcdir)/$(figdir)/*.png; do \ + basefile=`echo $$file | sed -e 's,^.*/,,'`; \ + $(INSTALL_DATA) $$file $(DESTDIR)$(docdir)/$(figdir)/$$basefile; \ + done \ + fi + +install-data-hook: install-data-hook-omf + +uninstall-local: uninstall-local-doc uninstall-local-omf + +uninstall-local-doc: + -if test "$(figdir)"; then \ + for file in $(srcdir)/$(figdir)/*.png; do \ + basefile=`echo $$file | sed -e 's,^.*/,,'`; \ + rm -f $(docdir)/$(figdir)/$$basefile; \ + done; \ + rmdir $(DESTDIR)$(docdir)/$(figdir); \ + fi + -for file in $(xml_files); do \ + rm -f $(DESTDIR)$(docdir)/$$file; \ + done + -rmdir $(DESTDIR)$(docdir) + +clean-local: clean-local-omf diff --git a/macros2/autogen.sh b/macros2/autogen.sh index cf95289a..560f374d 100644 --- a/macros2/autogen.sh +++ b/macros2/autogen.sh @@ -14,6 +14,7 @@ REQUIRED_GLIB_GETTEXT_VERSION=${REQUIRED_GLIB_GETTEXT_VERSION:-2.2.0} REQUIRED_INTLTOOL_VERSION=${REQUIRED_INTLTOOL_VERSION:-0.25} REQUIRED_PKG_CONFIG_VERSION=${REQUIRED_PKG_CONFIG_VERSION:-0.14.0} REQUIRED_GTK_DOC_VERSION=${REQUIRED_GTK_DOC_VERSION:-1.0} +REQUIRED_DOC_COMMON_VERSION=${REQUIRED_DOC_COMMON_VERSION:-2.3.0} # a list of required m4 macros. Package can set an initial value REQUIRED_M4MACROS=${REQUIRED_M4MACROS:-} @@ -29,8 +30,8 @@ if [ -n "$GNOME2_DIR" ]; then fi -# Not all echo versions allow -n, so let's be portable. This test is based on -# the one in autoconf. +# Not all echo versions allow -n, so we check what is possible. This test is +# based on the one in autoconf. case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ;; *c*,* ) ECHO_N=-n ;; @@ -292,6 +293,11 @@ if $want_gtk_doc; then require_m4macro gtk-doc.m4 fi +if [ "x$USE_COMMON_DOC_BUILD" = "xyes" ]; then + version_check gnome-common DOC_COMMON gnome-doc-common" \ + $REQUIRED_DOC_COMMON_VERSION "" || DIE=1 +fi + check_m4macros || DIE=1 if [ "$DIE" -eq 1 ]; then @@ -350,6 +356,10 @@ for configure_ac in $configure_files; do printbold "Running $AUTOHEADER..." $AUTOHEADER || exit 1 fi + if [ "x$USE_COMMON_DOC_BUILD" = "xyes" ]; then + printbold "Running gnome-doc-common..." + gnome-doc-common --copy || exit 1 + fi printbold "Running $AUTOMAKE..." $AUTOMAKE --gnu --add-missing || exit 1 |