From 680064b42c29d0abf6f517bf9ddd5a6a27d64fa5 Mon Sep 17 00:00:00 2001 From: Colomban Wendling Date: Thu, 6 Oct 2011 00:43:09 +0000 Subject: [PATCH] Move configure logic that checks for SVN revision to its own file git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@6001 ea778897-0a13-0410-b9d1-a72fbfd435f5 --- ChangeLog | 3 +++ autogen.sh | 2 +- configure.ac | 38 ++----------------------------------- m4/geany-revision.m4 | 45 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 51 insertions(+), 37 deletions(-) create mode 100644 m4/geany-revision.m4 diff --git a/ChangeLog b/ChangeLog index 9299648a..b5d1a315 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,9 @@ * autogen.sh, configure.ac: Modernize configure.ac a bit. + * configure.ac, m4/geany-revision.m4: + Extract some configure logic to a separate file for better + readability. 2011-10-05 Nick Treleaven diff --git a/autogen.sh b/autogen.sh index fd7b854e..6a929f86 100755 --- a/autogen.sh +++ b/autogen.sh @@ -87,7 +87,7 @@ test -d build-aux || mkdir build-aux echo "no" | glib-gettextize --force --copy intltoolize --copy --force --automake libtoolize --copy --force || glibtoolize --copy --force -aclocal +aclocal -I m4 autoheader automake --add-missing --copy --gnu autoconf diff --git a/configure.ac b/configure.ac index f3130181..ba0782cc 100644 --- a/configure.ac +++ b/configure.ac @@ -50,42 +50,8 @@ AC_CHECK_FUNCS([gethostname ftruncate fgetpos mkstemp strerror strstr]) # check for SVN revision -REVISION="r0" - -AC_MSG_CHECKING([for SVN revision]) -# try Git first -GIT=`which git 2>/dev/null` -if test -d ".git" -a "x${GIT}" != "x" -a -x "${GIT}" -then - # check for git-svn repo first - find-rev (v1.5.4.1) doesn't always fail with git-only repo - git svn info &>/dev/null - if test "x$?" == "x0"; then - REVISION=r`git svn find-rev origin/trunk 2>/dev/null || - git svn find-rev trunk 2>/dev/null || - git svn find-rev HEAD 2>/dev/null || - git svn find-rev master 2>/dev/null || - echo 0` - fi -fi -# then check for SVN -if test "x${REVISION}" = "xr0" -then - SVN=`which svn 2>/dev/null` - if test -d ".svn" -a "x${SVN}" != "x" -a -x "${SVN}" - then - REVISION=r`$SVN info|grep 'Last Changed Rev'|cut -d' ' -f4` - fi -fi -if test "x${REVISION}" != "xr0" -then - # force debug mode for a SVN working copy - CFLAGS="-g -DGEANY_DEBUG $CFLAGS" - AC_MSG_RESULT([$REVISION]) -else - REVISION="-1" - AC_MSG_RESULT([none]) -fi -AC_DEFINE_UNQUOTED([REVISION], "$REVISION", [subversion revision number]) +GEANY_CHECK_REVISION([dnl force debug mode for a SVN working copy + CFLAGS="-g -DGEANY_DEBUG $CFLAGS"]) # Check for binary relocation support diff --git a/m4/geany-revision.m4 b/m4/geany-revision.m4 new file mode 100644 index 00000000..0b402c2b --- /dev/null +++ b/m4/geany-revision.m4 @@ -0,0 +1,45 @@ +dnl GEANY_CHECK_REVISION([action-if-found], [action-if-not-found]) +dnl Check for the Git-SVN or SVN revision and set REVISION to +dnl "r" or to "-1" if the revision can't be found +dnl Also AC_DEFINEs REVISION +AC_DEFUN([GEANY_CHECK_REVISION], +[ + REVISION="r0" + + AC_MSG_CHECKING([for SVN revision]) + # try Git first + GIT=`which git 2>/dev/null` + if test -d ".git" -a "x${GIT}" != "x" -a -x "${GIT}"; then + # check for git-svn repo first - find-rev (v1.5.4.1) doesn't always fail with git-only repo + git svn info &>/dev/null + if test "x$?" == "x0"; then + REVISION=r`git svn find-rev origin/trunk 2>/dev/null || + git svn find-rev trunk 2>/dev/null || + git svn find-rev HEAD 2>/dev/null || + git svn find-rev master 2>/dev/null || + echo 0` + fi + fi + # then check for SVN + if test "x${REVISION}" = "xr0"; then + SVN=`which svn 2>/dev/null` + if test -d ".svn" -a "x${SVN}" != "x" -a -x "${SVN}"; then + REVISION=r`$SVN info|grep 'Last Changed Rev'|cut -d' ' -f4` + fi + fi + + if test "x${REVISION}" != "xr0"; then + AC_MSG_RESULT([$REVISION]) + + # call action-if-found + $1 + else + REVISION="-1" + AC_MSG_RESULT([none]) + + # call action-if-not-found + $2 + fi + + AC_DEFINE_UNQUOTED([REVISION], "$REVISION", [subversion revision number]) +])