mkp224o/contrib/release-scripts/release.sh
2022-06-30 22:19:56 +00:00

81 lines
1.4 KiB
Bash
Executable File

#!/bin/sh
set -eux
V=$1
D=$(realpath "$0")
D=$(dirname "$D")
cd "$D"
export TZ=UTC
mkdir -p build
export WINEARCH=win64
export WINEPREFIX=$(realpath ./build/winepfx)
OPATH=$PATH
rm -rf out
mkdir -p out
# prepare source
SV=mkp224o-$V
SO=$(realpath ./out/$SV)
git clone ../../ "$SO"
git -C ../../ diff | git -C "$SO" apply --allow-empty
cd "$SO"
rm -rf .git
./autogen.sh
rm -rf *.cache
echo v$V > version.txt
cd ../..
# build windows bins
B=$(realpath ./build)
for w in x86_64 i686
do
cd "$B"
rm -rf $w
mkdir $w
cd $w
p=$w-w64-mingw32
case $w in
i686)
CFLAGS="-march=i686 -mtune=generic"
W=32
;;
x86_64)
CFLAGS="-march=x86-64 -mtune=generic"
W=64
;;
esac
CFLAGS="-O3 $CFLAGS -fomit-frame-pointer"
export PATH=/usr/$p/bin:$OPATH
../../out/$SV/configure --enable-regex --enable-donna --with-pcre2="/usr/$p/bin/pcre2-config" CC="${p}-gcc" CFLAGS="$CFLAGS"
make main util
$p-strip mkp224o.exe
$p-strip calcest.exe
cd ..
BO="$SO-w$W"
mkdir -p "$BO"
cp $w/mkp224o.exe "$BO/"
cp $w/calcest.exe "$BO/"
cd "$BO"
$p-ldd mkp224o.exe | grep -v 'not found' | awk '{print $3}' | xargs -r cp -v -t ./
done
export PATH=$OPATH
# compress stuff
cd "$D/out"
tar --portability --no-acls --no-selinux --no-xattrs --owner root:0 --group=root:0 --sort=name -c -f $SV-src.tar $SV
zopfli -c $SV-src.tar > $SV-src.tar.gz
zstd -19 -f $SV-src.tar -o $SV-src.tar.zst
rm $SV-src.tar
zip -9 -X -r $SV-w32.zip $SV-w32
zip -9 -X -r $SV-w64.zip $SV-w64