diff --git a/src/main/c/build/common.sh b/src/main/c/build/common.sh index d636c7f..9b43ac2 100644 --- a/src/main/c/build/common.sh +++ b/src/main/c/build/common.sh @@ -2,33 +2,45 @@ cd "$(dirname $0)" SRCDIR="$(pwd)/.." TMPDIR="$SRCDIR/tmp" DOWNLOADS="$SRCDIR/downloads" -LIBUSBX_VERSION="1.0.14" -LIBUSBX_ARCHIVE="libusbx-$LIBUSBX_VERSION.tar.bz2" -LIBUSBX_FILE="$DOWNLOADS/$LIBUSBX_ARCHIVE" -LIBUSBX_URL="http://downloads.sf.net/project/libusbx/releases/$LIBUSBX_VERSION/source/$LIBUSBX_ARCHIVE" +LIBUSB="libusbx" +LIBUSB_VERSION="1.0.16" +LIBUSB_RC="-rc6" +LIBUSBX_VERSION="1.0.15" +LIBUSBX_RC="-rc3" build() { + if [ "$LIBUSB" = "libusbx" ] + then + LIBUSB_NAME="libusbx-$LIBUSBX_VERSION$LIBUSBX_RC" + LIBUSB_ARCHIVE="$LIBUSB_NAME.tar.bz2" + LIBUSB_URL="http://downloads.sf.net/project/libusbx/releases/$LIBUSBX_VERSION/source/$LIBUSB_ARCHIVE" + else + LIBUSB_NAME="libusb-$LIBUSB_VERSION$LIBUSB_RC" + LIBUSB_ARCHIVE="$LIBUSB_NAME.tar.bz2" + LIBUSB_URL="http://downloads.sf.net/project/libusb/libusb-1.0/libusb-$LIBUSB_VERSION$LIBUSB_RC/$LIBUSB_ARCHIVE" + fi + DISTDIR="$SRCDIR/../resources/de/ailis/usb4java/libusb/$OS-$ARCH" # Clean up rm -rf "$TMPDIR" rm -rf "$DISTDIR" - # Download libusbx if necessary + # Download libusb if necessary mkdir -p "$DOWNLOADS" - if [ ! -e "$LIBUSBX_FILE" ] + if [ ! -e "$DOWNLOADS/$LIBUSB_ARCHIVE" ] then - curl -L -o "$LIBUSBX_FILE" "$LIBUSBX_URL" + curl -L -o "$DOWNLOADS/$LIBUSB_ARCHIVE" "$LIBUSB_URL" fi - # Unpack and compile libusbx + # Unpack and compile libusb mkdir -p "$TMPDIR" cd "$TMPDIR" - tar xfj "$DOWNLOADS/$LIBUSBX_ARCHIVE" - cd "libusbx-$LIBUSBX_VERSION" - CFLAGS="$CFLAGS $LIBUSBX_CFLAGS" \ - ./configure --prefix="$TMPDIR" --host="$HOST" --with-pic $LIBUSBX_CONFIG + tar xfj "$DOWNLOADS/$LIBUSB_ARCHIVE" + cd "$LIBUSB_NAME" + CFLAGS="$CFLAGS $LIBUSB_CFLAGS" \ + ./configure --prefix="$TMPDIR" --host="$HOST" --with-pic $LIBUSB_CONFIG make make install-strip diff --git a/src/main/c/build/linux-x86_64.sh b/src/main/c/build/linux-x86_64.sh index b526366..e1b369e 100755 --- a/src/main/c/build/linux-x86_64.sh +++ b/src/main/c/build/linux-x86_64.sh @@ -10,7 +10,7 @@ OS="linux" ARCH="x86_64" HOST="$ARCH-$OS-gnu" CFLAGS="-m64" -LIBUSBX_CONFIG="--disable-shared" +LIBUSB_CONFIG="--disable-shared" USB4JAVA_LIBS="-lrt" build diff --git a/src/main/c/configure.ac b/src/main/c/configure.ac index 6fbf335..f2075a4 100644 --- a/src/main/c/configure.ac +++ b/src/main/c/configure.ac @@ -1,6 +1,6 @@ AC_PREREQ([2.61]) AC_INIT([libusb4java], [1.0.0], [k@ailis.de]) -AM_INIT_AUTOMAKE(foreign -Wall -Werror) +AM_INIT_AUTOMAKE([foreign -Wall -Werror]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_SRCDIR([src/usb4java.h]) @@ -9,11 +9,11 @@ AC_LANG_C AC_PROG_CC AM_PROG_LIBTOOL AC_CHECK_JAVA -AC_CHECK_SIZEOF(void *) -PKG_CHECK_MODULES(LIBUSB, libusb-1.0) +AC_CHECK_SIZEOF([void *]) +PKG_CHECK_MODULES([LIBUSB], [libusb-1.0]) -AC_CONFIG_FILES( +AC_CONFIG_FILES([ Makefile src/Makefile -) +]) AC_OUTPUT diff --git a/src/main/c/src/LibUsb.c b/src/main/c/src/LibUsb.c index 33045e4..f05ba96 100644 --- a/src/main/c/src/LibUsb.c +++ b/src/main/c/src/LibUsb.c @@ -128,7 +128,11 @@ JNIEXPORT jint JNICALL METHOD_NAME(LibUsb, getPortNumber) ) { NOT_NULL(env, device, return 0); - return libusb_get_port_number(unwrapDevice(env, device)); + #if defined(LIBUSBX_API_VERSION) + return libusb_get_port_number(unwrapDevice(env, device)); + #else + return 0; + #endif } /** @@ -143,8 +147,12 @@ JNIEXPORT jint JNICALL METHOD_NAME(LibUsb, getPortPath) NOT_NULL(env, path, return 0); jsize size = (*env)->GetArrayLength(env, path); unsigned char buffer[size]; - int result = libusb_get_port_path(unwrapContext(env, context), - unwrapDevice(env, device), buffer, size); + #if defined(LIBUSBX_API_VERSION) + int result = libusb_get_port_path(unwrapContext(env, context), + unwrapDevice(env, device), buffer, size); + #else + int result = 0; + #endif if (result > 0) (*env)->SetByteArrayRegion(env, path, 0, result, (jbyte *) buffer); return result; } @@ -158,7 +166,11 @@ JNIEXPORT jobject JNICALL METHOD_NAME(LibUsb, getParent) ) { NOT_NULL(env, device, return NULL); - return wrapDevice(env, libusb_get_parent(unwrapDevice(env, device))); + #if defined(LIBUSBX_API_VERSION) + return wrapDevice(env, libusb_get_parent(unwrapDevice(env, device))); + #else + return NULL; + #endif } /** diff --git a/src/main/resources/de/ailis/usb4java/libusb/linux-x86/libusb4java.so b/src/main/resources/de/ailis/usb4java/libusb/linux-x86/libusb4java.so index c53a55d..a5f86e5 100644 Binary files a/src/main/resources/de/ailis/usb4java/libusb/linux-x86/libusb4java.so and b/src/main/resources/de/ailis/usb4java/libusb/linux-x86/libusb4java.so differ diff --git a/src/main/resources/de/ailis/usb4java/libusb/linux-x86_64/libusb4java.so b/src/main/resources/de/ailis/usb4java/libusb/linux-x86_64/libusb4java.so index ffa7e5a..696c1a0 100644 Binary files a/src/main/resources/de/ailis/usb4java/libusb/linux-x86_64/libusb4java.so and b/src/main/resources/de/ailis/usb4java/libusb/linux-x86_64/libusb4java.so differ diff --git a/src/main/resources/de/ailis/usb4java/libusb/windows-x86/libusb-1.0.dll b/src/main/resources/de/ailis/usb4java/libusb/windows-x86/libusb-1.0.dll index fa99962..574458d 100644 Binary files a/src/main/resources/de/ailis/usb4java/libusb/windows-x86/libusb-1.0.dll and b/src/main/resources/de/ailis/usb4java/libusb/windows-x86/libusb-1.0.dll differ diff --git a/src/main/resources/de/ailis/usb4java/libusb/windows-x86/libusb4java.dll b/src/main/resources/de/ailis/usb4java/libusb/windows-x86/libusb4java.dll index cab4a44..292c549 100644 Binary files a/src/main/resources/de/ailis/usb4java/libusb/windows-x86/libusb4java.dll and b/src/main/resources/de/ailis/usb4java/libusb/windows-x86/libusb4java.dll differ diff --git a/src/main/resources/de/ailis/usb4java/libusb/windows-x86_64/libusb-1.0.dll b/src/main/resources/de/ailis/usb4java/libusb/windows-x86_64/libusb-1.0.dll index 0415dd2..dfa198b 100644 Binary files a/src/main/resources/de/ailis/usb4java/libusb/windows-x86_64/libusb-1.0.dll and b/src/main/resources/de/ailis/usb4java/libusb/windows-x86_64/libusb-1.0.dll differ diff --git a/src/main/resources/de/ailis/usb4java/libusb/windows-x86_64/libusb4java.dll b/src/main/resources/de/ailis/usb4java/libusb/windows-x86_64/libusb4java.dll index 77fa59b..1d4d2e1 100644 Binary files a/src/main/resources/de/ailis/usb4java/libusb/windows-x86_64/libusb4java.dll and b/src/main/resources/de/ailis/usb4java/libusb/windows-x86_64/libusb4java.dll differ