summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am3
-rw-r--r--config/Makefile.am2
-rw-r--r--config/gr_git.m442
-rw-r--r--config/gr_version.m469
-rw-r--r--configure.ac9
-rw-r--r--version.sh4
6 files changed, 124 insertions, 5 deletions
diff --git a/Makefile.am b/Makefile.am
index ec71be725..084fb5dc1 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 3aead353a..eb1056eb6 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 000000000..e27460713
--- /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 000000000..4f45f0efa
--- /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 f51f2103f..fbb8bb52e 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 000000000..b2cad877d
--- /dev/null
+++ b/version.sh
@@ -0,0 +1,4 @@
+MAJOR_VERSION=3
+API_COMPAT=3
+MINOR_VERSION=git
+MAINT_VERSION=