diff --git a/src/main/c/build/common.sh b/src/main/c/build/common.sh index f477ef3..55e4b93 100644 --- a/src/main/c/build/common.sh +++ b/src/main/c/build/common.sh @@ -3,6 +3,8 @@ SRCDIR="$(pwd)/.." TMPDIR="$SRCDIR/tmp" DOWNLOADS="$SRCDIR/downloads" +UDEV_VERSION="1.1" + LIBUSB="stable" LIBUSB_STABLE_VERSION="1.0.16" LIBUSB_STABLE_RC="" @@ -11,6 +13,10 @@ LIBUSB_BETA_RC="-rc3" build() { + UDEV_NAME="eudev-$UDEV_VERSION" + UDEV_ARCHIVE="$UDEV_NAME.tar.gz" + UDEV_URL="http://dev.gentoo.org/~blueness/eudev/$UDEV_ARCHIVE" + if [ "$LIBUSB" = "stable" ] then LIBUSB_NAME="libusbx-$LIBUSB_STABLE_VERSION$LIBUSB_STABLE_RC" @@ -28,16 +34,59 @@ build() rm -rf "$TMPDIR" rm -rf "$DISTDIR" + # Udev available only on Linux + if [ "$OS" = "linux" ] + then + + if [ "$UDEV_SUPPORT" = "yes" ] + then + # Download udev if necessary + mkdir -p "$DOWNLOADS" + if [ ! -e "$DOWNLOADS/$UDEV_ARCHIVE" ] + then + if type curl >/dev/null 2>&1 + then + curl -L -o "$DOWNLOADS/$UDEV_ARCHIVE" "$UDEV_URL" + else + wget -O "$DOWNLOADS/$UDEV_ARCHIVE" "$UDEV_URL" + fi + fi + + UDEV_CONFIG="--enable-split-usr --disable-gtk-doc --disable-manpages --disable-gudev \ + --disable-introspection --disable-keymap --disable-libkmod --disable-modules \ + --disable-selinux --disable-rule-generator --disable-blkid $UDEV_CONFIG" + + # Unpack and compile udev + mkdir -p "$TMPDIR" + cd "$TMPDIR" + tar xfz "$DOWNLOADS/$UDEV_ARCHIVE" + cd "$UDEV_NAME" + LIBS="$UDEV_LIBS" \ + CFLAGS="$CFLAGS $UDEV_CFLAGS" \ + ./configure --prefix="$TMPDIR" --host="$HOST" --with-pic --enable-static \ + --disable-shared $UDEV_CONFIG + make + make install-strip + + # Enable udev support if selected + LIBUSB_CONFIG="--enable-udev $LIBUSB_CONFIG" + else + # Disable udev support if not selected + LIBUSB_CONFIG="--disable-udev $LIBUSB_CONFIG" + fi + + fi + # Download libusb if necessary mkdir -p "$DOWNLOADS" if [ ! -e "$DOWNLOADS/$LIBUSB_ARCHIVE" ] then - if type curl >/dev/null 2>&1 - then - curl -L -o "$DOWNLOADS/$LIBUSB_ARCHIVE" "$LIBUSB_URL" - else - wget -O "$DOWNLOADS/$LIBUSB_ARCHIVE" "$LIBUSB_URL" - fi + if type curl >/dev/null 2>&1 + then + curl -L -o "$DOWNLOADS/$LIBUSB_ARCHIVE" "$LIBUSB_URL" + else + wget -O "$DOWNLOADS/$LIBUSB_ARCHIVE" "$LIBUSB_URL" + fi fi # Unpack and compile libusb @@ -45,8 +94,11 @@ build() cd "$TMPDIR" tar xfj "$DOWNLOADS/$LIBUSB_ARCHIVE" cd "$LIBUSB_NAME" + PKG_CONFIG_PATH="$TMPDIR/lib/pkgconfig" \ + LIBS="$LIBUSB_LIBS" \ CFLAGS="$CFLAGS $LIBUSB_CFLAGS" \ - ./configure --prefix="$TMPDIR" --host="$HOST" --with-pic $LIBUSB_CONFIG + ./configure --prefix="$TMPDIR" --host="$HOST" --with-pic --enable-static \ + --disable-shared $LIBUSB_CONFIG make make install-strip @@ -54,7 +106,7 @@ build() cd "$SRCDIR" if [ ! -e configure ] then - ./autogen.sh + ./autogen.sh fi # Build libusb4java diff --git a/src/main/c/build/linux-arm.sh b/src/main/c/build/linux-arm.sh index 9748c1e..afcce07 100755 --- a/src/main/c/build/linux-arm.sh +++ b/src/main/c/build/linux-arm.sh @@ -9,7 +9,7 @@ set -e OS="linux" ARCH="arm" HOST="$ARCH-$OS-gnueabi" -LIBUSB_CONFIG="--disable-shared" -USB4JAVA_LIBS="-lrt" +CFLAGS="-Os" +UDEV_SUPPORT="yes" build diff --git a/src/main/c/build/linux-x86.sh b/src/main/c/build/linux-x86.sh index 08b85bd..355a935 100755 --- a/src/main/c/build/linux-x86.sh +++ b/src/main/c/build/linux-x86.sh @@ -9,8 +9,7 @@ set -e OS="linux" ARCH="x86" HOST="$ARCH-$OS-gnu" -CFLAGS="-m32" -LIBUSB_CONFIG="--disable-shared --disable-udev" -USB4JAVA_LIBS="-lrt" +CFLAGS="-m32 -O2" +UDEV_SUPPORT="yes" build diff --git a/src/main/c/build/linux-x86_64.sh b/src/main/c/build/linux-x86_64.sh index 9d25cb8..e61f153 100755 --- a/src/main/c/build/linux-x86_64.sh +++ b/src/main/c/build/linux-x86_64.sh @@ -9,9 +9,8 @@ set -e OS="linux" ARCH="x86_64" HOST="$ARCH-$OS-gnu" -CFLAGS="-m64 -Wl,--wrap=memcpy" -LIBUSB_CONFIG="--disable-shared --disable-udev" -USB4JAVA_LIBS="-lrt" -USB4JAVA_CFLAGS="-DWRAP_MEMCPY" +CFLAGS="-m64 -O2" +UDEV_SUPPORT="yes" +#USB4JAVA_CFLAGS="-Wl,--wrap=memcpy -DWRAP_MEMCPY" build diff --git a/src/main/c/build/osx-x86.sh b/src/main/c/build/osx-x86.sh index 4636bf6..ccfab0e 100755 --- a/src/main/c/build/osx-x86.sh +++ b/src/main/c/build/osx-x86.sh @@ -9,8 +9,8 @@ set -e OS="osx" ARCH="x86" -CFLAGS="-arch i686" -LIBUSB_CONFIG="--disable-shared" +HOST="i686-apple-darwin" +CFLAGS="-arch i686 -O2" USB4JAVA_LIBS="-lobjc -Wl,-framework,IOKit -Wl,-framework,CoreFoundation" build diff --git a/src/main/c/build/osx-x86_64.sh b/src/main/c/build/osx-x86_64.sh index b98186a..142d891 100755 --- a/src/main/c/build/osx-x86_64.sh +++ b/src/main/c/build/osx-x86_64.sh @@ -9,8 +9,8 @@ set -e OS="osx" ARCH="x86_64" -CFLAGS="-arch x86_64" -LIBUSB_CONFIG="--disable-shared" +HOST="$ARCH-apple-darwin" +CFLAGS="-arch x86_64 -O2" USB4JAVA_LIBS="-lobjc -Wl,-framework,IOKit -Wl,-framework,CoreFoundation" build diff --git a/src/main/c/build/windows-x86.sh b/src/main/c/build/windows-x86.sh index 9b1883b..0ab3fdd 100755 --- a/src/main/c/build/windows-x86.sh +++ b/src/main/c/build/windows-x86.sh @@ -9,6 +9,6 @@ set -e OS="windows" ARCH="x86" HOST="i686-w64-mingw32" -CFLAGS="-m32 -Wl,--add-stdcall-alias" +CFLAGS="-m32 -O2 -Wl,--add-stdcall-alias" build diff --git a/src/main/c/build/windows-x86_64.sh b/src/main/c/build/windows-x86_64.sh index 6482536..26cac5f 100755 --- a/src/main/c/build/windows-x86_64.sh +++ b/src/main/c/build/windows-x86_64.sh @@ -9,6 +9,6 @@ set -e OS="windows" ARCH="x86_64" HOST="$ARCH-w64-mingw32" -CFLAGS="-m64 -Wl,--add-stdcall-alias" +CFLAGS="-m64 -O2 -Wl,--add-stdcall-alias" build