From 56496536e1e2b8f73079bd3dedc4e74b27fcad80 Mon Sep 17 00:00:00 2001 From: Johnathan Corgan Date: Sat, 3 Oct 2009 08:44:47 -0700 Subject: [PATCH] Added computed version number to configuration --- Makefile.am | 3 +- config/Makefile.am | 2 ++ config/gr_git.m4 | 42 +++++++++++++++++++++++++++ config/gr_version.m4 | 69 ++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 9 +++--- version.sh | 4 +++ 6 files changed, 124 insertions(+), 5 deletions(-) create mode 100644 config/gr_git.m4 create mode 100644 config/gr_version.m4 create mode 100644 version.sh diff --git a/Makefile.am b/Makefile.am index ec71be72..084fb5dc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -33,10 +33,11 @@ EXTRA_DIST = \ Makefile.swig.gen.t \ Makefile.par.gen \ Makefile.gen.gen \ - debian/changelog + version.sh SUBDIRS = @build_dirs@ DIST_SUBDIRS = @build_dirs@ @skipped_dirs@ @with_dirs@ +DISTCLEANFILES = gnuradio*.tar.gz if PYTHON diff --git a/config/Makefile.am b/config/Makefile.am index 3aead353..eb1056eb 100644 --- a/config/Makefile.am +++ b/config/Makefile.am @@ -83,6 +83,7 @@ m4macros = \ gr_doxygen.m4 \ gr_fortran.m4 \ gr_gcell.m4 \ + gr_git.m4 \ gr_gprof.m4 \ gr_lib64.m4 \ gr_libgnuradio_core_extra_ldflags.m4 \ @@ -97,6 +98,7 @@ m4macros = \ gr_subversion.m4 \ gr_swig.m4 \ gr_sysv_shm.m4 \ + gr_version.m4 \ lf_cc.m4 \ lf_cxx.m4 \ lf_warnings.m4 \ diff --git a/config/gr_git.m4 b/config/gr_git.m4 new file mode 100644 index 00000000..e2746071 --- /dev/null +++ b/config/gr_git.m4 @@ -0,0 +1,42 @@ +dnl Copyright 2009 Free Software Foundation, Inc. +dnl +dnl This file is part of GNU Radio +dnl +dnl GNU Radio is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 3, or (at your option) +dnl any later version. +dnl +dnl GNU Radio is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with GNU Radio; see the file COPYING. If not, write to +dnl the Free Software Foundation, Inc., 51 Franklin Street, +dnl Boston, MA 02110-1301, USA. + + +AC_DEFUN([GR_GIT],[ + dnl Identify git binary + AC_PATH_PROG([GIT],[git]) + + dnl If it exists, get either 'git describe' or fallback to current commit + if test x$GIT != x ; then + 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_VERSION=`cd $srcdir && $GIT describe --abbrev=8 | cut -f 2- -d '-'` + AC_MSG_RESULT([$GIT_DESCRIBE]) + else + AC_MSG_RESULT([unable to find, using current commit]) + GIT_VERSION=`cd $srcdir && $GIT describe --always --abbrev=8` + fi + else + AC_MSG_RESULT([not found]) + fi + fi +]) diff --git a/config/gr_version.m4 b/config/gr_version.m4 new file mode 100644 index 00000000..4f45f0ef --- /dev/null +++ b/config/gr_version.m4 @@ -0,0 +1,69 @@ +dnl Copyright 2009 Free Software Foundation, Inc. +dnl +dnl This file is part of GNU Radio +dnl +dnl GNU Radio is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 3, or (at your option) +dnl any later version. +dnl +dnl GNU Radio is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with GNU Radio; see the file COPYING. If not, write to +dnl the Free Software Foundation, Inc., 51 Franklin Street, +dnl Boston, MA 02110-1301, USA. + +AC_DEFUN([GR_VERSION],[ + dnl Computed version based on version.sh + dnl Does not force recompile on rev change + dnl + dnl Source the variables describing the release version + dnl + dnl MAJOR_VERSION Major release generation (2.x, 3.x, etc.) + dnl API_COMPAT API compatibility version (3.2.x, 3.3.x, etc.) + dnl MINOR_VERSION Minor release version + dnl MAINT_VERSION Pure bugfix additions to make maintenance release + dnl + dnl The last two fields can have 'git' instead of a number to indicate + dnl that this branch is between versions. + . $srcdir/version.sh + RELEASE=$MAJOR_VERSION.$API_COMPAT + + dnl Get git version if available + GR_GIT + + dnl Test if we should use git version + if test "$MINOR_VERSION" == "git"; then + dnl 3.3git-xxx-gxxxxxxxx + RELEASE=$RELEASE$MINOR_VERSION + if test "$GIT_VERSION" != "" ; then + RELEASE=$RELEASE-$GIT_VERSION + fi + else + if test "$MAINT_VERSION" == "git" ; then + dnl 3.3.1git-xxx-gxxxxxxxx + RELEASE=$RELEASE.$MINOR_VERSION$MAINT_VERSION + if test "$GIT_VERSION" != "" ; then + RELEASE=$RELEASE-$GIT_VERSION + fi + else + dnl This is a numbered reelase. + dnl Test if minor version is 0, which we don't encode, unless it is also + dnl a maintenance release + if test "$MINOR_VERSION" != "0" -o "$MAINT_VERSION" != "0"; then + dnl 3.3.1 + RELEASE=$RELEASE.$MINOR_VERSION + if test "$MAINT_VERSION" != "0"; then + dnl 3.3.0.1, 3.3.1.1 + RELEASE=$RELEASE.$MAINT_VERSION + fi + fi + fi + fi + + AC_MSG_NOTICE([GNU Radio Release $RELEASE]) +]) diff --git a/configure.ac b/configure.ac index f51f2103..fbb8bb52 100644 --- a/configure.ac +++ b/configure.ac @@ -26,10 +26,10 @@ AC_CANONICAL_BUILD AC_CANONICAL_HOST AC_CANONICAL_TARGET - -VERSION=3.3git -AC_SUBST(VERSION) -AM_INIT_AUTOMAKE(gnuradio,$VERSION) +GR_VERSION +dnl ustar required to have pathnames > 99 chars +_AM_SET_OPTION([tar-ustar]) +AM_INIT_AUTOMAKE(gnuradio,$RELEASE) DEFINES="" AC_SUBST(DEFINES) @@ -437,3 +437,4 @@ if test "$with_dirs" != ""; then echo fi +echo Configured GNU Radio release $RELEASE for build. diff --git a/version.sh b/version.sh new file mode 100644 index 00000000..b2cad877 --- /dev/null +++ b/version.sh @@ -0,0 +1,4 @@ +MAJOR_VERSION=3 +API_COMPAT=3 +MINOR_VERSION=git +MAINT_VERSION= -- 2.30.2