From b98cabac11306fa25c29a2e0adc1c0c0a697e9a0 Mon Sep 17 00:00:00 2001 From: Johnathan Corgan Date: Sun, 30 May 2010 23:06:20 -0700 Subject: howto: make versioned libraries --- gr-howto-write-a-block/config/gr_git.m4 | 35 +++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) (limited to 'gr-howto-write-a-block/config/gr_git.m4') diff --git a/gr-howto-write-a-block/config/gr_git.m4 b/gr-howto-write-a-block/config/gr_git.m4 index 5fe424808..5e8aa663b 100644 --- a/gr-howto-write-a-block/config/gr_git.m4 +++ b/gr-howto-write-a-block/config/gr_git.m4 @@ -1,4 +1,4 @@ -dnl Copyright 2009 Free Software Foundation, Inc. +dnl Copyright 2009,2010 Free Software Foundation, Inc. dnl dnl This file is part of GNU Radio dnl @@ -24,12 +24,35 @@ AC_DEFUN([GR_GIT],[ dnl If it exists, get either 'git describe' or fallback to current commit if test x$GIT != x ; then - if (cd $srcdir && $GIT describe >/dev/null 2>&1); then - GIT_VERSION=`cd $srcdir && $GIT describe --abbrev=8 | cut -f 2- -d '-'` - else - if (cd $srcdir && $GIT describe --always --abbrev=8 >/dev/null 2>&1); then - GIT_VERSION=`cd $srcdir && $GIT describe --always --abbrev=8` + AC_MSG_CHECKING([existence of git version control directory]) + if test -d $srcdir/.git ; then + AC_MSG_RESULT([ok]) + AC_MSG_CHECKING([git description of current commit]) + if (cd $srcdir && $GIT describe >/dev/null 2>&1); then + GIT_DESCRIBE=`cd $srcdir && $GIT describe --abbrev=8 --long` + GIT_TAG=`echo $GIT_DESCRIBE | cut -f 1 -d '-'` + GIT_SEQNO=`echo $GIT_DESCRIBE | cut -f 2 -d '-'` + GIT_COMMIT=`echo $GIT_DESCRIBE | cut -f 3 -d '-' | cut -f 2- -d 'g'` + # Release candidate tags create an extra -rcX field + if test x`echo $GIT_DESCRIBE | cut -f 1- -d '-' --output-delimiter=' ' | wc -w` = x4; then + GIT_TAG=`echo $GIT_DESCRIBE | cut -f -2 -d '-'` + GIT_SEQNO=`echo $GIT_DESCRIBE | cut -f 3 -d '-'` + GIT_COMMIT=`echo $GIT_DESCRIBE | cut -f 4 -d '-' | cut -f 2- -d 'g'` + fi + AC_MSG_RESULT([$GIT_DESCRIBE]) + else + AC_MSG_RESULT([unable to find, using current commit]) + GIT_TAG='' + GIT_SEQNO='' + GIT_COMMIT=`cd $srcdir && $GIT describe --always --abbrev=8` fi + else + AC_MSG_RESULT([not found]) fi + + AC_SUBST([GIT_DESCRIBE]) + AC_SUBST([GIT_TAG]) + AC_SUBST([GIT_SEQNO]) + AC_SUBST([GIT_COMMIT]) fi ]) -- cgit