mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-10 17:55:39 +02:00
Various enhancements to download-build-gdb.sh
I ran shellcheck [1] on the script and it found various minor things to improve. - Use $(...) instead of `...` to run commands in a subshell. - Wrap all variables in quotes, in case there are spaces. At the same time, I noticed a few other things: - Use "#!/usr/bin/env bash" instead of "#!/bin/bash", in case the user uses a bash not at /bin/bash. - Use "set -o errexit" instead of "set -e" for better readability. - Use "set -o nounset" to generate errors if trying to read unset variables. - Pass CXXFLAGS in addition to CFLAGS, since GDB is now in C++. - Use ${CFLAGS:-} instead of ${CFLAGS}, in case CFLAGS is not set (because of "set -o nounset"). - Don't check for result of getopt. If it fails, the script ends immediatly due to errexit. [1] http://www.shellcheck.net/ Change-Id: If73f3510e46ca80d542d47c29c55b48b8b0bc697 Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
This commit is contained in:
parent
5bec70f68f
commit
184747164d
1 changed files with 15 additions and 15 deletions
|
@ -1,4 +1,4 @@
|
||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# * Copyright (c) 2015 Ericsson and others.
|
# * Copyright (c) 2015 Ericsson and others.
|
||||||
# * All rights reserved. This program and the accompanying materials
|
# * All rights reserved. This program and the accompanying materials
|
||||||
|
@ -10,10 +10,13 @@
|
||||||
# * Simon Marchi (Ericsson) - Initial implementation
|
# * Simon Marchi (Ericsson) - Initial implementation
|
||||||
|
|
||||||
# Stop the script if any command fails
|
# Stop the script if any command fails
|
||||||
set -e
|
set -o errexit
|
||||||
|
|
||||||
|
# Consider using an unset variable as an error
|
||||||
|
set -o nounset
|
||||||
|
|
||||||
# Make sure getopt is the command and not the bash built-in
|
# Make sure getopt is the command and not the bash built-in
|
||||||
if [[ `getopt --version` != *"getopt"* ]]; then
|
if [[ $(getopt --version) != *"getopt"* ]]; then
|
||||||
echo "getopt command not found."
|
echo "getopt command not found."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
@ -63,7 +66,7 @@ function help_and_exit() {
|
||||||
echo " $ $0 all"
|
echo " $ $0 all"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
exit $1
|
exit "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Output a visible header
|
# Output a visible header
|
||||||
|
@ -89,7 +92,7 @@ function check_supported() {
|
||||||
*)
|
*)
|
||||||
echo "Error: version ${version} is not supported by this script."
|
echo "Error: version ${version} is not supported by this script."
|
||||||
echo ""
|
echo ""
|
||||||
help_and_exit
|
help_and_exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
@ -163,7 +166,8 @@ function configure_gdb() {
|
||||||
local version="$1"
|
local version="$1"
|
||||||
|
|
||||||
local build="${build_dir}/gdb-${version}"
|
local build="${build_dir}/gdb-${version}"
|
||||||
local cflags="-Wno-error -g -O0"
|
local cflags="-Wno-error -g3 -O0"
|
||||||
|
local cxxflags="-Wno-error -g3 -O0"
|
||||||
|
|
||||||
echo_header "Configuring in ${build}"
|
echo_header "Configuring in ${build}"
|
||||||
|
|
||||||
|
@ -175,11 +179,12 @@ function configure_gdb() {
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Let the user specify some CFLAGS
|
# If there is already some CFLAGS/CXXFLAGS in the environment, add them to the mix.
|
||||||
cflags="${cflags} ${CFLAGS}"
|
cflags="${cflags} ${CFLAGS:-}"
|
||||||
|
cxxflags="${cxxflags} ${CXXFLAGS:-}"
|
||||||
|
|
||||||
# Need to use eval to allow the ${dryrun} trick to work with the env var command at the start.
|
# Need to use eval to allow the ${dryrun} trick to work with the env var command at the start.
|
||||||
eval ${dryrun} 'CFLAGS="${cflags}" ./configure --prefix="${install_dir}/gdb-${version}"'
|
eval ${dryrun} 'CFLAGS="${cflags}" CXXFLAGS="${cxxflags}" ./configure --prefix="${install_dir}/gdb-${version}"'
|
||||||
|
|
||||||
${dryrun} popd
|
${dryrun} popd
|
||||||
}
|
}
|
||||||
|
@ -245,14 +250,9 @@ function symlink_gdb() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Start argument parsing
|
# Start argument parsing. The script will exit (thanks to errexit) if bad arguments are passed.
|
||||||
args=$(getopt -o b:dhj: -l "base-dir:,dry-run,help,jobs" -n "$0" -- "$@");
|
args=$(getopt -o b:dhj: -l "base-dir:,dry-run,help,jobs" -n "$0" -- "$@");
|
||||||
|
|
||||||
# Bad arguments ?
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
eval set -- "$args"
|
eval set -- "$args"
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
|
|
Loading…
Add table
Reference in a new issue