configure.ac revision 1.5
1dnl Process this file with autoconf to produce a configure script. 2AC_PREREQ(2.59)dnl 3AC_INIT(Makefile.in) 4sinclude(../common/acinclude.m4) 5 6AC_PROG_INSTALL 7AC_PROG_CC 8 9# Put a plausible default for CC_FOR_BUILD in Makefile. 10if test "x$cross_compiling" = "xno"; then 11 CC_FOR_BUILD='$(CC)' 12else 13 CC_FOR_BUILD=gcc 14fi 15CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}} 16 17dnl We don't use gettext, but bfd does. So we do the appropriate checks 18dnl to see if there are intl libraries we should link against. 19ALL_LINGUAS= 20ZW_GNU_GETTEXT_SISTER_DIR(../../intl) 21 22 23AC_ARG_ENABLE(sim-alignment, 24[ --enable-sim-alignment=align Specify strict or nonstrict alignment.], 25[case "${enableval}" in 26 yes | strict | STRICT) sim_alignment="-DWITH_ALIGNMENT=STRICT_ALIGNMENT";; 27 no | nonstrict | NONSTRICT) sim_alignment="-DWITH_ALIGNMENT=NONSTRICT_ALIGNMENT";; 28 0 | default | DEFAULT) sim_alignment="-DWITH_ALIGNMENT=0";; 29 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-alignment"); sim_alignment="";; 30esac 31if test x"$silent" != x"yes" && test x"$sim_alignment" != x""; then 32 echo "Setting alignment flags = $sim_alignment" 6>&1 33fi],[sim_alignment=""])dnl 34 35 36AC_ARG_ENABLE(sim-assert, 37[ --enable-sim-assert Specify whether to perform random assertions.], 38[case "${enableval}" in 39 yes) sim_assert="-DWITH_ASSERT=1";; 40 no) sim_assert="-DWITH_ASSERT=0";; 41 *) AC_MSG_ERROR("--enable-sim-assert does not take a value"); sim_assert="";; 42esac 43if test x"$silent" != x"yes" && test x"$sim_assert" != x""; then 44 echo "Setting assert flags = $sim_assert" 6>&1 45fi],[sim_assert=""])dnl 46 47 48AC_ARG_ENABLE(sim-bitsize, 49[ --enable-sim-bitsize=n Specify target bitsize (32 or 64).], 50[case "${enableval}" in 51 32|64) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=$enableval";; 52 *) AC_MSG_ERROR("--enable-sim-bitsize was given $enableval. Expected 32 or 64"); sim_bitsize="";; 53esac 54if test x"$silent" != x"yes" && test x"$sim_bitsize" != x""; then 55 echo "Setting bitsize flags = $sim_bitsize" 6>&1 56fi],[sim_bitsize=""])dnl 57 58 59AC_ARG_ENABLE(sim-bswap, 60[ --enable-sim-bswap Use the BSWAP instruction on Intel 486s and Pentiums.], 61[case "${enableval}" in 62 yes) sim_bswap="-DWITH_BSWAP=1";; 63 no) sim_bswap="-DWITH_BSWAP=0";; 64 *) AC_MSG_ERROR("--enable-sim-bswap does not take a value"); sim_bswap="";; 65esac 66if test x"$silent" != x"yes" && test x"$sim_bswap" != x""; then 67 echo "Setting bswap flags = $sim_bswap" 6>&1 68fi],[sim_bswap=""])dnl 69 70 71AC_ARG_ENABLE(sim-cflags, 72[ --enable-sim-cflags=opts Extra CFLAGS for use in building simulator], 73[case "${enableval}" in 74 yes) sim_cflags="-O2 -fomit-frame-pointer";; 75 no) sim_cflags="";; 76 *) sim_cflags=`echo "${enableval}" | sed -e "s/,/ /g"`;; 77esac 78if test x"$silent" != x"yes" && test x"$sim_cflags" != x""; then 79 echo "Setting sim cflags = $sim_cflags" 6>&1 80fi],[sim_cflags=""])dnl 81 82 83AC_ARG_ENABLE(sim-config, 84[ --enable-sim-config=file Override default config file], 85[case "${enableval}" in 86 yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-config=file");; 87 *) if test -f "${srcdir}/${enableval}"; then 88 sim_config="${enableval}"; 89 elif test -f "${srcdir}/${enableval}-config.h"; then 90 sim_config="${enableval}-config.h" 91 else 92 AC_MSG_ERROR("Config file $enableval was not found"); 93 sim_config=std-config.h 94 fi;; 95esac 96if test x"$silent" != x"yes" && test x"$sim_config" != x""; then 97 echo "Setting config flags = $sim_config" 6>&1 98fi],[sim_config="std-config.h" 99if test x"$silent" != x"yes"; then 100 echo "Setting config flags = $sim_config" 6>&1 101fi])dnl 102 103 104AC_ARG_ENABLE(sim-decode-mechanism, 105[ --enable-sim-decode-mechanism=which Specify the instruction decode mechanism.], 106[case "${enableval}" in 107 yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-decode-mechanism=file");; 108 array|switch|padded-switch|goto-switch) sim_decode_mechanism="-T ${enableval}";; 109 *) AC_MSG_ERROR("File $enableval is not an opcode rules file"); 110 sim_decode_mechanism="switch";; 111esac 112if test x"$silent" != x"yes" && test x"$sim_decode_mechanism" != x""; then 113 echo "Setting decode mechanism flags = $sim_decode_mechanism" 6>&1 114fi],[sim_decode_mechanism="" 115if test x"$silent" != x"yes"; then 116 echo "Setting decode mechanism flags = $sim_decode_mechanism" 117fi])dnl 118 119 120AC_ARG_ENABLE(sim-default-model, 121[ --enable-sim-default-model=which Specify default PowerPC to model.], 122[case "${enableval}" in 123 yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-default-model=model");; 124 *) sim_default_model="-DWITH_DEFAULT_MODEL=${enableval}";; 125esac 126if test x"$silent" != x"yes" && test x"$sim_default_model" != x""; then 127 echo "Setting default-model flags = $sim_default_model" 6>&1 128fi],[sim_default_model=""])dnl 129 130 131AC_ARG_ENABLE(sim-duplicate, 132[ --enable-sim-duplicate Expand (duplicate) semantic functions.], 133[case "${enableval}" in 134 yes) sim_dup="-E";; 135 no) sim_dup="";; 136 *) AC_MSG_ERROR("--enable-sim-duplicate does not take a value"); sim_dup="";; 137esac 138if test x"$silent" != x"yes" && test x"$sim_dup" != x""; then 139 echo "Setting duplicate flags = $sim_dup" 6>&1 140fi],[sim_dup="-E" 141if test x"$silent" != x"yes"; then 142 echo "Setting duplicate flags = $sim_dup" 6>&1 143fi])dnl 144 145 146AC_ARG_ENABLE(sim-endian, 147[ --enable-sim-endian=endian Specify target byte endian orientation.], 148[case "${enableval}" in 149 yes) case "$target" in 150 *powerpc-*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BIG_ENDIAN";; 151 *powerpcle-*) sim_endian="-DWITH_TARGET_BYTE_ORDER=LITTLE_ENDIAN";; 152 *) echo "Unknown target $target" 1>&6; sim_endian="-DWITH_TARGET_BYTE_ORDER=0";; 153 esac;; 154 no) sim_endian="-DWITH_TARGET_BYTE_ORDER=0";; 155 b*|B*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BIG_ENDIAN";; 156 l*|L*) sim_endian="-DWITH_TARGET_BYTE_ORDER=LITTLE_ENDIAN";; 157 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-endian"); sim_endian="";; 158esac 159if test x"$silent" != x"yes" && test x"$sim_endian" != x""; then 160 echo "Setting endian flags = $sim_endian" 6>&1 161fi],[sim_endian=""])dnl 162 163 164AC_ARG_ENABLE(sim-env, 165[ --enable-sim-env=env Specify target environment (operating, virtual, user).], 166[case "${enableval}" in 167 operating | os | oea) sim_env="-DWITH_ENVIRONMENT=OPERATING_ENVIRONMENT";; 168 virtual | vea) sim_env="-DWITH_ENVIRONMENT=VIRTUAL_ENVIRONMENT";; 169 user | uea) sim_env="-DWITH_ENVIRONMENT=USER_ENVIRONMENT";; 170 no) sim_env="-DWITH_ENVIRONMENT=0";; 171 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-env"); sim_env="";; 172esac 173if test x"$silent" != x"yes" && test x"$sim_env" != x""; then 174 echo "Setting env flags = $sim_env" 6>&1 175fi],[sim_env=""])dnl 176 177 178AC_ARG_ENABLE(sim-filter, 179[ --enable-sim-filter=rule Specify filter rules.], 180[case "${enableval}" in 181 yes) AC_MSG_ERROR("--enable-sim-filter must be specified with a rule to filter or no"); sim_filter="";; 182 no) sim_filter="";; 183 *) sim_filter="-F $enableval";; 184esac 185if test x"$silent" != x"yes" && test x"$sim_filter" != x""; then 186 echo "Setting filter flags = $sim_filter" 6>&1 187fi],[sim_filter="-F 32,f,o" 188if test x"$silent" != x"yes"; then 189 echo "Setting filter flags = $sim_filter" 6>&1 190fi])dnl 191 192 193AC_ARG_ENABLE(sim-float, 194[ --enable-sim-float Specify whether the target has hard, soft, altivec or e500 floating point.], 195[case "${enableval}" in 196 yes | hard) sim_float="-DWITH_FLOATING_POINT=HARD_FLOATING_POINT";; 197 no | soft) sim_float="-DWITH_FLOATING_POINT=SOFT_FLOATING_POINT";; 198 altivec) sim_float="-DWITH_ALTIVEC" ; sim_filter="${sim_filter},av" ;; 199 *spe*|*simd*) sim_float="-DWITH_E500" ; sim_filter="${sim_filter},e500" ;; 200 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-float"); sim_float="";; 201esac 202if test x"$silent" != x"yes" && test x"$sim_float" != x""; then 203 echo "Setting float flags = $sim_float" 6>&1 204fi],[ 205case "${target}" in 206 *altivec*) sim_float="-DWITH_ALTIVEC" ; sim_filter="${sim_filter},av" ;; 207 *spe*|*simd*) sim_float="-DWITH_E500" ; sim_filter="${sim_filter},e500" ;; 208 *) sim_float="" 209esac 210])dnl 211 212AC_CACHE_CHECK([if union semun defined], 213 ac_cv_HAS_UNION_SEMUN, 214 [AC_TRY_COMPILE([ 215#include <sys/types.h> 216#include <sys/ipc.h> 217#include <sys/sem.h>], 218[union semun arg ;], 219[ac_cv_has_union_semun="yes"], 220[ac_cv_has_union_semun="no"]) 221AC_MSG_RESULT($ac_cv_has_union_semun) 222]) 223 224 225if test "$ac_cv_has_union_semun" = "yes"; then 226 AC_CACHE_CHECK(whether System V semaphores are supported, 227 ac_cv_sysv_sem, 228 [ 229 AC_TRY_RUN( 230 [ 231 #include <sys/types.h> 232 #include <sys/ipc.h> 233 #include <sys/sem.h> 234 int main () { 235 union semun arg ; 236 237 int id=semget(IPC_PRIVATE,1,IPC_CREAT|0400); 238 if (id == -1) 239 exit(1); 240 arg.val = 0; /* avoid implicit type cast to union */ 241 if (semctl(id, 0, IPC_RMID, arg) == -1) 242 exit(1); 243 exit(0); 244 } 245 ], 246 ac_cv_sysv_sem="yes", ac_cv_sysv_sem="no", :) 247 ]) 248else # semun is not defined 249 AC_CACHE_CHECK(whether System V semaphores are supported, 250 ac_cv_sysv_sem, 251 [ 252 AC_TRY_RUN( 253 [ 254 #include <sys/types.h> 255 #include <sys/ipc.h> 256 #include <sys/sem.h> 257 union semun { 258 int val; 259 struct semid_ds *buf; 260 ushort *array; 261 }; 262 int main () { 263 union semun arg ; 264 265 int id=semget(IPC_PRIVATE,1,IPC_CREAT|0400); 266 if (id == -1) 267 exit(1); 268 arg.val = 0; /* avoid implicit type cast to union */ 269 if (semctl(id, 0, IPC_RMID, arg) == -1) 270 exit(1); 271 exit(0); 272 } 273 ], 274 ac_cv_sysv_sem="yes", ac_cv_sysv_sem="no", :) 275 ]) 276fi 277 278AC_CACHE_CHECK(whether System V shared memory is supported, 279ac_cv_sysv_shm, 280[ 281AC_TRY_RUN([ 282#include <sys/types.h> 283#include <sys/ipc.h> 284#include <sys/shm.h> 285int main () { 286 int id=shmget(IPC_PRIVATE,1,IPC_CREAT|0400); 287 if (id == -1) 288 exit(1); 289 if (shmctl(id, IPC_RMID, 0) == -1) 290 exit(1); 291 exit(0); 292} 293], 294ac_cv_sysv_shm="yes", ac_cv_sysv_shm="no", :) 295]) 296 297if test x"$ac_cv_sysv_shm" = x"yes" -a x"$ac_cv_sysv_sem" = x"yes" ; then 298 sim_sysv_ipc_hw=",sem,shm"; 299else 300 sim_sysv_ipc_hw=""; 301fi 302 303if test x"$ac_cv_has_union_semun" = x"yes" -a x"$ac_cv_sysv_sem" = x"yes" ; then 304 AC_DEFINE(HAVE_UNION_SEMUN, 1, 305 [Define if union semun is defined in <sys/sem.h>]) 306fi 307 308 309AC_ARG_ENABLE(sim-hardware, 310[ --enable-sim-hardware=list Specify the hardware to be included in the build.], 311[hardware="cpu,memory,nvram,iobus,htab,disk,trace,register,vm,init,core,pal,com,eeprom,opic,glue,phb,ide${sim_sysv_ipc_hw}" 312case "${enableval}" in 313 yes) ;; 314 no) AC_MSG_ERROR("List of hardware must be specified for --enable-sim-hardware"); hardware="";; 315 ,*) hardware="${hardware}${enableval}";; 316 *,) hardware="${enableval}${hardware}";; 317 *) hardware="${enableval}"'';; 318esac 319sim_hw_src=`echo $hardware | sed -e 's/,/.c hw_/g' -e 's/^/hw_/' -e s'/$/.c/'` 320sim_hw_obj=`echo $sim_hw_src | sed -e 's/\.c/.o/g'` 321if test x"$silent" != x"yes" && test x"$hardware" != x""; then 322 echo "Setting hardware to $sim_hw_src, $sim_hw_obj" 323fi],[hardware="cpu,memory,nvram,iobus,htab,disk,trace,register,vm,init,core,pal,com,eeprom,opic,glue,phb,ide${sim_sysv_ipc_hw}" 324sim_hw_src=`echo $hardware | sed -e 's/,/.c hw_/g' -e 's/^/hw_/' -e s'/$/.c/'` 325sim_hw_obj=`echo $sim_hw_src | sed -e 's/\.c/.o/g'` 326if test x"$silent" != x"yes"; then 327 echo "Setting hardware to $sim_hw_src, $sim_hw_obj" 328fi])dnl 329 330AC_ARG_ENABLE(sim-hostbitsize, 331[ --enable-sim-hostbitsize=32|64 Specify host bitsize (32 or 64).], 332[case "${enableval}" in 333 32|64) sim_hostbitsize="-DWITH_HOST_WORD_BITSIZE=$enableval";; 334 *) AC_MSG_ERROR("--enable-sim-hostbitsize was given $enableval. Expected 32 or 64"); sim_hostbitsize="";; 335esac 336if test x"$silent" != x"yes" && test x"$sim_hostbitsize" != x""; then 337 echo "Setting hostbitsize flags = $sim_hostbitsize" 6>&1 338fi],[sim_hostbitsize=""])dnl 339 340 341AC_ARG_ENABLE(sim-hostendian, 342[ --enable-sim-hostendian=end Specify host byte endian orientation.], 343[case "${enableval}" in 344 no) sim_hostendian="-DWITH_HOST_BYTE_ORDER=0";; 345 b*|B*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN";; 346 l*|L*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN";; 347 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-hostendian"); sim_hostendian="";; 348esac 349if test x"$silent" != x"yes" && test x"$sim_hostendian" != x""; then 350 echo "Setting hostendian flags = $sim_hostendian" 6>&1 351fi],[ 352if test "x$cross_compiling" = "xno"; then 353 AC_C_BIGENDIAN 354 if test $ac_cv_c_bigendian = yes; then 355 sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN" 356 else 357 sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN" 358 fi 359else 360 sim_hostendian="-DWITH_HOST_BYTE_ORDER=0" 361fi])dnl 362 363 364AC_ARG_ENABLE(sim-icache, 365[ --enable-sim-icache=size Specify instruction-decode cache size and type.], 366[icache="-R" 367 case "${enableval}" in 368 yes) icache="1024"; sim_icache="-I $icache";; 369 no) sim_icache="-R";; 370 *) icache=1024 371 sim_icache="-" 372 for x in `echo "${enableval}" | sed -e "s/,/ /g"`; do 373 case "$x" in 374 define) sim_icache="${sim_icache}R";; 375 semantic) sim_icache="${sim_icache}C";; 376 insn) sim_icache="${sim_icache}S";; 377 0*|1*|2*|3*|4*|5*|6*|7*|8*|9*) icache=$x;; 378 *) AC_MSG_ERROR("Unknown value $x for --enable-sim-icache"); sim_icache="";; 379 esac 380 done 381 sim_icache="${sim_icache}I $icache";; 382esac 383if test x"$silent" != x"yes" && test x"$icache" != x""; then 384 echo "Setting instruction cache size to $icache ($sim_icache)" 385fi],[sim_icache="-CSRI 1024" 386if test x"$silent" != x"yes"; then 387 echo "Setting instruction cache size to 1024 ($sim_icache)" 388fi])dnl 389 390 391AC_ARG_ENABLE(sim-inline, 392[ --enable-sim-inline=inlines Specify which functions should be inlined.], 393[sim_inline="" 394case "$enableval" in 395 no) sim_inline="-DDEFAULT_INLINE=0";; 396 0) sim_inline="-DDEFAULT_INLINE=0";; 397 yes | 2) sim_inline="-DDEFAULT_INLINE=ALL_INLINE";; 398 1) sim_inline="-DDEFAULT_INLINE=PSIM_INLINE_LOCALS";; 399 *) for x in `echo "$enableval" | sed -e "s/,/ /g"`; do 400 new_flag="" 401 case "$x" in 402 *_INLINE=*) new_flag="-D$x";; 403 *=*) new_flag=`echo "$x" | sed -e "s/=/_INLINE=/" -e "s/^/-D/"`;; 404 *_INLINE) new_flag="-D$x=ALL_INLINE";; 405 *) new_flag="-D$x""_INLINE=ALL_INLINE";; 406 esac 407 if test x"$sim_inline" = x""; then 408 sim_inline="$new_flag" 409 else 410 sim_inline="$sim_inline $new_flag" 411 fi 412 done;; 413esac 414if test x"$silent" != x"yes" && test x"$sim_inline" != x""; then 415 echo "Setting inline flags = $sim_inline" 6>&1 416fi],[if test x"$GCC" != ""; then 417 sim_inline="-DDEFAULT_INLINE=PSIM_INLINE_LOCALS" 418 if test x"$silent" != x"yes"; then 419 echo "Setting inline flags = $sim_inline" 6>&1 420 fi 421else 422 sim_inline="" 423fi])dnl 424 425 426AC_ARG_ENABLE(sim-jump, 427[ --enable-sim-jump Jump between semantic code (instead of call/return).], 428[case "${enableval}" in 429 yes) sim_jump="-J";; 430 no) sim_jump="";; 431 *) AC_MSG_ERROR("--enable-sim-jump does not take a value"); sim_jump="";; 432esac 433if test x"$silent" != x"yes" && test x"$sim_jump" != x""; then 434 echo "Setting jump flag = $sim_jump" 6>&1 435fi],[sim_jump="" 436if test x"$silent" != x"yes"; then 437 echo "Setting jump flag = $sim_jump" 6>&1 438fi])dnl 439 440 441AC_ARG_ENABLE(sim-line-nr, 442[ --enable-sim-line-nr=opts Generate extra CPP code that references source rather than generated code], 443[case "${enableval}" in 444 yes) sim_line_nr="";; 445 no) sim_line_nr="-L";; 446 *) AC_MSG_ERROR("--enable-sim-line-nr does not take a value"); sim_line_nr="";; 447esac 448if test x"$silent" != x"yes" && test x"$sim_line_nr" != x""; then 449 echo "Setting warning flags = $sim_line_nr" 6>&1 450fi],[sim_line_nr=""])dnl 451 452 453AC_ARG_ENABLE(sim-model, 454[ --enable-sim-model=which Specify PowerPC to model.], 455[case "${enableval}" in 456 yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-model=model");; 457 *) sim_model="-DWITH_MODEL=${enableval}";; 458esac 459if test x"$silent" != x"yes" && test x"$sim_model" != x""; then 460 echo "Setting model flags = $sim_model" 6>&1 461fi],[sim_model=""])dnl 462 463 464AC_ARG_ENABLE(sim-model-issue, 465[ --enable-sim-model-issue Specify whether to simulate model specific actions], 466[case "${enableval}" in 467 yes) sim_model_issue="-DWITH_MODEL_ISSUE=MODEL_ISSUE_PROCESS";; 468 no) sim_model_issue="-DWITH_MODEL_ISSUE=MODEL_ISSUE_IGNORE";; 469 *) AC_MSG_ERROR("--enable-sim-model-issue does not take a value"); sim_model_issue="";; 470esac 471if test x"$silent" != x"yes"; then 472 echo "Setting model-issue flags = $sim_model_issue" 6>&1 473fi],[sim_model_issue=""])dnl 474 475 476AC_ARG_ENABLE(sim-monitor, 477[ --enable-sim-monitor=mon Specify whether to enable monitoring events.], 478[case "${enableval}" in 479 yes) sim_monitor="-DWITH_MON='MONITOR_INSTRUCTION_ISSUE | MONITOR_LOAD_STORE_UNIT'";; 480 no) sim_monitor="-DWITH_MON=0";; 481 instruction) sim_monitor="-DWITH_MON=MONITOR_INSTRUCTION_ISSUE";; 482 memory) sim_monitor="-DWITH_MON=MONITOR_LOAD_STORE_UNIT";; 483 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-mon"); sim_env="";; 484esac 485if test x"$silent" != x"yes" && test x"$sim_monitor" != x""; then 486 echo "Setting monitor flags = $sim_monitor" 6>&1 487fi],[sim_monitor=""])dnl 488 489 490AC_ARG_ENABLE(sim-opcode, 491[ --enable-sim-opcode=which Override default opcode lookup.], 492[case "${enableval}" in 493 yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-opcode=file");; 494 *) if test -f "${srcdir}/${enableval}"; then 495 sim_opcode="${enableval}" 496 elif test -f "${srcdir}/dc-${enableval}"; then 497 sim_opcode="dc-${enableval}" 498 else 499 AC_MSG_ERROR("File $enableval is not an opcode rules file"); 500 sim_opcode="dc-complex" 501 fi;; 502esac 503if test x"$silent" != x"yes" && test x"$sim_opcode" != x""; then 504 echo "Setting opcode flags = $sim_opcode" 6>&1 505fi],[sim_opcode="dc-complex" 506if test x"$silent" != x"yes"; then 507 echo "Setting opcode flags = $sim_opcode" 508fi])dnl 509 510 511AC_ARG_ENABLE(sim-packages, 512[ --enable-sim-packages=list Specify the packages to be included in the build.], 513[packages=disklabel 514case "${enableval}" in 515 yes) ;; 516 no) AC_MSG_ERROR("List of packages must be specified for --enable-sim-packages"); packages="";; 517 ,*) packages="${packages}${enableval}";; 518 *,) packages="${enableval}${packages}";; 519 *) packages="${enableval}"'';; 520esac 521sim_pk_src=`echo $packages | sed -e 's/,/.c pk_/g' -e 's/^/pk_/' -e 's/$/.c/'` 522sim_pk_obj=`echo $sim_pk_src | sed -e 's/\.c/.o/g'` 523if test x"$silent" != x"yes" && test x"$packages" != x""; then 524 echo "Setting packages to $sim_pk_src, $sim_pk_obj" 525fi],[packages=disklabel 526sim_pk_src=`echo $packages | sed -e 's/,/.c pk_/g' -e 's/^/pk_/' -e 's/$/.c/'` 527sim_pk_obj=`echo $sim_pk_src | sed -e 's/\.c/.o/g'` 528if test x"$silent" != x"yes"; then 529 echo "Setting packages to $sim_pk_src, $sim_pk_obj" 530fi])dnl 531 532 533AC_ARG_ENABLE(sim-regparm, 534[ --enable-sim-regparm=nr-parm Pass parameters in registers instead of on the stack - x86/GCC specific.], 535[case "${enableval}" in 536 0*|1*|2*|3*|4*|5*|6*|7*|8*|9*) sim_regparm="-DWITH_REGPARM=${enableval}";; 537 no) sim_regparm="" ;; 538 yes) sim_regparm="-DWITH_REGPARM=3";; 539 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-regparm"); sim_regparm="";; 540esac 541if test x"$silent" != x"yes" && test x"$sim_regparm" != x""; then 542 echo "Setting regparm flags = $sim_regparm" 6>&1 543fi],[sim_regparm=""])dnl 544 545 546AC_ARG_ENABLE(sim-reserved-bits, 547[ --enable-sim-reserved-bits Specify whether to check reserved bits in instruction.], 548[case "${enableval}" in 549 yes) sim_reserved="-DWITH_RESERVED_BITS=1";; 550 no) sim_reserved="-DWITH_RESERVED_BITS=0";; 551 *) AC_MSG_ERROR("--enable-sim-reserved-bits does not take a value"); sim_reserved="";; 552esac 553if test x"$silent" != x"yes" && test x"$sim_reserved" != x""; then 554 echo "Setting reserved flags = $sim_reserved" 6>&1 555fi],[sim_reserved=""])dnl 556 557 558AC_ARG_ENABLE(sim-smp, 559[ --enable-sim-smp=n Specify number of processors to configure for.], 560[case "${enableval}" in 561 yes) sim_smp="-DWITH_SMP=5" ; sim_igen_smp="-N 5";; 562 no) sim_smp="-DWITH_SMP=0" ; sim_igen_smp="-N 0";; 563 *) sim_smp="-DWITH_SMP=$enableval" ; sim_igen_smp="-N $enableval";; 564esac 565if test x"$silent" != x"yes" && test x"$sim_smp" != x""; then 566 echo "Setting smp flags = $sim_smp" 6>&1 567fi],[sim_smp="-DWITH_SMP=5" ; sim_igen_smp="-N 5" 568if test x"$silent" != x"yes"; then 569 echo "Setting smp flags = $sim_smp" 6>&1 570fi])dnl 571 572 573AC_ARG_ENABLE(sim-stdcall, 574[ --enable-sim-stdcall=type Use an alternative function call/return mechanism - x86/GCC specific.], 575[case "${enableval}" in 576 no) sim_stdcall="" ;; 577 std*) sim_stdcall="-DWITH_STDCALL=1";; 578 yes) sim_stdcall="-DWITH_STDCALL=1";; 579 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-stdcall"); sim_stdcall="";; 580esac 581if test x"$silent" != x"yes" && test x"$sim_stdcall" != x""; then 582 echo "Setting function call flags = $sim_stdcall" 6>&1 583fi],[sim_stdcall=""])dnl 584 585 586AC_ARG_ENABLE(sim-stdio, 587[ --enable-sim-stdio Specify whether to use stdio for console input/output.], 588[case "${enableval}" in 589 yes) sim_stdio="-DWITH_STDIO=DO_USE_STDIO";; 590 no) sim_stdio="-DWITH_STDIO=DONT_USE_STDIO";; 591 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-stdio"); sim_stdio="";; 592esac 593if test x"$silent" != x"yes" && test x"$sim_stdio" != x""; then 594 echo "Setting stdio flags = $sim_stdio" 6>&1 595fi],[sim_stdio=""])dnl 596 597 598AC_ARG_ENABLE(sim-switch, 599[ --enable-sim-switch Use a switch instead of a table for instruction call.], 600[case "${enableval}" in 601 yes) sim_switch="-s";; 602 no) sim_switch="";; 603 *) AC_MSG_ERROR("--enable-sim-switch does not take a value"); sim_switch="";; 604esac 605if test x"$silent" != x"yes" && test x"$sim_switch" != x""; then 606 echo "Setting switch flags = $sim_switch" 6>&1 607fi],[sim_switch=""; 608if test x"$silent" != x"yes"; then 609 echo "Setting switch flags = $sim_switch" 6>&1 610fi])dnl 611 612 613AC_ARG_ENABLE(sim-timebase, 614[ --enable-sim-timebase Specify whether the PPC timebase is supported.], 615[case "${enableval}" in 616 yes) sim_timebase="-DWITH_TIME_BASE=1";; 617 no) sim_timebase="-DWITH_TIME_BASE=0";; 618 *) AC_MSG_ERROR("--enable-sim-timebase does not take a value"); sim_timebase="";; 619esac 620if test x"$silent" != x"yes" && test x"$sim_timebase" != x""; then 621 echo "Setting timebase flags = $sim_timebase" 6>&1 622fi],[sim_timebase=""])dnl 623 624 625AC_ARG_ENABLE(sim-trace, 626[ --enable-sim-trace Specify whether tracing is supported.], 627[case "${enableval}" in 628 yes) sim_trace="-DWITH_TRACE=1";; 629 no) sim_trace="-DWITH_TRACE=0";; 630 *) AC_MSG_ERROR("--enable-sim-trace does not take a value"); sim_trace="";; 631esac 632if test x"$silent" != x"yes" && test x"$sim_trace" != x""; then 633 echo "Setting trace flags = $sim_trace" 6>&1 634fi],[sim_trace=""])dnl 635 636 637AC_ARG_ENABLE(sim-warnings, 638[ --enable-sim-warnings=opts Extra CFLAGS for turning on compiler warnings except for idecode.o, semantics.o and psim.o], 639[case "${enableval}" in 640 yes) sim_warnings="-Werror -Wall -Wpointer-arith -Wmissing-prototypes -Wmissing-declarations ";; 641 no) sim_warnings="-w";; 642 *) sim_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;; 643esac 644if test x"$silent" != x"yes" && test x"$sim_warnings" != x""; then 645 echo "Setting warning flags = $sim_warnings" 6>&1 646fi],[sim_warnings=""])dnl 647 648 649AC_ARG_ENABLE(sim-xor-endian, 650[ --enable-sim-xor-endian=n Specify number bytes involved in PowerPC XOR bi-endian mode (default 8).], 651[case "${enableval}" in 652 yes) sim_xor_endian="-DWITH_XOR_ENDIAN=8";; 653 no) sim_xor_endian="-DWITH_XOR_ENDIAN=0";; 654 *) sim_xor_endian="-DWITH_XOR_ENDIAN=$enableval";; 655esac 656if test x"$silent" != x"yes" && test x"$sim_xor_endian" != x""; then 657 echo "Setting xor-endian flag = $sim_xor_endian" 6>&1 658fi],[sim_xor_endian=""])dnl 659 660 661ACX_PKGVERSION([GDB]) 662ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/]) 663AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description]) 664AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address]) 665 666AC_CANONICAL_SYSTEM 667AC_ARG_PROGRAM 668 669# BFD conditionally uses zlib, so we must link it in if libbfd does, by 670# using the same condition. 671AM_ZLIB 672 673# BFD uses libdl when when plugins enabled. 674AC_PLUGINS 675 676. ${srcdir}/../../bfd/configure.host 677 678case ${host} in 679 *mingw32*) 680 AC_DEFINE(USE_WIN32API, 1, 681 [Define if we should use the Windows API, instead of the 682 POSIX API. On Windows, we use the Windows API when 683 building for MinGW, but the POSIX API when building 684 for Cygwin.]) 685 ;; 686esac 687 688AC_CONFIG_HEADER(config.h:config.in) 689 690AC_STRUCT_ST_BLKSIZE 691AC_STRUCT_ST_BLOCKS 692AC_STRUCT_ST_RDEV 693AC_STRUCT_TIMEZONE 694 695AC_TYPE_GETGROUPS 696AC_TYPE_MODE_T 697AC_TYPE_OFF_T 698AC_TYPE_PID_T 699AC_TYPE_SIGNAL 700AC_TYPE_SIZE_T 701AC_TYPE_UID_T 702 703AC_CHECK_FUNCS(access cfgetispeed cfgetospeed cfsetispeed cfsetospeed chdir chmod chown dup dup2 fchmod fchown fcntl fstat fstatfs getdirentries getegid geteuid getgid getpid getppid getrusage gettimeofday getuid ioctl kill link lseek lstat mkdir pipe readlink rmdir setreuid setregid stat sigprocmask stat symlink tcgetattr tcsetattr tcsendbreak tcdrain tcflush tcflow tcgetpgrp tcsetpgrp time umask unlink) 704 705AC_CHECK_HEADERS(fcntl.h stdlib.h string.h strings.h sys/ioctl.h sys/mount.h sys/param.h sys/resource.h sys/stat.h sys/termio.h sys/termios.h sys/time.h sys/times.h sys/types.h time.h unistd.h sys/vfs.h sys/statfs.h) 706AC_HEADER_DIRENT 707 708dnl Figure out what type of termio/termios support there is 709sim_termio="" 710AC_MSG_CHECKING(for struct termios) 711AC_CACHE_VAL(ac_cv_termios_struct, 712[AC_TRY_COMPILE([#include <sys/types.h> 713#include <sys/termios.h>], 714[static struct termios x; 715 x.c_iflag = 0; 716 x.c_oflag = 0; 717 x.c_cflag = 0; 718 x.c_lflag = 0; 719 x.c_cc[NCCS] = 0;], 720ac_cv_termios_struct=yes, ac_cv_termios_struct=no)]) 721AC_MSG_RESULT($ac_cv_termios_struct) 722if test $ac_cv_termios_struct = yes; then 723 sim_termio="$sim_termio -DHAVE_TERMIOS_STRUCTURE" 724fi 725 726if test "$ac_cv_termios_struct" = "yes"; then 727 AC_MSG_CHECKING(for c_line field in struct termios) 728 AC_CACHE_VAL(ac_cv_termios_cline, 729 [AC_TRY_COMPILE([#include <sys/types.h> 730#include <sys/termios.h>], 731[static struct termios x; x.c_line = 0;], 732 ac_cv_termios_cline=yes, ac_cv_termios_cline=no)]) 733 734 AC_MSG_RESULT($ac_cv_termios_cline) 735 if test $ac_cv_termios_cline = yes; then 736 sim_termio="$sim_termio -DHAVE_TERMIOS_CLINE" 737 fi 738else 739 ac_cv_termios_cline=no 740fi 741 742if test "$ac_cv_termios_struct" != "yes"; then 743 AC_MSG_CHECKING(for struct termio) 744 AC_CACHE_VAL(ac_cv_termio_struct, 745 [AC_TRY_COMPILE([#include <sys/types.h> 746#include <sys/termio.h>], 747[static struct termio x; 748 x.c_iflag = 0; 749 x.c_oflag = 0; 750 x.c_cflag = 0; 751 x.c_lflag = 0; 752 x.c_cc[NCC] = 0;], 753ac_cv_termio_struct=yes, ac_cv_termio_struct=no)]) 754 AC_MSG_RESULT($ac_cv_termio_struct) 755 if test $ac_cv_termio_struct = yes; then 756 sim_termio="$sim_termio -DHAVE_TERMIO_STRUCTURE" 757 fi 758else 759 ac_cv_termio_struct=no 760fi 761 762if test "$ac_cv_termio_struct" = "yes"; then 763 AC_MSG_CHECKING(for c_line field in struct termio) 764 AC_CACHE_VAL(ac_cv_termio_cline, 765 [AC_TRY_COMPILE([#include <sys/types.h> 766#include <sys/termio.h>], 767[static struct termio x; x.c_line = 0;], 768 ac_cv_termio_cline=yes, ac_cv_termio_cline=no)]) 769 770 AC_MSG_RESULT($ac_cv_termio_cline) 771 if test $ac_cv_termio_cline = yes; then 772 sim_termio="$sim_termio -DHAVE_TERMIO_CLINE" 773 fi 774else 775 ac_cv_termio_cline=no 776fi 777 778dnl Check for struct statfs 779AC_MSG_CHECKING(for struct statfs) 780AC_CACHE_VAL(ac_cv_struct_statfs, 781[AC_TRY_COMPILE([#include <sys/types.h> 782#ifdef HAVE_SYS_PARAM_H 783#include <sys/param.h> 784#endif 785#ifdef HAVE_SYS_MOUNT_H 786#include <sys/mount.h> 787#endif 788#ifdef HAVE_SYS_VFS_H 789#include <sys/vfs.h> 790#endif 791#ifdef HAVE_SYS_STATFS_H 792#include <sys/statfs.h> 793#endif], 794[static struct statfs s;], 795ac_cv_struct_statfs=yes, ac_cv_struct_statfs=no)]) 796AC_MSG_RESULT($ac_cv_struct_statfs) 797if test $ac_cv_struct_statfs = yes; then 798 AC_DEFINE(HAVE_STRUCT_STATFS, 1, 799 [Define if struct statfs is defined in <sys/mount.h>]) 800fi 801 802AC_CHECK_TYPES(long long) 803 804dnl Figure out if /dev/zero exists or not 805sim_devzero="" 806AC_MSG_CHECKING(for /dev/zero) 807AC_CACHE_VAL(ac_cv_devzero, 808[AC_TRY_RUN([#include <fcntl.h> 809main () { 810 char buf[2048]; 811 int i; 812 int fd = open ("/dev/zero", O_RDONLY); 813 if (fd < 0) 814 return 1; 815 for (i = 0; i < sizeof (buf); i++) 816 buf[i] = 1; 817 if (read (fd, buf, sizeof (buf)) != sizeof (buf)) 818 return 1; 819 for (i = 0; i < sizeof (buf); i++) 820 if (buf[i]) 821 return 1; 822 return 0; 823}],[ac_cv_devzero=yes],[ac_cv_devzero=no],[ac_cv_devzero=no])]) 824AC_MSG_RESULT($ac_cv_devzero) 825if test $ac_cv_devzero = yes; then 826 sim_devzero="-DHAVE_DEVZERO" 827else 828 sim_devzero="" 829fi 830 831dnl Figure out if we are in the new Cygnus tree with a common directory or not 832AC_MSG_CHECKING(for common simulator directory) 833if test -f "${srcdir}/../common/callback.c"; then 834 AC_MSG_RESULT(yes) 835 sim_callback="callback.o targ-map.o" 836 sim_targ_vals="targ-vals.h targ-map.c targ-vals.def" 837else 838 AC_MSG_RESULT(no) 839 sim_callback="" 840 sim_targ_vals="" 841fi 842 843AC_MSG_CHECKING(for common simulator directory fpu implementation) 844if test -f "${srcdir}/../common/sim-fpu.c"; then 845 AC_MSG_RESULT(yes) 846 sim_fpu_cflags="-DHAVE_COMMON_FPU -I../common -I${srcdir}/../common" 847 sim_fpu="sim-fpu.o" 848else 849 AC_MSG_RESULT(no) 850 sim_fpu_cflags= 851 sim_fpu= 852fi 853 854# Since we run commands on the build system, we have to create a 855# separate config header for the build system if build != host. 856if test x$host = x$build; then 857 AC_CONFIG_COMMANDS([build-config.h],[cp config.h build-config.h]) 858else 859 tempdir=build.$$ 860 rm -rf $tempdir 861 mkdir $tempdir 862 cd $tempdir 863 case ${srcdir} in 864 /* | [A-Za-z]:[\\/]* ) realsrcdir=${srcdir};; 865 *) realsrcdir=../${srcdir};; 866 esac 867 saved_CFLAGS="${CFLAGS}" 868 CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \ 869 LDFLAGS="${LDFLAGS_FOR_BUILD}" \ 870 ${realsrcdir}/configure \ 871 --enable-languages=${enable_languages-all} \ 872 --target=$target_alias --host=$build_alias --build=$build_alias 873 CFLAGS="${saved_CFLAGS}" 874 mv config.h ../build-config.h 875 cd .. 876 rm -rf $tempdir 877fi 878 879dnl Check for exe extension 880AC_EXEEXT 881 882AC_SUBST(CC_FOR_BUILD) 883AC_SUBST(CFLAGS_FOR_BUILD) 884AC_SUBST(CFLAGS) 885AC_SUBST(HDEFINES) 886AR=${AR-ar} 887AC_SUBST(AR) 888AC_PROG_RANLIB 889AC_SUBST(sim_cflags) 890AC_SUBST(sim_warnings) 891AC_SUBST(sim_line_nr) 892AC_SUBST(sim_config) 893AC_SUBST(sim_opcode) 894AC_SUBST(sim_switch) 895AC_SUBST(sim_dup) 896AC_SUBST(sim_decode_mechanism) 897AC_SUBST(sim_jump) 898AC_SUBST(sim_filter) 899AC_SUBST(sim_icache) 900AC_SUBST(sim_hw_src) 901AC_SUBST(sim_hw_obj) 902AC_SUBST(sim_pk_src) 903AC_SUBST(sim_pk_obj) 904AC_SUBST(sim_inline) 905AC_SUBST(sim_bswap) 906AC_SUBST(sim_endian) 907AC_SUBST(sim_regparm) 908AC_SUBST(sim_stdcall) 909AC_SUBST(sim_xor_endian) 910AC_SUBST(sim_hostendian) 911AC_SUBST(sim_smp) 912AC_SUBST(sim_igen_smp) 913AC_SUBST(sim_bitsize) 914AC_SUBST(sim_hostbitsize) 915AC_SUBST(sim_env) 916AC_SUBST(sim_timebase) 917AC_SUBST(sim_alignment) 918AC_SUBST(sim_float) 919AC_SUBST(sim_trace) 920AC_SUBST(sim_assert) 921AC_SUBST(sim_reserved) 922AC_SUBST(sim_monitor) 923AC_SUBST(sim_model) 924AC_SUBST(sim_default_model) 925AC_SUBST(sim_model_issue) 926AC_SUBST(sim_stdio) 927AC_SUBST(sim_termio) 928AC_SUBST(sim_devzero) 929AC_SUBST(sim_callback) 930AC_SUBST(sim_targ_vals) 931AC_SUBST(sim_fpu_cflags) 932AC_SUBST(sim_fpu) 933 934AC_OUTPUT(Makefile, 935[case x$CONFIG_HEADERS in xconfig.h:config.in) echo > stamp-h ;; esac]) 936