From d045b028838f817a39ecf1b4b4753b69196cf485 Mon Sep 17 00:00:00 2001 From: Paul Fertser Date: Sun, 18 Jan 2015 02:20:29 +0300 Subject: [PATCH] hidapi: add HIDAPI, a library to access HID devices Signed-off-by: Paul Fertser --- libs/hidapi/Makefile | 77 +++++++++++++++++++ .../patches/010-add-iconv-linkage.patch | 22 ++++++ 2 files changed, 99 insertions(+) create mode 100644 libs/hidapi/Makefile create mode 100644 libs/hidapi/patches/010-add-iconv-linkage.patch diff --git a/libs/hidapi/Makefile b/libs/hidapi/Makefile new file mode 100644 index 000000000..efdbbf516 --- /dev/null +++ b/libs/hidapi/Makefile @@ -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 + +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 index 000000000..d942d5061 --- /dev/null +++ b/libs/hidapi/patches/010-add-iconv-linkage.patch @@ -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