1#!/bin/sh 2 3BASE="$(pwd)"; 4BUILD_LOG="$BASE/build.log"; 5BUILD_LOG2="$BASE/build.log2"; 6BUILD_DIR="$BASE/__tests"; 7 8CC="sdcc"; 9CPPFLAGS=""; 10CFLAGS="--use-non-free"; 11LDFLAGS=""; 12LIBS=""; 13 14cleanup() 15{ 16 rm -f "$BUILD_LOG2"; 17 rm -rf "$BUILD_DIR"; 18} 19 20if [ -e "$BUILD_DIR" ]; then 21 echo "$BUILD_DIR already there -- exiting."; 22 exit 1; 23fi; 24{ mkdir -p "$BUILD_DIR" && cd "$BUILD_DIR"; } || exit 1; 25trap "cleanup" INT; 26 27cat > sample.c <<EOT 28#include <pic14regs.h> 29 30void foo(char *c) 31{ 32 if (*c) 33 *c = 1; 34} 35 36void main() 37{ 38 OPTION_REG = PCLATH; 39 INTCON = 0; 40} 41EOT 42 43sed -e 's/\s*#.*$//' ../devices.txt | grep -v '^\s*$' | while read PROC; do 44 printf "### Compiling for $PROC: "; 45 OK="FAILED"; 46 echo "$CC" -V $CPPFLAGS $CFLAGS $LDFLAGS -mpic14 -p$PROC -o test-$PROC sample.c $LIBS > "$BUILD_LOG2"; 47 "$CC" -V $CPPFLAGS $CFLAGS $LDFLAGS -mpic14 -p$PROC -o test-$PROC sample.c $LIBS >> "$BUILD_LOG2" 2>&1 && OK="ok"; 48 cat "$BUILD_LOG2" >> "$BUILD_LOG"; 49 printf "$OK\n"; 50 case "$OK" in 51 ok) 52 ;; 53 *) 54 cat "$BUILD_LOG2"; 55 printf "\n"; 56 ;; 57 esac; 58done; 59 60cd "$BASE"; 61cleanup; 62