From 45c2f3b9f984c67a795f18fd26609599941ac21a Mon Sep 17 00:00:00 2001
From: "Kevin P. Fleming" <kpfleming@digium.com>
Date: Mon, 28 Nov 2005 03:59:39 +0000
Subject: [PATCH] make version-string computation based on SVN branch/revision
 numbers

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7207 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 Makefile                         | 22 ++++++++------
 build_tools/make_svn_branch_name | 50 ++++++++++++++++++++++++++++++++
 2 files changed, 63 insertions(+), 9 deletions(-)
 create mode 100755 build_tools/make_svn_branch_name

diff --git a/Makefile b/Makefile
index 69e57fea41..5c18fca0f7 100755
--- a/Makefile
+++ b/Makefile
@@ -305,22 +305,26 @@ endif # WITHOUT_ZAPTEL
 LIBEDIT=editline/libedit.a
 
 ifneq ($(wildcard .version),)
-  ASTERISKVERSION=$(shell cat .version)
-  ASTERISKVERSIONNUM=$(shell awk -F. '{printf "%02d%02d%02d", $$1, $$2, $$3}' .version)
-  RPMVERSION=$(shell sed 's/[-\/:]/_/g' .version)
+  ASTERISKVERSION:=$(shell cat .version)
+  ASTERISKVERSIONNUM:=$(shell awk -F. '{printf "%02d%02d%02d", $$1, $$2, $$3}' .version)
+  RPMVERSION:=$(shell sed 's/[-\/:]/_/g' .version)
 else
   RPMVERSION=unknown
 endif
 
-ifneq ($(wildcard CVS),)
+# CVS mirrors of SVN have .svnrevision files showing
+# which SVN revision they are based on, and .svnbranch
+# showing the branch they are made from
+ifneq ($(wildcard .svnrevision),)
   ASTERISKVERSIONNUM=999999
-  ifneq ($(wildcard CVS/Tag),)
-    ASTERISKVERSION=$(shell echo "CVS-`sed 's/^T//g' CVS/Tag`-`date +"%D-%T"`")
+  ASTERISKVERSION:=SVN-$(shell cat .svnbranch)-r$(shell cat .svnrevision)
+else
+  ifneq ($(wildcard .svn),)
+    ASTERISKVERSIONNUM=999999
+    ASTERISKVERSION=SVN-$(shell build_tools/make_svn_branch_name)
   else
-    ASTERISKVERSION=CVS HEAD
+    ASTERISKVERSIONNUM=000000
   endif
-else
-  ASTERISKVERSIONNUM=000000
 endif
 
 ASTCFLAGS+= $(DEBUG_THREADS)
diff --git a/build_tools/make_svn_branch_name b/build_tools/make_svn_branch_name
new file mode 100755
index 0000000000..e24ba44ccb
--- /dev/null
+++ b/build_tools/make_svn_branch_name
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+PARTS=`svn info | grep URL | awk '{print $2;}' | sed -e s:^.*/svn/asterisk/:: | sed -e 's:/: :'`
+BRANCH=0
+TEAM=0
+
+REV=`svn info | grep -e 'Last Changed Rev' | awk '{print $4;}'`
+
+if [ "${PARTS}" == "trunk" ]
+then
+    echo 'trunk'-r${REV}
+    exit 0
+fi
+
+for PART in $PARTS
+do
+  if [ ${BRANCH} != 0 ]
+  then
+      RESULT="${RESULT}-${PART}"
+      break
+  fi
+
+  if [ ${TEAM} != 0 ]
+  then
+      RESULT="${RESULT}-${PART}"
+      continue
+  fi
+
+  if [ "${PART}" == "branches" ]
+  then
+      BRANCH=1
+      RESULT="branch"
+      continue
+  fi
+
+  if [ "${PART}" == "tags" ]
+  then
+      BRANCH=1
+      RESULT="tag"
+      continue
+  fi
+
+  if [ "${PART}" == "team" ]
+  then
+      TEAM=1
+      continue
+  fi
+done
+
+echo ${RESULT}-r${REV}
-- 
GitLab