hidapi: add HIDAPI, a library to access HID devices
authorPaul Fertser <fercerpav@gmail.com>
Sat, 17 Jan 2015 23:20:29 +0000 (02:20 +0300)
committerPaul Fertser <fercerpav@gmail.com>
Sun, 1 Feb 2015 18:17:52 +0000 (21:17 +0300)
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
libs/hidapi/Makefile [new file with mode: 0644]
libs/hidapi/patches/010-add-iconv-linkage.patch [new file with mode: 0644]

diff --git a/libs/hidapi/Makefile b/libs/hidapi/Makefile
new file mode 100644 (file)
index 0000000..efdbbf5
--- /dev/null
@@ -0,0 +1,77 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=hidapi
+PKG_VERSION:=0.8.0-rc1
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/signal11/hidapi.git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=hidapi-$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_SOURCE_VERSION).tar.gz
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=LICENSE-bsd.txt
+
+PKG_MAINTAINER:=Paul Fertser <fercerpav@gmail.com>
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+
+define Package/hidapi
+  SECTION:=libs
+  CATEGORY:=Libraries
+  DEPENDS:=+libusb-1.0 +libiconv +librt
+  TITLE:=Library to talk to HID devices
+  URL:=http://www.signal11.us/oss/hidapi/
+endef
+
+define Package/hidapi/description
+HIDAPI is a multi-platform library which allows an application to interface
+with USB and Bluetooth HID-Class devices on Windows, Linux, FreeBSD, and Mac
+OS X.  HIDAPI can be either built as a shared library (.so or .dll) or
+can be embedded directly into a target application by adding a single source
+file (per platform) and a single header.
+endef
+
+define Build/Configure
+endef
+
+MAKE_PATH=libusb
+MAKE_FLAGS+=-f Makefile.linux
+TARGET_CFLAGS+=$(FPIC)
+
+define Build/Compile
+       $(call Build/Compile/Default, libhidapi-libusb.so)
+       mv $(PKG_BUILD_DIR)/libusb/libhidapi-libusb.so \
+               $(PKG_BUILD_DIR)/libusb/libhidapi-libusb.so.0
+       ln -s libhidapi-libusb.so.0 $(PKG_BUILD_DIR)/libusb/libhidapi-libusb.so
+       sed    's^@prefix@^/usr^; \
+               s^@exec_prefix@^/usr^; \
+               s^@libdir@^$$$${exec_prefix}/lib^; \
+               s^@includedir@^$$$${prefix}/include^' \
+               < $(PKG_BUILD_DIR)/pc/hidapi-libusb.pc.in \
+               > $(PKG_BUILD_DIR)/pc/hidapi-libusb.pc
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include/hidapi
+       $(CP) $(PKG_BUILD_DIR)/hidapi/hidapi.h $(1)/usr/include/hidapi/
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_BUILD_DIR)/libusb/libhidapi-libusb.so* $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig/
+       $(CP) $(PKG_BUILD_DIR)/pc/hidapi-libusb.pc $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/hidapi/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_BUILD_DIR)/libusb/libhidapi-libusb.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,hidapi))
diff --git a/libs/hidapi/patches/010-add-iconv-linkage.patch b/libs/hidapi/patches/010-add-iconv-linkage.patch
new file mode 100644 (file)
index 0000000..d942d50
--- /dev/null
@@ -0,0 +1,22 @@
+Index: hidapi-0.8.0-rc1/libusb/Makefile.linux
+===================================================================
+--- hidapi-0.8.0-rc1.orig/libusb/Makefile.linux
++++ hidapi-0.8.0-rc1/libusb/Makefile.linux
+@@ -22,7 +22,7 @@ COBJS_LIBUSB = hid.o
+ COBJS = $(COBJS_LIBUSB)
+ CPPOBJS   = ../hidtest/hidtest.o
+ OBJS      = $(COBJS) $(CPPOBJS)
+-LIBS_USB  = `pkg-config libusb-1.0 --libs` -lrt -lpthread
++LIBS_USB  = `pkg-config libusb-1.0 --libs` -lrt -lpthread -liconv
+ LIBS      = $(LIBS_USB)
+ INCLUDES ?= -I../hidapi `pkg-config libusb-1.0 --cflags`
+@@ -33,7 +33,7 @@ hidtest-libusb: $(COBJS_LIBUSB) $(CPPOBJ
+ # Shared Libs
+ libhidapi-libusb.so: $(COBJS_LIBUSB)
+-      $(CC) $(LDFLAGS) $(LIBS_USB) -shared -fpic -Wl,-soname,$@.0 $^ -o $@
++      $(CC) $(LDFLAGS) $^ $(LIBS_USB) -shared -fpic -Wl,-soname,$@.0 -o $@
+ # Objects
+ $(COBJS): %.o: %.c