diff --git a/Dockerfile b/Dockerfile index 930e1e7..bb66408 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,6 +11,7 @@ ARG MAKE_VERSION=4.2 ARG MINGW_VERSION=6.0.0 ARG MPC_VERSION=1.1.0 ARG MPFR_VERSION=4.0.2 +ARG NASM_VERSION=2.14.02 ARG VIM_VERSION=8.1 RUN apt-get update && apt-get install --yes --no-install-recommends \ @@ -27,6 +28,7 @@ RUN curl --insecure --location --remote-name-all \ https://ftp.gnu.org/gnu/make/make-$MAKE_VERSION.tar.gz \ https://frippery.org/files/busybox/busybox-w32-$BUSYBOX_VERSION.tgz \ http://ftp.vim.org/pub/vim/unix/vim-$VIM_VERSION.tar.bz2 \ + https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-$NASM_VERSION.tar.xz \ https://downloads.sourceforge.net/project/mingw-w64/mingw-w64/mingw-w64-release/mingw-w64-v$MINGW_VERSION.tar.bz2 COPY SHA256SUMS . RUN sha256sum -c SHA256SUMS \ @@ -38,6 +40,7 @@ RUN sha256sum -c SHA256SUMS \ && tar xJf mpfr-$MPFR_VERSION.tar.xz \ && tar xzf make-$MAKE_VERSION.tar.gz \ && tar xjf mingw-w64-v$MINGW_VERSION.tar.bz2 \ + && tar xJf nasm-$NASM_VERSION.tar.xz \ && tar xjf vim-$VIM_VERSION.tar.bz2 # Build cross-compiler @@ -254,6 +257,15 @@ RUN cp vimrun.exe xxd/xxd.exe $PREFIX/bin RUN echo '@%~dp0/../share/vim/gvim.exe %*' >$PREFIX/bin/gvim.bat RUN echo '@%~dp0/../share/vim/vim.exe %*' >$PREFIX/bin/vim.bat +# NOTE: nasm's configure script is broken, so no out-of-source build +WORKDIR /nasm-$NASM_VERSION +RUN ./configure \ + --host=x86_64-w64-mingw32 \ + CFLAGS="-Os" \ + LDFLAGS="-s" +RUN make -j$(nproc) +RUN cp nasm.exe ndisasm.exe $PREFIX/bin + # Pack up a release WORKDIR / diff --git a/README.md b/README.md index 02addd8..524ad6c 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ environment for compilation and linking. Included tools: * GNU Make : standard build tool * [busybox-w32][bb] : standard unix utilities, including sh * [Vim][vim] +* [NASM][nasm] ## Build @@ -59,6 +60,7 @@ file][zip]. [bb]: https://frippery.org/busybox/ [bug]: https://gcc.gnu.org/legacy-ml/gcc/2017-05/msg00219.html +[nasm]: https://www.nasm.us/ [vim]: https://www.vim.org/ [w64]: http://mingw-w64.org/ [zip]: https://tanzu.vmware.com/content/blog/barriers-to-deterministic-reproducible-zip-files diff --git a/SHA256SUMS b/SHA256SUMS index 06dd118..1cb7ca9 100644 --- a/SHA256SUMS +++ b/SHA256SUMS @@ -6,4 +6,5 @@ e968ce3c57ad39a593a92339e23eb148af6296b9f40aa453a9a9202c99d34436 make-4.2.tar.g 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e mpc-1.1.0.tar.gz 1d3be708604eae0e42d578ba93b390c2a145f17743a744d8f3f8c2ad5855a38a mpfr-4.0.2.tar.xz 805e11101e26d7897fce7d49cbb140d7bac15f3e085a91e0001e80b2adaf48f0 mingw-w64-v6.0.0.tar.bz2 +e24ade3e928f7253aa8c14aa44726d1edf3f98643f87c9d72ec1df44b26be8f5 nasm-2.14.02.tar.xz 8b69fbd01c877dd8ecbbeca1dc66e5e927228d631ac4c2174b9307eb5c827c86 vim-8.1.tar.bz2