5 |
|
AC_PREREQ(2.52) |
6 |
|
AC_CONFIG_HEADER(config.h) |
7 |
|
|
8 |
< |
dnl Options. |
8 |
> |
dnl Video options. |
9 |
|
AC_ARG_ENABLE(xf86-dga, [ --enable-xf86-dga use the XFree86 DGA extension [default=yes]], [WANT_XF86_DGA=$enableval], [WANT_XF86_DGA=yes]) |
10 |
|
AC_ARG_ENABLE(xf86-vidmode, [ --enable-xf86-vidmode use the XFree86 VidMode extension [default=yes]], [WANT_XF86_VIDMODE=$enableval], [WANT_XF86_VIDMODE=yes]) |
11 |
|
AC_ARG_ENABLE(fbdev-dga, [ --enable-fbdev-dga use direct frame buffer access via /dev/fb [default=yes]], [WANT_FBDEV_DGA=$enableval], [WANT_FBDEV_DGA=yes]) |
12 |
|
AC_ARG_ENABLE(vosf, [ --enable-vosf enable video on SEGV signals [default=yes]], [WANT_VOSF=$enableval], [WANT_VOSF=yes]) |
13 |
|
|
14 |
+ |
dnl JIT compiler options. |
15 |
+ |
AC_ARG_ENABLE(jit-compiler, [ --enable-jit-compiler enable JIT compiler [default=no]], [WANT_JIT=$enableval], [WANT_JIT=no]) |
16 |
+ |
AC_ARG_ENABLE(jit-debug, [ --enable-jit-debug activate native code disassemblers [default=no]], [WANT_JIT_DEBUG=$enableval], [WANT_JIT_DEBUG=no]) |
17 |
+ |
|
18 |
|
dnl FPU emulation core. |
19 |
|
AC_ARG_ENABLE(fpe, |
20 |
|
[ --enable-fpe=FPE specify which fpu emulator to use [default=auto]], |
139 |
|
AC_CHECK_FUNCS(pthread_cancel) |
140 |
|
AC_CHECK_FUNCS(pthread_mutexattr_setprotocol) |
141 |
|
AC_CHECK_FUNCS(pthread_mutexattr_settype) |
142 |
+ |
AC_CHECK_FUNCS(pthread_mutexattr_setpshared) |
143 |
|
|
144 |
|
dnl If POSIX.4 semaphores are not available, we emulate them with pthread mutexes. |
145 |
|
SEMSRC= |
744 |
|
fi |
745 |
|
fi |
746 |
|
|
747 |
+ |
dnl Banked Memory Addressing mode is not supported by the JIT compiler |
748 |
+ |
if [[ "x$WANT_JIT" = "xyes" -a "x$ADDRESSING_MODE" = "xmemory banks" ]]; then |
749 |
+ |
AC_MSG_ERROR([Sorry, the JIT Compiler requires Direct Addressing, at least]) |
750 |
+ |
fi |
751 |
+ |
|
752 |
|
dnl Enable VOSF screen updates with this feature is requested and feasible |
753 |
|
if [[ "x$WANT_VOSF" = "xyes" -a "x$CAN_VOSF" = "xyes" ]]; then |
754 |
|
AC_DEFINE(ENABLE_VOSF, 1, [Define if using video enabled on SEGV signals.]) |
814 |
|
dnl Select appropriate CPU source and REGPARAM define. |
815 |
|
ASM_OPTIMIZATIONS=none |
816 |
|
CPUSRCS="cpuemu1.cpp cpuemu2.cpp cpuemu3.cpp cpuemu4.cpp cpuemu5.cpp cpuemu6.cpp cpuemu7.cpp cpuemu8.cpp" |
817 |
+ |
|
818 |
+ |
dnl (gb) JITSRCS will be emptied later if the JIT is not available |
819 |
+ |
dnl Other platforms should define their own set of noflags file variants |
820 |
+ |
CAN_JIT=no |
821 |
+ |
JITSRCS="compemu1.cpp compemu2.cpp compemu3.cpp compemu4.cpp compemu5.cpp compemu6.cpp compemu7.cpp compemu8.cpp" |
822 |
+ |
|
823 |
|
if [[ "x$HAVE_GCC27" = "xyes" -a "x$HAVE_I386" = "xyes" -a "x$OS_TYPE" != "xfreebsd" ]]; then |
824 |
|
dnl i386 CPU |
825 |
< |
DEFINES="$DEFINES -DREGPARAM=\"__attribute__((regparm(3)))\"" |
825 |
> |
DEFINES="$DEFINES -DSAHF_SETO_PROFITABLE -DUNALIGNED_PROFITABLE -DREGPARAM=\"__attribute__((regparm(3)))\"" |
826 |
|
if [[ "x$HAVE_GAS" = "xyes" ]]; then |
827 |
|
ASM_OPTIMIZATIONS=i386 |
828 |
< |
DEFINES="$DEFINES -DX86_ASSEMBLY -DUNALIGNED_PROFITABLE -DOPTIMIZED_FLAGS" |
828 |
> |
DEFINES="$DEFINES -DX86_ASSEMBLY -DOPTIMIZED_FLAGS" |
829 |
|
CPUSRCS="cpufast1.s cpufast2.s cpufast3.s cpufast4.s cpufast5.s cpufast6.s cpufast7.s cpufast8.s" |
830 |
+ |
JITSRCS="cpufast1_nf.s cpufast2_nf.s cpufast3_nf.s cpufast4_nf.s cpufast5_nf.s cpufast6_nf.s cpufast7_nf.s cpufast8_nf.s $JITSRCS" |
831 |
|
fi |
832 |
+ |
CAN_JIT=yes |
833 |
|
elif [[ "x$HAVE_GCC27" = "xyes" -a "x$HAVE_SPARC" = "xyes" -a "x$HAVE_GAS" = "xyes" ]]; then |
834 |
|
dnl SPARC CPU |
835 |
|
case "$target_os" in |
859 |
|
CPUSRCS="asm_support.s" |
860 |
|
fi |
861 |
|
|
862 |
+ |
dnl Enable JIT compiler, if possible. |
863 |
+ |
if [[ "x$WANT_JIT" = "xyes" -a "x$CAN_JIT" ]]; then |
864 |
+ |
JITSRCS="$JITSRCS ../uae_cpu/compiler/compemu_support.cpp ../uae_cpu/compiler/compemu_fpp.cpp compstbl.o cpustbl_nf.o" |
865 |
+ |
DEFINES="$DEFINES -DUSE_JIT -DUSE_JIT_FPU" |
866 |
+ |
|
867 |
+ |
if [[ "x$WANT_JIT_DEBUG" = "xyes" ]]; then |
868 |
+ |
if [[ "x$WANT_MON" = "xyes" ]]; then |
869 |
+ |
DEFINES="$DEFINES -DJIT_DEBUG=1" |
870 |
+ |
else |
871 |
+ |
AC_MSG_WARN([cxmon not found, ignoring --enable-jit-debug]) |
872 |
+ |
WANT_JIT_DEBUG=no |
873 |
+ |
fi |
874 |
+ |
fi |
875 |
+ |
else |
876 |
+ |
WANT_JIT=no |
877 |
+ |
WANT_JIT_DEBUG=no |
878 |
+ |
JITSRCS="" |
879 |
+ |
fi |
880 |
+ |
|
881 |
|
dnl Utility macro used by next two tests. |
882 |
|
dnl AC_EXAMINE_OBJECT(C source code, |
883 |
|
dnl commands examining object file, |
1022 |
|
for fpe in $FPE_CORE_TEST_ORDER; do |
1023 |
|
case $fpe in |
1024 |
|
ieee) |
1025 |
< |
if echo "$ac_cv_c_float_format" | grep -q IEEE; then |
1025 |
> |
case $ac_cv_c_float_format in |
1026 |
> |
IEEE*) |
1027 |
|
FPE_CORE="IEEE fpu core" |
1028 |
|
DEFINES="$DEFINES -DFPU_IEEE" |
1029 |
|
FPUSRCS="../uae_cpu/fpu/fpu_ieee.cpp" |
1030 |
+ |
dnl Math functions not mandated by C99 standard |
1031 |
+ |
AC_CHECK_FUNCS(isnanl isinfl) |
1032 |
+ |
dnl Math functions required by C99 standard, but probably not |
1033 |
+ |
dnl implemented everywhere. In that case, we fall back to the |
1034 |
+ |
dnl regular variant for doubles. |
1035 |
+ |
AC_CHECK_FUNCS(logl log10l expl powl fabsl sqrtl) |
1036 |
+ |
AC_CHECK_FUNCS(sinl cosl tanl sinhl coshl tanhl) |
1037 |
+ |
AC_CHECK_FUNCS(asinl acosl atanl asinhl acoshl atanhl) |
1038 |
+ |
AC_CHECK_FUNCS(floorl ceill) |
1039 |
|
break |
1040 |
< |
fi |
1040 |
> |
;; |
1041 |
> |
esac |
1042 |
|
;; |
1043 |
|
x86) |
1044 |
|
if [[ ":$HAVE_GCC27:$HAVE_I386:$HAVE_GAS:" = ":yes:yes:yes:" ]]; then |
1065 |
|
|
1066 |
|
dnl Check for certain math functions |
1067 |
|
AC_CHECK_FUNCS(atanh) |
1068 |
< |
AC_CHECK_FUNCS(isnan isinf) dnl C99 |
1021 |
< |
AC_CHECK_FUNCS(isnanl isinfl) dnl IEEE ? |
1068 |
> |
AC_CHECK_FUNCS(isnan isinf finite isnormal signbit) |
1069 |
|
|
1070 |
|
dnl UAE CPU sources for all non-m68k-native architectures. |
1071 |
|
if [[ "x$WANT_NATIVE_M68K" = "xno" ]]; then |
1072 |
|
CPUINCLUDES="-I../uae_cpu" |
1073 |
< |
CPUSRCS="../uae_cpu/basilisk_glue.cpp ../uae_cpu/memory.cpp ../uae_cpu/newcpu.cpp ../uae_cpu/readcpu.cpp $FPUSRCS cpustbl.cpp cpudefs.cpp $CPUSRCS" |
1073 |
> |
CPUSRCS="../uae_cpu/basilisk_glue.cpp ../uae_cpu/memory.cpp ../uae_cpu/newcpu.cpp ../uae_cpu/readcpu.cpp $FPUSRCS cpustbl.cpp cpudefs.cpp $CPUSRCS $JITSRCS" |
1074 |
|
fi |
1075 |
|
|
1076 |
|
dnl Remove the "-g" option if set for GCC. |
1106 |
|
echo GTK user interface ..................... : $WANT_GTK |
1107 |
|
echo mon debugger support ................... : $WANT_MON |
1108 |
|
echo Running m68k code natively ............. : $WANT_NATIVE_M68K |
1109 |
+ |
echo Use JIT compiler ....................... : $WANT_JIT |
1110 |
+ |
echo JIT debug mode ......................... : $WANT_JIT_DEBUG |
1111 |
|
echo Floating-Point emulation core .......... : $FPE_CORE |
1112 |
|
echo Assembly optimizations ................. : $ASM_OPTIMIZATIONS |
1113 |
|
echo Addressing mode ........................ : $ADDRESSING_MODE |