summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--Makefile.am2
-rw-r--r--configure.in9
-rw-r--r--doc-build/.cvsignore3
-rw-r--r--doc-build/Makefile.am12
-rw-r--r--doc-build/README9
-rw-r--r--doc-build/gnome-doc-common.in48
-rw-r--r--doc-build/omf.make61
-rw-r--r--doc-build/xmldocs.make95
-rw-r--r--macros2/autogen.sh14
10 files changed, 253 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 5d34dec2..d5d1df64 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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