blob: 824eebc27525c945594e5017b13b88c9852a2334 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
#!/bin/sh
BASE="$(pwd)";
BUILD_LOG="$BASE/build.log";
BUILD_LOG2="$BASE/build.log2";
BUILD_DIR="$BASE/__tests";
CC="sdcc";
CPPFLAGS="";
CFLAGS="--use-non-free";
LDFLAGS="";
LIBS="";
cleanup()
{
rm -f "$BUILD_LOG2";
rm -rf "$BUILD_DIR";
}
if [ -e "$BUILD_DIR" ]; then
echo "$BUILD_DIR already there -- exiting.";
exit 1;
fi;
{ mkdir -p "$BUILD_DIR" && cd "$BUILD_DIR"; } || exit 1;
trap "cleanup" INT;
cat > sample.c <<EOT
#include <pic18fregs.h>
#include <stdio.h>
#pragma stack 0x00c0 0x40
void foo(char *c)
{
if (*c)
*c = 1;
}
void main()
{
PORTA = INTCON;
LATB = TRISB;
printf_tiny("foo"); /* printf() is too large for the smallest devices ... */
}
EOT
for f in ./pic1*.c; do
p="${f##*/pic}";
p="${p%.c}";
printf "### Compiling for $p: ";
OK="FAILED";
echo "$CC" -V $CPPFLAGS $CFLAGS $LDFLAGS -mpic16 -p$p -o test-$p sample.c $LIBS > "$BUILD_LOG2";
"$CC" -V $CPPFLAGS $CFLAGS $LDFLAGS -mpic16 -p$p -o test-$p sample.c $LIBS >> "$BUILD_LOG2" 2>&1 && OK="ok";
cat "$BUILD_LOG2" >> "$BUILD_LOG";
printf "$OK\n";
case "$OK" in
ok)
;;
*)
cat "$BUILD_LOG2";
printf "\n";
;;
esac;
done;
cd "$BASE";
cleanup;
|