diff options
Diffstat (limited to '')
| -rw-r--r-- | .gitignore | 2 | ||||
| -rwxr-xr-x | bin/build-all.sh | 20 | ||||
| -rwxr-xr-x | bin/build.sh | 2 |
3 files changed, 19 insertions, 5 deletions
@@ -1,3 +1,4 @@ +.build/ .env/ .venv/ .*.swo @@ -7,6 +8,7 @@ env/ hex/ ignore/ old/ +releases/ venv/ *~ *.cpp diff --git a/bin/build-all.sh b/bin/build-all.sh index df72ad5..27209ca 100755 --- a/bin/build-all.sh +++ b/bin/build-all.sh @@ -21,9 +21,21 @@ UI=anduril mkdir -p hex -# TODO: use a git tag for the version, instead of build date -# TODO: use build/version.h instead of $UI/version.h ? -date '+#define VERSION_NUMBER "%Y-%m-%d"' > ui/$UI/version.h +# old: version = build date +#date '+#define VERSION_NUMBER "%Y-%m-%d"' > ui/$UI/version.h + +# version = git tag + revs since + dirty flag +REV=$(git describe --tags --dirty --abbrev=8 --match='r2*') +# reformatting this would be easier with a perl one-liner, +# but I'm trying to avoid extra build dependencies +REV="${REV:1}" # strip the leading 'r' +# strip rev hash (git won't give "commits since tag" without the rev hash) +REV="${REV/-g[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]/}" +REV="${REV/-dirty/.1}" # convert '-dirty' to '.1' +# save the version name to version.h +mkdir -p ".build/$UI" +echo '#define VERSION_NUMBER "'"$REV"'"' > ".build/$UI/version.h" + PASS=0 FAIL=0 @@ -48,7 +60,7 @@ for TARGET in hw/*/*/**/"$UI".h ; do if [ 1 = $SKIP ]; then continue ; fi # announce what we're going to build - echo "===== $UI : $NAME =====" + echo "===== $UI $REV : $NAME =====" # try to compile, track result, and rename compiled files if bin/build.sh "$TARGET" ; then diff --git a/bin/build.sh b/bin/build.sh index 9b4b0b3..d044ca5 100755 --- a/bin/build.sh +++ b/bin/build.sh @@ -49,7 +49,7 @@ export CPP=avr-cpp export OBJCOPY=avr-objcopy export DFPFLAGS="-B $DFPPATH/gcc/dev/$MCUNAME/ -I $DFPPATH/include/" # TODO: include $user/ first so it can override other stuff -INCLUDES="-I ui -I hw -I. -I.. -I../.. -I../../.." +INCLUDES="-I .build -I ui -I hw -I. -I.. -I../.. -I../../.." export CFLAGS=" -Wall -g -Os -mmcu=$MCUNAME -c -std=gnu99 -fgnu89-inline -fwhole-program $MCUFLAGS $INCLUDES -fshort-enums $DFPFLAGS" export CPPFLAGS="-Wall -g -Os -mmcu=$MCUNAME -C -std=gnu99 -fgnu89-inline -fwhole-program $MCUFLAGS $INCLUDES -fshort-enums $DFPFLAGS" export OFLAGS="-Wall -g -Os -mmcu=$MCUNAME -mrelax $DFPFLAGS" |
