Change build system so we can easily switch between libusb and libusbx.
This commit is contained in:
parent
c6d25b259f
commit
3adde706ee
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user