Add support to statically build udev (eudev in this case, since it's much simpler to just get it to build libudev).

Add -O2 to CFLAGS (-Os for ARM), needed for optimization and warnings.
Add appropriate HOST variables to osx-*.sh.
This commit is contained in:
Luca Longinotti 2013-07-18 13:47:41 +02:00
parent 1b4126cc90
commit 28f693b463
8 changed files with 73 additions and 23 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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