-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathbuild-libusb
executable file
·88 lines (77 loc) · 2.43 KB
/
build-libusb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/bin/bash -e
. buildbot.conf
libusb_src=$(realpath ../libs/libusb)
libusb_compat_src=$(realpath ../libs/libusb-compat-0.1)
old=`pwd`
# last known-working upstream version: d7cf58b
buildarch=`gcc -dumpmachine 2>/dev/null`
if [ -z "$buildarch" ]; then
eval `dpkg-architecture`
if [ -z $DEB_HOST_GNU_TYPE ]; then
printf "Could not determine host architecture\n\n"
exit 1
fi
buildarch="$DEB_HOST_GNU_TYPE"
fi
# FIXME:
# x86_64-unknown-linux-uclibc does not provide usleep
for triplet in \
aarch64-linux-gnu \
alphaev4-unknown-linux-gnu \
arm-linux-gnueabihf \
hppa-linux-gnu \
i386-linux-gnu \
i686-w64-mingw32 \
mips-unknown-linux-gnu \
powerpc64le-linux-gnu \
powerpc-linux-gnu \
m68k-linux-gnu \
sh4-linux-gnu \
s390x-ibm-linux-gnu \
sparc-unknown-linux-gnu \
x86_64-apple-darwin15 \
x86_64-linux-android \
x86_64-unknown-linux-musl \
x86_64-unknown-linux-uclibc \
x86_64-w64-mingw32 \
;do
printf "\n\n$triplet\n"
if [ -s ${libs_base}/${triplet}/lib/libusb-1.0.a -a -s ${libs_base}/${triplet}/lib/libusb.la ] ; then
echo " exists already, skipping."
continue
fi
if [ "$triplet" = "x86_64-apple-darwin15" ]; then
export CC="${triplet}-clang" CXX="${triplet}-clang++"
export OSXCROSS_PKG_CONFIG_PATH=${libs_base}/${triplet}/lib/pkgconfig
else
export CC="${triplet}-gcc" CXX="${triplet}-g++"
export PKG_CONFIG_PATH=${libs_base}/${triplet}/lib/pkgconfig
fi
printf "\nlibusb for $triplet...\n"
# FIXME: not all x32 libs are working yet... dunno which ones
# if [ $triplet = "x86_64-linux-gnux32" ]; then
# export CC="gcc -mx32" CXX="g++ -mx32"
# fi
# libusb first
cd ${libusb_src}
if [ -e Makefile ]; then
make distclean
fi
./autogen.sh $autogen_opts --disable-udev --disable-debug-log --disable-examples-build --disable-tests-build --host=${triplet} --build="$buildarch" --prefix=${libs_base}/${triplet}/
make install
# libusb-compat afterwards
printf "\nlibusb-compat for $triplet...\n"
cd ${libusb_compat_src}
if [ -e Makefile ]; then
make distclean
fi
./autogen.sh --disable-debug-log --disable-examples-build --disable-tests-build --host=${triplet} --build="$buildarch" --prefix=${libs_base}/${triplet}
make install
if [ "$triplet" = "i686-w64-mingw32" -o "$triplet" = "x86_64-w64-mingw32" ]; then
# Make the header name match what flashrom expects of libusb-0.1 on windows
ln -s usb.h ${libs_base}/${triplet}/include/lusb0_usb.h
fi
printf " successfully installed.\n"
done
export PKG_CONFIG_PATH=
cd "$old"