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
This commit is contained in:
Colomban Wendling 2011-10-06 00:43:09 +00:00
parent 4dd7092726
commit 680064b42c
4 changed files with 51 additions and 37 deletions

View File

@ -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 <nick(dot)treleaven(at)btinternet(dot)com>

View File

@ -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

View File

@ -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

45
m4/geany-revision.m4 Normal file
View File

@ -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<revnum>" 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])
])