Mercurial > projects > ldc
annotate revisions.pl.in @ 1083:c1e9f612e2e2
Fix for dual operand form of fistp, also make reg ST(0) explicit and fix lindquists
previous code that allowed dual operand form of fstp but dissallowed the single
operand form accidently
author | Kelly Wilson <wilsonk cpsc.ucalgary.ca> |
---|---|
date | Tue, 10 Mar 2009 06:23:26 -0600 |
parents | dc576c7e4b1e |
children | 829ac3f30103 |
rev | line source |
---|---|
853
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
2 |
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
3 use strict; |
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
4 use warnings; |
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
5 use File::stat; |
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
6 use Time::localtime; |
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
7 |
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
8 my $llvm_src = `perl @LLVM_CONFIG@ --src-root`; |
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
9 |
1064
f0b6549055ab
Make LDC work with LLVM trunk (s/LinkOnceLinkage/LinkOnceOdrLinkage/)
Frits van Bommel <fvbommel wxs.nl>
parents:
972
diff
changeset
|
10 my $llvm_rev = `svnversion --committed $llvm_src`; |
f0b6549055ab
Make LDC work with LLVM trunk (s/LinkOnceLinkage/LinkOnceOdrLinkage/)
Frits van Bommel <fvbommel wxs.nl>
parents:
972
diff
changeset
|
11 my $llvm_rev_str; |
f0b6549055ab
Make LDC work with LLVM trunk (s/LinkOnceLinkage/LinkOnceOdrLinkage/)
Frits van Bommel <fvbommel wxs.nl>
parents:
972
diff
changeset
|
12 my $llvm_rev_nr; |
853
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
13 |
1065
dc576c7e4b1e
Fix to make sure to create gen/ in build dir and unbreak build with older perl
Frits van Bommel <fvbommel wxs.nl>
parents:
1064
diff
changeset
|
14 if ($llvm_rev =~ /^\s*(\d+:)?((\d+)[MSP]*)\s*$/) { |
dc576c7e4b1e
Fix to make sure to create gen/ in build dir and unbreak build with older perl
Frits van Bommel <fvbommel wxs.nl>
parents:
1064
diff
changeset
|
15 $llvm_rev_str = qq!#define LLVM_REV_STR "LLVM rev. $2"!; |
dc576c7e4b1e
Fix to make sure to create gen/ in build dir and unbreak build with older perl
Frits van Bommel <fvbommel wxs.nl>
parents:
1064
diff
changeset
|
16 $llvm_rev_nr = "$3"; |
853
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
17 } else { |
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
18 my $llvm_lib = `perl @LLVM_CONFIG@ --libdir`; |
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
19 $llvm_lib =~ s/\s+$//; |
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
20 $llvm_rev = ctime(stat($llvm_lib)->mtime) if (-d $llvm_lib); |
1064
f0b6549055ab
Make LDC work with LLVM trunk (s/LinkOnceLinkage/LinkOnceOdrLinkage/)
Frits van Bommel <fvbommel wxs.nl>
parents:
972
diff
changeset
|
21 $llvm_rev_str = qq!#include "llvm/Config/config.h"\n#define LLVM_REV_STR PACKAGE_STRING" ($llvm_rev)"!; |
f0b6549055ab
Make LDC work with LLVM trunk (s/LinkOnceLinkage/LinkOnceOdrLinkage/)
Frits van Bommel <fvbommel wxs.nl>
parents:
972
diff
changeset
|
22 # Assume latest release, so < any version we should be testing for. |
f0b6549055ab
Make LDC work with LLVM trunk (s/LinkOnceLinkage/LinkOnceOdrLinkage/)
Frits van Bommel <fvbommel wxs.nl>
parents:
972
diff
changeset
|
23 $llvm_rev_nr = 0; |
853
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
24 } |
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
25 |
972
d66ab756c75b
Change the way the version is printed (more verbose, with short hash)
Frits van Bommel <fvbommel wxs.nl>
parents:
873
diff
changeset
|
26 my $ldc_rev = `hg -R@PROJECT_SOURCE_DIR@ log -r qparent --template '{rev}:{node|short} ({date|isodate})' 2>/dev/null || hg -R@PROJECT_SOURCE_DIR@ tip --template '{rev}:{node|short} ({date|isodate})'`; |
853
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
27 |
873
a331ce9bc749
fix unnecessary revisions.h regeneration and mars.c recompilation
elrood
parents:
853
diff
changeset
|
28 my $out = qq!#ifndef LDC_VERSIONS_H |
853
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
29 #define LDC_VERSIONS_H |
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
30 |
1064
f0b6549055ab
Make LDC work with LLVM trunk (s/LinkOnceLinkage/LinkOnceOdrLinkage/)
Frits van Bommel <fvbommel wxs.nl>
parents:
972
diff
changeset
|
31 // LLVM version string, for use in -version output |
f0b6549055ab
Make LDC work with LLVM trunk (s/LinkOnceLinkage/LinkOnceOdrLinkage/)
Frits van Bommel <fvbommel wxs.nl>
parents:
972
diff
changeset
|
32 $llvm_rev_str |
f0b6549055ab
Make LDC work with LLVM trunk (s/LinkOnceLinkage/LinkOnceOdrLinkage/)
Frits van Bommel <fvbommel wxs.nl>
parents:
972
diff
changeset
|
33 // LLVM svn revision number, used to adapt to changes in LLVM |
f0b6549055ab
Make LDC work with LLVM trunk (s/LinkOnceLinkage/LinkOnceOdrLinkage/)
Frits van Bommel <fvbommel wxs.nl>
parents:
972
diff
changeset
|
34 // (Is 0 if LLVM is not an SVN version) |
f0b6549055ab
Make LDC work with LLVM trunk (s/LinkOnceLinkage/LinkOnceOdrLinkage/)
Frits van Bommel <fvbommel wxs.nl>
parents:
972
diff
changeset
|
35 #define LLVM_REV $llvm_rev_nr |
f0b6549055ab
Make LDC work with LLVM trunk (s/LinkOnceLinkage/LinkOnceOdrLinkage/)
Frits van Bommel <fvbommel wxs.nl>
parents:
972
diff
changeset
|
36 // LDC version string, for use in -version output |
972
d66ab756c75b
Change the way the version is printed (more verbose, with short hash)
Frits van Bommel <fvbommel wxs.nl>
parents:
873
diff
changeset
|
37 #define LDC_REV "rev. $ldc_rev" |
853
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
38 |
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
39 #endif // LDC_VERSIONS_H\n!; |
82ad6c0c601c
Add Elrood's patch to output LDC and LLVM source revs.
Christian Kamm <kamm incasoftware de>
parents:
diff
changeset
|
40 |
873
a331ce9bc749
fix unnecessary revisions.h regeneration and mars.c recompilation
elrood
parents:
853
diff
changeset
|
41 my $revh; |
a331ce9bc749
fix unnecessary revisions.h regeneration and mars.c recompilation
elrood
parents:
853
diff
changeset
|
42 my $old = ""; |
a331ce9bc749
fix unnecessary revisions.h regeneration and mars.c recompilation
elrood
parents:
853
diff
changeset
|
43 open $revh, "revisions.h" and $old = join "", <$revh>; |
a331ce9bc749
fix unnecessary revisions.h regeneration and mars.c recompilation
elrood
parents:
853
diff
changeset
|
44 |
a331ce9bc749
fix unnecessary revisions.h regeneration and mars.c recompilation
elrood
parents:
853
diff
changeset
|
45 if ($old ne $out) { |
a331ce9bc749
fix unnecessary revisions.h regeneration and mars.c recompilation
elrood
parents:
853
diff
changeset
|
46 open $revh, ">revisions.h" or die "cannot create revisions.h: $!"; |
a331ce9bc749
fix unnecessary revisions.h regeneration and mars.c recompilation
elrood
parents:
853
diff
changeset
|
47 print $revh $out; |
a331ce9bc749
fix unnecessary revisions.h regeneration and mars.c recompilation
elrood
parents:
853
diff
changeset
|
48 close $revh; |
a331ce9bc749
fix unnecessary revisions.h regeneration and mars.c recompilation
elrood
parents:
853
diff
changeset
|
49 } |