summaryrefslogtreecommitdiff
path: root/import-layers/meta-raspberrypi/recipes-devtools/wiringPi
diff options
context:
space:
mode:
Diffstat (limited to 'import-layers/meta-raspberrypi/recipes-devtools/wiringPi')
-rw-r--r--import-layers/meta-raspberrypi/recipes-devtools/wiringPi/files/0001-Add-initial-cross-compile-support.patch410
-rw-r--r--import-layers/meta-raspberrypi/recipes-devtools/wiringPi/wiringpi/0001-include-asm-ioctl.h-directly-for-_IOC_SIZEBITS.patch58
-rw-r--r--import-layers/meta-raspberrypi/recipes-devtools/wiringPi/wiringpi_git.bb34
3 files changed, 502 insertions, 0 deletions
diff --git a/import-layers/meta-raspberrypi/recipes-devtools/wiringPi/files/0001-Add-initial-cross-compile-support.patch b/import-layers/meta-raspberrypi/recipes-devtools/wiringPi/files/0001-Add-initial-cross-compile-support.patch
new file mode 100644
index 0000000000..ed47fab818
--- /dev/null
+++ b/import-layers/meta-raspberrypi/recipes-devtools/wiringPi/files/0001-Add-initial-cross-compile-support.patch
@@ -0,0 +1,410 @@
+From 6d85e6cc3ab97c3f060e5e0a8e3f1945a14c86ba Mon Sep 17 00:00:00 2001
+From: Gianfranco Costamagna <gianfranco.costamagna@abinsula.com>
+Date: Mon, 12 Oct 2015 12:15:51 +0200
+Subject: [PATCH] Add initial cross compile support (rebase from Petter Mabäcker <petter@technux.se> version)
+
+---
+ devLib/Makefile | 54 ++++++++++++++++++++++++-------------------
+ examples/Gertboard/Makefile | 22 +++++++++++-------
+ examples/Makefile | 22 +++++++++++-------
+ examples/PiFace/Makefile | 22 +++++++++++-------
+ examples/PiGlow/Makefile | 4 ++--
+ examples/q2w/Makefile | 4 ++--
+ gpio/Makefile | 29 ++++++++++++-----------
+ wiringPi/Makefile | 50 +++++++++++++++++++++------------------
+ 8 files changed, 119 insertions(+), 88 deletions(-)
+
+diff --git a/devLib/Makefile b/devLib/Makefile
+index 0fb0033..cbea759 100644
+--- a/devLib/Makefile
++++ b/devLib/Makefile
+@@ -31,15 +31,19 @@ ifneq ($V,1)
+ Q ?= @
+ endif
+
+-STATIC=libwiringPiDev.a
+-DYNAMIC=libwiringPiDev.so.$(VERSION)
++INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
++LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
+
+-#DEBUG = -g -O0
+-DEBUG = -O2
+-CC = gcc
+-INCLUDE = -I.
+-DEFS = -D_GNU_SOURCE
+-CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC
++BASE_NAME=libwiringPiDev
++STATIC=$(BASE_NAME).a
++DYNAMIC=$(BASE_NAME).so.$(VERSION)
++
++#DEBUG ?= -g -O0
++DEBUG ?= -O2
++CC ?= gcc
++INCLUDE ?= -I.
++DEFS ?= -D_GNU_SOURCE
++CFLAGS ?= $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC
+
+ LIBS =
+
+@@ -66,16 +70,16 @@ $(STATIC): $(OBJ)
+
+ $(DYNAMIC): $(OBJ)
+ $Q echo "[Link (Dynamic)]"
+- $Q $(CC) -shared -Wl,-soname,libwiringPiDev.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPiDev.so.$(VERSION) -lpthread $(OBJ)
++ $Q $(CC) -shared -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so -lpthread $(OBJ)
+
+ .c.o:
+ $Q echo [Compile] $<
+- $Q $(CC) -c $(CFLAGS) $< -o $@
++ $Q $(CC) -c $(CFLAGS) -fPIC $< -o $@
+
+ .PHONY: clean
+ clean:
+ $Q echo "[Clean]"
+- $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak libwiringPiDev.*
++ $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak $(BASE_NAME).so* $(BASE_NAME).a
+
+ .PHONY: tags
+ tags: $(SRC)
+@@ -86,22 +90,22 @@ tags: $(SRC)
+ .PHONY: install
+ install: $(DYNAMIC)
+ $Q echo "[Install Headers]"
+- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
+- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
++ $Q install -m 0755 -d $(INCLUDE_DIR)
++ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
+ $Q echo "[Install Dynamic Lib]"
+- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
+- $Q install -m 0755 libwiringPiDev.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib/libwiringPiDev.so.$(VERSION)
+- $Q ln -sf $(DESTDIR)$(PREFIX)/lib/libwiringPiDev.so.$(VERSION) $(DESTDIR)/lib/libwiringPiDev.so
+- $Q $(LDCONFIG)
++ $Q install -m 0755 -d $(LIB_DIR)
++ $Q install -m 0755 $(BASE_NAME).so $(LIB_DIR)/$(DYNAMIC)
++ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so
++ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
+
+ .PHONY: install-static
+ install-static: $(STATIC)
+ $Q echo "[Install Headers]"
+- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
+- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
++ $Q install -m 0755 -d $(INCLUDE_DIR)
++ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
+ $Q echo "[Install Static Lib]"
+- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
+- $Q install -m 0755 libwiringPiDev.a $(DESTDIR)$(PREFIX)/lib
++ $Q install -m 0755 -d $(LIB_DIR)
++ $Q install -m 0755 $(STATIC) $(LIB_DIR)
+
+ .PHONY: install-deb
+ install-deb: $(DYNAMIC)
+@@ -116,9 +120,11 @@ install-deb: $(DYNAMIC)
+ .PHONY: uninstall
+ uninstall:
+ $Q echo "[UnInstall]"
+- $Q cd $(DESTDIR)$(PREFIX)/include/ && rm -f $(HEADERS)
+- $Q cd $(DESTDIR)$(PREFIX)/lib/ && rm -f libwiringPiDev.*
+- $Q $(LDCONFIG)
++ $Q cd $(INCLUDE_DIR) && rm -f $(HEADERS)
++ $Q rm -f $(LIB_DIR)/$(STATIC)
++ $Q rm -f $(LIB_DIR)/$(DYNAMIC)
++ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so
++ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
+
+
+ .PHONY: depend
+diff --git a/examples/Gertboard/Makefile b/examples/Gertboard/Makefile
+index 1939ad6..98d1415 100644
+--- a/examples/Gertboard/Makefile
++++ b/examples/Gertboard/Makefile
+@@ -9,14 +9,20 @@ ifneq ($V,1)
+ Q ?= @
+ endif
+
+-#DEBUG = -g -O0
+-DEBUG = -O3
+-CC = gcc
+-INCLUDE = -I/usr/local/include
+-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
+-
+-LDFLAGS = -L/usr/local/lib
+-LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
++DESTDIR?=/usr
++PREFIX?=/local
++
++INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
++LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
++
++#DEBUG ?= -g -O0
++DEBUG ?= -O3
++CC ?= gcc
++INCLUDE ?= -I$(INCLUDE_DIR)
++CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
++
++LDFLAGS ?= -L$(LIB_DIR)
++LDLIBS ?= -lwiringPi -lwiringPiDev -lpthread -lm
+
+ # Should not alter anything below this line
+ ###############################################################################
+diff --git a/examples/Makefile b/examples/Makefile
+index e6b9b71..931b167 100644
+--- a/examples/Makefile
++++ b/examples/Makefile
+@@ -26,14 +26,20 @@ ifneq ($V,1)
+ Q ?= @
+ endif
+
+-#DEBUG = -g -O0
+-DEBUG = -O3
+-CC = gcc
+-INCLUDE = -I/usr/local/include
+-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
+-
+-LDFLAGS = -L/usr/local/lib
+-LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
++DESTDIR?=/usr
++PREFIX?=/local
++
++INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
++LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
++
++#DEBUG ?= -g -O0
++DEBUG ?= -O3
++CC ?= gcc
++INCLUDE ?= -I$(INCLUDE_DIR)
++CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
++
++LDFLAGS ?= -L$(LIB_DIR)
++LDLIBS ?= -lwiringPi -lwiringPiDev -lpthread -lm
+
+ # Should not alter anything below this line
+ ###############################################################################
+diff --git a/examples/PiFace/Makefile b/examples/PiFace/Makefile
+index 4685adc..cfaf902 100644
+--- a/examples/PiFace/Makefile
++++ b/examples/PiFace/Makefile
+@@ -26,14 +26,20 @@ ifneq ($V,1)
+ Q ?= @
+ endif
+
+-#DEBUG = -g -O0
+-DEBUG = -O3
+-CC = gcc
+-INCLUDE = -I/usr/local/include
+-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
+-
+-LDFLAGS = -L/usr/local/lib
+-LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
++DESTDIR?=/usr
++PREFIX?=/local
++
++INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
++LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
++
++#DEBUG ?= -g -O0
++DEBUG ?= -O3
++CC ?= gcc
++INCLUDE ?= -I$(INCLUDE_DIR)
++CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
++
++LDFLAGS ?= -L$(LIB_DIR)
++LDLIBS ?= -lwiringPi -lwiringPiDev -lpthread -lm
+
+ # Should not alter anything below this line
+ ###############################################################################
+diff --git a/examples/PiGlow/Makefile b/examples/PiGlow/Makefile
+index acd4818..dabd64e 100644
+--- a/examples/PiGlow/Makefile
++++ b/examples/PiGlow/Makefile
+@@ -29,10 +29,10 @@ endif
+ #DEBUG = -g -O0
+ DEBUG = -O3
+ CC = gcc
+-INCLUDE = -I/usr/local/include
++INCLUDE = -I../wiringPi -I../wiringPiDev
+ CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
+
+-LDFLAGS = -L/usr/local/lib
++LDFLAGS = -L../wiringPi -L../wiringPiDev
+ LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
+
+ # Should not alter anything below this line
+diff --git a/examples/q2w/Makefile b/examples/q2w/Makefile
+index 6f50fa0..c5e9f6e 100644
+--- a/examples/q2w/Makefile
++++ b/examples/q2w/Makefile
+@@ -29,10 +29,10 @@ endif
+ #DEBUG = -g -O0
+ DEBUG = -O3
+ CC = gcc
+-INCLUDE = -I/usr/local/include
++INCLUDE = -I../wiringPi -I../devLib
+ CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
+
+-LDFLAGS = -L/usr/local/lib
++LDFLAGS = -L../wiringPi -L../devLib
+ LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
+
+ ###############################################################################
+diff --git a/gpio/Makefile b/gpio/Makefile
+index 7dcd090..83ec454 100644
+--- a/gpio/Makefile
++++ b/gpio/Makefile
+@@ -30,13 +30,17 @@ ifneq ($V,1)
+ Q ?= @
+ endif
+
+-#DEBUG = -g -O0
+-DEBUG = -O2
+-CC = gcc
+-INCLUDE = -I$(DESTDIR)$(PREFIX)/include
+-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
++INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
++LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
++BIN_DIR?=$(DESTDIR)$(PREFIX)/bin
+
+-LDFLAGS = -L$(DESTDIR)$(PREFIX)/lib
++#DEBUG ?= -g -O0
++DEBUG ?= -O2
++CC ?= gcc
++INCLUDE ?= -I$(INCLUDE_DIR)
++CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
++
++LDFLAGS ?= -L$(LIB_DIR)
+ LIBS = -lwiringPi -lwiringPiDev -lpthread
+
+ # May not need to alter anything below this line
+@@ -72,13 +76,10 @@ tags: $(SRC)
+ .PHONY: install
+ install: gpio
+ $Q echo "[Install]"
+- $Q cp gpio $(DESTDIR)$(PREFIX)/bin
+-ifneq ($(WIRINGPI_SUID),0)
+- $Q chown root.root $(DESTDIR)$(PREFIX)/bin/gpio
+- $Q chmod 4755 $(DESTDIR)$(PREFIX)/bin/gpio
+-endif
+- $Q mkdir -p $(DESTDIR)$(PREFIX)/man/man1
+- $Q cp gpio.1 $(DESTDIR)$(PREFIX)/man/man1
++ $Q install -d $(BIN_DIR)
++ $Q install -m 4755 -o root -g root gpio $(BIN_DIR)
++ $Q install -d $(DESTDIR)$(PREFIX)/share/man/man1
++ $Q install -m 644 -o root -g root gpio.1 $(DESTDIR)$(PREFIX)/share/man/man1
+
+ .PHONY: install-deb
+ install-deb: gpio
+@@ -89,7 +90,7 @@ install-deb: gpio
+ .PHONY: uninstall
+ uninstall:
+ $Q echo "[UnInstall]"
+- $Q rm -f $(DESTDIR)$(PREFIX)/bin/gpio
++ $Q rm -f $(BIN_DIR)/gpio
+ $Q rm -f $(DESTDIR)$(PREFIX)/man/man1/gpio.1
+
+ .PHONY: depend
+diff --git a/wiringPi/Makefile b/wiringPi/Makefile
+index 6bbcc5d..5355b74 100644
+--- a/wiringPi/Makefile
++++ b/wiringPi/Makefile
+@@ -25,19 +25,23 @@ VERSION=$(shell cat ../VERSION)
+ DESTDIR?=/usr
+ PREFIX?=/local
+
++INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
++LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
++
+ LDCONFIG?=ldconfig
+
+ ifneq ($V,1)
+ Q ?= @
+ endif
+
+-STATIC=libwiringPi.a
+-DYNAMIC=libwiringPi.so.$(VERSION)
++BASE_NAME=libwiringPi
++STATIC=$(BASE_NAME).a
++DYNAMIC=$(BASE_NAME).so.$(VERSION)
+
+-#DEBUG = -g -O0
+-DEBUG = -O2
+-CC = gcc
+-INCLUDE = -I.
++#DEBUG ?= -g -O0
++DEBUG ?= -O2
++CC ?= gcc
++INCLUDE ?= -I.
+ DEFS = -D_GNU_SOURCE
+ CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC
+
+@@ -89,17 +93,17 @@ $(STATIC): $(OBJ)
+
+ $(DYNAMIC): $(OBJ)
+ $Q echo "[Link (Dynamic)]"
+- $Q $(CC) -shared -Wl,-soname,libwiringPi.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPi.so.$(VERSION) -lpthread $(OBJ)
++ $Q $(CC) -shared -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so -lpthread $(OBJ)
+
+ .c.o:
+ $Q echo [Compile] $<
+- $Q $(CC) -c $(CFLAGS) $< -o $@
++ $Q $(CC) -c $(CFLAGS) -fPIC $< -o $@
+
+
+ .PHONY: clean
+ clean:
+ $Q echo "[Clean]"
+- $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak libwiringPi.*
++ $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak $(BASE_NAME).so* $(BASE_NAME).a
+
+ .PHONY: tags
+ tags: $(SRC)
+@@ -110,22 +114,22 @@ tags: $(SRC)
+ .PHONY: install
+ install: $(DYNAMIC)
+ $Q echo "[Install Headers]"
+- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
+- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
++ $Q install -m 0755 -d $(INCLUDE_DIR)
++ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
+ $Q echo "[Install Dynamic Lib]"
+- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
+- $Q install -m 0755 libwiringPi.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION)
+- $Q ln -sf $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION) $(DESTDIR)/lib/libwiringPi.so
+- $Q $(LDCONFIG)
++ $Q install -m 0755 -d $(LIB_DIR)
++ $Q install -m 0755 $(BASE_NAME).so $(LIB_DIR)/$(DYNAMIC)
++ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so
++ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
+
+ .PHONY: install-static
+ install-static: $(STATIC)
+ $Q echo "[Install Headers]"
+- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
+- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
++ $Q install -m 0755 -d $(INCLUDE_DIR)
++ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
+ $Q echo "[Install Static Lib]"
+- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
+- $Q install -m 0755 libwiringPi.a $(DESTDIR)$(PREFIX)/lib
++ $Q install -m 0755 -d $(LIB_DIR)
++ $Q install -m 0755 $(STATIC) $(LIB_DIR)
+
+ .PHONY: install-deb
+ install-deb: $(DYNAMIC)
+@@ -140,9 +144,11 @@ install-deb: $(DYNAMIC)
+ .PHONY: uninstall
+ uninstall:
+ $Q echo "[UnInstall]"
+- $Q cd $(DESTDIR)$(PREFIX)/include/ && rm -f $(HEADERS)
+- $Q cd $(DESTDIR)$(PREFIX)/lib/ && rm -f libwiringPi.*
+- $Q $(LDCONFIG)
++ $Q cd $(INCLUDE_DIR) && rm -f $(HEADERS)
++ $Q rm -f $(LIB_DIR)/$(STATIC)
++ $Q rm -f $(LIB_DIR)/$(DYNAMIC)
++ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so
++ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
+
+
+ .PHONY: depend
+--
+2.1.4
+
diff --git a/import-layers/meta-raspberrypi/recipes-devtools/wiringPi/wiringpi/0001-include-asm-ioctl.h-directly-for-_IOC_SIZEBITS.patch b/import-layers/meta-raspberrypi/recipes-devtools/wiringPi/wiringpi/0001-include-asm-ioctl.h-directly-for-_IOC_SIZEBITS.patch
new file mode 100644
index 0000000000..5de5853b13
--- /dev/null
+++ b/import-layers/meta-raspberrypi/recipes-devtools/wiringPi/wiringpi/0001-include-asm-ioctl.h-directly-for-_IOC_SIZEBITS.patch
@@ -0,0 +1,58 @@
+From 7f65eb37a82a6d9b095d9c8f262ad9dd205acd03 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Jan 2016 16:57:38 -0800
+Subject: [PATCH] include <asm/ioctl.h> directly for _IOC_SIZEBITS
+
+Fixes errors like
+| wiringPiSPI.c: In function 'wiringPiSPIDataRW':
+| wiringPiSPI.c:89:35: error: '_IOC_SIZEBITS' undeclared (first use in
+this function)
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ wiringPi/wiringPi.c | 1 +
+ wiringPi/wiringPiI2C.c | 1 +
+ wiringPi/wiringPiSPI.c | 1 +
+ 3 files changed, 3 insertions(+)
+
+diff --git a/wiringPi/wiringPi.c b/wiringPi/wiringPi.c
+index 32e5100..cb5db9d 100644
+--- a/wiringPi/wiringPi.c
++++ b/wiringPi/wiringPi.c
+@@ -64,6 +64,7 @@
+ #include <time.h>
+ #include <fcntl.h>
+ #include <pthread.h>
++#include <asm/ioctl.h>
+ #include <sys/time.h>
+ #include <sys/mman.h>
+ #include <sys/stat.h>
+diff --git a/wiringPi/wiringPiI2C.c b/wiringPi/wiringPiI2C.c
+index c787bce..efdf53c 100644
+--- a/wiringPi/wiringPiI2C.c
++++ b/wiringPi/wiringPiI2C.c
+@@ -52,6 +52,7 @@
+ #include <string.h>
+ #include <fcntl.h>
+ #include <sys/ioctl.h>
++#include <asm/ioctl.h>
+
+ #include "wiringPi.h"
+ #include "wiringPiI2C.h"
+diff --git a/wiringPi/wiringPiSPI.c b/wiringPi/wiringPiSPI.c
+index 453df31..ae3c7d9 100644
+--- a/wiringPi/wiringPiSPI.c
++++ b/wiringPi/wiringPiSPI.c
+@@ -27,6 +27,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <string.h>
++#include <asm/ioctl.h>
+ #include <sys/ioctl.h>
+ #include <linux/spi/spidev.h>
+
+--
+2.7.0
+
diff --git a/import-layers/meta-raspberrypi/recipes-devtools/wiringPi/wiringpi_git.bb b/import-layers/meta-raspberrypi/recipes-devtools/wiringPi/wiringpi_git.bb
new file mode 100644
index 0000000000..9d2206bc1c
--- /dev/null
+++ b/import-layers/meta-raspberrypi/recipes-devtools/wiringPi/wiringpi_git.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "A library to control Raspberry Pi GPIO channels"
+HOMEPAGE = "https://projects.drogon.net/raspberry-pi/wiringpi/"
+SECTION = "devel/libs"
+LICENSE = "LGPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+# tag 2.29
+SRCREV = "d79506694d7ba1c3da865d095238289d6175057d"
+
+S = "${WORKDIR}/git"
+
+SRC_URI = "git://git.drogon.net/wiringPi \
+ file://0001-Add-initial-cross-compile-support.patch \
+ file://0001-include-asm-ioctl.h-directly-for-_IOC_SIZEBITS.patch \
+ "
+
+COMPATIBLE_MACHINE = "raspberrypi"
+
+CFLAGS_prepend = "-I${S}/wiringPi -I${S}/devLib"
+
+EXTRA_OEMAKE += "'INCLUDE_DIR=${D}${includedir}' 'LIB_DIR=${D}${libdir}'"
+EXTRA_OEMAKE += "'DESTDIR=${D}/usr' 'PREFIX=""'"
+
+do_compile() {
+ oe_runmake -C devLib
+ oe_runmake -C wiringPi
+ oe_runmake -C gpio 'LDFLAGS=${LDFLAGS} -L${S}/wiringPi -L${S}/devLib'
+}
+
+do_install() {
+ oe_runmake -C devLib install
+ oe_runmake -C wiringPi install
+ oe_runmake -C gpio install
+}