@@ -18,6 +18,9 @@ ARG NASM_VERSION=2.15.05
18
18
ARG PDCURSES_VERSION=3.9
19
19
ARG CPPCHECK_VERSION=2.10
20
20
ARG VIM_VERSION=9.0
21
+ ARG GIT_VERSION=2.41.0
22
+ ARG CURL_VERSION=8.1.2
23
+ ARG ZLIB_VERSION=1.2.13
21
24
22
25
RUN apt-get update && apt-get install --yes --no-install-recommends \
23
26
build-essential curl libgmp-dev libmpc-dev libmpfr-dev m4 zip
@@ -40,7 +43,10 @@ RUN curl --insecure --location --remote-name-all --remote-header-name \
40
43
https://github.com/universal-ctags/ctags/archive/refs/tags/v$CTAGS_VERSION.tar.gz \
41
44
https://downloads.sourceforge.net/project/mingw-w64/mingw-w64/mingw-w64-release/mingw-w64-v$MINGW_VERSION.tar.bz2 \
42
45
https://downloads.sourceforge.net/project/pdcurses/pdcurses/$PDCURSES_VERSION/PDCurses-$PDCURSES_VERSION.tar.gz \
43
- https://github.com/danmar/cppcheck/archive/$CPPCHECK_VERSION.tar.gz
46
+ https://github.com/danmar/cppcheck/archive/$CPPCHECK_VERSION.tar.gz \
47
+ https://mirrors.edge.kernel.org/pub/software/scm/git/git-$GIT_VERSION.tar.xz \
48
+ https://curl.se/download/curl-$CURL_VERSION.tar.bz2 \
49
+ https://zlib.net/zlib-$ZLIB_VERSION.tar.xz
44
50
COPY src/SHA256SUMS $PREFIX/src/
45
51
RUN sha256sum -c $PREFIX/src/SHA256SUMS \
46
52
&& tar xJf binutils-$BINUTILS_VERSION.tar.xz \
@@ -58,7 +64,10 @@ RUN sha256sum -c $PREFIX/src/SHA256SUMS \
58
64
&& tar xzf PDCurses-$PDCURSES_VERSION.tar.gz \
59
65
&& tar xJf nasm-$NASM_VERSION.tar.xz \
60
66
&& tar xjf vim-$VIM_VERSION.tar.bz2 \
61
- && tar xzf cppcheck-$CPPCHECK_VERSION.tar.gz
67
+ && tar xzf cppcheck-$CPPCHECK_VERSION.tar.gz \
68
+ && tar xJf git-$GIT_VERSION.tar.xz \
69
+ && tar xjf curl-$CURL_VERSION.tar.bz2 \
70
+ && tar xJf zlib-$ZLIB_VERSION.tar.xz
62
71
COPY src/w64devkit.c src/w64devkit.ico \
63
72
src/alias.c src/debugbreak.c src/pkg-config.c \
64
73
$PREFIX/src/
@@ -464,6 +473,54 @@ RUN cat $PREFIX/src/cppcheck-*.patch | patch -p1 \
464
473
-o $PREFIX/bin/cppcheck.exe \
465
474
$PREFIX/src/alias.c -lkernel32
466
475
476
+ WORKDIR /zlib-$ZLIB_VERSION
477
+ RUN CC=$ARCH-gcc AR=$ARCH-ar RANLIB=$ARCH-ranlib CFLAGS="-Os" LDFLAGS="-s" \
478
+ ./configure --prefix=/ --static \
479
+ && make -j$(nproc) \
480
+ && make install DESTDIR=/deps \
481
+ && make install DESTDIR=tmp \
482
+ && mkdir -p $PREFIX/lib/ \
483
+ && cp -r tmp/lib/* $PREFIX/lib/
484
+
485
+ WORKDIR /curl-$CURL_VERSION
486
+ RUN ./configure \
487
+ --host=$ARCH \
488
+ --prefix=/deps \
489
+ --with-schannel \
490
+ CFLAGS="-Os" \
491
+ LDFLAGS="-s" \
492
+ && make -j$(nproc) \
493
+ && make install \
494
+ && cp /deps/bin/libcurl* $PREFIX/bin/
495
+
496
+ WORKDIR /git-$GIT_VERSION
497
+ COPY src/git-*.patch $PREFIX/src/
498
+ # Make and install at the same time to avoid repeating arguments
499
+ RUN cat $PREFIX/src/git-*.patch | patch -p1 \
500
+ && make \
501
+ CC=$ARCH-gcc \
502
+ WINDRES=$ARCH-windres \
503
+ CURL_CONFIG=/deps/bin/curl-config \
504
+ INSTALL=/usr/bin/install \
505
+ DEFAULT_PAGER=less.exe \
506
+ DEFAULT_EDITOR=vi.bat \
507
+ NO_OPENSSL=1 \
508
+ NO_ICONV=1 \
509
+ NO_REGEX=1 \
510
+ NO_GETTEXT=1 \
511
+ NO_TCLTK=1 \
512
+ NO_GITWEB=1 \
513
+ MSYSTEM=MINGW64 \
514
+ CFLAGS="-Os -I/deps/include/" \
515
+ LDFLAGS="-s -L/deps/lib/" \
516
+ prefix=/ \
517
+ DESTDIR=$PREFIX \
518
+ install -j$(nproc)
519
+
520
+ # Git creates one 3Mb executable for each command; they should be symlinks.
521
+ WORKDIR $PREFIX/libexec/git-core
522
+ RUN bash -c 'for i in $(md5sum git-*.exe | grep "$(md5sum git.exe | cut -f 1 -d " ")" | cut -d " " -f 3); do rm $i; $ARCH-gcc -DEXE=git.exe -DCMD=$i -Os -fno-asynchronous-unwind-tables -Wl,--gc-sections -s -nostdlib -o $i $PREFIX/src/alias.c -lkernel32; done'
523
+
467
524
# Pack up a release
468
525
469
526
WORKDIR /
0 commit comments