Skip to content

Instantly share code, notes, and snippets.

@rasa
Last active August 29, 2015 14:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rasa/b425e6899110f8bd9dce to your computer and use it in GitHub Desktop.
Save rasa/b425e6899110f8bd9dce to your computer and use it in GitHub Desktop.
#!/bin/bash
set -x
set -e
test -z "$HOST" && HOST=i686-w64-mingw32
test -z "$PREFIX" && PREFIX=/usr/local/$HOST
if [[ "$(id -u)" == 0 ]]; then
SUDO=
else
SUDO=sudo
fi
${SUDO} apt-get install -y \
make binutils autoconf automake autotools-dev libtool \
pkg-config git curl dpkg-dev gcc-mingw-w64 \
autopoint libcppunit-dev libxml2-dev libgcrypt11-dev lzip
ARIA2_URL=https://github.com/tatsuhiro-t/aria2/archive/release-1.18.10.tar.gz
CARES_URL=http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz
# see http://sourceforge.net/projects/expat/files/expat/
EXPAT_URL=http://hivelocity.dl.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz
GMP_URL=https://gmplib.org/download/gmp-6.0.0/gmp-6.0.0a.tar.xz
GNUTLS_URL=ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/gnutls-3.3.13.tar.xz
NETTLE_URL=https://ftp.gnu.org/gnu/nettle/nettle-2.7.1.tar.gz
OPENSSL_URL=https://www.openssl.org/source/openssl-1.0.2.tar.gz
SQLITE_URL=http://www.sqlite.org/2015/sqlite-autoconf-3080803.tar.gz
ZLIB_URL=http://zlib.net/zlib-1.2.8.tar.gz
ARIA2_GZ=$(basename $ARIA2_URL)
CARES_GZ=$(basename $CARES_URL)
EXPAT_GZ=$(basename $EXPAT_URL)
GMP_XZ=$(basename $GMP_URL)
GNUTLS_XZ=$(basename $GNUTLS_URL)
NETTLE_GZ=$(basename $NETTLE_URL)
OPENSSL_GZ=$(basename $OPENSSL_URL)
SQLITE_GZ=$(basename $SQLITE_URL)
ZLIB_GZ=$(basename $ZLIB_URL)
ARIA2_DIR=aria2-$(basename $ARIA2_GZ .tar.gz)
CARES_DIR=$(basename $CARES_GZ .tar.gz)
EXPAT_DIR=$(basename $EXPAT_GZ .tar.gz)
GMP_DIR=$(basename $GMP_XZ .tar.xz)
GNUTLS_DIR=$(basename $GNUTLS_XZ .tar.xz)
NETTLE_DIR=$(basename $NETTLE_GZ .tar.gz)
OPENSSL_DIR=$(basename $OPENSSL_GZ .tar.gz)
SQLITE_DIR=$(basename $SQLITE_GZ .tar.gz)
ZLIB_DIR=$(basename $ZLIB_GZ .tar.gz)
rm -fr $ARIA2_DIR
rm -fr $CARES_DIR
rm -fr $EXPAT_DIR
rm -fr $GMP_DIR
rm -fr $GNUTLS_DIR
rm -fr $NETTLE_DIR
rm -fr $OPENSSL_DIR
rm -fr $SQLITE_DIR
rm -fr $ZLIB_DIR
test -f $ARIA2_GZ ||
wget $ARIA2_URL
test -f $CARES_GZ ||
wget $CARES_URL
test -f $EXPAT_GZ ||
wget $EXPAT_URL
test -f $GMP_XZ ||
wget $GMP_URL
test -f $GNUTLS_XZ ||
wget $GNUTLS_URL
test -f $NETTLE_GZ ||
wget $NETTLE_URL
test -f $OPENSSL_GZ ||
wget $OPENSSL_URL
test -f $SQLITE_GZ ||
wget $SQLITE_URL
test -f $ZLIB_GZ ||
wget $ZLIB_URL
#############################################################################
tar xvf $GMP_XZ
pushd gmp-*
./configure \
--disable-shared \
--enable-static \
--prefix=/usr/local/$HOST \
--host=$HOST \
--disable-cxx \
--enable-fat \
CFLAGS="-mtune=generic -O2 -g0"
make
${SUDO} make install
popd
#############################################################################
tar xvf $EXPAT_GZ
pushd $EXPAT_DIR
./configure \
--disable-shared \
--enable-static \
--prefix=/usr/local/$HOST \
--host=$HOST \
--build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE`
make
${SUDO} make install
popd
#############################################################################
tar xvf $SQLITE_GZ
pushd $SQLITE_DIR
./configure \
--disable-shared \
--enable-static \
--prefix=/usr/local/$HOST \
--host=$HOST \
--build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE`
make
${SUDO} make install
popd
#############################################################################
tar xvf $ZLIB_GZ
pushd $ZLIB_DIR
CC=$HOST-gcc \
AR=$HOST-ar \
LD=$HOST-ld \
RANLIB=$HOST-ranlib \
STRIP=$HOST-strip \
./configure \
--prefix=/usr/local/$HOST \
--libdir=/usr/local/$HOST/lib \
--includedir=/usr/local/$HOST/include \
--static
make
${SUDO} make install
popd
#############################################################################
tar xvf $CARES_GZ
pushd $CARES_DIR
./configure \
--disable-shared \
--enable-static \
--without-random \
--prefix=/usr/local/$HOST \
--host=$HOST \
--build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE` \
LIBS="-lws2_32"
make
${SUDO} make install
popd
#############################################################################
tar xvf $NETTLE_GZ
pushd $NETTLE_DIR
./configure \
--disable-shared \
--enable-static \
--prefix=/usr/local/$HOST \
--host=$HOST \
--build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE`
make
${SUDO} make install
popd
#############################################################################
tar xvf $OPENSSL_GZ
pushd $OPENSSL_DIR
./Configure --cross-compile-prefix=$HOST- --prefix=/usr/local/$HOST mingw
make
${SUDO} make install
popd
#############################################################################
tar xvf $GNUTLS_XZ
pushd $GNUTLS_DIR
if $(false)
then
./configure \
--disable-shared \
--enable-static \
--with-nettle=/usr/local/$HOST
--prefix=/usr/local/$HOST \
--host=$HOST \
--build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE`
make
${SUDO} make install
fi
popd
#############################################################################
tar xvf $ARIA2_GZ
pushd $ARIA2_DIR
# --without-sqlite3
# --without-libexpat
# --disable-bittorrent \
# --disable-metalink \
# --without-libgcrypt \
# --without-libnettle \
# --disable-nls \
# --without-gnutls \
autoreconf -i
./configure \
--host=$HOST \
--prefix=$PREFIX \
--without-included-gettext \
--disable-nls \
--with-libcares \
--with-openssl \
--with-sqlite3 \
--without-libxml2 \
--with-libexpat \
--with-libz \
--with-libgmp \
--without-libgcrypt \
--without-libnettle \
--with-cppunit-prefix=$PREFIX \
ARIA2_STATIC=yes \
CPPFLAGS="-I$PREFIX/include" \
LDFLAGS="-L$PREFIX/lib" \
PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig"
make clean
make
cp -p src/aria2c.exe src/aria2c-unstripped.exe
$HOST-strip src/aria2c.exe
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment