#!/bin/sh # Run this after autogen.sh, to pull in all of the gnulib-related bits. # It's important to run *after* autogen.sh, since it updates some of # the same files autogen.sh does, yet those from gnulib are newer, # and match the tests. So if a gnulib bug has been fixed since the # snapshot taken for whatever gettext release you're using, yet you # run "make check" against the wrong version, the corresponding unit # test in gl-tests/ may well fail. usage() { echo >&2 "\ Usage: $0 [OPTION]... Bootstrap this package from the checked-out sources. Options: --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 downloading them again. If the file bootstrap.conf exists in the current working directory, its contents are read as shell variables to configure the bootstrap. Running without arguments will suffice in most cases. " } for option do case $option in --help) usage exit;; --gnulib-srcdir=*) GNULIB_SRCDIR=`expr "$option" : '--gnulib-srcdir=\(.*\)'`;; *) echo >&2 "$0: $option: unknown option" exit 1;; esac done cleanup_gnulib() { st=$? rm -fr .gnulib exit $st } case ${GNULIB_SRCDIR--} in -) if [ ! -d .gnulib ]; then echo "$0: getting gnulib files..." trap cleanup_gnulib 1 2 13 15 git clone --depth 1 git://git.sv.gnu.org/gnulib .gnulib || cleanup_gnulib trap - 1 2 13 15 fi GNULIB_SRCDIR=.gnulib esac gnulib_tool=$GNULIB_SRCDIR/gnulib-tool <$gnulib_tool || exit modules=' c-ctype close connect getaddrinfo gethostname getpass gettext inet_pton mkstemp mktempd perror physmem poll posix-shell recv send setsockopt socket strndup strerror strsep sys_stat useless-if-before-free vasprintf verify vc-list-files ' # Tell gnulib to: # require LGPLv2+ # put *.m4 files in new gnulib/m4/ dir # put *.[ch] files in new gnulib/lib/ dir. $gnulib_tool \ --lgpl=2 \ --with-tests \ --m4-base=gnulib/m4 \ --source-base=gnulib/lib \ --tests-base=gnulib/tests \ --import $modules rm -f \ .gitignore \ gnulib/lib/.gitignore \ gnulib/m4/.gitignore \ gnulib/tests/.gitignore (cd gnulib/lib && (cat .cvsignore; \ ls -1 *.in.h|sed 's/\.in\.h/.h/') | sort -u > .t; mv .t .cvsignore)