diff options
Diffstat (limited to 'bin/build.sh')
| -rwxr-xr-x | bin/build.sh | 39 |
1 files changed, 18 insertions, 21 deletions
diff --git a/bin/build.sh b/bin/build.sh index 0c3b107..9b4b0b3 100755 --- a/bin/build.sh +++ b/bin/build.sh @@ -6,7 +6,7 @@ # Instead of using a Makefile, since most of the firmwares here build in the # same exact way, here's a script to do the same thing -if [ -z "$1" ]; then +if [ 0 = "$#" ]; then echo "Usage: build.sh TARGET USER" echo "Example: build.sh hw/hank/emisar-d4/anduril.h users/myuser" echo "(but USER isn't implemented yet)" @@ -14,18 +14,19 @@ if [ -z "$1" ]; then fi # repo root dir -BASEDIR=$(dirname $(dirname "$0")) +BASEDIR=$(dirname "$(dirname "$0")") -TARGET=$1 ; shift -UI=$(basename $TARGET .h) -MODEL=$(dirname $TARGET) +TARGET="$1" ; shift +ARGS="$*" +UI=$(basename "$TARGET" .h) +MODEL=$(dirname "$TARGET") PROGRAM="ui/$UI/$UI" # figure out the model number -MODEL_NUMBER=$(head -1 $MODEL/model) +MODEL_NUMBER=$(head -1 "$MODEL/model") # figure out the MCU type and set some vars -eval $( bin/detect-mcu.sh "$TARGET" ) +eval "$( bin/detect-mcu.sh "$TARGET" )" # detect and enable a relevant Atmel DFP if [[ $MCUNAME =~ "attiny" ]]; then @@ -56,23 +57,19 @@ export LDFLAGS="-fgnu89-inline" export OBJCOPYFLAGS='--set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex --remove-section .fuse' export OBJS=$PROGRAM.o -OTHERFLAGS="-DCFG_H=$TARGET -DMODEL_NUMBER=\"$MODEL_NUMBER\"" -for arg in "$*" ; do - OTHERFLAGS="$OTHERFLAGS $arg" -done +OTHERFLAGS="-DCFG_H=$TARGET -DMODEL_NUMBER=\"$MODEL_NUMBER\" $ARGS" function run () { - #echo $1 ; shift - #echo $* - $* - if [ x"$?" != x0 ]; then exit 1 ; fi + #echo "$1" ; shift + #echo "$*" + $* || exit 1 } -run $CPP $OTHERFLAGS $CPPFLAGS -o foo.cpp $PROGRAM.c -grep -a -E -v '^#|^$' foo.cpp > $PROGRAM.cpp ; rm foo.cpp -run $CC $OTHERFLAGS $CFLAGS -o $PROGRAM.o -c $PROGRAM.c -run $CC $OFLAGS $LDFLAGS -o $PROGRAM.elf $PROGRAM.o -run $OBJCOPY $OBJCOPYFLAGS $PROGRAM.elf $PROGRAM.hex +run "$CPP" "$OTHERFLAGS" "$CPPFLAGS" -o foo.cpp "$PROGRAM.c" +grep -a -E -v '^#|^$' foo.cpp > "$PROGRAM.cpp" ; rm foo.cpp +run "$CC" "$OTHERFLAGS" "$CFLAGS" -o "$PROGRAM.o" -c "$PROGRAM.c" +run "$CC" "$OFLAGS" "$LDFLAGS" -o "$PROGRAM.elf" "$PROGRAM.o" +run "$OBJCOPY" "$OBJCOPYFLAGS" "$PROGRAM.elf" "$PROGRAM.hex" # deprecated #run avr-size -C --mcu=$MCUNAME $PROGRAM.elf | grep Full -run avr-objdump -Pmem-usage $PROGRAM.elf | grep -E 'Full|Device' | sed 's/^/ /;' +run avr-objdump -Pmem-usage "$PROGRAM".elf | grep -E 'Full|Device' | sed 's/^/ /;' |
