mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-18 22:54:25 +01:00
configure: handle --reconfigure better.
`./configure CC=newcc --reconfigure` didn't set CC, because reconfigure simply replaced all values: only make it replace undefined values. Also, it didn't change COPTFLAGS or CWARNFLAGS, even if they were previously the defaults (eg. --reconfigure --enable-developer). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
58
configure
vendored
58
configure
vendored
@@ -32,18 +32,40 @@ usage_with_default()
|
||||
echo " $1 (default $DEF)"
|
||||
}
|
||||
|
||||
# Given DEVELOPER, what COPTFLAGS do we default to.
|
||||
default_coptflags()
|
||||
{
|
||||
if [ "$1" = 0 ]; then
|
||||
echo "-Og"
|
||||
fi
|
||||
}
|
||||
|
||||
# Given COPTFLAGS, what CWARNFLAGS do we default to.
|
||||
default_cwarnflags()
|
||||
{
|
||||
BASE="-Wall -Wundef -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wold-style-definition"
|
||||
# We can use -Werror if no optimization, or if -O3.
|
||||
if [ -z "${1##*-O3*}" ]; then
|
||||
echo "$BASE -Werror"
|
||||
else
|
||||
echo "$BASE"
|
||||
fi
|
||||
}
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Usage: ./configure [--reconfigure] [setting=value] [options]"
|
||||
echo "If --reconfigure is specified, $CONFIG_VAR_FILE will set defaults if it exists."
|
||||
echo "If --reconfigure is specified, $CONFIG_VAR_FILE will set defaults."
|
||||
echo "Default settings:"
|
||||
DEFAULT_COPTFLAGS="$(default_coptflags $DEVELOPER)"
|
||||
DEFAULT_CWARNFLAGS="$(default_coptflags $DEFAULT_COPTFLAGS)"
|
||||
usage_with_default "CC" "$CC"
|
||||
usage_with_default "CWARNFLAGS" "$CWARNFLAGS"
|
||||
usage_with_default "CWARNFLAGS" "$DEFAULT_CWARNFLAGS"
|
||||
usage_with_default "COPTFLAGS" "$DEFAULT_COPTFLAGS"
|
||||
usage_with_default "CDEBUGFLAGS" "$CDEBUGFLAGS"
|
||||
usage_with_default "CONFIGURATOR_CC" "$CONFIGURATOR_CC"
|
||||
usage_with_default "PYTEST" "$PYTEST"
|
||||
usage_with_default "COPTFLAGS" "$COPTFLAGS"
|
||||
echo " To override compile line for configurator itself"
|
||||
usage_with_default "PYTEST" "$PYTEST"
|
||||
|
||||
echo "Options include:"
|
||||
usage_with_default "--prefix=" "$PREFIX"
|
||||
@@ -102,9 +124,20 @@ PYTEST=${PYTEST:-`find_pytest`}
|
||||
for opt in "$@"; do
|
||||
case "$opt" in
|
||||
--reconfigure)
|
||||
# Escape spaces for things like CWARNFLAGS.
|
||||
sed 's/=\(.*\)$/="\1"/' $CONFIG_VAR_FILE > $CONFIG_VAR_FILE.$$
|
||||
. ./$CONFIG_VAR_FILE.$$
|
||||
# Figure out what defaulT COPTFLAGS was for this config.vars
|
||||
DEFAULT_COPTFLAGS=
|
||||
# Set from values if not already set.
|
||||
while IFS='=' read VAR VAL; do
|
||||
if eval [ -z \${$VAR+x} ]; then eval $VAR=\"$VAL\"; fi
|
||||
if [ "$VAR" = DEVELOPER ]; then
|
||||
DEFAULT_COPTFLAGS=$(default_coptflags "$VAL")
|
||||
fi
|
||||
done < $CONFIG_VAR_FILE
|
||||
# If we were those defaults, unset so we get new defaults in
|
||||
# case DEVELOPER has changed.
|
||||
if [ x"$COPTFLAGS" = x"$DEFAULT_COPTFLAGS" ]; then
|
||||
unset COPTFLAGS
|
||||
fi
|
||||
;;
|
||||
CC=*) CC="${opt#CC=}";;
|
||||
CONFIGURATOR_CC=*) CONFIGURATOR_CC="${opt#CONFIGURATOR_CC=}";;
|
||||
@@ -135,20 +168,13 @@ done
|
||||
|
||||
# Default COPTFLAGS is only set if not developer
|
||||
if [ -z ${COPTFLAGS+x} ]; then
|
||||
if [ "$DEVELOPER" = 0 ]; then
|
||||
COPTFLAGS="-Og"
|
||||
else
|
||||
COPTFLAGS=""
|
||||
fi
|
||||
COPTFLAGS=$(default_coptflags "$DEVELOPER")
|
||||
fi
|
||||
|
||||
# We only enable Werror if we're -O3 or no-optimization. Otherwise gcc gives
|
||||
# false positives.
|
||||
if [ -z ${CWARNFLAGS+x} ]; then
|
||||
CWARNFLAGS="-Wall -Wundef -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wold-style-definition"
|
||||
if [ -x ${COPTFLAGS+x} ] || [ -z "${COPTFLAGS##*-O3*}" ]; then
|
||||
CWARNFLAGS="$CWARNFLAGS -Werror"
|
||||
fi
|
||||
CWARNFLAGS=$(default_cwarnflags "$COPTFLAGS")
|
||||
fi
|
||||
|
||||
echo -n "Compiling $CONFIGURATOR..."
|
||||
|
||||
Reference in New Issue
Block a user