mirror of
https://git.gnunet.org/libmicrohttpd.git
synced 2026-09-25 04:09:31 +03:00
109 lines
2.5 KiB
Bash
Executable File
109 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#
|
|
# This file creates dist tarball.
|
|
# Optional autotools patches are applied for better toolchains
|
|
# compatibility.
|
|
#
|
|
# Based on Debian SID baseline files as of January 2024.
|
|
#
|
|
|
|
if ! grep -Eq -e '^PRETTY_NAME="Debian GNU/Linux 12 \(bookworm\)"$' /etc/os-release && \
|
|
! grep -Eq -e '^PRETTY_NAME="Debian GNU/Linux trixie/sid"$' /etc/os-release
|
|
then
|
|
echo "Only Debian 'bookworm' and 'trixie/sid' are supported by this script." >&2
|
|
exit 1
|
|
fi
|
|
|
|
if ! autoconf --version | head -1 | grep -Eq -e ' 2\.71$' -
|
|
then
|
|
echo "The only supported autoconf version is 2.71." >&2
|
|
exit 1
|
|
fi
|
|
|
|
|
|
tooldir=$(dirname $BASH_SOURCE) || exit 2
|
|
test -n "$tooldir" || exit 2
|
|
cd "$tooldir" || exit 2
|
|
tooldir="$PWD" || exit 2
|
|
cd "${tooldir}/.." || exit 2
|
|
rootsrcdir="$PWD" || exit 2
|
|
|
|
# Cleanup sources
|
|
echo ''
|
|
echo '*** Performing initial cleanup...'
|
|
echo ''
|
|
if [[ ! -f 'Makefile' ]] || ! make maintainer-clean
|
|
then
|
|
# Makefile needed for initial cleanup
|
|
if [[ ! -f 'Makefile.in' ]] || [[ ! -f 'configure' ]] || ! ./configure || ! make maintainer-clean
|
|
then
|
|
rm -f po/Makefile || exit 3
|
|
# Build 'configure' to build Makefile for initial cleanup
|
|
autoreconf -fvi || exit 3
|
|
./configure || exit 3
|
|
make maintainer-clean || exit 3
|
|
fi
|
|
fi
|
|
echo ''
|
|
echo '** Initial cleanup completed.'
|
|
echo ''
|
|
|
|
# Copy latest autotools files
|
|
echo ''
|
|
echo '*** Copying autotools files...'
|
|
echo ''
|
|
autoreconf -fvi || exit 4
|
|
echo ''
|
|
echo '*** Performing intermediate cleanup...'
|
|
echo ''
|
|
./configure || exit 4
|
|
make distclean || exit 4
|
|
rm -f ./configure ./aclocal.m4 || exit 4
|
|
rm -rf ./autom4te.cache || exit 4
|
|
echo ''
|
|
echo '** Intermediate cleanup completed.'
|
|
echo ''
|
|
|
|
# Patching local autotools files
|
|
echo ''
|
|
echo '*** Performing patching of local autotools files...'
|
|
echo ''
|
|
"$tooldir/fixes-libtool/apply-all.sh" || exit 5
|
|
"$tooldir/fixes-autoconf/apply-all.sh" || exit 5
|
|
echo ''
|
|
echo '** Local autotools files patched.'
|
|
echo ''
|
|
|
|
# Build the configure and the related files with patches
|
|
echo ''
|
|
echo '*** Building patched configure and related files...'
|
|
echo ''
|
|
autoreconf -v || exit 6
|
|
echo ''
|
|
echo '** Patched build system ready.'
|
|
echo ''
|
|
|
|
# Build the configure and the related files with patches
|
|
|
|
have_command()
|
|
{
|
|
command -v "$1" >/dev/null 2>&1
|
|
}
|
|
|
|
echo ''
|
|
echo '*** Building dist tarball...'
|
|
echo ''
|
|
./configure || exit 7
|
|
if have_command zopfli; then
|
|
make dist-custm2 'ARC_CMD=zopfli -v --gzip --i25' 'ARC_EXT=tar.gz' || exit 7
|
|
else
|
|
make dist || exit 7
|
|
echo '* zopfli is not installed, tarball size is suboptimal.'
|
|
fi
|
|
echo ''
|
|
echo '** Dist tarball ready.'
|
|
echo ''
|
|
|
|
exit 0
|