Fix mkversion.pl for the case where the global svn revision is different from the last changed revision

This commit is contained in:
henryk@ploetzli.ch 2009-09-01 22:56:07 +00:00
parent 8fcbf652da
commit 4f3bd9738f
2 changed files with 7 additions and 5 deletions

View file

@ -76,11 +76,12 @@ $(VERSIONOBJ): $(OBJDIR)/%.o: %.c $(INCLUDES)
# This objcopy call translates physical flash addresses to logical addresses
# without touching start address or RAM addresses (.bss and .data sections)
# See ldscript.common. -- Henryk Plötz <henryk@ploetzli.ch> 2009-08-27
$(OBJDIR)/%.s19: $(OBJDIR)/%.elf
$(OBJCOPY) -Osrec --srec-forceS3 --strip-debug --no-change-warnings \
OBJCOPY_TRANSLATIONS = --no-change-warnings \
--change-addresses -0x100000 --change-start 0 \
--change-section-address .bss+0 --change-section-address .data+0 \
--change-section-address .commonarea+0 $^ $@
--change-section-address .commonarea+0
$(OBJDIR)/%.s19: $(OBJDIR)/%.elf
$(OBJCOPY) -Osrec --srec-forceS3 --strip-debug $(OBJCOPY_TRANSLATIONS) $^ $@
# version.c should be remade on every compilation
.PHONY: version.c

View file

@ -38,13 +38,14 @@ if(open(SVNINFO, "svn info $main_dir|")) {
}
} else {
# Strategy two: look for .svn/entries. The third line should be "dir", the fourth line should contain the current
# Strategy two: look for .svn/entries. The third line should be "dir", the fourth line should contain
# the currently checked out revision, the eleventh line should contain the last changed revision.
# revision.
if(open(ENTRIES, "$main_dir/.svn/entries")) {
my $i = 1;
while(<ENTRIES>) {
last if($i == 3 and !/^dir/);
if($i == 4 and /^([0-9]*)/) {
if($i == 11 and /^([0-9]*)/) {
$present = 1;
$svnversion = $1;
}