Dockerfile.mingw 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. # Dockerfile to build aria2 Windows binary using ubuntu mingw-w64
  2. # cross compiler chain.
  3. #
  4. # $ sudo docker build -t aria2-mingw - < Dockerfile.mingw
  5. #
  6. # After successful build, windows binary is located at
  7. # /aria2/src/aria2c.exe. You can copy the binary using
  8. #
  9. # $ sudo docker cp <containerId>:/aria2/src/aria2c.exe <dest>
  10. FROM ubuntu
  11. MAINTAINER Tatsuhiro Tsujikawa
  12. # Change HOST to x86_64-w64-mingw32 to build 64-bit binary
  13. ENV HOST i686-w64-mingw32
  14. # It would be better to use nearest ubuntu archive mirror for faster
  15. # downloads.
  16. # RUN sed -ie 's/archive\.ubuntu/jp.archive.ubuntu/g' /etc/apt/sources.list
  17. RUN apt-get update
  18. RUN apt-get install -y make binutils autoconf automake autotools-dev libtool \
  19. pkg-config git curl dpkg-dev gcc-mingw-w64 \
  20. autopoint libcppunit-dev libxml2-dev libgcrypt11-dev lzip
  21. RUN curl -L -O https://gmplib.org/download/gmp/gmp-6.0.0a.tar.lz
  22. RUN curl -L -O http://downloads.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz
  23. RUN curl -L -O http://www.sqlite.org/2015/sqlite-autoconf-3080803.tar.gz
  24. RUN curl -L -O http://zlib.net/zlib-1.2.8.tar.xz
  25. RUN curl -L -O http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz
  26. RUN curl -L -O http://libssh2.org/download/libssh2-1.5.0.tar.gz
  27. RUN tar xf gmp-6.0.0a.tar.lz
  28. RUN cd gmp-6.0.0 && \
  29. ./configure \
  30. --disable-shared \
  31. --enable-static \
  32. --prefix=/usr/local/$HOST \
  33. --host=$HOST \
  34. --disable-cxx \
  35. --enable-fat \
  36. CFLAGS="-mtune=generic -O2 -g0" && \
  37. make install
  38. RUN tar xf expat-2.1.0.tar.gz
  39. RUN cd expat-2.1.0 && \
  40. ./configure \
  41. --disable-shared \
  42. --enable-static \
  43. --prefix=/usr/local/$HOST \
  44. --host=$HOST \
  45. --build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE` && \
  46. make install
  47. RUN tar xf sqlite-autoconf-3080700.tar.gz
  48. RUN cd sqlite-autoconf-3080700 && \
  49. ./configure \
  50. --disable-shared \
  51. --enable-static \
  52. --prefix=/usr/local/$HOST \
  53. --host=$HOST \
  54. --build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE` && \
  55. make install
  56. RUN tar xf zlib-1.2.8.tar.xz
  57. RUN cd zlib-1.2.8 && \
  58. CC=$HOST-gcc \
  59. AR=$HOST-ar \
  60. LD=$HOST-ld \
  61. RANLIB=$HOST-ranlib \
  62. STRIP=$HOST-strip \
  63. ./configure \
  64. --prefix=/usr/local/$HOST \
  65. --libdir=/usr/local/$HOST/lib \
  66. --includedir=/usr/local/$HOST/include \
  67. --static && \
  68. make install
  69. RUN tar xf c-ares-1.10.0.tar.gz
  70. RUN cd c-ares-1.10.0 && \
  71. ./configure \
  72. --disable-shared \
  73. --enable-static \
  74. --without-random \
  75. --prefix=/usr/local/$HOST \
  76. --host=$HOST \
  77. --build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE` \
  78. LIBS="-lws2_32" && \
  79. make install
  80. RUN tar xf libssh2-1.5.0.tar.gz
  81. RUN cd libssh2-1.5.0 && \
  82. ./configure \
  83. --disable-shared \
  84. --enable-static \
  85. --prefix=/usr/local/$HOST \
  86. --host=$HOST \
  87. --build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE` \
  88. --without-openssl \
  89. --with-wincng \
  90. LIBS="-lws2_32" && \
  91. make install
  92. RUN git clone https://github.com/tatsuhiro-t/aria2
  93. RUN cd aria2 && autoreconf -i && ./mingw-config && make && \
  94. $HOST-strip src/aria2c.exe