Added script to cross-compile libraries for ARM (Raspberry)
This commit is contained in:
parent
e7abf019b0
commit
6855ad3f67
|
@ -0,0 +1,114 @@
|
|||
#!/bin/bash
|
||||
|
||||
# In this configuration, the following dependent libraries are compiled:
|
||||
#
|
||||
# * zlib
|
||||
# * c-ares
|
||||
# * expat
|
||||
# * sqlite3
|
||||
# * openSSL
|
||||
# * libssh2
|
||||
|
||||
#CHECK TOOL FOR DOWNLOAD
|
||||
aria2c --help > /dev/null
|
||||
if [ "$?" -eq 0 ] ; then
|
||||
DOWNLOADER="aria2c --check-certificate=false"
|
||||
else
|
||||
DOWNLOADER="wget -c"
|
||||
fi
|
||||
|
||||
## DEPENDENCES ##
|
||||
ZLIB=http://sourceforge.net/projects/libpng/files/zlib/1.2.8/zlib-1.2.8.tar.gz
|
||||
OPENSSL=http://www.openssl.org/source/openssl-1.0.2h.tar.gz
|
||||
EXPAT=https://sourceforge.net/projects/expat/files/expat/2.2.0/expat-2.2.0.tar.bz2
|
||||
SQLITE3=http://www.sqlite.org/2016/sqlite-autoconf-3130000.tar.gz
|
||||
C_ARES=http://c-ares.haxx.se/download/c-ares-1.11.0.tar.gz
|
||||
SSH2=https://www.libssh2.org/download/libssh2-1.7.0.tar.gz
|
||||
|
||||
## CONFIG ##
|
||||
ARCH="armhf"
|
||||
HOST="arm-linux-gnueabihf"
|
||||
PREFIX="/opt/aria2-arm-rbpi/build_libs"
|
||||
LOCAL_DIR="/opt/aria2-arm-rbpi/build_libs"
|
||||
|
||||
TOOL_BIN_DIR="/opt/aria2-arm-rbpi/tools/arm-bcm2708/gcc-linaro-$HOST-raspbian/bin"
|
||||
PATH=${TOOL_BIN_DIR}:$PATH
|
||||
|
||||
CFLAGS="-march=armv7-a -mtune=cortex-a9"
|
||||
DEST="/opt/aria2-arm-rbpi/build_libs"
|
||||
CC=$HOST-gcc
|
||||
CXX=$HOST-g++
|
||||
LDFLAGS="-L$DEST/lib"
|
||||
CPPFLAGS="-I$DEST/include"
|
||||
CXXFLAGS=$CFLAGS
|
||||
MAKE="make -j`nproc`"
|
||||
CONFIGURE="./configure --prefix=${LOCAL_DIR} --host=$HOST"
|
||||
BUILD_DIRECTORY=/tmp/
|
||||
|
||||
## BUILD ##
|
||||
cd $BUILD_DIRECTORY
|
||||
#
|
||||
# zlib build
|
||||
$DOWNLOADER $ZLIB
|
||||
tar zxvf zlib-1.2.8.tar.gz
|
||||
cd zlib-1.2.8/
|
||||
PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig/ LD_LIBRARY_PATH=$PREFIX/lib/ CC=$HOST-gcc STRIP=$HOST-strip RANLIB=$HOST-ranlib CXX=$HOST-g++ AR=$HOST-ar LD=$HOST-ld ./configure --prefix=$PREFIX --static
|
||||
make
|
||||
make install
|
||||
#
|
||||
# expat build
|
||||
cd ..
|
||||
$DOWNLOADER $EXPAT
|
||||
tar jxvf expat-2.2.0.tar.bz2
|
||||
cd expat-2.2.0/
|
||||
PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig/ LD_LIBRARY_PATH=$PREFIX/lib/ CC=$HOST-gcc CXX=$HOST-g++ ./configure --host=$HOST --build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE` --prefix=$PREFIX --enable-static=yes --enable-shared=no
|
||||
make
|
||||
make install
|
||||
#
|
||||
# c-ares build
|
||||
cd ..
|
||||
$DOWNLOADER $C_ARES
|
||||
tar zxvf c-ares-1.11.0.tar.gz
|
||||
cd c-ares-1.11.0/
|
||||
PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig/ LD_LIBRARY_PATH=$PREFIX/lib/ CC=$HOST-gcc CXX=$HOST-g++ ./configure --host=$HOST --build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE` --prefix=$PREFIX --enable-static --disable-shared
|
||||
make
|
||||
make install
|
||||
#
|
||||
# Openssl build
|
||||
cd ..
|
||||
$DOWNLOADER $OPENSSL
|
||||
tar zxvf openssl-1.0.2h.tar.gz
|
||||
cd openssl-1.0.2h/
|
||||
PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig/ LD_LIBRARY_PATH=$PREFIX/lib/ CC=$HOST-gcc CXX=$HOST-g++ ./Configure linux-armv4 $CFLAGS --prefix=$PREFIX shared zlib zlib-dynamic -D_GNU_SOURCE -D_BSD_SOURCE --with-zlib-lib=$LOCAL_DIR/lib --with-zlib-include=$LOCAL_DIR/include
|
||||
make CC=$CC
|
||||
make CC=$CC install INSTALLTOP=$DEST OPENSSLDIR=$DEST/ssl
|
||||
#
|
||||
# sqlite3
|
||||
cd ..
|
||||
$DOWNLOADER $SQLITE3
|
||||
tar zxvf sqlite-autoconf-3130000.tar.gz
|
||||
cd sqlite-autoconf-3130000/
|
||||
PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig/ LD_LIBRARY_PATH=$PREFIX/lib/ CC=$HOST-gcc CXX=$HOST-g++ ./configure --host=$HOST --prefix=$PREFIX --enable-static --enable-shared --build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE`
|
||||
make
|
||||
make install
|
||||
#
|
||||
# libssh2
|
||||
cd ..
|
||||
$DOWNLOADER $SSH2
|
||||
tar zxvf libssh2-1.7.0.tar.gz
|
||||
cd libssh2-1.7.0/
|
||||
rm -rf $PREFIX/lib/pkgconfig/libssh2.pc
|
||||
PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig/ LD_LIBRARY_PATH=$PREFIX/lib/ CC=$HOST-gcc CXX=$HOST-g++ AR=$HOST-ar RANLIB=$HOST-ranlib ./configure --host=$HOST --without-libgcrypt --with-openssl --without-wincng --prefix=$PREFIX --enable-static --disable-shared
|
||||
make
|
||||
make install
|
||||
#
|
||||
#cleaning
|
||||
cd ..
|
||||
rm -rf c-ares*
|
||||
rm -rf sqlite-autoconf*
|
||||
rm -rf zlib-*
|
||||
rm -rf expat-*
|
||||
rm -rf openssl-*
|
||||
rm -rf libssh2-*
|
||||
#
|
||||
echo "finished!"
|
Loading…
Reference in New Issue
Block a user