X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/8a6aec16d8c21d3c57457e5ec00eb83f5242feba..7bc3c99e7ea67d2d67c4c7a44abcea92fa523231:/tools/mkversion.pl diff --git a/tools/mkversion.pl b/tools/mkversion.pl index 1c4dfcd9..2755b3b9 100644 --- a/tools/mkversion.pl +++ b/tools/mkversion.pl @@ -3,71 +3,48 @@ # Normally a couple of lines of bash would be enough (see openpcd project, original firmware by Harald Welte and Milosch Meriac) # but this will, at least in theory, also work on Windows with our current compile environment. # -- Henryk Plötz 2009-09-28 +# Modified april 2014 because of the move to github. +# --- Martin Holst Swende +# Modified january 2016 to work with Travis-CI +# --- iceman -use strict; - -my $main_dir = shift; - -# Clear environment locale so that svn will not use localized strings +# Clear environment locale so that git will not use localized strings $ENV{'LC_ALL'} = "C"; $ENV{'LANG'} = "C"; -my $svnversion = 0; -my $present = 0; +my $githistory = `git fetch --all`; +my $gitversion = `git describe --dirty`; +my $gitbranch = `git rev-parse --abbrev-ref HEAD`; my $clean = 2; -my @compiletime = gmtime(); +my @compiletime = localtime(); -# Strategy one: call svn info and extract last changed revision, call svn status and look for ^M -if(open(SVNINFO, "svn info $main_dir|")) { - while() { - if (/^Last Changed Rev: (.*)/) { - $present = 1; - $svnversion = $1; - ## last; # Do not abort here, since SVN tends to complain about a Broken pipe - } - } - close(SVNINFO); - - if(open(SVNSTATUS, "svn status $main_dir|")) { - $clean = 1; - while() { - if(/^M/) { - $clean = 0; - ## last; - } - } - close(SVNINFO); - } - +my $fullgitinfo = 'iceman'; + +if ( defined $gitbranch and defined $gitversion ) { + $fullgitinfo = $fullgitinfo.'/'. $gitbranch . '/' . $gitversion; } else { - # Strategy two: look for .svn/entries. The third line should be "dir", the fourth line should contain the current - # revision. - if(open(ENTRIES, "$main_dir/.svn/entries")) { - my $i = 1; - while() { - last if($i == 3 and !/^dir/); - if($i == 4 and /^([0-9]*)/) { - $present = 1; - $svnversion = $1; - } - $i++; - } - } + $fullgitinfo = $fullgitinfo.'/master/release-build (no_git)'; } +$fullgitinfo =~ s/(\s)//g; + +# Crop so it fits within 50 characters +$fullgitinfo =~ s/.{50}\K.*//s; + $compiletime[4] += 1; $compiletime[5] += 1900; my $ctime = sprintf("%6\$04i-%5\$02i-%4\$02i %3\$02i:%2\$02i:%1\$02i", @compiletime); + print < +#include "proxmark3.h" /* Generated file, do not edit */ -struct version_information __attribute__((section(".version_information"))) version_information = { +const struct version_information __attribute__((section(".version_information"))) version_information = { VERSION_INFORMATION_MAGIC, 1, - $present, + 1, $clean, - "svn $svnversion", + "$fullgitinfo", "$ctime", }; EOF