5 |
|
AC_PREREQ(2.12) |
6 |
|
AC_CONFIG_HEADER(config.h) |
7 |
|
|
8 |
+ |
dnl Canonical system information. |
9 |
+ |
AC_CANONICAL_HOST |
10 |
+ |
AC_CANONICAL_TARGET |
11 |
+ |
|
12 |
|
dnl Options. |
13 |
+ |
AC_ARG_ENABLE(jit, [ --enable-jit enable JIT compiler [default=yes]], [WANT_JIT=$enableval], [WANT_JIT=yes]) |
14 |
|
AC_ARG_ENABLE(ppc-emulator, [ --enable-ppc-emulator use the selected PowerPC emulator [default=auto]], [WANT_EMULATED_PPC=$enableval], [WANT_EMULATED_PPC=auto]) |
15 |
|
AC_ARG_ENABLE(xf86-dga, [ --enable-xf86-dga use the XFree86 DGA extension [default=yes]], [WANT_XF86_DGA=$enableval], [WANT_XF86_DGA=yes]) |
16 |
|
AC_ARG_ENABLE(xf86-vidmode, [ --enable-xf86-vidmode use the XFree86 VidMode extension [default=yes]], [WANT_XF86_VIDMODE=$enableval], [WANT_XF86_VIDMODE=yes]) |
192 |
|
dnl Select system-dependant sources. |
193 |
|
if [[ "x$EMULATED_PPC" = "xno" ]]; then |
194 |
|
SYSSRCS="Linux/paranoia.cpp Linux/sheepthreads.c Linux/asm_linux.S" |
190 |
– |
else |
191 |
– |
SYSSRCS="../kpx_cpu/sheepshaver_glue.cpp \ |
192 |
– |
../kpx_cpu/src/cpu/ppc/ppc-cpu.cpp \ |
193 |
– |
../kpx_cpu/src/cpu/ppc/ppc-decode.cpp \ |
194 |
– |
../kpx_cpu/src/cpu/ppc/ppc-execute.cpp" |
195 |
– |
CPPFLAGS="$CPPFLAGS -I../kpx_cpu/include -I../kpx_cpu/src" |
195 |
|
fi |
196 |
|
SYSSRCS="$SYSSRCS $SEMSRCS $UISRCS $MONSRCS" |
197 |
|
|
510 |
|
WANT_VOSF=no |
511 |
|
fi |
512 |
|
|
513 |
+ |
dnl Check for GCC 2.7 or higher. |
514 |
+ |
HAVE_GCC27=no |
515 |
+ |
AC_MSG_CHECKING(for GCC 2.7 or higher) |
516 |
+ |
AC_EGREP_CPP(xyes, |
517 |
+ |
[#if __GNUC__ - 1 > 1 || __GNUC_MINOR__ - 1 > 5 |
518 |
+ |
xyes |
519 |
+ |
#endif |
520 |
+ |
], [AC_MSG_RESULT(yes); HAVE_GCC27=yes], AC_MSG_RESULT(no)) |
521 |
+ |
|
522 |
+ |
dnl Check for GCC 3.0 or higher. |
523 |
+ |
HAVE_GCC30=no |
524 |
+ |
AC_MSG_CHECKING(for GCC 3.0 or higher) |
525 |
+ |
AC_EGREP_CPP(xyes, |
526 |
+ |
[#if __GNUC__ >= 3 |
527 |
+ |
xyes |
528 |
+ |
#endif |
529 |
+ |
], [AC_MSG_RESULT(yes); HAVE_GCC30=yes], AC_MSG_RESULT(no)) |
530 |
+ |
|
531 |
+ |
# Test if the compiler can generate ELF objects |
532 |
+ |
AC_CACHE_CHECK([whether the compiler can generate ELF objects], |
533 |
+ |
ac_cv_elf_objects, [ |
534 |
+ |
echo 'int i;' > conftest.$ac_ext |
535 |
+ |
ac_cv_elf_objects=no |
536 |
+ |
if AC_TRY_EVAL(ac_compile); then |
537 |
+ |
case `/usr/bin/file conftest.$ac_objext` in |
538 |
+ |
*"ELF"*) |
539 |
+ |
ac_cv_elf_objects=yes |
540 |
+ |
;; |
541 |
+ |
esac |
542 |
+ |
fi |
543 |
+ |
rm -rf conftest* |
544 |
+ |
]) |
545 |
+ |
ELF_OBJECTS=$ac_cv_elf_objects |
546 |
+ |
|
547 |
+ |
dnl FIXME: forcibly disable JIT for now |
548 |
+ |
WANT_JIT=no |
549 |
+ |
|
550 |
+ |
dnl CPU emulator sources |
551 |
+ |
if [[ "x$EMULATED_PPC" = "xyes" ]]; then |
552 |
+ |
CPUSRCS="\ |
553 |
+ |
../kpx_cpu/src/cpu/ppc/ppc-cpu.cpp \ |
554 |
+ |
../kpx_cpu/src/cpu/ppc/ppc-decode.cpp \ |
555 |
+ |
../kpx_cpu/src/cpu/ppc/ppc-execute.cpp \ |
556 |
+ |
../kpx_cpu/src/cpu/ppc/ppc-translate.cpp" |
557 |
+ |
CPPFLAGS="$CPPFLAGS -I../kpx_cpu/include -I../kpx_cpu/src" |
558 |
+ |
|
559 |
+ |
dnl Enable JIT compiler, if possible |
560 |
+ |
if [[ "x$WANT_JIT" = "xyes" ]]; then |
561 |
+ |
AC_CACHE_CHECK([whether dyngen can be used], |
562 |
+ |
ac_cv_use_dyngen, [ |
563 |
+ |
case $host_cpu:$ELF_OBJECTS in |
564 |
+ |
powerpc:yes) |
565 |
+ |
ac_cv_use_dyngen=yes |
566 |
+ |
;; |
567 |
+ |
x86_64:yes) |
568 |
+ |
ac_cv_use_dyngen=yes |
569 |
+ |
;; |
570 |
+ |
i?86:yes) |
571 |
+ |
ac_cv_use_dyngen=yes |
572 |
+ |
;; |
573 |
+ |
*:*) |
574 |
+ |
ac_cv_use_dyngen=no |
575 |
+ |
;; |
576 |
+ |
esac |
577 |
+ |
]) |
578 |
+ |
if [[ "x$ac_cv_use_dyngen" = "xyes" ]]; then |
579 |
+ |
case $host_cpu in |
580 |
+ |
i?86:yes) |
581 |
+ |
DYNGEN_OP_FLAGS="-fomit-frame-pointer -mpreferred-stack-boundary=2" |
582 |
+ |
if [[ "x$HAVE_GCC30" = "xyes" ]]; then |
583 |
+ |
DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -falign-functions=0" |
584 |
+ |
else |
585 |
+ |
DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -malign-functions=0" |
586 |
+ |
fi |
587 |
+ |
;; |
588 |
+ |
esac |
589 |
+ |
DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -finline-limit=2000" |
590 |
+ |
if [[ "x$HAVE_GCC30" = "xyes" ]]; then |
591 |
+ |
DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -fno-reorder-blocks -fno-optimize-sibling-calls" |
592 |
+ |
fi |
593 |
+ |
else |
594 |
+ |
WANT_JIT=no |
595 |
+ |
fi |
596 |
+ |
AC_TRANSLATE_DEFINE(ENABLE_DYNGEN, $ac_cv_use_dyngen, [Define to enable dyngen engine]) |
597 |
+ |
if [[ "x$WANT_JIT" = "xyes" ]]; then |
598 |
+ |
DYNGENSRCS="\ |
599 |
+ |
../kpx_cpu/src/cpu/jit/dyngen.c \ |
600 |
+ |
../kpx_cpu/src/cpu/jit/cxxdemangle.cpp" |
601 |
+ |
CPUSRCS="\ |
602 |
+ |
../kpx_cpu/src/cpu/jit/jit-cache.cpp \ |
603 |
+ |
../kpx_cpu/src/cpu/jit/basic-dyngen.cpp \ |
604 |
+ |
../kpx_cpu/src/cpu/ppc/ppc-dyngen.cpp $CPUSRCS" |
605 |
+ |
fi |
606 |
+ |
fi |
607 |
+ |
CPUSRCS="$CPUSRCS ../kpx_cpu/sheepshaver_glue.cpp" |
608 |
+ |
fi |
609 |
+ |
|
610 |
|
dnl Generate Makefile. |
611 |
+ |
AC_SUBST(DYNGENSRCS) |
612 |
+ |
AC_SUBST(DYNGEN_OP_FLAGS) |
613 |
|
AC_SUBST(SYSSRCS) |
614 |
+ |
AC_SUBST(CPUSRCS) |
615 |
|
AC_OUTPUT(Makefile) |
616 |
|
|
617 |
|
dnl Print summary. |
621 |
|
echo XFree86 DGA support .............. : $WANT_XF86_DGA |
622 |
|
echo XFree86 VidMode support .......... : $WANT_XF86_VIDMODE |
623 |
|
echo Using PowerPC emulator ........... : $EMULATED_PPC |
624 |
+ |
echo Enable JIT compiler .............. : $WANT_JIT |
625 |
|
echo Enable video on SEGV signals ..... : $WANT_VOSF |
626 |
|
echo ESD sound support ................ : $WANT_ESD |
627 |
|
echo GTK user interface ............... : $WANT_GTK |