Generated bindings, swig3.0
diff --git a/generate-bindings.py b/generate-bindings.py
new file mode 100644
index 0000000..31fad85
--- /dev/null
+++ b/generate-bindings.py
@@ -0,0 +1,67 @@
+HEADERS = [
+"WiringPi/wiringPi/wiringPi.h",
+"WiringPi/wiringPi/wiringPiI2C.h",
+"WiringPi/wiringPi/wiringPiSPI.h",
+"WiringPi/wiringPi/wiringSerial.h",
+"WiringPi/wiringPi/wiringShift.h",
+"WiringPi/wiringPi/wpiExtensions.h",
+
+"WiringPi/wiringPi/drcSerial.h",
+"WiringPi/wiringPi/max31855.h",
+"WiringPi/wiringPi/max5322.h",
+"WiringPi/wiringPi/mcp23008.h",
+"WiringPi/wiringPi/mcp23016.h",
+"WiringPi/wiringPi/mcp23016reg.h",
+"WiringPi/wiringPi/mcp23017.h",
+"WiringPi/wiringPi/mcp23s08.h",
+"WiringPi/wiringPi/mcp23s17.h",
+"WiringPi/wiringPi/mcp23x0817.h",
+"WiringPi/wiringPi/mcp23x08.h",
+"WiringPi/wiringPi/mcp3002.h",
+"WiringPi/wiringPi/mcp3004.h",
+"WiringPi/wiringPi/mcp3422.h",
+"WiringPi/wiringPi/mcp4802.h",
+"WiringPi/wiringPi/pcf8574.h",
+"WiringPi/wiringPi/pcf8591.h",
+"WiringPi/wiringPi/sn3218.h",
+"WiringPi/wiringPi/softPwm.h",
+"WiringPi/wiringPi/softServo.h",
+"WiringPi/wiringPi/softTone.h",
+"WiringPi/wiringPi/sr595.h",
+
+"WiringPi/devLib/ds1302.h",
+"WiringPi/devLib/font.h",
+"WiringPi/devLib/gertboard.h",
+"WiringPi/devLib/lcd128x64.h",
+"WiringPi/devLib/lcd.h",
+"WiringPi/devLib/maxdetect.h",
+"WiringPi/devLib/piFace.h",
+"WiringPi/devLib/piGlow.h",
+"WiringPi/devLib/piNes.h"
+]
+def is_c_decl(line):
+    if "wiringPiISR" in line:
+        return False
+    for prefix in ['extern','void','int','uint8_t']:
+        if line.startswith(prefix):
+            return True
+
+for file in HEADERS:
+    print("\n// Header file {}".format(file))
+    h = open(file).read().split('\n')
+    extern = False
+    cont = False
+    if 'extern "C" {' not in h:
+        extern = True
+    for line in h:
+        line = line.strip()
+        if cont:
+            print("\t{}".format(line))
+            cont = ";" not in line
+            continue
+        if line.startswith('extern "C"'):
+            extern = True
+            continue
+        if is_c_decl(line) and extern:
+            print(line)
+            cont = ";" not in line