sim: split debug/stdio/trace/profile options into dedicated m4 files

This follows existing organizational structure with one configure option
per m4 file, and will make it easier to move to the common configure dir.
This commit is contained in:
Mike Frysinger 2021-06-06 20:16:48 -04:00
parent 4b530cfa37
commit 497a20bd3b
6 changed files with 176 additions and 93 deletions

View File

@ -1,3 +1,14 @@
2021-06-12 Mike Frysinger <vapier@gentoo.org>
* m4/sim_ac_common.m4: Replace --enable-sim-debug, --enable-sim-stdio,
--enable-sim-trace, and --enable-sim-profile with calls to
SIM_AC_OPTION_DEBUG, SIM_AC_OPTION_STDIO, SIM_AC_OPTION_TRACE, and
SIM_AC_OPTION_PROFILE.
* m4/sim_ac_option_debug.m4: New file.
* m4/sim_ac_option_profile.m4: New file.
* m4/sim_ac_option_stdio.m4: New file.
* m4/sim_ac_option_trace.m4: New file.
2021-06-12 Mike Frysinger <vapier@gentoo.org>
* m4/sim_ac_platform.m4: Check more headers, funcs, structs, and

View File

@ -66,102 +66,13 @@ dnl --enable-maintainer-mode.
AM_MAINTAINER_MODE
dnl --enable-sim-debug is for developers of the simulator
dnl the allowable values are work-in-progress
AC_MSG_CHECKING([for sim debug setting])
sim_debug="0"
AC_ARG_ENABLE(sim-debug,
[AS_HELP_STRING([--enable-sim-debug=opts],
[Enable debugging flags (for developers of the sim itself)])],
[case "${enableval}" in
yes) sim_debug="7";;
no) sim_debug="0";;
*) sim_debug="($enableval)";;
esac])dnl
if test "$sim_debug" != "0"; then
AC_DEFINE_UNQUOTED([DEBUG], [$sim_debug], [Sim debug setting])
fi
AC_DEFINE_UNQUOTED([WITH_DEBUG], [$sim_debug], [Sim debug setting])
AC_MSG_RESULT($sim_debug)
SIM_AC_OPTION_DEBUG
SIM_AC_OPTION_STDIO
dnl --enable-sim-stdio is for users of the simulator
dnl It determines if IO from the program is routed through STDIO (buffered)
AC_MSG_CHECKING([for sim stdio debug behavior])
sim_stdio="0"
AC_ARG_ENABLE(sim-stdio,
[AS_HELP_STRING([--enable-sim-stdio],
[Specify whether to use stdio for console input/output])],
[case "${enableval}" in
yes) sim_stdio="DO_USE_STDIO";;
no) sim_stdio="DONT_USE_STDIO";;
*) AC_MSG_ERROR([Unknown value $enableval passed to --enable-sim-stdio]);;
esac])dnl
AC_DEFINE_UNQUOTED([WITH_STDIO], [$sim_stdio], [How to route I/O])
AC_MSG_RESULT($sim_stdio)
dnl --enable-sim-trace is for users of the simulator
dnl The argument is either a bitmask of things to enable [exactly what is
dnl up to the simulator], or is a comma separated list of names of tracing
dnl elements to enable. The latter is only supported on simulators that
dnl use WITH_TRACE. Default to all tracing but internal debug.
AC_MSG_CHECKING([for sim trace settings])
sim_trace="~TRACE_debug"
AC_ARG_ENABLE(sim-trace,
[AS_HELP_STRING([--enable-sim-trace=opts],
[Enable tracing of simulated programs])],
[case "${enableval}" in
yes) sim_trace="-1";;
no) sim_trace="0";;
[[-0-9]]*)
sim_trace="'(${enableval})'";;
[[[:lower:]]]*)
sim_trace=""
for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
if test x"$sim_trace" = x; then
sim_trace="(TRACE_$x"
else
sim_trace="${sim_trace}|TRACE_$x"
fi
done
sim_trace="$sim_trace)" ;;
esac])dnl
AC_DEFINE_UNQUOTED([WITH_TRACE], [$sim_trace], [Sim trace settings])
AC_MSG_RESULT($sim_trace)
dnl --enable-sim-profile
dnl The argument is either a bitmask of things to enable [exactly what is
dnl up to the simulator], or is a comma separated list of names of profiling
dnl elements to enable. The latter is only supported on simulators that
dnl use WITH_PROFILE.
AC_MSG_CHECKING([for sim profile settings])
profile="1"
sim_profile="-1"
AC_ARG_ENABLE(sim-profile,
[AS_HELP_STRING([--enable-sim-profile=opts], [Enable profiling flags])],
[case "${enableval}" in
yes) profile="1" sim_profile="-1";;
no) profile="0" sim_profile="0";;
[[-0-9]]*)
profile="(${enableval})" sim_profile="(${enableval})";;
[[a-z]]*)
profile="1"
sim_profile=""
for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
if test x"$sim_profile" = x; then
sim_profile="(PROFILE_$x"
else
sim_profile="${sim_profile}|PROFILE_$x"
fi
done
sim_profile="$sim_profile)" ;;
esac])dnl
AC_DEFINE_UNQUOTED([PROFILE], [$profile], [Sim profile settings])
AC_DEFINE_UNQUOTED([WITH_PROFILE], [$sim_profile], [Sim profile settings])
AC_MSG_RESULT($sim_profile)
SIM_AC_OPTION_TRACE
SIM_AC_OPTION_PROFILE
SIM_AC_OPTION_INLINE

