#! /bin/bash

# Gnulib files in zmanda repo are from gnulib CVS updated with:
#   cvs update -D '2007-01-31 13:12:51 -0600'

# get to the project root
cd `dirname $0`/../..
if [ ! -f configure.in ]
then
    echo "Cannot navigate to project root"
    exit 1
fi

# check that gnulib-tool is available before we do anything drastic
[ -z "${GNULIB_TOOL}" ] && GNULIB_TOOL=gnulib-tool
"${GNULIB_TOOL}" --version >/dev/null 2>/dev/null
if [ "$?" != 0 ]
then
    echo "gnulib-tool not found; try using"
    echo "  GNULIB_TOOL=/path/to/gnulib-tool ${0} ${@}"
    exit 1
fi

# remove the files in gnulib and config/gnulib, but not directories
# (and, in particular, not the gnulib/regenerate directory)
shopt -s nullglob
for filename in gnulib/* config/gnulib/*
do
    [ -d "${filename}" ] && continue
    echo "Removing ${filename}"
    rm "${filename}" || exit 1
done
shopt -u nullglob

########################## DEVELOPERS! ###############################
## Add your modules here, then see below if you need to patch them. ##
######################################################################

GNULIB_MODULES="getaddrinfo lock visibility"

######################################################################
## End modules                                                      ##
######################################################################

# check out a brand new gnulib directory and gnulib.m4i

"${GNULIB_TOOL}" --import \
        --dir=. --lib=libgnu --source-base=gnulib --m4-base=config/gnulib \
        --doc-base=doc --aux-dir=config --libtool --macro-prefix=gl \
        ${GNULIB_MODULES} || exit 1

for filename in config/gnulib/*.m4
 do
    echo "m4_include([$filename])"
done > config/gnulib.m4i || exit 1

########################## DEVELOPERS! ###############################
## Add your patch commands here, or use sed invoacations, etc.      ##
## Please comment heavily!                                          ##
######################################################################
PATCH_DIR="`pwd`/gnulib/regenerate"


# Patch Makefile.am to not error out on warnings
patch -p0 < "${PATCH_DIR}/no-error.patch" || exit 1


# Add John's patches to getaddrinfo.c for use in cygwin
patch -p0 < "${PATCH_DIR}/getaddrinfo-cygwin.patch" || exit 1


# Add info to the makefile to ensure all this stuff gets put in
# the distribution tarball
(   echo ""
    echo "# Make sure regenerate/* are in the distribution tarball"
    echo "EXTRA_DIST += "`cd gnulib; find regenerate -name .svn -prune -o -type f -print `
) >> gnulib/Makefile.am

######################################################################
## End patches                                                      ##
######################################################################
