]> code.citadel.org Git - citadel.git/blob - citadel/scripts/mk_svn_revision.sh
35ad0dc94af1ed068e4a8206b8520a5645e2f6f4
[citadel.git] / citadel / scripts / mk_svn_revision.sh
1 #!/bin/sh
2 #
3 # Script to generate svn_revision.c
4 #
5
6 ECHO=/usr/bin/printf
7
8
9 SCRIPT_DIR=`dirname $0`
10 SRC_DIR=`dirname $SCRIPT_DIR`
11 CUR_DIR=`pwd`
12 C_FILE="$CUR_DIR/svn_revision.c"
13 H_FILE="$CUR_DIR/svn_revision.h"
14
15
16 # determine if this code base came from subversion.
17 if test -d $SRC_DIR/.svn  ; then
18         echo "have subversion repository"
19         SVNVERSION=`which svnversion`
20         if test -x $SVNVERSION  ; then
21                 echo "have svnversion at $SVNVERSION"
22                 BUILD=`svnversion -n .`
23                 echo "This code base svn-revision: $BUILD"
24                 CAN_BUILD_SVN_REVISION="yes"
25         fi
26 else 
27     if git status> /dev/null 2>&1; then 
28         echo "have Git repository."
29         TAG=`git rev-parse HEAD`
30         BRANCH="`git show-branch |sed 's;\[\(.*\)\].*;\1;'`"
31         BUILD="GIT: $BRANCH : $TAG"
32         echo "This code base git-revision: $BUILD"
33         CAN_BUILD_SVN_REVISION="yes"
34     fi
35 fi
36
37 if [ "$CAN_BUILD_SVN_REVISION" = "yes" ] ; then
38
39 cat <<EOF > $C_FILE
40 /*
41  * Subversion / GIT revision functions
42  *
43  * Autogenerated at make/release time
44  *
45  * Do not modify this file
46  *
47  */
48  
49 const char *svn_revision (void)
50 {
51         const char *SVN_Version = "$BUILD";
52         return SVN_Version;
53 }
54 EOF
55
56 elif test ! -f $C_FILE  ; then
57
58 cat <<EOF > $C_FILE
59 /*
60  * Subversion / GIT revision functions
61  *
62  * Autogenerated at make time
63  *
64  * There should have been one with your source distribution
65  *
66  * Do not modify this file
67  *
68  */
69  
70 const char *svn_revision (void)
71 {
72         const char *SVN_Version = "**UNKNOWN** Built from source without svn and no $C_FILE accompanying";
73         return SVN_Version;
74 }
75 EOF
76
77 fi