1# This file contains common code used by all simulators. 2# 3# SIM_AC_COMMON invokes AC macros used by all simulators and by the common 4# directory. It is intended to be invoked before any target specific stuff. 5# SIM_AC_OUTPUT is a cover function to AC_OUTPUT to generate the Makefile. 6# It is intended to be invoked last. 7# 8# The simulator's configure.in should look like: 9# 10# dnl Process this file with autoconf to produce a configure script. 11# sinclude(../common/aclocal.m4) 12# AC_PREREQ(2.5)dnl 13# AC_INIT(Makefile.in) 14# 15# SIM_AC_COMMON 16# 17# ... target specific stuff ... 18# 19# SIM_AC_OUTPUT 20 21AC_DEFUN(SIM_AC_COMMON, 22[ 23# autoconf.info says this should be called right after AC_INIT. 24AC_CONFIG_HEADER(ifelse([$1],,config.h,[$1]):config.in) 25 26AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../..) 27AC_CANONICAL_SYSTEM 28AC_ARG_PROGRAM 29AC_PROG_CC 30AC_PROG_INSTALL 31 32# Put a plausible default for CC_FOR_BUILD in Makefile. 33if test "x$cross_compiling" = "xno"; then 34 CC_FOR_BUILD='$(CC)' 35else 36 CC_FOR_BUILD=gcc 37fi 38AC_SUBST(CC_FOR_BUILD) 39 40AC_SUBST(CFLAGS) 41AC_SUBST(HDEFINES) 42AR=${AR-ar} 43AC_SUBST(AR) 44AC_PROG_RANLIB 45 46dnl We don't use gettext, but bfd does. So we do the appropriate checks 47dnl to see if there are intl libraries we should link against. 48ALL_LINGUAS= 49CY_GNU_GETTEXT 50 51# Check for common headers. 52# FIXME: Seems to me this can cause problems for i386-windows hosts. 53# At one point there were hardcoded AC_DEFINE's if ${host} = i386-*-windows*. 54AC_CHECK_HEADERS(stdlib.h string.h strings.h unistd.h time.h) 55AC_CHECK_HEADERS(sys/time.h sys/resource.h) 56AC_CHECK_HEADERS(fcntl.h fpu_control.h) 57AC_CHECK_HEADERS(dlfcn.h errno.h sys/stat.h) 58AC_CHECK_FUNCS(getrusage time sigaction __setfpucw) 59 60# Check for socket libraries 61AC_CHECK_LIB(socket, bind) 62AC_CHECK_LIB(nsl, gethostbyname) 63 64. ${srcdir}/../../bfd/configure.host 65 66dnl Standard (and optional) simulator options. 67dnl Eventually all simulators will support these. 68dnl Do not add any here that cannot be supported by all simulators. 69dnl Do not add similar but different options to a particular simulator, 70dnl all shall eventually behave the same way. 71 72 73dnl We don't use automake, but we still want to support 74dnl --enable-maintainer-mode. 75USE_MAINTAINER_MODE=no 76AC_ARG_ENABLE(maintainer-mode, 77[ --enable-maintainer-mode Enable developer functionality.], 78[case "${enableval}" in 79 yes) MAINT="" USE_MAINTAINER_MODE=yes ;; 80 no) MAINT="#" ;; 81 *) AC_MSG_ERROR("--enable-maintainer-mode does not take a value"); MAINT="#" ;; 82esac 83if test x"$silent" != x"yes" && test x"$MAINT" = x""; then 84 echo "Setting maintainer mode" 6>&1 85fi],[MAINT="#"])dnl 86AC_SUBST(MAINT) 87 88 89dnl This is a generic option to enable special byte swapping 90dnl insns on *any* cpu. 91AC_ARG_ENABLE(sim-bswap, 92[ --enable-sim-bswap Use Host specific BSWAP instruction.], 93[case "${enableval}" in 94 yes) sim_bswap="-DWITH_BSWAP=1 -DUSE_BSWAP=1";; 95 no) sim_bswap="-DWITH_BSWAP=0";; 96 *) AC_MSG_ERROR("--enable-sim-bswap does not take a value"); sim_bswap="";; 97esac 98if test x"$silent" != x"yes" && test x"$sim_bswap" != x""; then 99 echo "Setting bswap flags = $sim_bswap" 6>&1 100fi],[sim_bswap=""])dnl 101AC_SUBST(sim_bswap) 102 103 104AC_ARG_ENABLE(sim-cflags, 105[ --enable-sim-cflags=opts Extra CFLAGS for use in building simulator], 106[case "${enableval}" in 107 yes) sim_cflags="-O2 -fomit-frame-pointer";; 108 trace) AC_MSG_ERROR("Please use --enable-sim-debug instead."); sim_cflags="";; 109 no) sim_cflags="";; 110 *) sim_cflags=`echo "${enableval}" | sed -e "s/,/ /g"`;; 111esac 112if test x"$silent" != x"yes" && test x"$sim_cflags" != x""; then 113 echo "Setting sim cflags = $sim_cflags" 6>&1 114fi],[sim_cflags=""])dnl 115AC_SUBST(sim_cflags) 116 117 118dnl --enable-sim-debug is for developers of the simulator 119dnl the allowable values are work-in-progress 120AC_ARG_ENABLE(sim-debug, 121[ --enable-sim-debug=opts Enable debugging flags], 122[case "${enableval}" in 123 yes) sim_debug="-DDEBUG=7 -DWITH_DEBUG=7";; 124 no) sim_debug="-DDEBUG=0 -DWITH_DEBUG=0";; 125 *) sim_debug="-DDEBUG='(${enableval})' -DWITH_DEBUG='(${enableval})'";; 126esac 127if test x"$silent" != x"yes" && test x"$sim_debug" != x""; then 128 echo "Setting sim debug = $sim_debug" 6>&1 129fi],[sim_debug=""])dnl 130AC_SUBST(sim_debug) 131 132 133dnl --enable-sim-stdio is for users of the simulator 134dnl It determines if IO from the program is routed through STDIO (buffered) 135AC_ARG_ENABLE(sim-stdio, 136[ --enable-sim-stdio Specify whether to use stdio for console input/output.], 137[case "${enableval}" in 138 yes) sim_stdio="-DWITH_STDIO=DO_USE_STDIO";; 139 no) sim_stdio="-DWITH_STDIO=DONT_USE_STDIO";; 140 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-stdio"); sim_stdio="";; 141esac 142if test x"$silent" != x"yes" && test x"$sim_stdio" != x""; then 143 echo "Setting stdio flags = $sim_stdio" 6>&1 144fi],[sim_stdio=""])dnl 145AC_SUBST(sim_stdio) 146 147 148dnl --enable-sim-trace is for users of the simulator 149dnl The argument is either a bitmask of things to enable [exactly what is 150dnl up to the simulator], or is a comma separated list of names of tracing 151dnl elements to enable. The latter is only supported on simulators that 152dnl use WITH_TRACE. 153AC_ARG_ENABLE(sim-trace, 154[ --enable-sim-trace=opts Enable tracing flags], 155[case "${enableval}" in 156 yes) sim_trace="-DTRACE=1 -DWITH_TRACE=-1";; 157 no) sim_trace="-DTRACE=0 -DWITH_TRACE=0";; 158 [[-0-9]]*) 159 sim_trace="-DTRACE='(${enableval})' -DWITH_TRACE='(${enableval})'";; 160 [[a-z]]*) 161 sim_trace="" 162 for x in `echo "$enableval" | sed -e "s/,/ /g"`; do 163 if test x"$sim_trace" = x; then 164 sim_trace="-DWITH_TRACE='(TRACE_$x" 165 else 166 sim_trace="${sim_trace}|TRACE_$x" 167 fi 168 done 169 sim_trace="$sim_trace)'" ;; 170esac 171if test x"$silent" != x"yes" && test x"$sim_trace" != x""; then 172 echo "Setting sim trace = $sim_trace" 6>&1 173fi],[sim_trace=""])dnl 174AC_SUBST(sim_trace) 175 176 177dnl --enable-sim-profile 178dnl The argument is either a bitmask of things to enable [exactly what is 179dnl up to the simulator], or is a comma separated list of names of profiling 180dnl elements to enable. The latter is only supported on simulators that 181dnl use WITH_PROFILE. 182AC_ARG_ENABLE(sim-profile, 183[ --enable-sim-profile=opts Enable profiling flags], 184[case "${enableval}" in 185 yes) sim_profile="-DPROFILE=1 -DWITH_PROFILE=-1";; 186 no) sim_profile="-DPROFILE=0 -DWITH_PROFILE=0";; 187 [[-0-9]]*) 188 sim_profile="-DPROFILE='(${enableval})' -DWITH_PROFILE='(${enableval})'";; 189 [[a-z]]*) 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="-DWITH_PROFILE='(PROFILE_$x" 194 else 195 sim_profile="${sim_profile}|PROFILE_$x" 196 fi 197 done 198 sim_profile="$sim_profile)'" ;; 199esac 200if test x"$silent" != x"yes" && test x"$sim_profile" != x""; then 201 echo "Setting sim profile = $sim_profile" 6>&1 202fi],[sim_profile="-DPROFILE=1 -DWITH_PROFILE=-1"])dnl 203AC_SUBST(sim_profile) 204 205 206dnl Types used by common code 207AC_TYPE_SIGNAL 208 209dnl Detect exe extension 210AC_EXEEXT 211 212dnl These are available to append to as desired. 213sim_link_files= 214sim_link_links= 215 216dnl Create tconfig.h either from simulator's tconfig.in or default one 217dnl in common. 218sim_link_links=tconfig.h 219if test -f ${srcdir}/tconfig.in 220then 221 sim_link_files=tconfig.in 222else 223 sim_link_files=../common/tconfig.in 224fi 225 226# targ-vals.def points to the libc macro description file. 227case "${target}" in 228*-*-*) TARG_VALS_DEF=../common/nltvals.def ;; 229esac 230sim_link_files="${sim_link_files} ${TARG_VALS_DEF}" 231sim_link_links="${sim_link_links} targ-vals.def" 232 233]) dnl End of SIM_AC_COMMON 234 235 236dnl Additional SIM options that can (optionally) be configured 237dnl For optional simulator options, a macro SIM_AC_OPTION_* is defined. 238dnl Simulators that wish to use the relevant option specify the macro 239dnl in the simulator specific configure.in file between the SIM_AC_COMMON 240dnl and SIM_AC_OUTPUT lines. 241 242 243dnl Specify the running environment. 244dnl If the simulator invokes this in its configure.in then without this option 245dnl the default is the user environment and all are runtime selectable. 246dnl If the simulator doesn't invoke this, only the user environment is 247dnl supported. 248dnl ??? Until there is demonstrable value in doing something more complicated, 249dnl let's not. 250AC_DEFUN(SIM_AC_OPTION_ENVIRONMENT, 251[ 252AC_ARG_ENABLE(sim-environment, 253[ --enable-sim-environment=environment Specify mixed, user, virtual or operating environment.], 254[case "${enableval}" in 255 all | ALL) sim_environment="-DWITH_ENVIRONMENT=ALL_ENVIRONMENT";; 256 user | USER) sim_environment="-DWITH_ENVIRONMENT=USER_ENVIRONMENT";; 257 virtual | VIRTUAL) sim_environment="-DWITH_ENVIRONMENT=VIRTUAL_ENVIRONMENT";; 258 operating | OPERATING) sim_environment="-DWITH_ENVIRONMENT=OPERATING_ENVIRONMENT";; 259 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-environment"); 260 sim_environment="";; 261esac 262if test x"$silent" != x"yes" && test x"$sim_environment" != x""; then 263 echo "Setting sim environment = $sim_environment" 6>&1 264fi], 265[sim_environment="-DWITH_ENVIRONMENT=ALL_ENVIRONMENT"])dnl 266]) 267AC_SUBST(sim_environment) 268 269 270dnl Specify the alignment restrictions of the target architecture. 271dnl Without this option all possible alignment restrictions are accommodated. 272dnl arg[1] is hardwired target alignment 273dnl arg[2] is default target alignment 274AC_DEFUN(SIM_AC_OPTION_ALIGNMENT, 275wire_alignment="[$1]" 276default_alignment="[$2]" 277[ 278AC_ARG_ENABLE(sim-alignment, 279[ --enable-sim-alignment=align Specify strict, nonstrict or forced alignment of memory accesses.], 280[case "${enableval}" in 281 strict | STRICT) sim_alignment="-DWITH_ALIGNMENT=STRICT_ALIGNMENT";; 282 nonstrict | NONSTRICT) sim_alignment="-DWITH_ALIGNMENT=NONSTRICT_ALIGNMENT";; 283 forced | FORCED) sim_alignment="-DWITH_ALIGNMENT=FORCED_ALIGNMENT";; 284 yes) if test x"$wire_alignment" != x; then 285 sim_alignment="-DWITH_ALIGNMENT=${wire_alignment}" 286 else 287 if test x"$default_alignment" != x; then 288 sim_alignment="-DWITH_ALIGNMENT=${default_alignment}" 289 else 290 echo "No hard-wired alignment for target $target" 1>&6 291 sim_alignment="-DWITH_ALIGNMENT=0" 292 fi 293 fi;; 294 no) if test x"$default_alignment" != x; then 295 sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${default_alignment}" 296 else 297 if test x"$wire_alignment" != x; then 298 sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${wire_alignment}" 299 else 300 echo "No default alignment for target $target" 1>&6 301 sim_alignment="-DWITH_DEFAULT_ALIGNMENT=0" 302 fi 303 fi;; 304 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-alignment"); sim_alignment="";; 305esac 306if test x"$silent" != x"yes" && test x"$sim_alignment" != x""; then 307 echo "Setting alignment flags = $sim_alignment" 6>&1 308fi], 309[if test x"$default_alignment" != x; then 310 sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${default_alignment}" 311else 312 if test x"$wire_alignment" != x; then 313 sim_alignment="-DWITH_ALIGNMENT=${wire_alignment}" 314 else 315 sim_alignment= 316 fi 317fi])dnl 318])dnl 319AC_SUBST(sim_alignment) 320 321 322dnl Conditionally compile in assertion statements. 323AC_DEFUN(SIM_AC_OPTION_ASSERT, 324[ 325AC_ARG_ENABLE(sim-assert, 326[ --enable-sim-assert Specify whether to perform random assertions.], 327[case "${enableval}" in 328 yes) sim_assert="-DWITH_ASSERT=1";; 329 no) sim_assert="-DWITH_ASSERT=0";; 330 *) AC_MSG_ERROR("--enable-sim-assert does not take a value"); sim_assert="";; 331esac 332if test x"$silent" != x"yes" && test x"$sim_assert" != x""; then 333 echo "Setting assert flags = $sim_assert" 6>&1 334fi],[sim_assert=""])dnl 335]) 336AC_SUBST(sim_assert) 337 338 339 340dnl --enable-sim-bitsize is for developers of the simulator 341dnl It specifies the number of BITS in the target. 342dnl arg[1] is the number of bits in a word 343dnl arg[2] is the number assigned to the most significant bit 344dnl arg[3] is the number of bits in an address 345dnl arg[4] is the number of bits in an OpenFirmware cell. 346dnl FIXME: this information should be obtained from bfd/archure 347AC_DEFUN(SIM_AC_OPTION_BITSIZE, 348wire_word_bitsize="[$1]" 349wire_word_msb="[$2]" 350wire_address_bitsize="[$3]" 351wire_cell_bitsize="[$4]" 352[AC_ARG_ENABLE(sim-bitsize, 353[ --enable-sim-bitsize=N Specify target bitsize (32 or 64).], 354[sim_bitsize= 355case "${enableval}" in 356 64,63 | 64,63,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=64 -DWITH_TARGET_WORD_MSB=63";; 357 32,31 | 32,31,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=31";; 358 64,0 | 64,0,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=0";; 359 32,0 | 64,0,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=0";; 360 32) if test x"$wire_word_msb" != x -a x"$wire_word_msb" != x0; then 361 sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=31" 362 else 363 sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=0" 364 fi ;; 365 64) if test x"$wire_word_msb" != x -a x"$wire_word_msb" != x0; then 366 sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=64 -DWITH_TARGET_WORD_MSB=63" 367 else 368 sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=64 -DWITH_TARGET_WORD_MSB=0" 369 fi ;; 370 *) AC_MSG_ERROR("--enable-sim-bitsize was given $enableval. Expected 32 or 64") ;; 371esac 372# address bitsize 373tmp=`echo "${enableval}" | sed -e "s/^[[0-9]]*,*[[0-9]]*,*//"` 374case x"${tmp}" in 375 x ) ;; 376 x32 | x32,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_ADDRESS_BITSIZE=32" ;; 377 x64 | x64,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_ADDRESS_BITSIZE=64" ;; 378 * ) AC_MSG_ERROR("--enable-sim-bitsize was given address size $enableval. Expected 32 or 64") ;; 379esac 380# cell bitsize 381tmp=`echo "${enableval}" | sed -e "s/^[[0-9]]*,*[[0-9*]]*,*[[0-9]]*,*//"` 382case x"${tmp}" in 383 x ) ;; 384 x32 | x32,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_CELL_BITSIZE=32" ;; 385 x64 | x64,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_CELL_BITSIZE=64" ;; 386 * ) AC_MSG_ERROR("--enable-sim-bitsize was given cell size $enableval. Expected 32 or 64") ;; 387esac 388if test x"$silent" != x"yes" && test x"$sim_bitsize" != x""; then 389 echo "Setting bitsize flags = $sim_bitsize" 6>&1 390fi], 391[sim_bitsize="" 392if test x"$wire_word_bitsize" != x; then 393 sim_bitsize="$sim_bitsize -DWITH_TARGET_WORD_BITSIZE=$wire_word_bitsize" 394fi 395if test x"$wire_word_msb" != x; then 396 sim_bitsize="$sim_bitsize -DWITH_TARGET_WORD_MSB=$wire_word_msb" 397fi 398if test x"$wire_address_bitsize" != x; then 399 sim_bitsize="$sim_bitsize -DWITH_TARGET_ADDRESS_BITSIZE=$wire_address_bitsize" 400fi 401if test x"$wire_cell_bitsize" != x; then 402 sim_bitsize="$sim_bitsize -DWITH_TARGET_CELL_BITSIZE=$wire_cell_bitsize" 403fi])dnl 404]) 405AC_SUBST(sim_bitsize) 406 407 408 409dnl --enable-sim-endian={yes,no,big,little} is for simulators 410dnl that support both big and little endian targets. 411dnl arg[1] is hardwired target endianness. 412dnl arg[2] is default target endianness. 413AC_DEFUN(SIM_AC_OPTION_ENDIAN, 414[ 415wire_endian="[$1]" 416default_endian="[$2]" 417AC_ARG_ENABLE(sim-endian, 418[ --enable-sim-endian=endian Specify target byte endian orientation.], 419[case "${enableval}" in 420 b*|B*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BIG_ENDIAN";; 421 l*|L*) sim_endian="-DWITH_TARGET_BYTE_ORDER=LITTLE_ENDIAN";; 422 yes) if test x"$wire_endian" != x; then 423 sim_endian="-DWITH_TARGET_BYTE_ORDER=${wire_endian}" 424 else 425 if test x"$default_endian" != x; then 426 sim_endian="-DWITH_TARGET_BYTE_ORDER=${default_endian}" 427 else 428 echo "No hard-wired endian for target $target" 1>&6 429 sim_endian="-DWITH_TARGET_BYTE_ORDER=0" 430 fi 431 fi;; 432 no) if test x"$default_endian" != x; then 433 sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=${default_endian}" 434 else 435 if test x"$wire_endian" != x; then 436 sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=${wire_endian}" 437 else 438 echo "No default endian for target $target" 1>&6 439 sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=0" 440 fi 441 fi;; 442 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-endian"); sim_endian="";; 443esac 444if test x"$silent" != x"yes" && test x"$sim_endian" != x""; then 445 echo "Setting endian flags = $sim_endian" 6>&1 446fi], 447[if test x"$default_endian" != x; then 448 sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=${default_endian}" 449else 450 if test x"$wire_endian" != x; then 451 sim_endian="-DWITH_TARGET_BYTE_ORDER=${wire_endian}" 452 else 453 sim_endian= 454 fi 455fi])dnl 456]) 457AC_SUBST(sim_endian) 458 459 460dnl --enable-sim-hostendian is for users of the simulator when 461dnl they find that AC_C_BIGENDIAN does not function correctly 462dnl (for instance in a canadian cross) 463AC_DEFUN(SIM_AC_OPTION_HOSTENDIAN, 464[ 465AC_ARG_ENABLE(sim-hostendian, 466[ --enable-sim-hostendian=end Specify host byte endian orientation.], 467[case "${enableval}" in 468 no) sim_hostendian="-DWITH_HOST_BYTE_ORDER=0";; 469 b*|B*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN";; 470 l*|L*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN";; 471 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-hostendian"); sim_hostendian="";; 472esac 473if test x"$silent" != x"yes" && test x"$sim_hostendian" != x""; then 474 echo "Setting hostendian flags = $sim_hostendian" 6>&1 475fi],[ 476if test "x$cross_compiling" = "xno"; then 477 AC_C_BIGENDIAN 478 if test $ac_cv_c_bigendian = yes; then 479 sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN" 480 else 481 sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN" 482 fi 483else 484 sim_hostendian="-DWITH_HOST_BYTE_ORDER=0" 485fi])dnl 486]) 487AC_SUBST(sim_hostendian) 488 489 490dnl --enable-sim-float is for developers of the simulator 491dnl It specifies the presence of hardware floating point 492dnl And optionally the bitsize of the floating point register. 493dnl arg[1] specifies the presence (or absence) of floating point hardware 494dnl arg[2] specifies the number of bits in a floating point register 495AC_DEFUN(SIM_AC_OPTION_FLOAT, 496[ 497default_sim_float="[$1]" 498default_sim_float_bitsize="[$2]" 499AC_ARG_ENABLE(sim-float, 500[ --enable-sim-float Specify that the target processor has floating point hardware.], 501[case "${enableval}" in 502 yes | hard) sim_float="-DWITH_FLOATING_POINT=HARD_FLOATING_POINT";; 503 no | soft) sim_float="-DWITH_FLOATING_POINT=SOFT_FLOATING_POINT";; 504 32) sim_float="-DWITH_FLOATING_POINT=HARD_FLOATING_POINT -DWITH_TARGET_FLOATING_POINT_BITSIZE=32";; 505 64) sim_float="-DWITH_FLOATING_POINT=HARD_FLOATING_POINT -DWITH_TARGET_FLOATING_POINT_BITSIZE=64";; 506 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-float"); sim_float="";; 507esac 508if test x"$silent" != x"yes" && test x"$sim_float" != x""; then 509 echo "Setting float flags = $sim_float" 6>&1 510fi],[ 511sim_float= 512if test x"${default_sim_float}" != x""; then 513 sim_float="-DWITH_FLOATING_POINT=${default_sim_float}" 514fi 515if test x"${default_sim_float_bitsize}" != x""; then 516 sim_float="$sim_float -DWITH_TARGET_FLOATING_POINT_BITSIZE=${default_sim_float_bitsize}" 517fi 518])dnl 519]) 520AC_SUBST(sim_float) 521 522 523dnl The argument is the default cache size if none is specified. 524AC_DEFUN(SIM_AC_OPTION_SCACHE, 525[ 526default_sim_scache="ifelse([$1],,0,[$1])" 527AC_ARG_ENABLE(sim-scache, 528[ --enable-sim-scache=size Specify simulator execution cache size.], 529[case "${enableval}" in 530 yes) sim_scache="-DWITH_SCACHE=${default_sim_scache}";; 531 no) sim_scache="-DWITH_SCACHE=0" ;; 532 [[0-9]]*) sim_scache="-DWITH_SCACHE=${enableval}";; 533 *) AC_MSG_ERROR("Bad value $enableval passed to --enable-sim-scache"); 534 sim_scache="";; 535esac 536if test x"$silent" != x"yes" && test x"$sim_scache" != x""; then 537 echo "Setting scache size = $sim_scache" 6>&1 538fi],[sim_scache="-DWITH_SCACHE=${default_sim_scache}"]) 539]) 540AC_SUBST(sim_scache) 541 542 543dnl The argument is the default model if none is specified. 544AC_DEFUN(SIM_AC_OPTION_DEFAULT_MODEL, 545[ 546default_sim_default_model="ifelse([$1],,0,[$1])" 547AC_ARG_ENABLE(sim-default-model, 548[ --enable-sim-default-model=model Specify default model to simulate.], 549[case "${enableval}" in 550 yes|no) AC_MSG_ERROR("Missing argument to --enable-sim-default-model");; 551 *) sim_default_model="-DWITH_DEFAULT_MODEL='\"${enableval}\"'";; 552esac 553if test x"$silent" != x"yes" && test x"$sim_default_model" != x""; then 554 echo "Setting default model = $sim_default_model" 6>&1 555fi],[sim_default_model="-DWITH_DEFAULT_MODEL='\"${default_sim_default_model}\"'"]) 556]) 557AC_SUBST(sim_default_model) 558 559 560dnl --enable-sim-hardware is for users of the simulator 561dnl arg[1] Enable sim-hw by default? ("yes" or "no") 562dnl arg[2] is a space separated list of devices that override the defaults 563dnl arg[3] is a space separated list of extra target specific devices. 564AC_DEFUN(SIM_AC_OPTION_HARDWARE, 565[ 566if test x"[$1]" = x"yes"; then 567 sim_hw_p=yes 568else 569 sim_hw_p=no 570fi 571if test "[$2]"; then 572 hardware="core pal glue" 573else 574 hardware="core pal glue [$3]" 575fi 576sim_hw_cflags="-DWITH_HW=1" 577sim_hw="$hardware" 578sim_hw_objs="\$(SIM_COMMON_HW_OBJS) `echo $sim_hw | sed -e 's/\([[^ ]][[^ ]]*\)/dv-\1.o/g'`" 579AC_ARG_ENABLE(sim-hardware, 580[ --enable-sim-hardware=LIST Specify the hardware to be included in the build.], 581[ 582case "${enableval}" in 583 yes) sim_hw_p=yes;; 584 no) sim_hw_p=no;; 585 ,*) sim_hw_p=yes; hardware="${hardware} `echo ${enableval} | sed -e 's/,/ /'`";; 586 *,) sim_hw_p=yes; hardware="`echo ${enableval} | sed -e 's/,/ /'` ${hardware}";; 587 *) sim_hw_p=yes; hardware="`echo ${enableval} | sed -e 's/,/ /'`"'';; 588esac 589if test "$sim_hw_p" != yes; then 590 sim_hw_objs= 591 sim_hw_cflags="-DWITH_HW=0" 592 sim_hw= 593else 594 sim_hw_cflags="-DWITH_HW=1" 595 # remove duplicates 596 sim_hw="" 597 sim_hw_objs="\$(SIM_COMMON_HW_OBJS)" 598 for i in x $hardware ; do 599 case " $f " in 600 x) ;; 601 *" $i "*) ;; 602 *) sim_hw="$sim_hw $i" ; sim_hw_objs="$sim_hw_objs dv-$i.o";; 603 esac 604 done 605fi 606if test x"$silent" != x"yes" && test "$sim_hw_p" = "yes"; then 607 echo "Setting hardware to $sim_hw_cflags, $sim_hw, $sim_hw_objs" 608fi],[ 609if test "$sim_hw_p" != yes; then 610 sim_hw_objs= 611 sim_hw_cflags="-DWITH_HW=0" 612 sim_hw= 613fi 614if test x"$silent" != x"yes"; then 615 echo "Setting hardware to $sim_hw_cflags, $sim_hw, $sim_hw_objs" 616fi])dnl 617]) 618AC_SUBST(sim_hw_cflags) 619AC_SUBST(sim_hw_objs) 620AC_SUBST(sim_hw) 621 622 623dnl --enable-sim-inline is for users that wish to ramp up the simulator's 624dnl performance by inlining functions. 625dnl Guarantee that unconfigured simulators do not do any inlining 626sim_inline="-DDEFAULT_INLINE=0" 627AC_DEFUN(SIM_AC_OPTION_INLINE, 628[ 629default_sim_inline="ifelse([$1],,,-DDEFAULT_INLINE=[$1])" 630AC_ARG_ENABLE(sim-inline, 631[ --enable-sim-inline=inlines Specify which functions should be inlined.], 632[sim_inline="" 633case "$enableval" in 634 no) sim_inline="-DDEFAULT_INLINE=0";; 635 0) sim_inline="-DDEFAULT_INLINE=0";; 636 yes | 2) sim_inline="-DDEFAULT_INLINE=ALL_C_INLINE";; 637 1) sim_inline="-DDEFAULT_INLINE=INLINE_LOCALS";; 638 *) for x in `echo "$enableval" | sed -e "s/,/ /g"`; do 639 new_flag="" 640 case "$x" in 641 *_INLINE=*) new_flag="-D$x";; 642 *=*) new_flag=`echo "$x" | sed -e "s/=/_INLINE=/" -e "s/^/-D/"`;; 643 *_INLINE) new_flag="-D$x=ALL_C_INLINE";; 644 *) new_flag="-D$x""_INLINE=ALL_C_INLINE";; 645 esac 646 if test x"$sim_inline" = x""; then 647 sim_inline="$new_flag" 648 else 649 sim_inline="$sim_inline $new_flag" 650 fi 651 done;; 652esac 653if test x"$silent" != x"yes" && test x"$sim_inline" != x""; then 654 echo "Setting inline flags = $sim_inline" 6>&1 655fi],[ 656if test "x$cross_compiling" = "xno"; then 657 if test x"$GCC" != "x" -a x"${default_sim_inline}" != "x" ; then 658 sim_inline="${default_sim_inline}" 659 if test x"$silent" != x"yes"; then 660 echo "Setting inline flags = $sim_inline" 6>&1 661 fi 662 else 663 sim_inline="" 664 fi 665else 666 sim_inline="-DDEFAULT_INLINE=0" 667fi])dnl 668]) 669AC_SUBST(sim_inline) 670 671 672AC_DEFUN(SIM_AC_OPTION_PACKAGES, 673[ 674AC_ARG_ENABLE(sim-packages, 675[ --enable-sim-packages=list Specify the packages to be included in the build.], 676[packages=disklabel 677case "${enableval}" in 678 yes) ;; 679 no) AC_MSG_ERROR("List of packages must be specified for --enable-sim-packages"); packages="";; 680 ,*) packages="${packages}${enableval}";; 681 *,) packages="${enableval}${packages}";; 682 *) packages="${enableval}"'';; 683esac 684sim_pk_src=`echo $packages | sed -e 's/,/.c pk_/g' -e 's/^/pk_/' -e 's/$/.c/'` 685sim_pk_obj=`echo $sim_pk_src | sed -e 's/\.c/.o/g'` 686if test x"$silent" != x"yes" && test x"$packages" != x""; then 687 echo "Setting packages to $sim_pk_src, $sim_pk_obj" 688fi],[packages=disklabel 689sim_pk_src=`echo $packages | sed -e 's/,/.c pk_/g' -e 's/^/pk_/' -e 's/$/.c/'` 690sim_pk_obj=`echo $sim_pk_src | sed -e 's/\.c/.o/g'` 691if test x"$silent" != x"yes"; then 692 echo "Setting packages to $sim_pk_src, $sim_pk_obj" 693fi])dnl 694]) 695AC_SUBST(sim_packages) 696 697 698AC_DEFUN(SIM_AC_OPTION_REGPARM, 699[ 700AC_ARG_ENABLE(sim-regparm, 701[ --enable-sim-regparm=nr-parm Pass parameters in registers instead of on the stack - x86/GCC specific.], 702[case "${enableval}" in 703 0*|1*|2*|3*|4*|5*|6*|7*|8*|9*) sim_regparm="-DWITH_REGPARM=${enableval}";; 704 no) sim_regparm="" ;; 705 yes) sim_regparm="-DWITH_REGPARM=3";; 706 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-regparm"); sim_regparm="";; 707esac 708if test x"$silent" != x"yes" && test x"$sim_regparm" != x""; then 709 echo "Setting regparm flags = $sim_regparm" 6>&1 710fi],[sim_regparm=""])dnl 711]) 712AC_SUBST(sim_regparm) 713 714 715AC_DEFUN(SIM_AC_OPTION_RESERVED_BITS, 716[ 717default_sim_reserved_bits="ifelse([$1],,1,[$1])" 718AC_ARG_ENABLE(sim-reserved-bits, 719[ --enable-sim-reserved-bits Specify whether to check reserved bits in instruction.], 720[case "${enableval}" in 721 yes) sim_reserved_bits="-DWITH_RESERVED_BITS=1";; 722 no) sim_reserved_bits="-DWITH_RESERVED_BITS=0";; 723 *) AC_MSG_ERROR("--enable-sim-reserved-bits does not take a value"); sim_reserved_bits="";; 724esac 725if test x"$silent" != x"yes" && test x"$sim_reserved_bits" != x""; then 726 echo "Setting reserved flags = $sim_reserved_bits" 6>&1 727fi],[sim_reserved_bits="-DWITH_RESERVED_BITS=${default_sim_reserved_bits}"])dnl 728]) 729AC_SUBST(sim_reserved_bits) 730 731 732AC_DEFUN(SIM_AC_OPTION_SMP, 733[ 734default_sim_smp="ifelse([$1],,5,[$1])" 735AC_ARG_ENABLE(sim-smp, 736[ --enable-sim-smp=n Specify number of processors to configure for (default ${default_sim_smp}).], 737[case "${enableval}" in 738 yes) sim_smp="-DWITH_SMP=5" ; sim_igen_smp="-N 5";; 739 no) sim_smp="-DWITH_SMP=0" ; sim_igen_smp="-N 0";; 740 *) sim_smp="-DWITH_SMP=$enableval" ; sim_igen_smp="-N $enableval";; 741esac 742if test x"$silent" != x"yes" && test x"$sim_smp" != x""; then 743 echo "Setting smp flags = $sim_smp" 6>&1 744fi],[sim_smp="-DWITH_SMP=${default_sim_smp}" ; sim_igen_smp="-N ${default_sim_smp}" 745if test x"$silent" != x"yes"; then 746 echo "Setting smp flags = $sim_smp" 6>&1 747fi])dnl 748]) 749AC_SUBST(sim_smp) 750 751 752AC_DEFUN(SIM_AC_OPTION_STDCALL, 753[ 754AC_ARG_ENABLE(sim-stdcall, 755[ --enable-sim-stdcall=type Use an alternative function call/return mechanism - x86/GCC specific.], 756[case "${enableval}" in 757 no) sim_stdcall="" ;; 758 std*) sim_stdcall="-DWITH_STDCALL=1";; 759 yes) sim_stdcall="-DWITH_STDCALL=1";; 760 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-stdcall"); sim_stdcall="";; 761esac 762if test x"$silent" != x"yes" && test x"$sim_stdcall" != x""; then 763 echo "Setting function call flags = $sim_stdcall" 6>&1 764fi],[sim_stdcall=""])dnl 765]) 766AC_SUBST(sim_stdcall) 767 768 769AC_DEFUN(SIM_AC_OPTION_XOR_ENDIAN, 770[ 771default_sim_xor_endian="ifelse([$1],,8,[$1])" 772AC_ARG_ENABLE(sim-xor-endian, 773[ --enable-sim-xor-endian=n Specify number bytes involved in XOR bi-endian mode (default ${default_sim_xor_endian}).], 774[case "${enableval}" in 775 yes) sim_xor_endian="-DWITH_XOR_ENDIAN=8";; 776 no) sim_xor_endian="-DWITH_XOR_ENDIAN=0";; 777 *) sim_xor_endian="-DWITH_XOR_ENDIAN=$enableval";; 778esac 779if test x"$silent" != x"yes" && test x"$sim_xor_endian" != x""; then 780 echo "Setting xor-endian flag = $sim_xor_endian" 6>&1 781fi],[sim_xor_endian="-DWITH_XOR_ENDIAN=${default_sim_xor_endian}"])dnl 782]) 783AC_SUBST(sim_xor_endian) 784 785 786dnl --enable-build-warnings is for developers of the simulator. 787dnl it enables extra GCC specific warnings. 788AC_DEFUN(SIM_AC_OPTION_WARNINGS, 789[ 790# NOTE: Don't add -Wall or -Wunused, they both include 791# -Wunused-parameter which reports bogus warnings. 792# NOTE: If you add to this list, remember to update 793# gdb/doc/gdbint.texinfo. 794build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \ 795-Wformat -Wparentheses -Wpointer-arith -Wuninitialized" 796# Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs 797# -Wunused-function -Wunused-label -Wunused-variable -Wunused-value 798# -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual 799# -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes 800# -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls 801# -Woverloaded-virtual -Winline -Werror" 802AC_ARG_ENABLE(build-warnings, 803[ --enable-build-warnings Enable build-time compiler warnings if gcc is used], 804[case "${enableval}" in 805 yes) ;; 806 no) build_warnings="-w";; 807 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"` 808 build_warnings="${build_warnings} ${t}";; 809 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"` 810 build_warnings="${t} ${build_warnings}";; 811 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;; 812esac 813if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then 814 echo "Setting compiler warning flags = $build_warnings" 6>&1 815fi])dnl 816AC_ARG_ENABLE(sim-build-warnings, 817[ --enable-gdb-build-warnings Enable SIM specific build-time compiler warnings if gcc is used], 818[case "${enableval}" in 819 yes) ;; 820 no) build_warnings="-w";; 821 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"` 822 build_warnings="${build_warnings} ${t}";; 823 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"` 824 build_warnings="${t} ${build_warnings}";; 825 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;; 826esac 827if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then 828 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1 829fi])dnl 830WARN_CFLAGS="" 831WERROR_CFLAGS="" 832if test "x${build_warnings}" != x -a "x$GCC" = xyes 833then 834 AC_MSG_CHECKING(compiler warning flags) 835 # Separate out the -Werror flag as some files just cannot be 836 # compiled with it enabled. 837 for w in ${build_warnings}; do 838 case $w in 839 -Werr*) WERROR_CFLAGS=-Werror ;; 840 *) # Check that GCC accepts it 841 saved_CFLAGS="$CFLAGS" 842 CFLAGS="$CFLAGS $w" 843 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",) 844 CFLAGS="$saved_CFLAGS" 845 esac 846 done 847 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS}) 848fi 849]) 850AC_SUBST(WARN_CFLAGS) 851AC_SUBST(WERROR_CFLAGS) 852 853 854dnl Generate the Makefile in a target specific directory. 855dnl Substitutions aren't performed on the file in AC_SUBST_FILE, 856dnl so this is a cover macro to tuck the details away of how we cope. 857dnl We cope by having autoconf generate two files and then merge them into 858dnl one afterwards. The two pieces of the common fragment are inserted into 859dnl the target's fragment at the appropriate points. 860 861AC_DEFUN(SIM_AC_OUTPUT, 862[ 863AC_LINK_FILES($sim_link_files, $sim_link_links) 864AC_OUTPUT(Makefile.sim:Makefile.in Make-common.sim:../common/Make-common.in .gdbinit:../common/gdbinit.in, 865[case "x$CONFIG_FILES" in 866 xMakefile*) 867 echo "Merging Makefile.sim+Make-common.sim into Makefile ..." 868 rm -f Makesim1.tmp Makesim2.tmp Makefile 869 sed -n -e '/^## COMMON_PRE_/,/^## End COMMON_PRE_/ p' <Make-common.sim >Makesim1.tmp 870 sed -n -e '/^## COMMON_POST_/,/^## End COMMON_POST_/ p' <Make-common.sim >Makesim2.tmp 871 sed -e '/^## COMMON_PRE_/ r Makesim1.tmp' \ 872 -e '/^## COMMON_POST_/ r Makesim2.tmp' \ 873 <Makefile.sim >Makefile 874 rm -f Makefile.sim Make-common.sim Makesim1.tmp Makesim2.tmp 875 ;; 876 esac 877 case "x$CONFIG_HEADERS" in xconfig.h:config.in) echo > stamp-h ;; esac 878]) 879]) 880 881# This file is derived from `gettext.m4'. The difference is that the 882# included macros assume Cygnus-style source and build trees. 883 884# Macro to add for using GNU gettext. 885# Ulrich Drepper <drepper@cygnus.com>, 1995. 886# 887# This file file be copied and used freely without restrictions. It can 888# be used in projects which are not available under the GNU Public License 889# but which still want to provide support for the GNU gettext functionality. 890# Please note that the actual code is *not* freely available. 891 892# serial 3 893 894AC_DEFUN(CY_WITH_NLS, 895 [AC_MSG_CHECKING([whether NLS is requested]) 896 dnl Default is enabled NLS 897 AC_ARG_ENABLE(nls, 898 [ --disable-nls do not use Native Language Support], 899 USE_NLS=$enableval, USE_NLS=yes) 900 AC_MSG_RESULT($USE_NLS) 901 AC_SUBST(USE_NLS) 902 903 USE_INCLUDED_LIBINTL=no 904 905 dnl If we use NLS figure out what method 906 if test "$USE_NLS" = "yes"; then 907 AC_DEFINE(ENABLE_NLS) 908 AC_MSG_CHECKING([whether included gettext is requested]) 909 AC_ARG_WITH(included-gettext, 910 [ --with-included-gettext use the GNU gettext library included here], 911 nls_cv_force_use_gnu_gettext=$withval, 912 nls_cv_force_use_gnu_gettext=no) 913 AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) 914 915 nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" 916 if test "$nls_cv_force_use_gnu_gettext" != "yes"; then 917 dnl User does not insist on using GNU NLS library. Figure out what 918 dnl to use. If gettext or catgets are available (in this order) we 919 dnl use this. Else we have to fall back to GNU NLS library. 920 dnl catgets is only used if permitted by option --with-catgets. 921 nls_cv_header_intl= 922 nls_cv_header_libgt= 923 CATOBJEXT=NONE 924 925 AC_CHECK_HEADER(libintl.h, 926 [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc, 927 [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")], 928 gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)]) 929 930 if test "$gt_cv_func_gettext_libc" != "yes"; then 931 AC_CHECK_LIB(intl, bindtextdomain, 932 [AC_CACHE_CHECK([for gettext in libintl], 933 gt_cv_func_gettext_libintl, 934 [AC_TRY_LINK([], [return (int) gettext ("")], 935 gt_cv_func_gettext_libintl=yes, 936 gt_cv_func_gettext_libintl=no)])]) 937 fi 938 939 if test "$gt_cv_func_gettext_libc" = "yes" \ 940 || test "$gt_cv_func_gettext_libintl" = "yes"; then 941 AC_DEFINE(HAVE_GETTEXT) 942 AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, 943 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl 944 if test "$MSGFMT" != "no"; then 945 AC_CHECK_FUNCS(dcgettext) 946 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) 947 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, 948 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) 949 AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; 950 return _nl_msg_cat_cntr], 951 [CATOBJEXT=.gmo 952 DATADIRNAME=share], 953 [CATOBJEXT=.mo 954 DATADIRNAME=lib]) 955 INSTOBJEXT=.mo 956 fi 957 fi 958 ]) 959 960 dnl In the standard gettext, we would now check for catgets. 961 dnl However, we never want to use catgets for our releases. 962 963 if test "$CATOBJEXT" = "NONE"; then 964 dnl Neither gettext nor catgets in included in the C library. 965 dnl Fall back on GNU gettext library. 966 nls_cv_use_gnu_gettext=yes 967 fi 968 fi 969 970 if test "$nls_cv_use_gnu_gettext" = "yes"; then 971 dnl Mark actions used to generate GNU NLS library. 972 INTLOBJS="\$(GETTOBJS)" 973 AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, 974 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt) 975 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) 976 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, 977 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) 978 AC_SUBST(MSGFMT) 979 USE_INCLUDED_LIBINTL=yes 980 CATOBJEXT=.gmo 981 INSTOBJEXT=.mo 982 DATADIRNAME=share 983 INTLDEPS='$(top_builddir)/../intl/libintl.a' 984 INTLLIBS=$INTLDEPS 985 LIBS=`echo $LIBS | sed -e 's/-lintl//'` 986 nls_cv_header_intl=libintl.h 987 nls_cv_header_libgt=libgettext.h 988 fi 989 990 dnl Test whether we really found GNU xgettext. 991 if test "$XGETTEXT" != ":"; then 992 dnl If it is no GNU xgettext we define it as : so that the 993 dnl Makefiles still can work. 994 if $XGETTEXT --omit-header /dev/null 2> /dev/null; then 995 : ; 996 else 997 AC_MSG_RESULT( 998 [found xgettext programs is not GNU xgettext; ignore it]) 999 XGETTEXT=":" 1000 fi 1001 fi 1002 1003 # We need to process the po/ directory. 1004 POSUB=po 1005 else 1006 DATADIRNAME=share 1007 nls_cv_header_intl=libintl.h 1008 nls_cv_header_libgt=libgettext.h 1009 fi 1010 1011 # If this is used in GNU gettext we have to set USE_NLS to `yes' 1012 # because some of the sources are only built for this goal. 1013 if test "$PACKAGE" = gettext; then 1014 USE_NLS=yes 1015 USE_INCLUDED_LIBINTL=yes 1016 fi 1017 1018 dnl These rules are solely for the distribution goal. While doing this 1019 dnl we only have to keep exactly one list of the available catalogs 1020 dnl in configure.in. 1021 for lang in $ALL_LINGUAS; do 1022 GMOFILES="$GMOFILES $lang.gmo" 1023 POFILES="$POFILES $lang.po" 1024 done 1025 1026 dnl Make all variables we use known to autoconf. 1027 AC_SUBST(USE_INCLUDED_LIBINTL) 1028 AC_SUBST(CATALOGS) 1029 AC_SUBST(CATOBJEXT) 1030 AC_SUBST(DATADIRNAME) 1031 AC_SUBST(GMOFILES) 1032 AC_SUBST(INSTOBJEXT) 1033 AC_SUBST(INTLDEPS) 1034 AC_SUBST(INTLLIBS) 1035 AC_SUBST(INTLOBJS) 1036 AC_SUBST(POFILES) 1037 AC_SUBST(POSUB) 1038 ]) 1039 1040AC_DEFUN(CY_GNU_GETTEXT, 1041 [AC_REQUIRE([AC_PROG_MAKE_SET])dnl 1042 AC_REQUIRE([AC_PROG_CC])dnl 1043 AC_REQUIRE([AC_PROG_RANLIB])dnl 1044 AC_REQUIRE([AC_ISC_POSIX])dnl 1045 AC_REQUIRE([AC_HEADER_STDC])dnl 1046 AC_REQUIRE([AC_C_CONST])dnl 1047 AC_REQUIRE([AC_C_INLINE])dnl 1048 AC_REQUIRE([AC_TYPE_OFF_T])dnl 1049 AC_REQUIRE([AC_TYPE_SIZE_T])dnl 1050 AC_REQUIRE([AC_FUNC_ALLOCA])dnl 1051 AC_REQUIRE([AC_FUNC_MMAP])dnl 1052 1053 AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \ 1054unistd.h values.h sys/param.h]) 1055 AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \ 1056__argz_count __argz_stringify __argz_next]) 1057 1058 if test "${ac_cv_func_stpcpy+set}" != "set"; then 1059 AC_CHECK_FUNCS(stpcpy) 1060 fi 1061 if test "${ac_cv_func_stpcpy}" = "yes"; then 1062 AC_DEFINE(HAVE_STPCPY) 1063 fi 1064 1065 AM_LC_MESSAGES 1066 CY_WITH_NLS 1067 1068 if test "x$CATOBJEXT" != "x"; then 1069 if test "x$ALL_LINGUAS" = "x"; then 1070 LINGUAS= 1071 else 1072 AC_MSG_CHECKING(for catalogs to be installed) 1073 NEW_LINGUAS= 1074 for lang in ${LINGUAS=$ALL_LINGUAS}; do 1075 case "$ALL_LINGUAS" in 1076 *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; 1077 esac 1078 done 1079 LINGUAS=$NEW_LINGUAS 1080 AC_MSG_RESULT($LINGUAS) 1081 fi 1082 1083 dnl Construct list of names of catalog files to be constructed. 1084 if test -n "$LINGUAS"; then 1085 for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done 1086 fi 1087 fi 1088 1089 dnl The reference to <locale.h> in the installed <libintl.h> file 1090 dnl must be resolved because we cannot expect the users of this 1091 dnl to define HAVE_LOCALE_H. 1092 if test $ac_cv_header_locale_h = yes; then 1093 INCLUDE_LOCALE_H="#include <locale.h>" 1094 else 1095 INCLUDE_LOCALE_H="\ 1096/* The system does not provide the header <locale.h>. Take care yourself. */" 1097 fi 1098 AC_SUBST(INCLUDE_LOCALE_H) 1099 1100 dnl Determine which catalog format we have (if any is needed) 1101 dnl For now we know about two different formats: 1102 dnl Linux libc-5 and the normal X/Open format 1103 if test -f $srcdir/po2tbl.sed.in; then 1104 if test "$CATOBJEXT" = ".cat"; then 1105 AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen) 1106 1107 dnl Transform the SED scripts while copying because some dumb SEDs 1108 dnl cannot handle comments. 1109 sed -e '/^#/d' $srcdir/$msgformat-msg.sed > po2msg.sed 1110 fi 1111 dnl po2tbl.sed is always needed. 1112 sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \ 1113 $srcdir/po2tbl.sed.in > po2tbl.sed 1114 fi 1115 1116 dnl In the intl/Makefile.in we have a special dependency which makes 1117 dnl only sense for gettext. We comment this out for non-gettext 1118 dnl packages. 1119 if test "$PACKAGE" = "gettext"; then 1120 GT_NO="#NO#" 1121 GT_YES= 1122 else 1123 GT_NO= 1124 GT_YES="#YES#" 1125 fi 1126 AC_SUBST(GT_NO) 1127 AC_SUBST(GT_YES) 1128 1129 MKINSTALLDIRS="\$(srcdir)/../../mkinstalldirs" 1130 AC_SUBST(MKINSTALLDIRS) 1131 1132 dnl *** For now the libtool support in intl/Makefile is not for real. 1133 l= 1134 AC_SUBST(l) 1135 1136 dnl Generate list of files to be processed by xgettext which will 1137 dnl be included in po/Makefile. But only do this if the po directory 1138 dnl exists in srcdir. 1139 if test -d $srcdir/po; then 1140 test -d po || mkdir po 1141 if test "x$srcdir" != "x."; then 1142 if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then 1143 posrcprefix="$srcdir/" 1144 else 1145 posrcprefix="../$srcdir/" 1146 fi 1147 else 1148 posrcprefix="../" 1149 fi 1150 rm -f po/POTFILES 1151 sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ 1152 < $srcdir/po/POTFILES.in > po/POTFILES 1153 fi 1154 ]) 1155 1156# Search path for a program which passes the given test. 1157# Ulrich Drepper <drepper@cygnus.com>, 1996. 1158# 1159# This file file be copied and used freely without restrictions. It can 1160# be used in projects which are not available under the GNU Public License 1161# but which still want to provide support for the GNU gettext functionality. 1162# Please note that the actual code is *not* freely available. 1163 1164# serial 1 1165 1166dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, 1167dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) 1168AC_DEFUN(AM_PATH_PROG_WITH_TEST, 1169[# Extract the first word of "$2", so it can be a program name with args. 1170set dummy $2; ac_word=[$]2 1171AC_MSG_CHECKING([for $ac_word]) 1172AC_CACHE_VAL(ac_cv_path_$1, 1173[case "[$]$1" in 1174 /*) 1175 ac_cv_path_$1="[$]$1" # Let the user override the test with a path. 1176 ;; 1177 *) 1178 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" 1179 for ac_dir in ifelse([$5], , $PATH, [$5]); do 1180 test -z "$ac_dir" && ac_dir=. 1181 if test -f $ac_dir/$ac_word; then 1182 if [$3]; then 1183 ac_cv_path_$1="$ac_dir/$ac_word" 1184 break 1185 fi 1186 fi 1187 done 1188 IFS="$ac_save_ifs" 1189dnl If no 4th arg is given, leave the cache variable unset, 1190dnl so AC_PATH_PROGS will keep looking. 1191ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" 1192])dnl 1193 ;; 1194esac])dnl 1195$1="$ac_cv_path_$1" 1196if test -n "[$]$1"; then 1197 AC_MSG_RESULT([$]$1) 1198else 1199 AC_MSG_RESULT(no) 1200fi 1201AC_SUBST($1)dnl 1202]) 1203 1204# Check whether LC_MESSAGES is available in <locale.h>. 1205# Ulrich Drepper <drepper@cygnus.com>, 1995. 1206# 1207# This file file be copied and used freely without restrictions. It can 1208# be used in projects which are not available under the GNU Public License 1209# but which still want to provide support for the GNU gettext functionality. 1210# Please note that the actual code is *not* freely available. 1211 1212# serial 1 1213 1214AC_DEFUN(AM_LC_MESSAGES, 1215 [if test $ac_cv_header_locale_h = yes; then 1216 AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, 1217 [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], 1218 am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) 1219 if test $am_cv_val_LC_MESSAGES = yes; then 1220 AC_DEFINE(HAVE_LC_MESSAGES) 1221 fi 1222 fi]) 1223 1224 1225dnl --enable-cgen-maint support 1226AC_DEFUN(SIM_AC_OPTION_CGEN_MAINT, 1227[ 1228cgen_maint=no 1229dnl Default is to use one in build tree. 1230cgen=guile 1231cgendir='$(srcdir)/../../cgen' 1232dnl Having --enable-maintainer-mode take arguments is another way to go. 1233dnl ??? One can argue --with is more appropriate if one wants to specify 1234dnl a directory name, but what we're doing here is an enable/disable kind 1235dnl of thing and specifying both --enable and --with is klunky. 1236dnl If you reeely want this to be --with, go ahead and change it. 1237AC_ARG_ENABLE(cgen-maint, 1238[ --enable-cgen-maint[=DIR] build cgen generated files], 1239[case "${enableval}" in 1240 yes) cgen_maint=yes ;; 1241 no) cgen_maint=no ;; 1242 *) 1243 # argument is cgen install directory (not implemented yet). 1244 # Having a `share' directory might be more appropriate for the .scm, 1245 # .cpu, etc. files. 1246 cgendir=${cgen_maint}/lib/cgen 1247 cgen=guile 1248 ;; 1249esac])dnl 1250dnl AM_CONDITIONAL(CGEN_MAINT, test x${cgen_maint} != xno) 1251if test x${cgen_maint} != xno ; then 1252 CGEN_MAINT='' 1253else 1254 CGEN_MAINT='#' 1255fi 1256AC_SUBST(CGEN_MAINT) 1257AC_SUBST(cgendir) 1258AC_SUBST(cgen) 1259]) 1260