#!/bin/sh

# Check -V option.
. "${srcdir=.}/init.sh"

run_prog_skip_if_failed date +%Y > /dev/null
year="$(date +%Y)"

run_strace -V > "$LOG"

getstr()
{
	sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*"([^"]*)".*/\1/p' \
		../../config.h
}

# getoption OPTION YES_STRING [NO_STRING]
#
# Returns YES_STRING in case OPTION is enabled (present in config.h and has
# a non-zero numeric value). Otherwise, NO_STRING (or empty string, if not
# specified) is returned.
getoption()
{
	local opt
	opt=$(sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*([0-9]+)$/\1/p' \
		../../config.h)
	if [ -n "$opt" -a "$opt" -ne 0 ]; then
		printf "%s" "$2"
	else
		printf "%s" "${3-}"
	fi
}

config_year=$(getstr COPYRIGHT_YEAR)

[ "$year" -ge "$config_year" ] && [ "$config_year" -ge 2017 ] || {
	echo >&2 "The year derived from config.h (${config_year}) does not pass sanity checks."
	exit 1
}

option_unwind=$(getoption ENABLE_STACKTRACE \
		" stack-trace=$(getstr USE_UNWINDER)")
option_demangle=$(getoption USE_DEMANGLE " stack-demangle")

option_m32=
option_mx32=
case "$STRACE_NATIVE_ARCH" in
x86_64)
	option_m32=$(getoption HAVE_M32_MPERS ' m32-mpers' ' no-m32-mpers')
	option_mx32=$(getoption HAVE_MX32_MPERS ' mx32-mpers' ' no-mx32-mpers')
	;;
aarch64|powerpc64|riscv|s390x|sparc64|tile|x32)
	option_m32=$(getoption HAVE_M32_MPERS ' m32-mpers' ' no-m32-mpers')
	;;
esac

features="${option_unwind}${option_demangle}${option_m32}${option_mx32}"
[ -n "$features" ] || features=" (none)"

cat > "$EXP" << __EOF__
$(getstr PACKAGE_NAME) -- version $(getstr PACKAGE_VERSION)
Copyright (c) 1991-${config_year} The strace developers <$(getstr PACKAGE_URL)>.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Optional features enabled:${features}
__EOF__

match_diff "$LOG" "$EXP"
