Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
hidapi: add recipe (GCI 2016) (#963)
- Loading branch information
Showing
2 changed files
with
305 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
SUMMARY="Library for Interfacing with HID-Class devices" | ||
DESCRIPTION="HIDAPI is a library working with multiple platforms for | ||
interfacing with HID-Class devices through USB and Bluetooth. (On Haiku, it only works with USB). " | ||
HOMEPAGE="http://www.signal11.us/oss/hidapi/" | ||
COPYRIGHT="2010 Alan Ott | ||
2011 Signal 11 Software" | ||
LICENSE="BSD (3-clause) | ||
GNU GPL v3" | ||
REVISION="1" | ||
srcGitRev="a6a622ffb680c55da0de787ff93b80280498330f" | ||
SOURCE_URI="https://github.com/signal11/hidapi/archive/$srcGitRev.tar.gz" | ||
CHECKSUM_SHA256="d94e39be127ab6ac6a2bbdf6d321d6492b1cdc6cc5c00b6901228eb6923e81a6" | ||
SOURCE_DIR="hidapi-$srcGitRev" | ||
PATCHES="hidapi-$portVersion.patchset" | ||
|
||
ARCHITECTURES="!x86_gcc2 x86 x86_64" | ||
SECONDARY_ARCHITECTURES="x86" | ||
|
||
PROVIDES=" | ||
hidapi$secondaryArchSuffix = $portVersion | ||
lib:libhidapi$secondaryArchSuffix = 0.0.0 compat >= 0 | ||
" | ||
REQUIRES=" | ||
haiku$secondaryArchSuffix | ||
lib:libusb_1.0$secondaryArchSuffix | ||
" | ||
|
||
PROVIDES_devel=" | ||
hidapi${secondaryArchSuffix}_devel = $portVersion | ||
devel:libhidapi$secondaryArchSuffix = 0.0.0 compat >= 0 | ||
" | ||
REQUIRES_devel=" | ||
hidapi$secondaryArchSuffix == $portVersion base | ||
" | ||
|
||
BUILD_REQUIRES=" | ||
haiku${secondaryArchSuffix}_devel | ||
devel:libusb_1.0$secondaryArchSuffix | ||
" | ||
BUILD_PREREQUIRES=" | ||
cmd:aclocal | ||
cmd:autoconf | ||
cmd:automake | ||
cmd:gcc$secondaryArchSuffix | ||
cmd:ld$secondaryArchSuffix | ||
cmd:libtoolize$secondaryArchSuffix | ||
cmd:make | ||
cmd:pkg_config$secondaryArchSuffix | ||
" | ||
|
||
BUILD() | ||
{ | ||
|
||
./bootstrap | ||
|
||
runConfigure ./configure \ | ||
--disable-dependency-tracking \ | ||
--with-gnu-ld | ||
|
||
make $jobArgs | ||
} | ||
|
||
INSTALL() | ||
{ | ||
make install | ||
|
||
rm $libDir/libhidapi.la | ||
|
||
prepareInstalledDevelLib libhidapi | ||
fixPkgconfig | ||
|
||
packageEntries devel \ | ||
$developDir | ||
} | ||
|
||
TEST() | ||
{ | ||
make hidtest | ||
|
||
cd hidtest/.libs | ||
LIBRARY_PATH=$sourceDir/libusb/.libs:$LIBRARY_PATH ./hidtest || true | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,223 @@ | ||
From 0e6ebfe2cee9ea675ebc175fb95830cc1ecf5ef8 Mon Sep 17 00:00:00 2001 | ||
From: CodeforEvolution <themysterymail555@gmail.com> | ||
Date: Mon, 26 Dec 2016 16:59:41 +0000 | ||
Subject: Changes to Build System for Haiku | ||
|
||
|
||
diff --git a/Makefile.am b/Makefile.am | ||
index 196c991..48e522d 100644 | ||
--- a/Makefile.am | ||
+++ b/Makefile.am | ||
@@ -31,6 +31,10 @@ if OS_KFREEBSD | ||
SUBDIRS += libusb | ||
endif | ||
|
||
+if OS_HAIKU | ||
+SUBDIRS += libusb | ||
+endif | ||
+ | ||
if OS_WINDOWS | ||
SUBDIRS += windows | ||
endif | ||
diff --git a/configure.ac b/configure.ac | ||
index c6747f9..dd5249a 100644 | ||
--- a/configure.ac | ||
+++ b/configure.ac | ||
@@ -107,6 +107,18 @@ case $host in | ||
AC_CHECK_LIB([usb], [libusb_init], [LIBS_LIBUSB_PRIVATE="${LIBS_LIBUSB_PRIVATE} -lusb"], [hidapi_lib_error libusb]) | ||
echo libs_priv: $LIBS_LIBUSB_PRIVATE | ||
;; | ||
+*-*-haiku) | ||
+ AC_MSG_RESULT([ (Haiku back-end)]) | ||
+ AC_DEFINE(OS_HAIKU, 1, [Haiku implementation]) | ||
+ AC_SUBST(OS_HAIKU) | ||
+ backend="libusb" | ||
+ os="haiku" | ||
+ threads="pthreads" | ||
+ | ||
+ PKG_CHECK_MODULES([libusb], [libusb-1.0 >= 1.0.9], true, [hidapi_lib_error libusb-1.0]) | ||
+ LIBS_LIBUSB_PRIVATE+=" $libusb_LIBS" | ||
+ CFLAGS_LIBUSB+=" $libusb_CFLAGS" | ||
+ ;; | ||
*-mingw*) | ||
AC_MSG_RESULT([ (Windows back-end, using MinGW)]) | ||
backend="windows" | ||
@@ -213,6 +225,7 @@ AM_CONDITIONAL(OS_LINUX, test "x$os" = xlinux) | ||
AM_CONDITIONAL(OS_DARWIN, test "x$os" = xdarwin) | ||
AM_CONDITIONAL(OS_FREEBSD, test "x$os" = xfreebsd) | ||
AM_CONDITIONAL(OS_KFREEBSD, test "x$os" = xkfreebsd) | ||
+AM_CONDITIONAL(OS_HAIKU, test "x$os" = xhaiku) | ||
AM_CONDITIONAL(OS_WINDOWS, test "x$os" = xwindows) | ||
|
||
AC_CONFIG_HEADERS([config.h]) | ||
diff --git a/libusb/Makefile-manual b/libusb/Makefile-manual | ||
index c0fe868..0acf707 100644 | ||
--- a/libusb/Makefile-manual | ||
+++ b/libusb/Makefile-manual | ||
@@ -10,6 +10,10 @@ ifeq ($(OS), FreeBSD) | ||
FILE=Makefile.freebsd | ||
endif | ||
|
||
+ifeq ($(OS), Haiku) | ||
+ FILE=Makefile.haiku | ||
+endif | ||
+ | ||
ifeq ($(FILE), ) | ||
all: | ||
$(error Your platform ${OS} is not supported by hidapi/libusb at this time.) | ||
diff --git a/libusb/Makefile.am b/libusb/Makefile.am | ||
index 13c9d35..1da06bc 100644 | ||
--- a/libusb/Makefile.am | ||
+++ b/libusb/Makefile.am | ||
@@ -21,6 +21,13 @@ libhidapi_la_LDFLAGS = $(LTLDFLAGS) | ||
libhidapi_la_LIBADD = $(LIBS_LIBUSB) | ||
endif | ||
|
||
+if OS_HAIKU | ||
+lib_LTLIBRARIES = libhidapi.la | ||
+libhidapi_la_SOURCES = hid.c | ||
+libhidapi_la_LDFLAGS = $(LTLDFLAGS) | ||
+libhidapi_la_LIBADD = $(LIBS_LIBUSB) | ||
+endif | ||
+ | ||
hdrdir = $(includedir)/hidapi | ||
hdr_HEADERS = $(top_srcdir)/hidapi/hidapi.h | ||
|
||
diff --git a/libusb/Makefile.haiku b/libusb/Makefile.haiku | ||
new file mode 100644 | ||
index 0000000..6ddd172 | ||
--- /dev/null | ||
+++ b/libusb/Makefile.haiku | ||
@@ -0,0 +1,46 @@ | ||
+########################################### | ||
+# Simple Makefile for HIDAPI test program | ||
+# | ||
+# Alan Ott | ||
+# Signal 11 Software | ||
+# 2010-06-01 | ||
+########################################### | ||
+ | ||
+all: hidtest libs | ||
+ | ||
+libs: libhidapi.so | ||
+ | ||
+CC ?= cc | ||
+CFLAGS ?= -Wall -g -fPIC | ||
+ | ||
+CXX ?= c++ | ||
+CXXFLAGS ?= -Wall -g | ||
+ | ||
+COBJS = hid.o | ||
+CPPOBJS = ../hidtest/hidtest.o | ||
+OBJS = $(COBJS) $(CPPOBJS) | ||
+INCLUDES = -I../hidapi -I$(shell finddir B_SYSTEM_HEADERS_DIRECTORY) | ||
+LDFLAGS = -L$(shell finddir B_SYSTEM_LIB_DIRECTORY) | ||
+LIBS = -lusb-1.0 | ||
+ | ||
+ | ||
+# Console Test Program | ||
+hidtest: $(OBJS) | ||
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS) | ||
+ | ||
+# Shared Libs | ||
+libhidapi.so: $(COBJS) | ||
+ $(CC) $(LDFLAGS) -shared -Wl,-soname,$@.0 $^ -o $@ $(LIBS) | ||
+ | ||
+# Objects | ||
+$(COBJS): %.o: %.c | ||
+ $(CC) $(CFLAGS) -c $(INCLUDES) $< -o $@ | ||
+ | ||
+$(CPPOBJS): %.o: %.cpp | ||
+ $(CXX) $(CXXFLAGS) -c $(INCLUDES) $< -o $@ | ||
+ | ||
+ | ||
+clean: | ||
+ rm -f $(OBJS) hidtest libhidapi.so ../hidtest/hidtest.o | ||
+ | ||
+.PHONY: clean libs | ||
-- | ||
2.2.2 | ||
|
||
|
||
From 106ec32de206ec49fb0441e55690d7ff3cd24b9c Mon Sep 17 00:00:00 2001 | ||
From: CodeforEvolution <themysterymail555@gmail.com> | ||
Date: Mon, 26 Dec 2016 17:14:58 +0000 | ||
Subject: Changes in source for no iconv/pthread barriers | ||
|
||
|
||
diff --git a/libusb/hid.c b/libusb/hid.c | ||
index 3c6d877..c6ad012 100644 | ||
--- a/libusb/hid.c | ||
+++ b/libusb/hid.c | ||
@@ -45,15 +45,15 @@ | ||
|
||
/* GNU / LibUSB */ | ||
#include <libusb.h> | ||
-#ifndef __ANDROID__ | ||
+#if !defined(__ANDROID__) || !defined(__HAIKU__) | ||
#include <iconv.h> | ||
#endif | ||
|
||
#include "hidapi.h" | ||
|
||
-#ifdef __ANDROID__ | ||
+#if defined(__ANDROID__) || defined(__HAIKU__) | ||
|
||
-/* Barrier implementation because Android/Bionic don't have pthread_barrier. | ||
+/* Barrier implementation because Android/Bionic/Haiku don't have pthread_barrier. | ||
This implementation came from Brent Priddy and was posted on | ||
StackOverflow. It is used with his permission. */ | ||
typedef int pthread_barrierattr_t; | ||
@@ -390,7 +390,7 @@ static wchar_t *get_usb_string(libusb_device_handle *dev, uint8_t idx) | ||
int len; | ||
wchar_t *str = NULL; | ||
|
||
-#ifndef __ANDROID__ /* we don't use iconv on Android */ | ||
+#if !defined(__ANDROID__) || !defined(__HAIKU__) /* we don't use iconv on Android/Haiku */ | ||
wchar_t wbuf[256]; | ||
/* iconv variables */ | ||
iconv_t ic; | ||
@@ -420,7 +420,7 @@ static wchar_t *get_usb_string(libusb_device_handle *dev, uint8_t idx) | ||
if (len < 0) | ||
return NULL; | ||
|
||
-#ifdef __ANDROID__ | ||
+#if defined(__ANDROID__) || defined(__HAIKU__) | ||
|
||
/* Bionic does not have iconv support nor wcsdup() function, so it | ||
has to be done manually. The following code will only work for | ||
-- | ||
2.2.2 | ||
|
||
|
||
From 3de18a772eebbddd93e0fa356d6c738b0718f011 Mon Sep 17 00:00:00 2001 | ||
From: CodeforEvolution <themysterymail555@gmail.com> | ||
Date: Mon, 26 Dec 2016 18:09:26 +0000 | ||
Subject: Fix Change in Source | ||
|
||
|
||
diff --git a/libusb/hid.c b/libusb/hid.c | ||
index c6ad012..f11d4d5 100644 | ||
--- a/libusb/hid.c | ||
+++ b/libusb/hid.c | ||
@@ -45,7 +45,7 @@ | ||
|
||
/* GNU / LibUSB */ | ||
#include <libusb.h> | ||
-#if !defined(__ANDROID__) || !defined(__HAIKU__) | ||
+#if !defined(__ANDROID__) && !defined(__HAIKU__) | ||
#include <iconv.h> | ||
#endif | ||
|
||
@@ -390,7 +390,7 @@ static wchar_t *get_usb_string(libusb_device_handle *dev, uint8_t idx) | ||
int len; | ||
wchar_t *str = NULL; | ||
|
||
-#if !defined(__ANDROID__) || !defined(__HAIKU__) /* we don't use iconv on Android/Haiku */ | ||
+#if !defined(__ANDROID__) && !defined(__HAIKU__) /* we don't use iconv on Android/Haiku */ | ||
wchar_t wbuf[256]; | ||
/* iconv variables */ | ||
iconv_t ic; | ||
-- | ||
2.2.2 | ||
|