mirror of
https://github.com/libunwind/libunwind.git
synced 2026-01-12 00:04:03 +08:00
- scripts/do-release: New file. Prepares release tarballs with the
latest up-to-date config scripts.
169 lines
4.3 KiB
Bash
Executable File
169 lines
4.3 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Generate a release tarball
|
|
#
|
|
# Copyright 2024 Stephen M. Webb <stephen.webb@bregmasoft.ca>
|
|
#
|
|
# This file is a part of the libunwind project.
|
|
#
|
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
# of this software and associated documentation files (the "Software"), to deal
|
|
# in the Software without restriction, including without limitation the rights
|
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
# copies of the Software, and to permit persons to whom the Software is
|
|
# furnished to do so, subject to the following conditions:
|
|
#
|
|
# This permission notice shall be included in all copies or substantial portions
|
|
# of the Software.
|
|
#
|
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
# SOFTWARE.
|
|
#
|
|
|
|
progname="$0"
|
|
start_dir="$(pwd)"
|
|
src_dir="${start_dir}"
|
|
keep_working_dir=n
|
|
ext_list="gzip"
|
|
valid_exts="gzip bzip2 xz zip"
|
|
|
|
print_usage()
|
|
{
|
|
printf "usage: %s: OPTIONS\n" "$progname"
|
|
printf " Roll source release tarballs\n\n"
|
|
printf " -h, --help print this message and exit\n"
|
|
printf " -k, --keep do not delete temporary working directory\n"
|
|
printf " -s, --source location of source directory [current working direcctory]\n"
|
|
printf " -x, --extensions list of tarball compression types [gzip]\n"
|
|
printf " valid extension are the following: %s\n" "$valid_exts"
|
|
}
|
|
|
|
do_cleanup()
|
|
{
|
|
cd "$start_dir"
|
|
if [ $keep_working_dir != y ]; then
|
|
rm -rf "$working_dir"
|
|
fi
|
|
}
|
|
|
|
validate_extensions()
|
|
{
|
|
for valid_ext in $valid_exts; do
|
|
if [ "$1" = "$valid_ext" ]; then
|
|
return 1
|
|
fi
|
|
done
|
|
return 0
|
|
}
|
|
|
|
do_setup()
|
|
{
|
|
options=$(getopt --options='hks:x:' \
|
|
--longoptions='help,keep,source:extensions:' \
|
|
--name "$progname" \
|
|
-- "$@")
|
|
if [ $? -ne 0 ]; then
|
|
print_usage
|
|
exit 1
|
|
fi
|
|
|
|
eval set -- "$options"
|
|
while true; do
|
|
case "$1" in
|
|
-h|--help)
|
|
print_usage
|
|
exit 0
|
|
;;
|
|
-k|--keep)
|
|
keep_working_dir=y
|
|
shift
|
|
;;
|
|
-s|--source)
|
|
src_dir=$(readlink -f "$2")
|
|
shift 2
|
|
;;
|
|
-x|--extensions)
|
|
for ext in $2; do
|
|
if validate_extensions $ext; then
|
|
printf "invalid extension %s" "$ext\n"
|
|
print_usage
|
|
exit 1
|
|
fi
|
|
done
|
|
ext_list="$2"
|
|
shift 2
|
|
;;
|
|
--)
|
|
shift
|
|
break
|
|
;;
|
|
*)
|
|
print_usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
working_dir=$(mktemp -p "${start_dir}" -d)
|
|
trap do_cleanup 0
|
|
}
|
|
|
|
#
|
|
# Regenerate the autotools files and update the config scripts to the latest
|
|
# upstream
|
|
#
|
|
do_source_updates()
|
|
{
|
|
upstream_url='https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain'
|
|
|
|
cd "${src_dir}"
|
|
autoreconf -if
|
|
wget -O config/config.guess "${upstream_url};f=config.guess;hb=HEAD"
|
|
wget -O config/config.sub "${upstream_url};f=config.sub;hb=HEAD"
|
|
}
|
|
|
|
#
|
|
# Generate the tarball(s)
|
|
#
|
|
do_tarball()
|
|
{
|
|
cd "${working_dir}"
|
|
"${src_dir}/configure"
|
|
|
|
cd "$working_dir"
|
|
for ext in $ext_list; do
|
|
make dist-${ext}
|
|
done
|
|
|
|
for cmp in $ext_list; do
|
|
case $cmp in
|
|
gzip)
|
|
ext=tar.gz
|
|
;;
|
|
bzip2)
|
|
ext=tar.bz2
|
|
;;
|
|
xz)
|
|
ext=tar.xz
|
|
;;
|
|
zip)
|
|
ext=zip
|
|
;;
|
|
*)
|
|
printf "unknown extension: %s\n" "$cmp"
|
|
;;
|
|
esac
|
|
mv *.${ext} "$start_dir"
|
|
done
|
|
}
|
|
|
|
|
|
do_setup "$@"
|
|
do_source_updates
|
|
do_tarball
|