From 0dfc67d37ebb038be8a9b17b536d1b561d52e81a Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Sun, 12 Jan 2025 10:47:58 +0200 Subject: [PATCH] Windows: Update build.bash and its README-Windows.txt to UCRT While MSVCRT builds are possible, UCRT works better with UTF-8. A 32-bit build is included still but hopefully it's not actually needed anymore. --- windows/README-Windows.txt | 17 ++++++++--------- windows/build.bash | 20 ++++++++++++++------ 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/windows/README-Windows.txt b/windows/README-Windows.txt index d97d8428..8fa8ae17 100644 --- a/windows/README-Windows.txt +++ b/windows/README-Windows.txt @@ -28,18 +28,17 @@ Introduction Package contents ---------------- - All executables and libraries in this package require msvcrt.dll, - not Universal CRT (UCRT). + All executables and libraries in this package require + Universal CRT (UCRT). It is included in Windows 10 and later. There is a SSE2 optimization in the compression code but this version of XZ Utils doesn't include run-time processor detection. - This is why there is a separate i686-SSE2 version. + The binaries don't work on 32-bit processors without SSE2 support. There is one directory for each type of executable and library files: - bin_i686 32-bit x86 (i686 and newer), Windows 2000 and later - bin_i686-sse2 32-bit x86 (i686 with SSE2), Windows 2000 and later - bin_x86-64 64-bit x86-64, Windows Vista and later + bin_i686-sse2 32-bit x86 (i686 with SSE2) + bin_x86-64 64-bit x86-64 Each of the above directories have the following files: @@ -67,8 +66,7 @@ Package contents copyright and license information. liblzma.def is in this directory too. - doc/manuals The manuals of the command line tools in - plain text (TXT) format. + doc/manuals The manuals of the command line tools doc/examples Example programs for basic liblzma usage. @@ -90,7 +88,8 @@ Creating an import library for MSVC / Visual Studio lib /def:liblzma.def /out:liblzma.lib /machine:x64 - IMPORTANT: See also the file liblzma-crt-mixing.txt. + IMPORTANT: See also the file liblzma-crt-mixing.txt if your + application isn't using UCRT. Reporting bugs diff --git a/windows/build.bash b/windows/build.bash index a68bd7c6..9bcc28b4 100644 --- a/windows/build.bash +++ b/windows/build.bash @@ -172,11 +172,13 @@ txtcp() } if type -P i686-w64-mingw32-gcc > /dev/null; then - # 32-bit x86, Win2k or later - buildit pkg/bin_i686 i686-w64-mingw32 \ - '-march=i686 -mtune=generic' + # 32-bit x86, Win2k or later if using MSVCRT + # + # Uncomment if using MSVCRT and you want the binaries to be compatible + # with old Windows versions on old computers. + #buildit pkg/bin_i686 i686-w64-mingw32 '-march=i686 -mtune=generic' - # 32-bit x86 with SSE2, Win2k or later + # 32-bit x86 with SSE2 (Win2k or later if using MSVCRT) buildit pkg/bin_i686-sse2 i686-w64-mingw32 \ '-march=i686 -msse2 -mtune=generic' else @@ -195,6 +197,10 @@ else echo fi +if type -P ps2pdf > /dev/null; then + make pdf +fi + # Copy the headers, the .def file, and the docs. # They are the same for all architectures and builds. mkdir -pv pkg/{include/lzma,doc/{manuals,examples}} @@ -202,12 +208,14 @@ txtcp pkg/include "" src/liblzma/api/lzma.h txtcp pkg/include/lzma "" src/liblzma/api/lzma/*.h txtcp pkg/doc "" src/liblzma/liblzma.def txtcp pkg/doc .txt AUTHORS COPYING COPYING.0BSD NEWS README THANKS -txtcp pkg/doc "" doc/*.txt \ +txtcp pkg/doc "" doc/*-file-format.txt \ windows/README-Windows.txt \ windows/liblzma-crt-mixing.txt \ windows/COPYING.MinGW-w64-runtime.txt txtcp pkg/doc/manuals "" doc/man/txt/{xz,xzdec,lzmainfo}.txt -# cp -v doc/man/pdf-*/{xz,xzdec,lzmainfo}-*.pdf pkg/doc/manuals +if [ -d doc/man/pdf-a4 ]; then + cp -v doc/man/pdf-*/{xz,xzdec,lzmainfo}-*.pdf pkg/doc/manuals +fi # cp -rv doc/api pkg/doc/api txtcp pkg/doc/examples "" doc/examples/*