summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--Makefile.am3
-rw-r--r--configure.in1
-rw-r--r--gnome-doc-prepare.in310
4 files changed, 321 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 0aaf883e..cc769bf9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2004-12-08 Shaun McCance <shaunm@gnome.org>
+ * Makefile.am:
+ * configure.in:
+ * gnome-doc-prepare.in:
+ - Added gnome-doc-prepare.in, renamed from danilo's shaunize
+
+2004-12-08 Shaun McCance <shaunm@gnome.org>
+
* xslt/docbook/omf/db2omf.xsl:
- Put file:// in the URL
diff --git a/Makefile.am b/Makefile.am
index f920e22e..a3e9b6de 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -16,6 +16,8 @@ share_DATA = gnome-doc-utils.make
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = gnome-doc-utils.pc
+
+bin_SCRIPTS = gnome-doc-prepare
endif
# doc must go last
@@ -26,6 +28,7 @@ EXTRA_DIST = \
$(share_DATA) \
$(pkgconfig_DATA) \
bootstrap.make \
+ gnome-doc-prepare.in \
intltool-extract.in \
intltool-merge.in \
intltool-update.in \
diff --git a/configure.in b/configure.in
index 7f2b4184..f925f9b7 100644
--- a/configure.in
+++ b/configure.in
@@ -31,6 +31,7 @@ AM_GLIB_GNU_GETTEXT
AC_OUTPUT([
Makefile
+gnome-doc-prepare
gnome-doc-utils.pc
doc/Makefile
doc/gnome-doc-make/Makefile
diff --git a/gnome-doc-prepare.in b/gnome-doc-prepare.in
new file mode 100644
index 00000000..41696ffb
--- /dev/null
+++ b/gnome-doc-prepare.in
@@ -0,0 +1,310 @@
+#! /bin/sh
+# gnome-doc-prepare - Prepare a package to use gnome-doc-utils.
+# @configure_input@
+# Copyright (C) 1996-1999 Free Software Foundation, Inc.
+# Copyright (C) 2001 Eazel, Inc.
+# Copyright (C) 2004 Danilo Segan <danilo@gnome.org>.
+#
+# Originally based on libtoolize by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# Modified for xml-i18n-tools by Maciej Stachowiak <mjs@noisehavoc.org>
+#
+# Modified for gnome-doc-utils by Danilo Ĺ egan <danilo@gnome.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# The name of this program.
+progname=`echo "$0" | sed 's%^.*/%%'`
+
+# Constants.
+PROGRAM=gnome-doc-prepare
+PACKAGE=@PACKAGE@
+VERSION=@VERSION@
+
+# Directory names.
+prefix=@prefix@
+datadir=@datadir@
+pkgdatadir=@datadir@/gnome-doc-utils
+
+# FIXME: I want this through pkg-config
+gdu_m4="${datadir}/aclocal/gnome-doc-utils.m4"
+gdu_make="${pkgdatadir}/gnome-doc-utils.make"
+omf_template="${pkgdatadir}/template.omf.in"
+xml_template="${pkgdatadir}/template-document.xml"
+makefile_template="${pkgdatadir}/template.make"
+
+dry_run=no
+help="Try '$progname --help' for more information."
+rm="rm -f"
+rm_rec="rm -rf"
+ln_s="ln -s"
+cp="cp -f"
+mkdir="mkdir"
+sed="sed"
+mkinstalldirs="mkinstalldirs"
+
+# Global variables.
+automake=
+copy=
+force=
+status=0
+
+for arg
+do
+ case "$arg" in
+ --help)
+ cat <<EOF
+Usage: $progname [OPTION]...
+
+Prepare a package to use gnome-doc-utils.
+
+ --automake work silently, and assume that Automake is in use
+-c, --copy copy files rather than symlinking them
+ --new-document DOCUMENT
+ initialize help/DOCUMENT/*
+ --debug enable verbose shell tracing
+-n, --dry-run print commands rather than running them
+-f, --force replace existing files
+ --help display this message and exit
+ --version print version information and exit
+
+You must 'cd' to the top directory of your package before you run
+'$progname'.
+EOF
+ exit 0
+ ;;
+
+ --version)
+ echo "$PROGRAM (GNU $PACKAGE) $VERSION"
+ exit 0
+ ;;
+
+ --automake)
+ automake=yes
+ ;;
+
+ --new-document)
+ shift
+ docname=yes
+ ;;
+
+ -c | --copy)
+ ln_s=
+ ;;
+
+ --debug)
+ echo "$progname: enabling shell trace mode"
+ set -x
+ ;;
+
+ -n | --dry-run)
+ if test "$dry_run" != yes; then
+ dry_run=yes
+ rm="echo $rm"
+ rm_rec="echo $rm_rec"
+ test -n "$ln_s" && ln_s="echo $ln_s"
+ cp="echo $cp"
+ mkdir="echo mkdir"
+ mkinstalldirs="echo $mkinstalldirs"
+ sed="echo $sed"
+ fi
+ ;;
+
+ -f | --force)
+ force=yes
+ ;;
+
+ -*)
+ echo "$progname: unrecognized option '$arg'" 1>&2
+ echo "$help" 1>&2
+ exit 1
+ ;;
+
+ *)
+ if [ "x$docname" == "xyes" ]
+ then
+ newdocument="$arg"
+ docname=no
+ else
+ echo "$progname: too many arguments" 1>&2
+ echo "$help" 1>&2
+ exit 1
+ fi
+ ;;
+ esac
+done
+
+if test -f configure.ac; then
+ configure="configure.ac"
+else
+ if test -f configure.in; then
+ configure="configure.in"
+ else
+ echo "$progname: neither 'configure.ac' nor 'configure.in' exists" 1>&2
+ echo "$help" 1>&2
+ exit 1
+ fi
+fi
+
+
+files='gnome-doc-utils.make'
+
+auxdir=.
+auxdirline=`egrep '^AC_CONFIG_AUX_DIR' $configure 2>/dev/null`
+if test -n "$auxdirline"; then
+ # Handle explicit AC_CONFIG_AUX_DIR settings.
+ auxdir=`echo "$auxdirline" | sed 's/^AC_CONFIG_AUX_DIR(\([^)]*\)).*$/\1/'`
+
+ if test "$auxdir" = "$auxdirline"; then
+ echo "$progname: invalid AC_CONFIG_AUX_DIR syntax: $auxdirline" 1>&2
+ exit 1
+ else
+ # Strip any quote brackets.
+ auxdir=`echo "$auxdir" | sed 's/^\[\(.*\)\]$/\1/g'`
+ case "$auxdir" in
+ *\$*)
+ echo "$progname: cannot handle variables in AC_CONFIG_AUX_DIR" 1>&2
+ exit 1
+ ;;
+ *)
+ ;;
+ esac
+ fi
+else
+ # Try to discover auxdir the same way it is discovered by configure.
+ # Note that we default to the current directory.
+ for dir in . .. ../..; do
+ if test -f $dir/install-sh; then
+ auxdir=$dir
+ break
+ elif test -f $dir/install.sh; then
+ auxdir=$dir
+ break
+ fi
+ done
+fi
+
+if test -z "$automake"; then
+ if egrep '^GNOME_DOC_INIT' $configure >/dev/null 2>&1; then :
+ else
+ echo "Remember to add 'GNOME_DOC_INIT' to $configure."
+ fi
+
+ if grep 'generated automatically by aclocal' aclocal.m4 >/dev/null 2>&1; then
+ updatemsg="update your 'aclocal.m4' by running aclocal"
+ else
+ updatemsg="add the contents of '$gdu_m4' to 'aclocal.m4'"
+ fi
+
+ if egrep '^AC_DEFUN\(GNOME_DOC_INIT' aclocal.m4 >/dev/null 2>&1; then
+ # Check the version number on gnome-doc-utils.m4 and the one used in aclocal.m4.
+ instserial=`grep '^# serial ' $gdu_m4 | grep 'GNOME_DOC_INIT' | sed -e 's/^# serial \([0-9][0-9]*\).*$/\1/; q'`
+
+ if test -z "$instserial"; then
+ echo "$progname: warning: no serial number on '$gdu_m4'" 1>&2
+ else
+ # If the local macro has no serial number, we assume it's ancient.
+ localserial=`grep '^# serial ' aclocal.m4 | grep 'GNOME_DOC_INIT' | sed -e 's/^# serial \([0-9][0-9]*\).*$/\1/; q'`
+
+ test -z "$localserial" && localserial=0
+
+ if test "$localserial" -lt "$instserial"; then
+ echo "You should $updatemsg."
+ elif test "$localserial" -gt "$instserial"; then
+ echo "$progname: '$gdu_m4' is serial $instserial, less than $localserial in 'aclocal.m4'" 1>&2
+ if test -z "$force"; then
+ echo "Use '--force' to replace newer gnome-doc-utils files with this version." 1>&2
+ exit 1
+ fi
+ echo "To remain compatible, you should $updatemsg."
+ fi
+ fi
+ else
+ echo "You should $updatemsg."
+ fi
+fi
+
+
+
+# Change to the auxiliary directory.
+(
+cur=`pwd`
+if test "$auxdir" != .; then
+ test -z "$automake" && echo "Putting files in AC_CONFIG_AUX_DIR, '$auxdir'."
+ cd $auxdir || exit 1
+fi
+
+for file in $files; do
+ if test -f "$file" && test -z "$force"; then
+ test -z "$automake" && echo "$progname: '$file' exists: use '--force' to overwrite" 1>&2
+ continue
+ fi
+
+ $rm $file
+ if test -n "$ln_s" && $ln_s $pkgdatadir/`basename $file` $file; then :
+ elif $cp $pkgdatadir/`basename $file` $file; then :
+ else
+ echo "$progname: cannot copy '$pkgdatadir/`basename $file`' to '$file'" 1>&2
+ status=1
+ fi
+done
+
+exit $status
+# make sure this subshell exits with the exit value if it failed
+) || exit $?
+
+# FIXME: This probably does not work w/ builddir != srcdir because it
+# gets at source files relative to the current directory.
+
+
+if [ "x$newdocument" != "x" ]
+then
+ MYDATE="`date -I`"
+ MYYEAR="`date +%Y`"
+ MYUSERNAME="`whoami`"
+ MYDOMAIN="`hostname -d`"
+ MYSERIESID="`scrollkeeper-gen-seriesid`"
+ MYDOCUMENT="$newdocument"
+
+ ( # FIXME: check if any of these already exist, and overwrite only if $force
+ mkdir -p "help/$newdocument/C" && \
+ sed \
+ -e 's/@DATE@/$MYDATE/g' \
+ -e 's/@YEAR@/$MYYEAR/g' \
+ -e 's/@USERNAME@/$MYUSERNAME/g' \
+ -e 's/@DOMAIN@/$MYDOMAIN/g' \
+ -e 's/@DOCUMENT@/$MYDOCUMENT/g' \
+ < $xml_template > "help/$newdocument/C/$newdocument.xml" && \
+ $sed \
+ -e 's/@DATE@/$MYDATE/g' \
+ -e 's/@SERIESID@/$MYSERIESID/g' \
+ < $omf_template > "help/$newdocument/$newdocument.omf.in" && \
+ sed \
+ -e 's/@DOCUMENT@/$MYDOCUMENT/g' \
+ < $makefile_template > "help/$newdocument/Makefile.am"
+ )
+fi
+
+exit $status
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End: