genversion: generate version.c and version.h independantly

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26349 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Rafaël Carré 2010-05-28 04:07:57 +00:00
parent 71cec646e6
commit 10dbaa24a7
2 changed files with 28 additions and 22 deletions

View File

@ -44,5 +44,8 @@ $(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 $@
$(BUILDDIR)/version.c $(BUILDDIR)/version.h:
$(TOOLSDIR)/genversion.sh $(BUILDDIR) $(TOOLSDIR)/version.sh $(ROOTDIR)
$(BUILDDIR)/version.c: $(BUILDDIR)/version.h
$(TOOLSDIR)/genversion.sh c $(BUILDDIR) $(TOOLSDIR)/version.sh $(ROOTDIR)
$(BUILDDIR)/version.h:
$(TOOLSDIR)/genversion.sh h $(BUILDDIR) $(TOOLSDIR)/version.sh $(ROOTDIR)

View File

@ -6,37 +6,40 @@
# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
# \/ \/ \/ \/ \/
# Usage: genversion.sh destination-dir path-to-version.sh [source-root]
# Usage: genversion.sh c/h destination-dir path-to-version.sh [source-root]
# Generate version.[ch] files
# Generate version.[ch] files (if first argument is c or h)
VERSION=`$2 $3`
# XXX DO NOT TWEAK VERSION HERE, EDIT version.sh INSTEAD
cat > "$1/_version.h" << EOF
VERSION=`$3 $4`
if [ "$1" = "h" ]; then
cat > "$2/_version.h" << EOF
/* Generated by genversion.sh */
extern const char rbversion[];
#define RBVERSION "$VERSION"
EOF
if [ -f "$1/version.h" ]
then if diff "$1/_version.h" "$1/version.h" > /dev/null
then mv "$1/_version.h" "$1/version.h"
else rm -f "$1/_version.h"
if [ -f "$2/version.h" ]
then if diff "$2/_version.h" "$2/version.h" > /dev/null
then mv "$2/_version.h" "$2/version.h"
else rm -f "$2/_version.h"
fi
else mv "$2/_version.h" "$2/version.h"
fi
else mv "$1/_version.h" "$1/version.h"
fi
cat > "$1/_version.c" << EOF
elif [ "$1" = "c" ]; then
cat > "$2/_version.c" << EOF
/* Generated by genversion.sh */
const char rbversion[] = "$VERSION";
#include "version.h"
const char rbversion[] = RBVERSION;
EOF
if [ -f "$1/version.c" ]
then if diff "$1/_version.c" "$1/version.c" > /dev/null
then mv "$1/_version.c" "$1/version.c"
else rm -f "$1/_version.c"
if [ -f "$2/version.c" ]
then if diff "$2/_version.c" "$2/version.c" > /dev/null
then mv "$2/_version.c" "$2/version.c"
else rm -f "$2/_version.c"
fi
else mv "$2/_version.c" "$2/version.c"
fi
else mv "$1/_version.c" "$1/version.c"
fi