Last active
March 5, 2022 04:28
-
-
Save zhangyubaka/fb56f6bf9be50dbd28e64809cdc659be to your computer and use it in GitHub Desktop.
Dockerfile for build aria2-fast for windows
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Dockerfile to build aria2 Windows binary using ubuntu mingw-w64 | |
# cross compiler chain. | |
# | |
# $ sudo docker build -t aria2-mingw - < Dockerfile.mingw | |
# | |
# After successful build, windows binary is located at | |
# /aria2/src/aria2c.exe. You can copy the binary using following | |
# commands: | |
# | |
# $ id=$(sudo docker create aria2-mingw) | |
# $ sudo docker cp $id:/aria2/src/aria2c.exe <dest> | |
# $ sudo docker rm -v $id | |
FROM ubuntu:yakkety | |
MAINTAINER Tatsuhiro Tsujikawa | |
# Change HOST to x86_64-w64-mingw32 to build 64-bit binary | |
ENV HOST x86_64-w64-mingw32 | |
# It would be better to use nearest ubuntu archive mirror for faster | |
# downloads. | |
# RUN sed -ie 's/archive\.ubuntu/jp.archive.ubuntu/g' /etc/apt/sources.list | |
# use USTC mirror | |
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list | |
RUN apt-get update && \ | |
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 | |
RUN curl -L -O https://gmplib.org/download/gmp/gmp-6.1.2.tar.lz && \ | |
curl -L -O http://downloads.sourceforge.net/project/expat/expat/2.2.0/expat-2.2.0.tar.bz2 && \ | |
curl -L -O https://www.sqlite.org/2017/sqlite-autoconf-3160200.tar.gz && \ | |
curl -L -O http://zlib.net/zlib-1.2.11.tar.gz && \ | |
curl -L -O https://c-ares.haxx.se/download/c-ares-1.12.0.tar.gz && \ | |
curl -L -O http://libssh2.org/download/libssh2-1.8.0.tar.gz | |
RUN tar xf gmp-6.1.2.tar.lz && \ | |
cd gmp-6.1.2 && \ | |
./configure \ | |
--disable-shared \ | |
--enable-static \ | |
--prefix=/usr/local/$HOST \ | |
--host=$HOST \ | |
--disable-cxx \ | |
--enable-fat \ | |
CFLAGS="-mtune=generic -O2 -g0" && \ | |
make install | |
RUN tar xf expat-2.2.0.tar.bz2 && \ | |
cd expat-2.2.0 && \ | |
./configure \ | |
--disable-shared \ | |
--enable-static \ | |
--prefix=/usr/local/$HOST \ | |
--host=$HOST \ | |
--build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE` && \ | |
make install | |
RUN tar xf sqlite-autoconf-3160200.tar.gz && \ | |
cd sqlite-autoconf-3160200 && \ | |
./configure \ | |
--disable-shared \ | |
--enable-static \ | |
--prefix=/usr/local/$HOST \ | |
--host=$HOST \ | |
--build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE` && \ | |
make install | |
RUN tar xf zlib-1.2.11.tar.gz && \ | |
cd zlib-1.2.11 && \ | |
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 install | |
RUN tar xf c-ares-1.12.0.tar.gz && \ | |
cd c-ares-1.12.0 && \ | |
./configure \ | |
--disable-shared \ | |
--enable-static \ | |
--without-random \ | |
--prefix=/usr/local/$HOST \ | |
--host=$HOST \ | |
--build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE` \ | |
LIBS="-lws2_32" && \ | |
make install | |
RUN tar xf libssh2-1.8.0.tar.gz && \ | |
cd libssh2-1.8.0 && \ | |
./configure \ | |
--disable-shared \ | |
--enable-static \ | |
--prefix=/usr/local/$HOST \ | |
--host=$HOST \ | |
--build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE` \ | |
--without-openssl \ | |
--with-wincng \ | |
LIBS="-lws2_32" && \ | |
make install | |
RUN git clone https://github.com/aria2/aria2 && \ | |
cd aria2 && curl -O https://raw.githubusercontent.com/archlinuxcn/repo/master/aria2-fast/aria2-fast.patch && patch -Np1 < aria2-fast.patch && autoreconf -i && ./mingw-config && make && \ | |
$HOST-strip src/aria2c.exe |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
现在需要将 14L 改为
FROM ubuntu:xenial