diff --git a/src/energenie/drv/build_arduino b/src/energenie/drv/build_arduino
new file mode 100755
index 0000000..dd89023
--- /dev/null
+++ b/src/energenie/drv/build_arduino
@@ -0,0 +1,44 @@
+#! /bin/bash
+
+# build file for Raspberry Pi use
+
+# build gpio_test
+gcc gpio_test.c gpio_rpi.c
+mv a.out gpio_test
+chmod u+x gpio_test
+
+
+# build spis_test (soft SPI tester)
+gcc spi_test.c spis_rpi.c gpio_rpi.c
+mv a.out spis_test
+chmod u+x spis_test
+
+# build spih_test (hard SPI tester)
+gcc spi_test.c spih_rpi.c gpio_rpi.c
+mv a.out spih_test
+chmod u+x spish_test
+
+
+# build hrf69_test
+## gcc hrf69_test.c hrf69.c spis_rpi.c gpio_rpi.c
+## mv a.out hrf69_test
+## chmod u+x hrf69_test
+
+
+# build radio_test
+## gcc radio_test.c radio.c hrf69.c spis_rpi.c gpio_rpi.c
+## mv a.out radio_test
+## chmod u+x radio_test
+
+
+# build spi .so library on Raspberry Pi
+gcc -Wall -shared -o spi_rpi.so -fPIC spis_rpi.c gpio_rpi.c
+# nm -D spi_rpi.so
+cp spi_rpi.so ..
+
+# radio spi .so library on Raspberry Pi
+## gcc -Wall -shared -o radio_rpi.so -fPIC radio.c hrf69.c spis_rpi.c gpio_rpi.c
+## nm -D radio_rpi.so
+## cp radio_rpi.so ..
+
+# END
diff --git a/src/energenie/drv/build_mac b/src/energenie/drv/build_mac
new file mode 100755
index 0000000..1c48dba
--- /dev/null
+++ b/src/energenie/drv/build_mac
@@ -0,0 +1,51 @@
+#! /bin/bash
+
+# build file for Mac use
+
+# build gpio_test
+gcc gpio_test.c gpio_sim.c
+mv a.out gpio_test
+chmod u+x gpio_test
+
+
+
+
+
+
+
+# build spis_test (soft SPI tester)
+##gcc spi_test.c spis_rpi.c gpio_rpi.c
+##mv a.out spis_test
+##chmod u+x spis_test
+
+
+# build spih_test (hard SPI tester)
+##gcc spi_test.c spih_rpi.c gpio_rpi.c
+##mv a.out spih_test
+##chmod u+x spish_test
+
+
+# build hrf69_test
+## gcc hrf69_test.c hrf69.c spis_rpi.c gpio_rpi.c
+## mv a.out hrf69_test
+## chmod u+x hrf69_test
+
+
+# build radio_test
+## gcc radio_test.c radio.c hrf69.c spis_rpi.c gpio_rpi.c
+## mv a.out radio_test
+## chmod u+x radio_test
+
+
+# build spi .so library on Raspberry Pi
+##gcc -Wall -shared -o spi_rpi.so -fPIC spis_rpi.c gpio_rpi.c
+## nm -D spi_rpi.so
+##cp spi_rpi.so ..
+
+
+# radio spi .so library on Raspberry Pi
+## gcc -Wall -shared -o radio_rpi.so -fPIC radio.c hrf69.c spis_rpi.c gpio_rpi.c
+## nm -D radio_rpi.so
+## cp radio_rpi.so ..
+
+# END
diff --git a/src/energenie/drv/gpio.h b/src/energenie/drv/gpio.h
index 6226a1a..eb3229f 100644
--- a/src/energenie/drv/gpio.h
+++ b/src/energenie/drv/gpio.h
@@ -6,17 +6,18 @@
 #ifndef GPIO_H
 #define GPIO_H
 
+typedef unsigned char uint8_t; //TODO which header file defines this?
 
 /***** FUNCTION PROTOTYPES *****/
 
-void gpio_init(void);
-void gpio_setin(uint8_t g);
-void gpio_setout(uint8_t g);
-void gpio_high(uint8_t g);
-void gpio_low(uint8_t g);
-void gpio_write(uint8_t g, uint8_t v);
-int  gpio_read(uint8_t g);
-void gpio_finished(void);
+void    gpio_init(void);
+void    gpio_setin(uint8_t g);
+void    gpio_setout(uint8_t g);
+void    gpio_high(uint8_t g);
+void    gpio_low(uint8_t g);
+void    gpio_write(uint8_t g, uint8_t v);
+uint8_t gpio_read(uint8_t g);
+void    gpio_finished(void);
 
 #endif
 
diff --git a/src/energenie/drv/gpio_sim.c b/src/energenie/drv/gpio_sim.c
index fc89aef..22d5473 100644
--- a/src/energenie/drv/gpio_sim.c
+++ b/src/energenie/drv/gpio_sim.c
@@ -21,8 +21,8 @@
  */
 
 #define OUTS(s)  printf("%s", s)
-#define OUTN(n)  printf("%d", (unsigned int)d)
-#define OUTC(c)  putch(c)
+#define OUTN(n)  printf("%d", (unsigned int)n)
+#define OUTC(c)  putc(c, stdout)
 #define NL()     OUTC('\n')
 
 
@@ -43,8 +43,8 @@
 #if defined(GPIO_DEBUG)
     //printf("gpio:in:%d\n", g);
     OUTS("gpio:in");
-    OUTN(g)
-    NL()
+    OUTN(g);
+    NL();
 #endif
 }
 
@@ -135,7 +135,7 @@
 
 void gpio_mock_set_in(uint8_t g, uint8_t v)
 {
-    gpio_in[g] = v
+    gpio_in[g] = v;
 }
 
 
diff --git a/src/energenie/drv/gpio_test.c b/src/energenie/drv/gpio_test.c
index 109f720..2ef63ad 100644
--- a/src/energenie/drv/gpio_test.c
+++ b/src/energenie/drv/gpio_test.c
@@ -15,12 +15,13 @@
 
 static struct timespec delay_1sec = {1, 0};
 
+
 // To allow platform specific test harnesses
 
 #define GPIO_A 2
 #define GPIO_B 3
 
-void main(void)
+int main(void)
 {
   int i;
 
@@ -42,4 +43,5 @@
     gpio_write(GPIO_B, 0);
     delay(delay_1sec);
   }
+  return 0;
 }