kamm@853: #!/usr/bin/perl kamm@853: kamm@853: use strict; kamm@853: use warnings; kamm@853: use File::stat; kamm@853: use Time::localtime; kamm@853: kamm@853: my $llvm_src = `perl @LLVM_CONFIG@ --src-root`; kamm@853: kamm@853: my $llvm_rev = `svnversion $llvm_src`; kamm@853: kamm@853: if ($llvm_rev =~ s/(\d+)\s+$/$1/) { kamm@853: $llvm_rev = qq!#define LLVM_REV "LLVM rev.$llvm_rev"! kamm@853: } else { kamm@853: my $llvm_lib = `perl @LLVM_CONFIG@ --libdir`; kamm@853: $llvm_lib =~ s/\s+$//; kamm@853: $llvm_rev = ctime(stat($llvm_lib)->mtime) if (-d $llvm_lib); kamm@853: $llvm_rev = qq!#include "llvm/Config/config.h"\n#define LLVM_REV PACKAGE_STRING" ($llvm_rev)"!; kamm@853: } kamm@853: kamm@853: my $ldc_rev = `hg -R@PROJECT_SOURCE_DIR@ tip --template {rev}`; kamm@853: elrood@873: my $out = qq!#ifndef LDC_VERSIONS_H kamm@853: #define LDC_VERSIONS_H kamm@853: kamm@853: $llvm_rev kamm@853: #define LDC_REV "rev.$ldc_rev" kamm@853: kamm@853: #endif // LDC_VERSIONS_H\n!; kamm@853: elrood@873: my $revh; elrood@873: my $old = ""; elrood@873: open $revh, "revisions.h" and $old = join "", <$revh>; elrood@873: elrood@873: if ($old ne $out) { elrood@873: open $revh, ">revisions.h" or die "cannot create revisions.h: $!"; elrood@873: print $revh $out; elrood@873: close $revh; elrood@873: }