More tricky : libpcap. This time the configure script is an autoconf one.
The official way to do that (since autoconf 2.5) is to provide build arch and
host (target) arch, like this :
./configure --build=i686-pc-linux-gnu --host=armv4l-unknown-linux-gnu
But this will work only if the configure script has been designed to
cope with cross compilation. Here, it's not the case, so we'll have
to hide the cross compilation to it, changing the compiler without
informing configure.
Update: use the debian-patched source (apt-get source libpcap) to have
a shared library
wget http://www.tcpdump.org/release/libpcap-0.7.1.tar.gz
wget http://www.tcpdump.org/release/libpcap-0.7.1.tar.gz.pgp
gpg --verify libpcap-0.7.1.tar.gz.pgp
tar zxf libpcap-0.7.1.tar.gz
cd libpcap-0.7.1
Nothing new until here. The configure script will need
to know a lot about the target architecture. It will see that we are
using a cross compiler and it won't probe the local host because it is not
the target host. Thus, we must provide some additionnal informations.
Moreover, the libpcap configure script is not ready to be used for cross compilation. Indeed, nothing is done to provide the target kernel version, and the
configure script ends saying it can't determine it.
Let assume your target kernel version is ok and shunt the test providing directly a working value (that's a dirty hack. I'll do a real patch later).
--- configure.in~ 2001-12-10 09:33:42.000000000 +0100
+++ configure.in 2002-12-27 16:00:47.000000000 +0100
@@ -133,7 +133,7 @@
AC_MSG_CHECKING(Linux kernel version)
if test "$cross_compiling" = yes; then
AC_CACHE_VAL(ac_cv_linux_vers,
- ac_cv_linux_vers=unknown)
+ ac_cv_linux_vers=2)
else
AC_CACHE_VAL(ac_cv_linux_vers,
ac_cv_linux_vers=`uname -r 2>&1 | \
Let's patch configure.in
patch
(cut the diff and paste here)
^D
Now, we can regenerate the configure script and carry on.
autoconf
OPATH=$PATH
export PATH=/opt/Embedix/tools/arm-linux/bin:$PATH
./configure --prefix=/opt/Embedix/tools/arm-linux/ --host=armv4l-unknown-linux-gnu --with-pcap=linux
make
make install
export PATH=$OPATH
Done.