Utils: Handle non-annotated tags for versioning
[gstreamer-omap:sysbios-rpmsg.git] / src / utils / mkheader
1 #!/bin/bash
2 #
3 # Copyright (c) 2011, Texas Instruments Incorporated
4 # All rights reserved.
5 #
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
8 # are met:
9 #
10 # *  Redistributions of source code must retain the above copyright
11 #    notice, this list of conditions and the following disclaimer.
12 #
13 # *  Redistributions in binary form must reproduce the above copyright
14 #    notice, this list of conditions and the following disclaimer in the
15 #    documentation and/or other materials provided with the distribution.
16 #
17 # *  Neither the name of Texas Instruments Incorporated nor the names of
18 #    its contributors may be used to endorse or promote products derived
19 #    from this software without specific prior written permission.
20 #
21 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
23 # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
25 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26 # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
27 # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
28 # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29 # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30 # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
31 # EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 #
33
34 if [[ $# == 3 ]]
35 then
36     corefile0=$1
37     corefile1=$2
38     outfile=$3
39     shift 3
40 else
41   if [[ $# == 2 ]]
42   then
43     corefile0=$1
44     outfile=$2
45     shift 2
46   else
47     echo Usage: $0 core0 [core1] out >&2
48     exit 1
49   fi
50 fi
51
52 dir=`dirname $0`
53 tmp=/tmp/singlebin-$$
54 if [[ ! -f $dir/version.txt ]]
55 then
56         echo no $dir/version.txt file
57         exit 1
58 fi
59
60 version=`cat $dir/version.txt`
61 echo header version $version
62
63 echo -n RPRC > $outfile
64 $dir/wrints $version 1012 >> $outfile
65
66 cd $dir
67 rpmsgversion=$(git describe --dirty --tags)
68 cd $OLDPWD
69
70 if [[ -f $corefile0 ]]
71 then
72         md5sum $corefile0 >> $outfile
73         stat -c "%s %z" $corefile0 >> $outfile
74         nm $corefile0 | grep SysMin_Module_State_0_outbuf__A | cut -d ' ' -f 1 >> $outfile
75         cd $(dirname $corefile0)
76         core0version=$(git describe --dirty --tags)
77         cd $OLDPWD
78 fi
79
80 if [[ -f $corefile1 ]]
81 then
82         md5sum $corefile1 >> $outfile
83         stat -c "%s %z" $corefile1 >> $outfile
84         nm $corefile1 | grep SysMin_Module_State_0_outbuf__A | cut -d ' ' -f 1 >> $outfile
85         cd $(dirname $corefile1)
86         core1version=$(git describe --dirty --tags)
87         cd $OLDPWD
88 fi
89
90 echo version: >> $outfile
91 echo rpmsg: $rpmsgversion >> $outfile
92 if [[ -f $corefile0 ]]
93 then
94         echo core0: $core0version >> $outfile
95         $dir/xdep $(readlink -f $corefile0) >> $outfile
96 fi
97 if [[ -f $corefile1 ]]
98 then
99         echo core1: $core1version >> $outfile
100         $dir/xdep $(readlink -f $corefile1) >> $outfile
101 fi
102
103 (( numbytesneeded = 1024 - $(stat -c "%s" $outfile) ))
104 dd if=/dev/zero of=$tmp bs=$numbytesneeded count=1 > /dev/null 2>&1
105 cat $tmp >> $outfile
106 rm $tmp