annotate version.sh @ 29100:1bdda4f68f5f

Avoid spurious rebuilds on svn up. The check to find out if the header file changed compared two lines to one, which would result in false positive updates.
author cehoyos
date Sat, 04 Apr 2009 19:50:57 +0000
parents 689a357fdb1b
children 4964a530de54
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
420
980bafac238f write cvs date+version into version.h
arpi_esp
parents:
diff changeset
1 #!/bin/sh
980bafac238f write cvs date+version into version.h
arpi_esp
parents:
diff changeset
2
18759
04ed79acda15 simplify
diego
parents: 18624
diff changeset
3 test "$1" && extra="-$1"
18595
c55903d85291 cosmetics
diego
parents: 18594
diff changeset
4
28693
406b0b7a6dae Read revision string from the file snapshot_version if available.
diego
parents: 28691
diff changeset
5 # Extract revision number from file used by daily tarball snapshots
406b0b7a6dae Read revision string from the file snapshot_version if available.
diego
parents: 28691
diff changeset
6 # or from the places different Subversion versions have it.
406b0b7a6dae Read revision string from the file snapshot_version if available.
diego
parents: 28691
diff changeset
7 svn_revision=$(cat snapshot_version 2> /dev/null)
406b0b7a6dae Read revision string from the file snapshot_version if available.
diego
parents: 28691
diff changeset
8 test $svn_revision || svn_revision=$(LC_ALL=C svn info 2> /dev/null | grep Revision | cut -d' ' -f2)
28691
bd49d53e0cdb cosmetics: Use $() instead of ``, the former can be nested more easily.
diego
parents: 28350
diff changeset
9 test $svn_revision || svn_revision=$(grep revision .svn/entries 2>/dev/null | cut -d '"' -f2)
bd49d53e0cdb cosmetics: Use $() instead of ``, the former can be nested more easily.
diego
parents: 28350
diff changeset
10 test $svn_revision || svn_revision=$(sed -n -e '/^dir$/{n;p;q;}' .svn/entries 2>/dev/null)
28795
689a357fdb1b Add support for extracting the release version number from a VERSION file.
diego
parents: 28693
diff changeset
11 test $svn_revision && svn_revision=SVN-r$svn_revision
18791
72e6908f0347 Produce correct version string even when not run in a Subversion working copy.
diego
parents: 18784
diff changeset
12 test $svn_revision || svn_revision=UNKNOWN
72e6908f0347 Produce correct version string even when not run in a Subversion working copy.
diego
parents: 18784
diff changeset
13
28795
689a357fdb1b Add support for extracting the release version number from a VERSION file.
diego
parents: 28693
diff changeset
14 # releases extract the version number from the VERSION file
689a357fdb1b Add support for extracting the release version number from a VERSION file.
diego
parents: 28693
diff changeset
15 version=$(cat VERSION 2> /dev/null)
689a357fdb1b Add support for extracting the release version number from a VERSION file.
diego
parents: 28693
diff changeset
16 test $version || version=$svn_revision
689a357fdb1b Add support for extracting the release version number from a VERSION file.
diego
parents: 28693
diff changeset
17
689a357fdb1b Add support for extracting the release version number from a VERSION file.
diego
parents: 28693
diff changeset
18 NEW_REVISION="#define VERSION \"${version}${extra}\""
29100
1bdda4f68f5f Avoid spurious rebuilds on svn up. The check to find out if the header file
cehoyos
parents: 28795
diff changeset
19 OLD_REVISION=$(head -n 1 version.h 2> /dev/null)
28350
0b879bbbb432 Use single quotes to avoid escaping double quotes in a string.
diego
parents: 28349
diff changeset
20 TITLE='#define MP_TITLE "%s "VERSION" (C) 2000-2009 MPlayer Team\n"'
18784
b5777da79b53 Adapt FFmpeg version.sh that only recreates version.h if its content changed.
diego
parents: 18759
diff changeset
21
b5777da79b53 Adapt FFmpeg version.sh that only recreates version.h if its content changed.
diego
parents: 18759
diff changeset
22 # Update version.h only on revision changes to avoid spurious rebuilds
b5777da79b53 Adapt FFmpeg version.sh that only recreates version.h if its content changed.
diego
parents: 18759
diff changeset
23 if test "$NEW_REVISION" != "$OLD_REVISION"; then
28349
a42f319f25b3 Use cat instead of echo to generate version.h.
diego
parents: 28348
diff changeset
24 cat <<EOF > version.h
a42f319f25b3 Use cat instead of echo to generate version.h.
diego
parents: 28348
diff changeset
25 $NEW_REVISION
a42f319f25b3 Use cat instead of echo to generate version.h.
diego
parents: 28348
diff changeset
26 $TITLE
a42f319f25b3 Use cat instead of echo to generate version.h.
diego
parents: 28348
diff changeset
27 EOF
18784
b5777da79b53 Adapt FFmpeg version.sh that only recreates version.h if its content changed.
diego
parents: 18759
diff changeset
28 fi