Do not check for sys/time.h or sys/times.h
[binutils-gdb.git] / sim / m4 / sim_ac_common.m4
1 dnl Copyright (C) 1997-2021 Free Software Foundation, Inc.
2 dnl
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.
7 dnl
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.
12 dnl
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/>.
15 dnl
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.
20 dnl
21 dnl See README-HACKING for more details.
22 AC_DEFUN([SIM_AC_COMMON],
23 [dnl
24 SIM_AC_TOOLCHAIN
25 AC_CONFIG_HEADERS([config.h:config.in])
26
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
29 # is defined.
30 PACKAGE=sim
31 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
32 AC_SUBST(PACKAGE)
33
34 # Dependency checking.
35 ZW_CREATE_DEPDIR
36 ZW_PROG_COMPILER_DEPENDENCIES([CC])
37
38 dnl We don't use gettext, but bfd does. So we do the appropriate checks
39 dnl to see if there are intl libraries we should link against.
40 ALL_LINGUAS=
41 ZW_GNU_GETTEXT_SISTER_DIR(../../intl)
42
43 # Check for common headers.
44 # NB: You can assume C11 headers exist.
45 AC_CHECK_HEADERS_ONCE(m4_flatten([
46 dlfcn.h
47 fcntl.h
48 fpu_control.h
49 unistd.h
50 sys/mman.h
51 sys/resource.h
52 sys/stat.h
53 ]))
54 AC_CHECK_FUNCS_ONCE(m4_flatten([
55 __setfpucw
56 ftruncate
57 getrusage
58 lstat
59 mmap
60 munmap
61 posix_fallocate
62 sigaction
63 time
64 truncate
65 ]))
66 AC_CHECK_MEMBERS([[struct stat.st_dev], [struct stat.st_ino],
67 [struct stat.st_mode], [struct stat.st_nlink], [struct stat.st_uid],
68 [struct stat.st_gid], [struct stat.st_rdev], [struct stat.st_size],
69 [struct stat.st_blksize], [struct stat.st_blocks], [struct stat.st_atime],
70 [struct stat.st_mtime], [struct stat.st_ctime]], [], [],
71 [[#ifdef HAVE_SYS_TYPES_H
72 #include <sys/types.h>
73 #endif
74 #ifdef HAVE_SYS_STAT_H
75 #include <sys/stat.h>
76 #endif]])
77 AC_CHECK_TYPES(socklen_t, [], [],
78 [#include <sys/types.h>
79 #include <sys/socket.h>
80 ])
81
82 # Check for socket libraries
83 AC_CHECK_LIB(socket, bind)
84 AC_CHECK_LIB(nsl, gethostbyname)
85
86 # BFD conditionally uses zlib, so we must link it in if libbfd does, by
87 # using the same condition.
88 AM_ZLIB
89
90 # BFD uses libdl when when plugins enabled.
91 AC_PLUGINS
92 AM_CONDITIONAL(PLUGINS, test "$plugins" = yes)
93 LT_INIT([dlopen])
94 AC_SUBST(lt_cv_dlopen_libs)
95
96 dnl Standard (and optional) simulator options.
97 dnl Eventually all simulators will support these.
98 dnl Do not add any here that cannot be supported by all simulators.
99 dnl Do not add similar but different options to a particular simulator,
100 dnl all shall eventually behave the same way.
101
102
103 dnl We don't use automake, but we still want to support
104 dnl --enable-maintainer-mode.
105 AM_MAINTAINER_MODE
106
107
108 dnl --enable-sim-debug is for developers of the simulator
109 dnl the allowable values are work-in-progress
110 AC_MSG_CHECKING([for sim debug setting])
111 sim_debug="0"
112 AC_ARG_ENABLE(sim-debug,
113 [AS_HELP_STRING([--enable-sim-debug=opts],
114 [Enable debugging flags (for developers of the sim itself)])],
115 [case "${enableval}" in
116 yes) sim_debug="7";;
117 no) sim_debug="0";;
118 *) sim_debug="($enableval)";;
119 esac])dnl
120 if test "$sim_debug" != "0"; then
121 AC_DEFINE_UNQUOTED([DEBUG], [$sim_debug], [Sim debug setting])
122 fi
123 AC_DEFINE_UNQUOTED([WITH_DEBUG], [$sim_debug], [Sim debug setting])
124 AC_MSG_RESULT($sim_debug)
125
126
127 dnl --enable-sim-stdio is for users of the simulator
128 dnl It determines if IO from the program is routed through STDIO (buffered)
129 AC_MSG_CHECKING([for sim stdio debug behavior])
130 sim_stdio="0"
131 AC_ARG_ENABLE(sim-stdio,
132 [AS_HELP_STRING([--enable-sim-stdio],
133 [Specify whether to use stdio for console input/output])],
134 [case "${enableval}" in
135 yes) sim_stdio="DO_USE_STDIO";;
136 no) sim_stdio="DONT_USE_STDIO";;
137 *) AC_MSG_ERROR([Unknown value $enableval passed to --enable-sim-stdio]);;
138 esac])dnl
139 AC_DEFINE_UNQUOTED([WITH_STDIO], [$sim_stdio], [How to route I/O])
140 AC_MSG_RESULT($sim_stdio)
141
142
143 dnl --enable-sim-trace is for users of the simulator
144 dnl The argument is either a bitmask of things to enable [exactly what is
145 dnl up to the simulator], or is a comma separated list of names of tracing
146 dnl elements to enable. The latter is only supported on simulators that
147 dnl use WITH_TRACE. Default to all tracing but internal debug.
148 AC_MSG_CHECKING([for sim trace settings])
149 sim_trace="~TRACE_debug"
150 AC_ARG_ENABLE(sim-trace,
151 [AS_HELP_STRING([--enable-sim-trace=opts],
152 [Enable tracing of simulated programs])],
153 [case "${enableval}" in
154 yes) sim_trace="-1";;
155 no) sim_trace="0";;
156 [[-0-9]]*)
157 sim_trace="'(${enableval})'";;
158 [[[:lower:]]]*)
159 sim_trace=""
160 for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
161 if test x"$sim_trace" = x; then
162 sim_trace="(TRACE_$x"
163 else
164 sim_trace="${sim_trace}|TRACE_$x"
165 fi
166 done
167 sim_trace="$sim_trace)" ;;
168 esac])dnl
169 AC_DEFINE_UNQUOTED([WITH_TRACE], [$sim_trace], [Sim trace settings])
170 AC_MSG_RESULT($sim_trace)
171
172
173 dnl --enable-sim-profile
174 dnl The argument is either a bitmask of things to enable [exactly what is
175 dnl up to the simulator], or is a comma separated list of names of profiling
176 dnl elements to enable. The latter is only supported on simulators that
177 dnl use WITH_PROFILE.
178 AC_MSG_CHECKING([for sim profile settings])
179 profile="1"
180 sim_profile="-1"
181 AC_ARG_ENABLE(sim-profile,
182 [AS_HELP_STRING([--enable-sim-profile=opts], [Enable profiling flags])],
183 [case "${enableval}" in
184 yes) profile="1" sim_profile="-1";;
185 no) profile="0" sim_profile="0";;
186 [[-0-9]]*)
187 profile="(${enableval})" sim_profile="(${enableval})";;
188 [[a-z]]*)
189 profile="1"
190 sim_profile=""
191 for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
192 if test x"$sim_profile" = x; then
193 sim_profile="(PROFILE_$x"
194 else
195 sim_profile="${sim_profile}|PROFILE_$x"
196 fi
197 done
198 sim_profile="$sim_profile)" ;;
199 esac])dnl
200 AC_DEFINE_UNQUOTED([PROFILE], [$profile], [Sim profile settings])
201 AC_DEFINE_UNQUOTED([WITH_PROFILE], [$sim_profile], [Sim profile settings])
202 AC_MSG_RESULT($sim_profile)
203
204
205 SIM_AC_OPTION_ASSERT
206 SIM_AC_OPTION_ENVIRONMENT
207 SIM_AC_OPTION_INLINE
208
209 ACX_PKGVERSION([SIM])
210 ACX_BUGURL([https://www.gnu.org/software/gdb/bugs/])
211 AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
212 AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
213
214 dnl Types used by common code
215 AC_TYPE_SIGNAL
216
217 dnl Detect exe extension
218 AC_EXEEXT
219 ]) dnl End of SIM_AC_COMMON