mirror of
https://github.com/aria2/aria2.git
synced 2026-04-02 10:55:00 +00:00
This is slightly different from the current procedure because now android and mingw binaries are built from source code fetched from the remote repository.
118 lines
3.6 KiB
Docker
118 lines
3.6 KiB
Docker
# 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:22.04
|
|
|
|
MAINTAINER Tatsuhiro Tsujikawa
|
|
|
|
# Change HOST to x86_64-w64-mingw32 to build 64-bit binary
|
|
ARG HOST=i686-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
|
|
|
|
RUN apt-get update && \
|
|
DEBIAN_FRONTEND="noninteractive" \
|
|
apt-get install -y --no-install-recommends \
|
|
make binutils autoconf automake autotools-dev libtool \
|
|
patch ca-certificates \
|
|
pkg-config git curl dpkg-dev gcc-mingw-w64 g++-mingw-w64 \
|
|
autopoint libcppunit-dev libxml2-dev libgcrypt20-dev lzip
|
|
|
|
RUN curl -L -O https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz && \
|
|
curl -L -O https://github.com/libexpat/libexpat/releases/download/R_2_5_0/expat-2.5.0.tar.bz2 && \
|
|
curl -L -O https://www.sqlite.org/2023/sqlite-autoconf-3430100.tar.gz && \
|
|
curl -L -O https://www.zlib.net/zlib-1.3.tar.gz && \
|
|
curl -L -O https://c-ares.org/download/c-ares-1.19.1.tar.gz && \
|
|
curl -L -O https://libssh2.org/download/libssh2-1.11.0.tar.bz2
|
|
|
|
RUN tar xf gmp-6.3.0.tar.xz && \
|
|
cd gmp-6.3.0 && \
|
|
./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.5.0.tar.bz2 && \
|
|
cd expat-2.5.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-3430100.tar.gz && \
|
|
cd sqlite-autoconf-3430100 && \
|
|
./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.3.tar.gz && \
|
|
cd zlib-1.3 && \
|
|
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.19.1.tar.gz && \
|
|
cd c-ares-1.19.1 && \
|
|
./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.11.0.tar.bz2 && \
|
|
cd libssh2-1.11.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
|
|
|
|
ARG ARIA2_VERSION=master
|
|
ARG ARIA2_REF=refs/heads/master
|
|
|
|
ADD https://api.github.com/repos/aria2/aria2/git/$ARIA2_REF version.json
|
|
RUN git clone -b $ARIA2_VERSION --depth 1 https://github.com/aria2/aria2 && \
|
|
cd aria2 && autoreconf -i && ./mingw-config && make && \
|
|
$HOST-strip src/aria2c.exe
|