Allow citadel / libcitadel to be built outside their source directory, e.g.:
[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 revision $BUILD"
24                 CAN_BUILD_SVN_REVISION="yes"
25         fi
26 fi
27
28 if [ "$CAN_BUILD_SVN_REVISION" = "yes" ] ; then
29
30 cat <<EOF > $C_FILE
31 /*
32  * Subversion revision functions
33  *
34  * Autogenerated at make/release time
35  *
36  * Do not modify this file
37  *
38  */
39  
40 const char *svn_revision (void)
41 {
42         const char *SVN_Version = "$BUILD";
43         return SVN_Version;
44 }
45 EOF
46
47 elif test ! -f $C_FILE  ; then
48
49 cat <<EOF > $C_FILE
50 /*
51  * Subversion revision functions
52  *
53  * Autogenerated at make time
54  *
55  * There should have been one with your source distribution
56  *
57  * Do not modify this file
58  *
59  */
60  
61 const char *svn_revision (void)
62 {
63         const char *SVN_Version = "**UNKNOWN** Built from source without svn and no $C_FILE accompanying";
64         return SVN_Version;
65 }
66 EOF
67
68 fi