Skip to content

Commit

Permalink
do not require two ./autogen.sh runs to permit "make"
Browse files Browse the repository at this point in the history
* autogen.sh (bootstrap_hash): New function.
Running bootstrap may update the gnulib SHA1, yet we were computing
t=$(git submodule status ...) *prior* to running bootstrap, and
then recording that sometimes-stale value in the stamp file upon
a successful bootstrap run.  That would require two (lengthy!)
bootstrap runs to update the stamp file.
  • Loading branch information
Jim Meyering committed Mar 16, 2010
1 parent fe2f1ba commit be7780b
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions autogen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -62,20 +62,27 @@ else
fi
fi

# Compute the hash we'll use to determine whether rerunning bootstrap
# is required. The first is just the SHA1 that selects a gnulib snapshot.
# The second ensures that whenever we change the set of gnulib modules used
# by this package, we rerun bootstrap to pull in the matching set of files.
bootstrap_hash()
{
git submodule status | sed 's/^[ +-]//;s/ .*//'
git hash-object bootstrap.conf
}

# Ensure that whenever we pull in a gnulib update or otherwise change to a
# different version (i.e., when switching branches), we also rerun ./bootstrap.
curr_status=.git-module-status
t=$(git submodule status|sed 's/^[ +-]//;s/ .*//'; \
git hash-object bootstrap.conf)
t=$(bootstrap_hash)
if test "$t" = "$(cat $curr_status 2>/dev/null)"; then
: # good, it's up to date, all we need is autoreconf
autoreconf -if
else
echo running bootstrap...
./bootstrap && echo "$t" > $curr_status || {
echo "Failed to bootstrap gnulib, please investigate."
exit 1;
}
echo running bootstrap...
./bootstrap && bootstrap_hash > $curr_status \
|| { echo "Failed to bootstrap gnulib, please investigate."; exit 1; }
fi

cd "$THEDIR"
Expand Down

0 comments on commit be7780b

Please sign in to comment.