summaryrefslogtreecommitdiff
path: root/autogen.sh
diff options
context:
space:
mode:
Diffstat (limited to 'autogen.sh')
-rwxr-xr-xautogen.sh40
1 files changed, 40 insertions, 0 deletions
diff --git a/autogen.sh b/autogen.sh
index 1945e8120b3..614bdc71b61 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -216,6 +216,46 @@ autoreconf -fi -I m4 || exit $?
## cause 'make' to needlessly run 'autoheader'.
echo timestamp > src/stamp-h.in || exit
+## Install Git hooks, if using Git.
+if test -d .git/hooks; then
+ tailored_hooks=
+ sample_hooks=
+
+ for hook in commit-msg pre-commit; do
+ cmp build-aux/git-hooks/$hook .git/hooks/$hook >/dev/null 2>&1 ||
+ tailored_hooks="$tailored_hooks $hook"
+ done
+ for hook in applypatch-msg pre-applypatch; do
+ cmp .git/hooks/$hook.sample .git/hooks/$hook >/dev/null 2>&1 ||
+ sample_hooks="$sample_hooks $hook"
+ done
+
+ if test -n "$tailored_hooks$sample_hooks"; then
+ echo "Installing git hooks..."
+
+ case `cp --help 2>/dev/null` in
+ *--backup*--verbose*)
+ cp_options='--backup=numbered --verbose';;
+ *)
+ cp_options='';;
+ esac
+
+ if test -n "$tailored_hooks"; then
+ for hook in $tailored_hooks; do
+ cp $cp_options build-aux/git-hooks/$hook .git/hooks || exit
+ chmod a-w .git/hooks/$hook || exit
+ done
+ fi
+
+ if test -n "$sample_hooks"; then
+ for hook in $sample_hooks; do
+ cp $cp_options .git/hooks/$hook.sample .git/hooks/$hook || exit
+ chmod a-w .git/hooks/$hook || exit
+ done
+ fi
+ fi
+fi
+
echo "You can now run './configure'."
exit 0