diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2005-05-14 10:55:01 +0000 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2005-05-14 10:55:01 +0000 |
commit | 4154f020dc9aaba332cad1028bca4f3b6024aa08 (patch) | |
tree | deb1b334b9ba48d4ed6970a5768683203afdfaa6 /build-aux | |
parent | dfe767c78bb5f85709574dae8f07caf1052d1030 (diff) | |
download | paxutils-4154f020dc9aaba332cad1028bca4f3b6024aa08.tar.gz |
New file
Diffstat (limited to 'build-aux')
-rw-r--r-- | build-aux/.cvsignore | 7 | ||||
-rwxr-xr-x | build-aux/bootstrap | 270 | ||||
-rw-r--r-- | build-aux/gnulib.modules | 17 |
3 files changed, 294 insertions, 0 deletions
diff --git a/build-aux/.cvsignore b/build-aux/.cvsignore new file mode 100644 index 0000000..eb303c8 --- /dev/null +++ b/build-aux/.cvsignore @@ -0,0 +1,7 @@ +config.guess +config.rpath +config.sub +depcomp +install-sh +missing +mkinstalldirs diff --git a/build-aux/bootstrap b/build-aux/bootstrap new file mode 100755 index 0000000..25d5242 --- /dev/null +++ b/build-aux/bootstrap @@ -0,0 +1,270 @@ +#! /bin/sh + +# Bootstrap 'paxutils' from CVS. + +# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. + +# 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, 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. + +# Written by Paul Eggert and Sergey Poznyakoff. + +# *Eventual* URL of our text domain page in Translation Project +TP_URL="http://www.iro.umontreal.ca/translation/maint/paxutils/" + +# Ensure file names are sorted consistently across platforms; +# e.g., m4/ulonglong_gl.m4 should follow m4/ulonglong.m4. +LC_ALL=C +export LC_ALL + +usage() { + cat <<EOF + usage: $0 [--gnulib-srcdir=DIR][--cvs-auth=AUTH-METHOD][--cvs-user=USERNAME][--no-po] + Options are: + --gnulib-srcdir=DIRNAME Specify the local directory where gnulib + sources reside. Use this if you already + have gnulib sources on your machine, and + do not want to waste your bandwidth dowloading + them again. + --cvs-auth=METHOD Set the CVS access method used for downloading + gnulib files. METHOD is one of the keywords + accepted by cvs -d option (see info cvs + repository). + --cvs-user=USERNAME Set the CVS username to be used when accessing + the gnulib repository. + --no-po Do not download po files. + --update-po[=LANG] Update po file(s) and exit. + +Running without arguments will suffice in most cases. It is equivalent +to + + ./bootstrap --cvs-auth=ext --cvs-user=anoncvs + +EOF +} + +bailout() { + echo "$0: $*" >&2 + exit 1 +} + +update_po() { + if [ $# = 1 ]; then + case $1 in + *.po) POFILE=$1;; + *) POFILE=${1}.po;; + esac + echo "$0: getting translation for $1..." + wget -r -C off $TP_URL/$POFILE + else + echo "$0: getting translations into po..." + (cd po && + rm -f dummy `ls | sed -n '/\.gmo$/p; /\.po/p'` && + wget -nv -nd -r -l 1 -A .po -C off $TP_URL && + rm -f index.html index.html.[0-9]* + ls *.po | sed 's/\.po$//' >LINGUAS + ) || exit + fi +} + +# Parse options. + +DOWNLOAD_PO=no +for option +do + case $option in + --help) + usage + exit;; + --gnulib-srcdir=*) + GNULIB_SRCDIR=`expr "$option" : '--gnulib-srcdir=\(.*\)'`;; + --cvs-auth=*) + CVS_AUTH=`expr "$option" : '--cvs-auth=\(.*\)'`;; + --cvs-user=*) + CVS_USER=`expr "$option" : '--cvs-user=\(.*\)'`;; + --no-po) + DOWNLOAD_PO=no;; + --update-po=*) + bailout "Option is not yet active" + DOWNLOAD_PO=`expr "$option" : '--update-po=\(.*\)'`;; + --update-po) + bailout "Option is not yet active" + DOWNLOAD_PO=only;; + *) + bailout "$option: unknown option" + exit 1;; + esac +done + +case $DOWNLOAD_PO in +only) update_po + exit 0 + ;; +no|yes) ;; +*) update_po $DOWNLOAD_PO + exit 0 +esac + +echo "$0: Bootstrapping CVS paxutils..." + +build_cvs_prefix() { + CVS_PREFIX=:${1}: + if [ "${2}" != - ]; then + CVS_PREFIX=${CVS_PREFIX}${2}@ + fi + if [ "$1" = "ext" ]; then + if [ -z "${CVS_RSH}" ]; then + CVS_RSH=ssh + export CVS_RSH + fi + fi +} + +# checkout package +checkout() { + if [ ! -d $1 ]; then + echo "$0: getting $1 files..." + + trap exit 1 2 13 15 + trap 'rm -fr $1; exit 1' 0 + + case "${CVS_AUTH--}" in + -) build_cvs_prefix ext anoncvs + ;; + pserver) build_cvs_prefix $CVS_AUTH ${CVS_USER:-anoncvs} + ;; + gserver|server) + build_cvs_prefix $CVS_AUTH ${CVS_USER--} + ;; + ext) build_cvs_prefix $CVS_AUTH ${CVS_USER--} + ;; + *) echo "$0: Unknown CVS access method" >&2 + exit 1;; + esac + if [ "${CVS_AUTH--}" = "pserver" ]; then + cvs -d ${CVS_PREFIX}subversions.gnu.org:/cvsroot/$1 login || exit + fi + cvs -q -d ${CVS_PREFIX}subversions.gnu.org:/cvsroot/$1 co $1 || exit + + trap 0 + fi +} + +# Prepare temporary module list +cat /dev/null > modlist.tmp +trap 'rm -f modlist.tmp' 0 1 2 13 15 + +get_modules() { + sed '/^[ ]*#/d;/^[ ]*$/d' $* >> modlist.tmp +} + +# copy_files srcdir dstdir +copy_files() { + for file in `cat $1/DISTFILES` + do + case $file in + "#*") continue;; + esac + echo "$0: Copying file $1/$file" + cp -p $1/$file $2/`expr $file : '.*/\(.*\)'` + done +} + +# Get gnulib files. + +case ${GNULIB_SRCDIR--} in +-) checkout gnulib + GNULIB_SRCDIR=gnulib +esac + +<$GNULIB_SRCDIR/gnulib-tool || exit + +get_modules build-aux/gnulib.modules + +gnulib_modules=`sort -u modlist.tmp` +previous_gnulib_modules= +while [ "$gnulib_modules" != "$previous_gnulib_modules" ]; do + previous_gnulib_modules=$gnulib_modules + gnulib_modules=` + (echo "$gnulib_modules" + for gnulib_module in $gnulib_modules; do + $GNULIB_SRCDIR/gnulib-tool --extract-dependencies $gnulib_module + done) | sort -u + ` +done + +gnulib_files=` + (for gnulib_module in $gnulib_modules; do + $GNULIB_SRCDIR/gnulib-tool --extract-filelist $gnulib_module + done) | sort -u +` + +gnulib_dirs=`echo "$gnulib_files" | sed 's,/[^/]*$,,' | sort -u` +mkdir -p $gnulib_dirs || exit + +for gnulib_file in $gnulib_files; do + dest=$gnulib_file + + case $gnulib_file in + m4/codeset.m4) continue;; + m4/intdiv0.m4) continue;; + m4/inttypes-pri.m4) continue;; + m4/isc-posix.m4) continue;; + m4/lcmessage.m4) continue;; + m4/onceonly_2_57.m4) dest=m4/onceonly.m4;; + # These will be overwritten by autopoint, which still uses + # old jm_.* macro names, so we have to keep both copies. + m4/gettext.m4 | m4/glibc21.m4 | m4/inttypes_h.m4 | m4/lib-ld.m4 | \ + m4/lib-prefix.m4 | m4/po.m4 | m4/stdint_h.m4 | m4/uintmax_t.m4 | \ + m4/ulonglong.m4) + dest=`expr $gnulib_file : '\(.*\).m4'`_gl.m4;; + esac + + rm -f $dest && + echo "$0: Copying file $GNULIB_SRCDIR/$gnulib_file" && + cp -p $GNULIB_SRCDIR/$gnulib_file $dest || exit +done + +echo "$0: Creating m4/gnulib.m4" +(echo "# This file is generated automatically. Please, do not edit." + echo "#" + echo "AC_DEFUN([paxutils_GNULIB],[" + for gnulib_module in $gnulib_modules; do + echo "# $gnulib_module" + $GNULIB_SRCDIR/gnulib-tool --extract-autoconf-snippet $gnulib_module + done | sed '/AM_GNU_GETTEXT/d' + echo "])") > ./m4/gnulib.m4 + +echo "$0: Creating lib/Makefile.am" +(echo "# This file is generated automatically from lib/Makefile.am. Do not edit!" + cat lib/Makefile.tmpl + + for gnulib_module in $gnulib_modules; do + echo "# $gnulib_module" + $GNULIB_SRCDIR/gnulib-tool --extract-automake-snippet $gnulib_module + done | sed 's/lib_SOURCES/libgnu_a_SOURCES/g' ) > lib/Makefile.am + +# Get translations. +if test "$DOWNLOAD_PO" = "yes"; then + update_po +fi + +# Reconfigure, getting other files. + +echo "$0: autoreconf --verbose --install --force ..." +autoreconf --verbose --install --force || exit 1 + + +echo "$0: done. Now you can run './configure'." diff --git a/build-aux/gnulib.modules b/build-aux/gnulib.modules new file mode 100644 index 0000000..6b0b649 --- /dev/null +++ b/build-aux/gnulib.modules @@ -0,0 +1,17 @@ +# List of gnulib modules needed for GNU paxutils. +# A module name per line. Empty lines and comments are ignored. + +argp +savedir +unlocked-io +fileblocks +error +gettext +inttostr +dirname +full-write +getopt +safe-read +stdbool +strtol +xalloc |