]> wimlib.net Git - wimlib/blobdiff - tools/make-windows-release
mount_image.c: add fallback definitions of RENAME_* constants
[wimlib] / tools / make-windows-release
diff --git a/tools/make-windows-release b/tools/make-windows-release
deleted file mode 100755 (executable)
index 8de5322..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-#!/bin/bash
-#
-# This script prepares a Windows binary distribution of wimlib.
-
-set -e -u
-
-SCRIPTNAME="$0"
-TOPDIR=$(dirname "$(dirname "$(realpath "$0")")")
-cd "$TOPDIR" # Top-level directory of the git repo
-
-MSYSTEM=${MSYSTEM:-}
-if [ -z "$MSYSTEM" ]; then
-       ARCH=x86_64
-else
-       case "$MSYSTEM" in
-       MINGW32)
-               ARCH=i686
-               ;;
-       MINGW64)
-               ARCH=x86_64
-               ;;
-       *)
-               echo 1>&2 "Unsupported MSYS2 environment: $MSYSTEM"
-               echo 1>&2 "In MSYS2, you must use the MINGW32 or MINGW64 environment."
-               echo 1>&2 "See https://www.msys2.org/docs/environments/"
-               exit 1
-       esac
-fi
-INSTALL_MSYS2_PACKAGES=false
-BUILD_DOCS=true
-BUILD_ZIP=true
-
-longopts="help"
-longopts+=",arch:"
-longopts+=",install-msys2-packages"
-longopts+=",no-docs"
-longopts+=",no-zip"
-
-usage()
-{
-       cat << EOF
-Usage: $SCRIPTNAME [OPTION]... [EXTRA_CONFIGURE_ARG]...
-Options:
-  --arch=ARCH                Specify the architecture.  The default is taken
-                                 from MSYSTEM if available, otherwise is x86_64.
-  --install-msys2-packages   Install prerequisite MSYS2 packages
-  --no-docs                  Don't build and install PDF manual pages
-  --no-zip                   Don't create the final zip file
-EOF
-}
-
-if ! options=$(getopt -o "" -l "$longopts" -- "$@"); then
-       usage 1>&2
-       exit 1
-fi
-eval set -- "$options"
-while true; do
-       case "$1" in
-       --help)
-               usage
-               exit 0
-               ;;
-       --arch)
-               ARCH=$2
-               shift
-               ;;
-       --install-msys2-packages)
-               if [ -z "$MSYSTEM" ]; then
-                       echo 1>&2 "--install-msys2-packages is not allowed outside MSYS2."
-                       exit 1
-               fi
-               INSTALL_MSYS2_PACKAGES=true
-               ;;
-       --no-docs)
-               BUILD_DOCS=false
-               ;;
-       --no-zip)
-               BUILD_ZIP=false
-               ;;
-       --)
-               shift
-               break
-               ;;
-       *)
-               echo 1>&2 "Invalid option '$1'"
-               usage 1>&2
-               exit 1
-               ;;
-       esac
-       shift
-done
-
-EXTRA_CONFIGURE_ARGS=("$@")
-
-case "$ARCH" in
-i686|x86_64)
-       ;;
-*)
-       echo 1>&2 "Unknown ARCH: $ARCH.  Please specify a supported architecture with --arch"
-       exit 1
-       ;;
-esac
-
-VERSION=$(tools/get-version-number)
-DESTDIR=wimlib-${VERSION}-windows-${ARCH}-bin
-ZIPFILE=$DESTDIR.zip
-MAKE="make -j$(getconf _NPROCESSORS_ONLN)"
-
-rm -rf "$DESTDIR" "$ZIPFILE"
-mkdir "$DESTDIR"
-
-# Install the required MSYS2 packages if requested.
-if $INSTALL_MSYS2_PACKAGES; then
-       echo "Installing the MSYS2 packages required to build wimlib ($MSYSTEM)..."
-       pacman -Syu --noconfirm --needed \
-               autoconf \
-               automake \
-               git \
-               libtool \
-               make \
-               "mingw-w64-${ARCH}-gcc" \
-               pkgconf
-       echo "Done installing the MSYS2 packages required to build wimlib ($MSYSTEM)."
-fi
-
-# Bootstrap the repository if not already done.
-if [ ! -e configure ]; then
-       echo "Bootstrapping the wimlib repository..."
-       ./bootstrap
-fi
-
-# Configure wimlib for the given $ARCH if not already done.
-if ! [ -e config.log ] ||
-       ! grep -q "./configure --host=${ARCH}-w64-mingw32" config.log || \
-       ! grep -q "configure: exit 0" config.log || \
-       [ ${#EXTRA_CONFIGURE_ARGS[@]} -gt 0 ]
-then
-       # Note: putting -static-libgcc in CC is a workaround for libtool
-       # stripping it:
-       # http://www.gnu.org/software/libtool/manual/libtool.html#Stripped-link-flags
-       echo "Configuring wimlib..."
-       ./configure --host="${ARCH}-w64-mingw32" --disable-static       \
-               CC="${ARCH}-w64-mingw32-gcc -static-libgcc"     \
-               "${EXTRA_CONFIGURE_ARGS[@]}"
-       $MAKE clean
-fi
-
-echo "Building wimlib..."
-$MAKE
-
-echo "Installing binaries..."
-cp .libs/*.{dll,exe} "$DESTDIR"
-strip "$DESTDIR"/*.{dll,exe}
-
-echo "Installing NEWS, README, and licenses..."
-cp NEWS README* COPYING* "$DESTDIR"
-sed -n '/^#/q; s/^[\/\* ]*//; p' src/divsufsort.c > "$DESTDIR"/COPYING.libdivsufsort-lite
-if ! grep -q 'Copyright' "$DESTDIR"/COPYING.libdivsufsort-lite; then
-       echo 1>&2 "ERROR: failed to extract libdivsufsort-lite license text"
-       exit 1
-fi
-cd "$DESTDIR"
-for fil in NEWS README* COPYING*; do
-       sed < "$fil" > "${fil}".txt -e 's/$/\r/g'
-       rm "$fil"
-done
-cd ..
-
-function gen_pdf_from_man_page()
-{
-       local manbase=$1
-       local pdf=${DESTDIR}/doc/${manbase}.pdf
-
-       echo "Generating $pdf"
-       MANPATH="./doc" man -t "$manbase" | ps2pdf - "$pdf"
-}
-if $BUILD_DOCS; then
-       echo "Installing manual pages..."
-       mkdir "$DESTDIR"/doc
-       for fil in ./doc/man1/wim*.1; do
-               manbase=$(basename "$fil")
-               cmd=${manbase%.1}
-               case "$cmd" in
-               wimlib-imagex|wimmount|wimmountrw|wimunmount)
-                       continue
-                       ;;
-               esac
-
-               gen_pdf_from_man_page "$cmd"
-       done
-       gen_pdf_from_man_page wimlib-imagex
-fi
-
-echo "Installing wimlib-imagex command shortcut files..."
-for fil in ./doc/man1/wim*.1; do
-       manbase=$(basename "$fil")
-       cmd=${manbase%.1}
-       sed 's/$/\r/g' > "${DESTDIR}/${cmd}.cmd" <<- EOF
-               @echo off
-               "%~dp0\\wimlib-imagex" ${cmd#wim} %*
-       EOF
-done
-chmod +x "${DESTDIR}/${cmd}.cmd"
-
-echo "Installing development files..."
-mkdir "$DESTDIR"/devel
-cp .libs/libwim.dll.a "$DESTDIR"/devel/libwim.lib
-cp include/wimlib.h "$DESTDIR"/devel/
-
-if $BUILD_ZIP; then
-       echo "Creating zip file..."
-       cd "$DESTDIR"
-       7z -mx9 a ../"$ZIPFILE" . > /dev/null
-       cd ..
-       echo "Success!  Output is in $ZIPFILE"
-else
-       echo "Success!  Output is in $DESTDIR"
-fi