mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-08-14 10:36:58 -07:00
Implement version information storage and retrieval for the bootrom and the osimage.
Use perl to create the version information (thereby re-creating the perl dependency and adding an svn dependency) but fall back in case of missing perl or svn
This commit is contained in:
parent
42bc3be31c
commit
8a6aec16d8
13 changed files with 171 additions and 13 deletions
|
@ -20,6 +20,7 @@ ifeq ($(UNAME), Linux)
|
|||
# Linux. (Todo: Add MacOS X if appropriate)
|
||||
DELETE=rm -rf
|
||||
MOVE=mv
|
||||
COPY=cp
|
||||
PATHSEP=/
|
||||
DETECTED_OS=Linux
|
||||
# You may/should set this in your environment
|
||||
|
@ -31,6 +32,7 @@ else
|
|||
# Assume that we are running on Windows.
|
||||
DELETE=del /q
|
||||
MOVE=ren
|
||||
COPY=copy
|
||||
PATHSEP=\\#
|
||||
ARMLIB ?= ../../devkitARM/lib/gcc/arm-elf/4.1.0/interwork
|
||||
DETECTED_OS=Windows
|
||||
|
@ -77,6 +79,11 @@ $(OBJDIR)/%.s19: $(OBJDIR)/%.elf
|
|||
--change-section-address .text-0x100000 \
|
||||
--change-section-address .rodata-0x100000 $^ $@
|
||||
|
||||
# version.c should be remade on every compilation
|
||||
.PHONY: version.c
|
||||
version.c: default_version.c
|
||||
perl ../tools/mkversion.pl .. > $@ || $(COPY) $^ $@
|
||||
|
||||
# Automatic dependency generation
|
||||
DEPENDENCY_FILES = $(patsubst %.c,$(OBJDIR)/%.d,$(notdir $(THUMBSRC))) \
|
||||
$(patsubst %.c,$(OBJDIR)/%.d,$(notdir $(ARMSRC))) \
|
||||
|
|
9
common/default_version.c
Normal file
9
common/default_version.c
Normal file
|
@ -0,0 +1,9 @@
|
|||
#include <proxmark3.h>
|
||||
/* This is the default version.c file that Makefile.common falls back to if perl is not available */
|
||||
struct version_information __attribute__((section(".version_information"))) version_information = {
|
||||
VERSION_INFORMATION_MAGIC,
|
||||
1, /* version version 1 */
|
||||
0, /* version information not present */
|
||||
2, /* cleanliness couldn't be determined */
|
||||
/* Remaining fields: zero */
|
||||
};
|
|
@ -1,10 +0,0 @@
|
|||
#define VERSION "$Id $"
|
||||
static const struct __attribute__((packed)) {
|
||||
const char string[48];
|
||||
unsigned int length;
|
||||
unsigned int magic;
|
||||
} version __attribute__((unused,section("versioninformation"))) = {
|
||||
VERSION,
|
||||
sizeof(VERSION),
|
||||
0x48151623,
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue