summaryrefslogtreecommitdiff
path: root/Build/source/extra/xz/windows/build.bash
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/extra/xz/windows/build.bash')
-rw-r--r--Build/source/extra/xz/windows/build.bash203
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