diff options
Diffstat (limited to 'Build/source/extra/xz/windows/build.bash')
-rw-r--r-- | Build/source/extra/xz/windows/build.bash | 203 |
1 files changed, 0 insertions, 203 deletions
diff --git a/Build/source/extra/xz/windows/build.bash b/Build/source/extra/xz/windows/build.bash deleted file mode 100644 index c5cf2b31242..00000000000 --- a/Build/source/extra/xz/windows/build.bash +++ /dev/null @@ -1,203 +0,0 @@ -#!/bin/bash -# -############################################################################### -# -# Build a binary package on Windows with MinGW and MSYS -# -# Set the paths where MinGW, Mingw-w32, or MinGW-w64 are installed. If both -# MinGW and MinGW-w32 are specified, MinGW-w32 will be used. If there is no -# 32-bit or 64-bit compiler at all, it is simply skipped. -# -# Optionally, 7-Zip is used to create the final .zip and .7z packages. -# If you have installed it in the default directory, this script should -# find it automatically. Otherwise adjust the path manually. -# -# If you want to use a cross-compiler e.g. on GNU/Linux, this script won't -# work out of the box. You need to omit "make check" commands and replace -# u2d with some other tool to convert newlines from LF to CR+LF. You will -# also need to pass the --host option to configure. -# -############################################################################### -# -# Author: Lasse Collin -# -# This file has been put into the public domain. -# You can do whatever you want with this file. -# -############################################################################### - -MINGW_DIR=/c/devel/tools/mingw -MINGW_W32_DIR=/c/devel/tools/mingw-w32 -MINGW_W64_DIR=/c/devel/tools/mingw-w64 - -for SEVENZ_EXE in "$PROGRAMW6432/7-Zip/7z.exe" "$PROGRAMFILES/7-Zip/7z.exe" \ - "/c/Program Files/7-Zip/7z.exe" -do - [ -x "$SEVENZ_EXE" ] && break -done - - -# Abort immediately if something goes wrong. -set -e - -# White spaces in directory names may break things so catch them immediately. -case $(pwd) in - ' ' | ' ' | ' -') echo "Error: White space in the directory name" >&2; exit 1 ;; -esac - -# This script can be run either at the top-level directory of the package -# or in the same directory containing this script. -if [ ! -f windows/build.bash ]; then - cd .. - if [ ! -f windows/build.bash ]; then - echo "You are in a wrong directory." >&2 - exit 1 - fi -fi - -# Run configure and copy the binaries to the given directory. -# -# The first argument is the directory where to copy the binaries. -# The rest of the arguments are passed to configure. -buildit() -{ - DESTDIR=$1 - BUILD=$2 - CFLAGS=$3 - - # Clean up if it was already configured. - [ -f Makefile ] && make distclean - - # Build the size-optimized binaries. Note that I don't want to - # provide size-optimized liblzma (shared nor static), because - # that isn't thread-safe now, and depending on bunch of things, - # maybe it will never be on Windows (pthreads-win32 helps but - # static liblzma might bit a bit tricky with it). - ./configure \ - --prefix= \ - --disable-nls \ - --disable-scripts \ - --disable-threads \ - --disable-shared \ - --enable-small \ - --build="$BUILD" \ - CFLAGS="$CFLAGS -Os" - make check - - mkdir -pv "$DESTDIR" - cp -v src/xzdec/{xz,lzma}dec.exe src/lzmainfo/lzmainfo.exe "$DESTDIR" - - make distclean - - # Build the normal speed-optimized binaries. Note that while - # --disable-threads has been documented to make some things - # thread-unsafe, it's not actually true with this combination - # of configure flags in XZ Utils 5.0.x. Things can (and probably - # will) change after 5.0.x, and this script will be updated too. - ./configure \ - --prefix= \ - --disable-nls \ - --disable-scripts \ - --disable-threads \ - --build="$BUILD" \ - CFLAGS="$CFLAGS -O2" - make -C src/liblzma - make -C src/xz LDFLAGS=-static - make -C tests check - - cp -v src/xz/xz.exe src/liblzma/.libs/liblzma.a "$DESTDIR" - cp -v src/liblzma/.libs/liblzma-*.dll "$DESTDIR/liblzma.dll" - - strip -v "$DESTDIR/"*.{exe,dll} - strip -vg "$DESTDIR/"*.a -} - -# Copy files and convert newlines from LF to CR+LF. Optinally add a suffix -# to the destination filename. -# -# The first argument is the destination directory. The second argument is -# the suffix to append to the filenames; use empty string if no extra suffix -# is wanted. The rest of the arguments are actual the filenames. -txtcp() -{ - DESTDIR=$1 - SUFFIX=$2 - shift 2 - for SRCFILE; do - DESTFILE="$DESTDIR/${SRCFILE##*/}$SUFFIX" - echo "Converting \`$SRCFILE' -> \`$DESTFILE'" - u2d < "$SRCFILE" > "$DESTFILE" - done -} - -# FIXME: Make sure that we don't get i686 or i586 code from the runtime. -# Actually i586 would be fine, but i686 probably not if the idea is to -# support even Win95. -# -# FIXME: Using i486 in the configure triplet may be wrong. -if [ -d "$MINGW_W32_DIR" ]; then - # 32-bit x86, Win95 or later, using MinGW-w32 - PATH=$MINGW_W32_DIR/bin:$MINGW_W32_DIR/i686-w64-mingw32/bin:$PATH \ - buildit \ - pkg/bin_i486 \ - i486-w64-mingw32 \ - '-march=i486 -mtune=generic' -elif [ -d "$MINGW_DIR" ]; then - # 32-bit x86, Win95 or later, using MinGW - PATH=$MINGW_DIR/bin:$PATH \ - buildit \ - pkg/bin_i486 \ - i486-pc-mingw32 \ - '-march=i486 -mtune=generic' -fi - -if [ -d "$MINGW_W64_DIR" ]; then - # 64-bit x86, WinXP or later, using MinGW-w64 - PATH=$MINGW_W64_DIR/bin:$MINGW_W64_DIR/x86_64-w64-mingw32/bin:$PATH \ - buildit \ - pkg/bin_x86-64 \ - x86_64-w64-mingw32 \ - '-march=x86-64 -mtune=generic' -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}} -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 NEWS README THANKS TODO -txtcp pkg/doc "" doc/*.txt windows/README-Windows.txt -txtcp pkg/doc/manuals "" doc/man/txt/{xz,xzdec,lzmainfo}.txt -cp -v doc/man/pdf-*/{xz,xzdec,lzmainfo}-*.pdf pkg/doc/manuals -txtcp pkg/doc/examples "" doc/examples/* - -if [ -f windows/COPYING-Windows.txt ]; then - txtcp pkg/doc "" windows/COPYING-Windows.txt -fi - -# Create the package. This requires 7z.exe from 7-Zip. If it wasn't found, -# this step is skipped and you have to zip it yourself. -VER=$(sh build-aux/version.sh) -cd pkg -if [ -x "$SEVENZ_EXE" ]; then - "$SEVENZ_EXE" a -tzip ../xz-$VER-windows.zip * - "$SEVENZ_EXE" a ../xz-$VER-windows.7z * -else - echo - echo "NOTE: 7z.exe was not found. xz-$VER-windows.zip" - echo " and xz-$VER-windows.7z were not created." - echo " You can create them yourself from the pkg directory." -fi - -if [ ! -f ../windows/COPYING-Windows.txt ]; then - echo - echo "NOTE: windows/COPYING-Windows.txt doesn't exists." - echo " MinGW(-w64) runtime copyright information" - echo " is not included in the package." -fi - -echo -echo "Build completed successfully." -echo |