diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | Makefile.am | 3 | ||||
-rw-r--r-- | configure.in | 1 | ||||
-rw-r--r-- | gnome-doc-prepare.in | 310 |
4 files changed, 321 insertions, 0 deletions
@@ -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: |