#! /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 . # # Originally based on libtoolize by Gordon Matzigkeit , 1996 # # Modified for xml-i18n-tools by Maciej Stachowiak # # Modified for gnome-doc-utils by Danilo Ĺ egan # # 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, see . # # 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@ datarootdir=@datarootdir@ 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 <&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 $? # Adapted from gtkdocize: # If the AC_CONFIG_MACRO_DIR() macro is used, copy gnome-doc-utils.m4 # from our prefix to that directory. This makes sure that the M4 macro # used matches the automake fragment. # If AC_CONFIG_MACRO_DIR is not used, the macro won't be copied, and # the correct flags must be passed to aclocal for it to find the macro. m4dir=`cat "$configure" | grep '^AC_CONFIG_MACRO_DIR' | sed -n -e 's/AC_CONFIG_MACRO_DIR(\([^()]*\))/\1/p' | sed -e 's/^\[\(.*\)\]$/\1/' | sed -e 1q` if test -n "$m4dir"; then ( cur=`pwd` if test "$m4dir" != .; then test -z "$automake" && echo "Putting files in AC_CONFIG_MACRO_DIR, '$m4dir'." cd $m4dir || exit 1 fi files='gnome-doc-utils.m4' 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 $datadir/aclocal/$file $file; then : elif $cp $datadir/aclocal/$file $file; then : else echo "$progname: cannot copy '$datadir/aclocal/$file' to '$file'" 1>&2 status=1 fi done exit $status # make sure this subshell exits with the exit value if it failed ) || exit $? fi # 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: