2c5e1e26e6572b06688b699e3c7911c3c45a6954
[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     else
35         if test -f $C_FILE; then
36             exit
37         fi
38     fi
39 fi
40
41 if [ "$CAN_BUILD_SVN_REVISION" = "yes" ] ; then
42
43 cat <<EOF > $C_FILE
44 /*
45  * Subversion / GIT revision functions
46  *
47  * Autogenerated at make/release time
48  *
49  * Do not modify this file
50  *
51  */
52  
53 const char *svn_revision (void)
54 {
55         const char *SVN_Version = "$BUILD";
56         return SVN_Version;
57 }
58 EOF
59
60 elif test ! -f $C_FILE  ; then
61
62 cat <<EOF > $C_FILE
63 /*
64  * Subversion / GIT revision functions
65  *
66  * Autogenerated at make time
67  *
68  * There should have been one with your source distribution
69  *
70  * Do not modify this file
71  *
72  */
73  
74 const char *svn_revision (void)
75 {
76         const char *SVN_Version = "**UNKNOWN** Built from source without svn and no $C_FILE accompanying";
77         return SVN_Version;
78 }
79 EOF
80
81 fi