diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rwxr-xr-x | build-aux/build-windows.sh | 54 |
2 files changed, 55 insertions, 0 deletions
@@ -32,6 +32,7 @@ Makefile.in /stamp-h1 .dirstamp /build-aux/* +!/build-aux/build-windows.sh # installed .m4 files /m4/*.m4 diff --git a/build-aux/build-windows.sh b/build-aux/build-windows.sh new file mode 100755 index 0000000..267a8aa --- /dev/null +++ b/build-aux/build-windows.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +# This script builds windows binaries, given a source tarball. +# It was designed to work on Fedora, and requires the following packages: +# +# mingw32-gcc mingw64-gcc zip +# +# This script must be called with the xz source tarball as argument. + + +set -ex + +[[ $# -eq 1 ]] + + +get_version() { + local a=$(basename "${1}") + a="${a%.tar.xz}" + echo "${a#blogc-}" +} + + +build() { + local version=$(get_version "${1}") + local arch=${2} + local build_dir="/tmp/blogc_build_${version}_${arch}" + local dest_dir="/tmp/blogc-${version}-w${arch}" + + rm -rf "${build_dir}" + mkdir -p "${build_dir}" + tar -xvf "${1}" -C "${build_dir}" + + pushd "${build_dir}/blogc-${version}" &> /dev/null + "mingw${arch}-configure" + make + popd &> /dev/null + + rm -rf "${dest_dir}" + mkdir -p "${dest_dir}" + cp "${build_dir}/blogc-${version}/.libs/blogc.exe" "${dest_dir}/" + cp "${build_dir}/blogc-${version}/LICENSE" "${dest_dir}/" + cp "${build_dir}/blogc-${version}/README.md" "${dest_dir}/" + + pushd "$(dirname ${dest_dir})" &> /dev/null + zip "$(basename ${dest_dir}).zip" "$(basename ${dest_dir})"/* + popd &> /dev/null + + mv "${dest_dir}.zip" . +} + + +for arch in 32 64; do + build "$1" "${arch}" +done |