View File

@ -0,0 +1,35 @@
dnl Copyright (C) 1997-2021 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 3 of the License, or
dnl (at your option) any later version.
dnl
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
dnl
dnl --enable-sim-debug is for developers of the simulator
dnl the allowable values are work-in-progress
AC_DEFUN([SIM_AC_OPTION_DEBUG],
[dnl
AC_MSG_CHECKING([for sim debug setting])
sim_debug="0"
AC_ARG_ENABLE(sim-debug,
[AS_HELP_STRING([--enable-sim-debug=opts],
[Enable debugging flags (for developers of the sim itself)])],
[case "${enableval}" in
yes) sim_debug="7";;
no) sim_debug="0";;
*) sim_debug="($enableval)";;
esac])dnl
if test "$sim_debug" != "0"; then
AC_DEFINE_UNQUOTED([DEBUG], [$sim_debug], [Sim debug setting])
fi
AC_DEFINE_UNQUOTED([WITH_DEBUG], [$sim_debug], [Sim debug setting])
AC_MSG_RESULT($sim_debug)
])

View File

@ -0,0 +1,48 @@
dnl Copyright (C) 1997-2021 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 3 of the License, or
dnl (at your option) any later version.
dnl
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
dnl
dnl --enable-sim-profile
dnl The argument is either a bitmask of things to enable [exactly what is
dnl up to the simulator], or is a comma separated list of names of profiling
dnl elements to enable. The latter is only supported on simulators that
dnl use WITH_PROFILE.
AC_DEFUN([SIM_AC_OPTION_PROFILE],
[dnl
AC_MSG_CHECKING([for sim profile settings])
profile="1"
sim_profile="-1"
AC_ARG_ENABLE(sim-profile,
[AS_HELP_STRING([--enable-sim-profile=opts], [Enable profiling flags])],
[case "${enableval}" in
yes) profile="1" sim_profile="-1";;
no) profile="0" sim_profile="0";;
[[-0-9]]*)
profile="(${enableval})" sim_profile="(${enableval})";;
[[a-z]]*)
profile="1"
sim_profile=""
for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
if test x"$sim_profile" = x; then
sim_profile="(PROFILE_$x"
else
sim_profile="${sim_profile}|PROFILE_$x"
fi
done
sim_profile="$sim_profile)" ;;
esac])dnl
AC_DEFINE_UNQUOTED([PROFILE], [$profile], [Sim profile settings])
AC_DEFINE_UNQUOTED([WITH_PROFILE], [$sim_profile], [Sim profile settings])
AC_MSG_RESULT($sim_profile)
])

View File

@ -0,0 +1,32 @@
dnl Copyright (C) 1997-2021 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 3 of the License, or
dnl (at your option) any later version.
dnl
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
dnl
dnl --enable-sim-stdio is for users of the simulator
dnl It determines if IO from the program is routed through STDIO (buffered)
AC_DEFUN([SIM_AC_OPTION_STDIO],
[dnl
AC_MSG_CHECKING([for sim stdio debug behavior])
sim_stdio="0"
AC_ARG_ENABLE(sim-stdio,
[AS_HELP_STRING([--enable-sim-stdio],
[Specify whether to use stdio for console input/output])],
[case "${enableval}" in
yes) sim_stdio="DO_USE_STDIO";;
no) sim_stdio="DONT_USE_STDIO";;
*) AC_MSG_ERROR([Unknown value $enableval passed to --enable-sim-stdio]);;
esac])dnl
AC_DEFINE_UNQUOTED([WITH_STDIO], [$sim_stdio], [How to route I/O])
AC_MSG_RESULT($sim_stdio)
])

View File

@ -0,0 +1,46 @@
dnl Copyright (C) 1997-2021 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 3 of the License, or
dnl (at your option) any later version.
dnl
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
dnl
dnl --enable-sim-trace is for users of the simulator
dnl The argument is either a bitmask of things to enable [exactly what is
dnl up to the simulator], or is a comma separated list of names of tracing
dnl elements to enable. The latter is only supported on simulators that
dnl use WITH_TRACE. Default to all tracing but internal debug.
AC_DEFUN([SIM_AC_OPTION_TRACE],
[dnl
AC_MSG_CHECKING([for sim trace settings])
sim_trace="~TRACE_debug"
AC_ARG_ENABLE(sim-trace,
[AS_HELP_STRING([--enable-sim-trace=opts],
[Enable tracing of simulated programs])],
[case "${enableval}" in
yes) sim_trace="-1";;
no) sim_trace="0";;
[[-0-9]]*)
sim_trace="'(${enableval})'";;
[[[:lower:]]]*)
sim_trace=""
for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
if test x"$sim_trace" = x; then
sim_trace="(TRACE_$x"
else
sim_trace="${sim_trace}|TRACE_$x"
fi
done
sim_trace="$sim_trace)" ;;
esac])dnl
AC_DEFINE_UNQUOTED([WITH_TRACE], [$sim_trace], [Sim trace settings])
AC_MSG_RESULT($sim_trace)
])