Fix makefile not rebuilding rbversion.h in some cases
For example when running make VERSION="bla" Change-Id: I8f8833f0fb200828346ed0a6842a9340e3653932
This commit is contained in:
parent
92450a9924
commit
50c1de7092
2 changed files with 8 additions and 4 deletions
|
@ -46,7 +46,10 @@ $(BUILDDIR)/sysfont.o: $(SYSFONT) $(BUILDDIR)/sysfont.h
|
|||
$(call PRINTS,CONVBDF $(subst $(ROOTDIR)/,,$<))$(TOOLSDIR)/convbdf -l $(MAXCHAR) -c -o $(BUILDDIR)/sysfont.c $<
|
||||
$(call PRINTS,CC $(subst $(ROOTDIR)/,,$(BUILDDIR)/sysfont.c))$(CC) $(CFLAGS) -c $(BUILDDIR)/sysfont.c -o $@
|
||||
|
||||
SVNVERSION:=$(shell $(TOOLSDIR)/version.sh $(ROOTDIR))
|
||||
# GNU make (at least) has a bug/feature that exported variable are not available
|
||||
# in the shell function (but are in recipe). Thus we need to explicitely pass
|
||||
# the VERSION environement variable
|
||||
SVNVERSION:=$(shell VERSION='$(VERSION)' $(TOOLSDIR)/version.sh $(ROOTDIR))
|
||||
OLDSVNVERSION:=$(shell grep 'RBVERSION' $(BUILDDIR)/rbversion.h 2>/dev/null|cut -d '"' -f 2 || echo "NOREVISION")
|
||||
|
||||
ifneq ($(SVNVERSION),$(OLDSVNVERSION))
|
||||
|
@ -54,4 +57,4 @@ ifneq ($(SVNVERSION),$(OLDSVNVERSION))
|
|||
endif
|
||||
|
||||
$(BUILDDIR)/rbversion.h:
|
||||
$(call PRINTS,GEN $(@F))$(TOOLSDIR)/genversion.sh $(BUILDDIR) $(TOOLSDIR)/version.sh $(ROOTDIR)
|
||||
$(call PRINTS,GEN $(@F))$(TOOLSDIR)/genversion.sh $(BUILDDIR) $(SVNVERSION)
|
||||
|
|
|
@ -6,19 +6,20 @@
|
|||
# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
# \/ \/ \/ \/ \/
|
||||
|
||||
# Usage: genversion.sh destination-dir path-to-version.sh [source-root]
|
||||
# Usage: genversion.sh destination-dir version
|
||||
|
||||
# Generate rbversion.h file
|
||||
|
||||
# XXX DO NOT TWEAK VERSION HERE, EDIT version.sh INSTEAD
|
||||
|
||||
VERSION=`$2 $3`
|
||||
VERSION="$2"
|
||||
|
||||
cat > "$1/_rbversion.h" << EOF
|
||||
/* Generated by genversion.sh */
|
||||
#define RBVERSION "$VERSION"
|
||||
EOF
|
||||
|
||||
# Don't touch rbversion.h if it hasn't change, to avoid rebuilding stuff
|
||||
if [ -f "$1/rbversion.h" ]
|
||||
then if diff "$1/_rbversion.h" "$1/rbversion.h" > /dev/null
|
||||
then rm -f "$1/_rbversion.h"
|
||||
|
|
Loading…
Reference in a new issue