1 dnl Copyright (C) 1997-2021 Free Software Foundation, Inc.
3 dnl This program is free software; you can redistribute it and/or modify
4 dnl it under the terms of the GNU General Public License as published by
5 dnl the Free Software Foundation; either version 3 of the License, or
6 dnl (at your option) any later version.
8 dnl This program is distributed in the hope that it will be useful,
9 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
10 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 dnl GNU General Public License for more details.
13 dnl You should have received a copy of the GNU General Public License
14 dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
16 dnl SIM_AC_COMMON invokes AC macros used by all simulators and by the common
17 dnl directory. It is intended to be invoked before any target specific stuff.
18 dnl SIM_AC_OUTPUT is a cover function to AC_OUTPUT to generate the Makefile.
19 dnl It is intended to be invoked last.
21 dnl See README-HACKING for more details.
22 AC_DEFUN([SIM_AC_COMMON],
25 AC_CONFIG_HEADERS([config.h:config.in])
27 # Some of the common include files depend on bfd.h, and bfd.h checks
28 # that config.h is included first by testing that the PACKAGE macro
31 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
34 # Dependency checking.
36 ZW_PROG_COMPILER_DEPENDENCIES([CC])
38 # Check for the 'make' the user wants to use.
39 AC_CHECK_PROGS(MAKE, make)
41 case "`$MAKE --version 2>&1 | sed 1q`" in
46 AM_CONDITIONAL(GMAKE, test "$MAKE_IS_GNU" = yes)
48 dnl We don't use gettext, but bfd does. So we do the appropriate checks
49 dnl to see if there are intl libraries we should link against.
51 ZW_GNU_GETTEXT_SISTER_DIR(../../intl)
53 # Check for common headers.
54 # NB: You can assume C11 headers exist.
55 AC_CHECK_HEADERS(unistd.h)
56 AC_CHECK_HEADERS(sys/time.h sys/times.h sys/resource.h sys/mman.h)
57 AC_CHECK_HEADERS(fcntl.h fpu_control.h)
58 AC_CHECK_HEADERS(dlfcn.h sys/stat.h)
59 AC_CHECK_FUNCS_ONCE(m4_flatten([
71 AC_CHECK_MEMBERS([[struct stat.st_dev], [struct stat.st_ino],
72 [struct stat.st_mode], [struct stat.st_nlink], [struct stat.st_uid],
73 [struct stat.st_gid], [struct stat.st_rdev], [struct stat.st_size],
74 [struct stat.st_blksize], [struct stat.st_blocks], [struct stat.st_atime],
75 [struct stat.st_mtime], [struct stat.st_ctime]], [], [],
76 [[#ifdef HAVE_SYS_TYPES_H
77 #include <sys/types.h>
79 #ifdef HAVE_SYS_STAT_H
82 AC_CHECK_TYPES(socklen_t, [], [],
83 [#include <sys/types.h>
84 #include <sys/socket.h>
87 # Check for socket libraries
88 AC_CHECK_LIB(socket, bind)
89 AC_CHECK_LIB(nsl, gethostbyname)
91 # BFD conditionally uses zlib, so we must link it in if libbfd does, by
92 # using the same condition.
95 # BFD uses libdl when when plugins enabled.
97 AM_CONDITIONAL(PLUGINS, test "$plugins" = yes)
99 AC_SUBST(lt_cv_dlopen_libs)
101 dnl Standard (and optional) simulator options.
102 dnl Eventually all simulators will support these.
103 dnl Do not add any here that cannot be supported by all simulators.
104 dnl Do not add similar but different options to a particular simulator,
105 dnl all shall eventually behave the same way.
108 dnl We don't use automake, but we still want to support
109 dnl --enable-maintainer-mode.
113 dnl --enable-sim-debug is for developers of the simulator
114 dnl the allowable values are work-in-progress
115 AC_MSG_CHECKING([for sim debug setting])
117 AC_ARG_ENABLE(sim-debug,
118 [AS_HELP_STRING([--enable-sim-debug=opts],
119 [Enable debugging flags (for developers of the sim itself)])],
120 [case "${enableval}" in
123 *) sim_debug="($enableval)";;
125 if test "$sim_debug" != "0"; then
126 AC_DEFINE_UNQUOTED([DEBUG], [$sim_debug], [Sim debug setting])
128 AC_DEFINE_UNQUOTED([WITH_DEBUG], [$sim_debug], [Sim debug setting])
129 AC_MSG_RESULT($sim_debug)
132 dnl --enable-sim-stdio is for users of the simulator
133 dnl It determines if IO from the program is routed through STDIO (buffered)
134 AC_MSG_CHECKING([for sim stdio debug behavior])
136 AC_ARG_ENABLE(sim-stdio,
137 [AS_HELP_STRING([--enable-sim-stdio],
138 [Specify whether to use stdio for console input/output])],
139 [case "${enableval}" in
140 yes) sim_stdio="DO_USE_STDIO";;
141 no) sim_stdio="DONT_USE_STDIO";;
142 *) AC_MSG_ERROR([Unknown value $enableval passed to --enable-sim-stdio]);;
144 AC_DEFINE_UNQUOTED([WITH_STDIO], [$sim_stdio], [How to route I/O])
145 AC_MSG_RESULT($sim_stdio)
148 dnl --enable-sim-trace is for users of the simulator
149 dnl The argument is either a bitmask of things to enable [exactly what is
150 dnl up to the simulator], or is a comma separated list of names of tracing
151 dnl elements to enable. The latter is only supported on simulators that
152 dnl use WITH_TRACE. Default to all tracing but internal debug.
153 AC_MSG_CHECKING([for sim trace settings])
154 sim_trace="~TRACE_debug"
155 AC_ARG_ENABLE(sim-trace,
156 [AS_HELP_STRING([--enable-sim-trace=opts],
157 [Enable tracing of simulated programs])],
158 [case "${enableval}" in
159 yes) sim_trace="-1";;
162 sim_trace="'(${enableval})'";;
165 for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
166 if test x"$sim_trace" = x; then
167 sim_trace="(TRACE_$x"
169 sim_trace="${sim_trace}|TRACE_$x"
172 sim_trace="$sim_trace)" ;;
174 AC_DEFINE_UNQUOTED([WITH_TRACE], [$sim_trace], [Sim trace settings])
175 AC_MSG_RESULT($sim_trace)
178 dnl --enable-sim-profile
179 dnl The argument is either a bitmask of things to enable [exactly what is
180 dnl up to the simulator], or is a comma separated list of names of profiling
181 dnl elements to enable. The latter is only supported on simulators that
182 dnl use WITH_PROFILE.
183 AC_MSG_CHECKING([for sim profile settings])
186 AC_ARG_ENABLE(sim-profile,
187 [AS_HELP_STRING([--enable-sim-profile=opts], [Enable profiling flags])],
188 [case "${enableval}" in
189 yes) profile="1" sim_profile="-1";;
190 no) profile="0" sim_profile="0";;
192 profile="(${enableval})" sim_profile="(${enableval})";;
196 for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
197 if test x"$sim_profile" = x; then
198 sim_profile="(PROFILE_$x"
200 sim_profile="${sim_profile}|PROFILE_$x"
203 sim_profile="$sim_profile)" ;;
205 AC_DEFINE_UNQUOTED([PROFILE], [$profile], [Sim profile settings])
206 AC_DEFINE_UNQUOTED([WITH_PROFILE], [$sim_profile], [Sim profile settings])
207 AC_MSG_RESULT($sim_profile)
211 SIM_AC_OPTION_ENVIRONMENT
214 ACX_PKGVERSION([SIM])
215 ACX_BUGURL([https://www.gnu.org/software/gdb/bugs/])
216 AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
217 AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
219 dnl Types used by common code
222 dnl Detect exe extension
224 ]) dnl End of SIM_AC_COMMON