a325bf3348df67208bc12c6528dfa71f543e84f3
[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 test -d $SRC_DIR/../.svn  ; then
28         echo "have Git repository."
29         BUILD=`/usr/bin/git log -1 --pretty=%H . `
30         echo "This code base git-revision: $BUILD"
31         CAN_BUILD_SVN_REVISION="yes"
32     else
33         if test -f $C_FILE; then
34             exit
35         fi
36     fi
37 fi
38
39 if [ "$CAN_BUILD_SVN_REVISION" = "yes" ] ; then
40
41 cat <<EOF > $C_FILE
42 /*
43  * Subversion / GIT revision functions
44  *
45  * Autogenerated at make/release time
46  *
47  * Do not modify this file
48  *
49  */
50  
51 const char *svn_revision (void)
52 {
53         const char *SVN_Version = "$BUILD";
54         return SVN_Version;
55 }
56 EOF
57
58 elif test ! -f $C_FILE  ; then
59
60 cat <<EOF > $C_FILE
61 /*
62  * Subversion / GIT revision functions
63  *
64  * Autogenerated at make time
65  *
66  * There should have been one with your source distribution
67  *
68  * Do not modify this file
69  *
70  */
71  
72 const char *svn_revision (void)
73 {
74         const char *SVN_Version = "**UNKNOWN** Built from source without svn and no $C_FILE accompanying";
75         return SVN_Version;
76 }
77 EOF
78
79 fi