Search
lxdream.org :: lxdream/configure.in
lxdream 0.9.1
released Jun 29
Download Now
filename configure.in
changeset 927:17b6b9e245d8
prev923:13ac59a786f4
next964:f2f3c7612d06
author nkeynes
date Sat Dec 27 02:59:35 2008 +0000 (13 years ago)
branchlxdream-mem
permissions -rw-r--r--
last change Replace fpscr_mask/fpscr flags in xlat_cache_block with a single xlat_sh4_mode,
which tracks the field of the same name in sh4r - actually a little faster this way.
Now depends on SR.MD, FPSCR.PR and FPSCR.SZ (although it doesn't benefit from the SR
flag yet).

Also fixed the failure to check the flags in the common case (code address returned
by previous block) which took away the performance benefits, but oh well.
view annotate diff log raw
     1 dnl Process this file with autoconf to produce a configure script.
     3 AC_INIT(configure.in)
     4 AM_INIT_AUTOMAKE(lxdream, 0.9)
     5 AM_MAINTAINER_MODE
     6 AM_CONFIG_HEADER(config.h)
     8 AC_ISC_POSIX
     9 AC_PROG_CC
    10 AM_PROG_CC_STDC
    11 AM_PROG_AS
    12 AC_CHECK_SIZEOF([void *])
    13 AC_HEADER_STDC
    14 AC_CANONICAL_BUILD
    15 AC_CANONICAL_HOST
    17 AC_PATH_PROG(POD2MAN, [pod2man])
    18 AC_PATH_PROG(POD2HTML, [pod2html])
    20 dnl ---------------- enable/with flags ------------------
    22 AC_ARG_ENABLE( strict-warn,
    23    AS_HELP_STRING( [--enable-strict-warn], [Enable strict compilation warnings]),
    24    [CFLAGS="$CFLAGS -Werror -Wall -Wno-unused"], [])
    25 AC_ARG_ENABLE( translator, 
    26    AS_HELP_STRING( [--disable-translator], [Disable the SH4 translator (Enabled by default)]),
    27    [true], [enable_translator=yes] )
    28 AC_ARG_ENABLE( optimized,
    29    AS_HELP_STRING( [--disable-optimized], [Disable compile-time optimizations (Enabled by default)]),
    30    [true], [enable_optimized=yes] )
    31 AC_ARG_ENABLE( profiled,
    32    AS_HELP_STRING( [--enable-profiled], [Enable profiling build]),
    33    [if test "$enableval" == "yes"; then
    34       enable_profiled=yes;
    35     fi] )
    36 AC_ARG_ENABLE( trace, 
    37    AS_HELP_STRING( [--enable-trace], [Enable generation of IO traces (warning: hurts performance)]),
    38    [if test "$enableval" == "yes"; then
    39      AC_DEFINE(ENABLE_TRACE_IO, 1, [Enable IO tracing])
    40     fi] )
    41 AC_ARG_ENABLE( watch,
    42    AS_HELP_STRING( [--enable-watch], [Enable watchpoints in the debugger (warning: hurts performance)]),
    43    [if test "$enableval" == "yes"; then
    44      AC_DEFINE(ENABLE_WATCH, 1, [Enable watchpoints])
    45    fi] )
    46 AC_ARG_ENABLE( sh4stats,
    47    AS_HELP_STRING( [--enable-sh4stats], [Enable statistics on executed sh4 instructions]),
    48    [if test "$enableval" == "yes"; then
    49      AC_DEFINE(ENABLE_SH4STATS, 1, [Enable SH4 statistics])
    50     fi] )
    51 AC_ARG_WITH( osmesa,
    52    AS_HELP_STRING( [--with-osmesa], [Build with the osmesa GL library (software rendering)]),
    53    [], [with_osmesa=no])
    54 AC_ARG_WITH( gtk,
    55    AS_HELP_STRING( [--with-gtk], [Build with the GTK UI. Default on X11 systems]), [with_gtk=yes], [with_gtk=x11] )
    56 AC_ARG_WITH( esd,
    57    AS_HELP_STRING( [--with-esd], [Build with support for the ESounD audio system]) )
    58 AC_ARG_WITH( pulse,
    59    AS_HELP_STRING( [--with-pulse], [Build with support for the PulseAudio audio system]) )
    61 dnl ------------ 
    63 if test "x$enable_optimized" = "xyes"; then
    64    CFLAGS="-g -O2 -msse2 -mfpmath=sse"
    65    if test "x$enable_profiled" != "xyes"; then
    66        dnl -fomit-frame-pointer can't be used with -pg
    67        CFLAGS="$CFLAGS -fexceptions -fomit-frame-pointer"
    68        AC_DEFINE(HAVE_EXCEPTIONS, [1], [Have exception stack-frame information])
    69    fi
    70 else 
    71    CFLAGS="-g3"
    72 fi
    74 if test "x$enable_profiled" = "xyes"; then
    75    CFLAGS="$CFLAGS -pg"
    76    LDFLAGS="$LDFLAGS -pg";
    77 fi
    79 if test "x$GCC" = "xyes"; then
    80    CFLAGS="$CFLAGS -fno-strict-aliasing"
    81 fi
    83 AC_CHECK_FASTCALL([
    84    AC_DEFINE(HAVE_FASTCALL, [1], [Use fast register-passing calling conventions])
    85 ])
    86 AC_CHECK_FRAME_ADDRESS( [
    87    AC_DEFINE(HAVE_FRAME_ADDRESS, [1], [Define if we have a working builtin frame_address])
    88 ], [ AC_MSG_WARN([Memory exceptions will be slow]) ])
    91 dnl ------------ Check if we're building on Darwin --------------
    93 dnl For starters, do we have a working objective-c compiler?
    94 lxdream_save_cppflags="$CPPFLAGS"
    95 CPPFLAGS="$CPPFLAGS -x objective-c"
    96 AC_TRY_COMPILE([@interface Foo @end],, [
    98    AC_CHECK_HEADER([Cocoa/Cocoa.h], [
    99       HAVE_COCOA='yes'
   100       APPLE_BUILD='yes'
   101       LIBS="$LIBS -framework AppKit"
   102       LIBS="$LIBS -Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib -framework OpenGL"
   103       CPPFLAGS="$CPPFLAGS -DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_4 -mdynamic-no-pic"
   104       LDFLAGS="$LDFLAGS -Wl,-headerpad_max_install_names"
   105       AC_DEFINE(HAVE_COCOA,[1],[Have Cocoa framework])
   106       AC_DEFINE(APPLE_BUILD,[1],[Building on an apple platform. Things are different...])
   107       if test "x$with_gtk" = "xx11"; then
   108         with_gtk=no
   109       fi
   110    ])
   112 ], [CPPFLAGS="$lxdream_save_cppflags"] )
   113 AM_CONDITIONAL(GUI_COCOA, [test "$HAVE_COCOA" = 'yes' -a "$with_gtk" = "no"])
   114 if test "x$HAVE_COCOA" = 'xyes' -a "x$with_gtk" = "xno"; then
   115   AC_DEFINE(OSX_BUNDLE, [1], [Generating a bundled application])
   116 fi
   118 dnl ----------- Check for mandatory dependencies --------------
   119 dnl Check for libpng (required)
   120 PKG_CHECK_MODULES(LIBPNG, [libpng] )
   122 dnl Implied by libpng, but check explicitly just in case
   123 AC_CHECK_LIB(z, uncompress, [], [
   124     echo "Zlib (libz.so) could not be found, but is required."
   125     exit 1])
   127 if test "x$with_gtk" = "xno"; then
   128    dnl Check for GLIB only
   129    PKG_CHECK_MODULES(GLIB, glib-2.0)
   130 else
   131    dnl Check for GTK
   132    PKG_CHECK_MODULES(GTK, gtk+-2.0, [
   133        HAVE_GTK='yes'
   134        AC_DEFINE([HAVE_GTK],1,[Have GTK libraries])
   135    ])
   137    dnl Which GTK port do we have?
   138    LIBS="$LIBS $GTK_LIBS"
   139    AC_CHECK_FUNC(gdk_x11_display_get_xdisplay, [ 
   140       HAVE_GTK_X11='yes'
   141       AC_DEFINE([HAVE_GTK_X11],1,[Building with GTK+X11]) ], [])
   142    AC_CHECK_FUNC(gdk_quartz_window_get_nsview, [ 
   143       HAVE_GTK_OSX='yes'
   144       AC_DEFINE([HAVE_GTK_OSX],1,[Building with GTK+Cocoa]) ], [])
   145 fi
   147 AM_CONDITIONAL(GUI_GTK, [test "$HAVE_GTK" = 'yes'])
   149 dnl ------------------ Video driver support -------------------
   150 AS_IF([test "x$with_osmesa" != xno], [ 
   152 dnl User requested OSMesa (ie pure software rendering)
   153   AC_CHECK_LIB([OSMesa], [OSMesaCreateContext], [],
   154     [AC_MSG_FAILURE( [--with-osmesa was given, but OSMesa library could not be found])])
   155   AC_CHECK_HEADER([GL/osmesa.h], [],
   156     [AC_MSG_FAILURE( [--with-osmesa was given, but osmesa.h could not be found])])
   157   HAVE_OSMESA='yes'
   158   VIDEO_DRIVERS="$VIDEO_DRIVERS osmesa"
   159   AC_DEFINE([HAVE_OSMESA],1,[Building with the OSMesa video driver]) ], [
   161 dnl Otherwise we want a real GL library (unless we're on darwin, in which case it's already
   162 dnl taken care of above).
   163    if test "x$APPLE_BUILD" != 'xyes'; then
   164       AC_CHECK_LIB(GL, glVertex3f, [], [
   165           AC_MSG_FAILURE( ["The OpenGL library (libGL.so) could not be found, but is required."])])
   166       AC_CHECK_HEADER([GL/gl.h], [], [
   167           AC_MSG_FAILURE( ["The OpenGL header files (eg GL/gl.h) could not be found, but are required."])])
   168    else
   169       AC_CHECK_FUNC(NSOpenGLGetVersion, [
   170          HAVE_NSGL='yes'
   171          VIDEO_DRIVERS="$VIDEO_DRIVERS nsgl"
   172          AC_DEFINE([HAVE_NSGL],1, [Have NSOpenGL support]) ] )
   173    fi
   175 dnl Now work out how to get from the UI to GL - this is usually the painful part.
   176    if test "x$HAVE_GTK_X11" = "xyes"; then
   177       if test "x$APPLE_BUILD" = "xyes"; then
   178          LIBS="$LIBS -L/usr/X11/lib -lGL"
   179       fi
   180       AC_CHECK_FUNC(glXQueryVersion, [
   181          HAVE_GLX='yes'
   182          VIDEO_DRIVERS="$VIDEO_DRIVERS glx"
   183          AC_DEFINE([HAVE_GLX], 1, [Have GLX support]) ] )
   184    fi
   186 ])
   190 AM_CONDITIONAL(VIDEO_OSMESA, [test "x$HAVE_OSMESA" = "xyes"])
   191 AM_CONDITIONAL(VIDEO_GLX, [test "x$HAVE_GLX" = "xyes"])
   192 AM_CONDITIONAL(VIDEO_NSGL, [test "x$HAVE_NSGL" = "xyes"])
   194 dnl Check for optional (but highly desireable) OpenGL features
   195 AC_CHECK_FUNC(glGenFramebuffersEXT, [ AC_DEFINE([HAVE_OPENGL_FBO],1,[Have EXT_framebuffer_object support]) ], [])
   196 AC_CHECK_FUNC(glCreateShader, [ AC_DEFINE([HAVE_OPENGL_SHADER],1,[Have 2.0 shader support]) ], [])
   197 AC_CHECK_FUNC(glCreateShaderObjectARB, [ AC_DEFINE([HAVE_OPENGL_SHADER_ARB],1,[Have ARB shader support]) ], [])
   198 AC_CHECK_FUNC(glClampColorARB, [ AC_DEFINE([HAVE_OPENGL_CLAMP_COLOR],1,[Have Color Clamp]) ], [])
   201 dnl ------------------- SH4 translator target -------------------
   203 if test "x$enable_translator" != "xno"; then
   204     case $host_cpu in
   205         i386|i486|i586|i686|x86_64)
   206 	    SH4_TRANSLATOR="x86"
   207             AC_DEFINE_UNQUOTED(SH4_TRANSLATOR,[TARGET_X86], [SH4 Translator to use (if any)] );;
   208     esac
   209 fi
   210 AM_CONDITIONAL(BUILD_SH4X86, [test "$SH4_TRANSLATOR" = "x86"])
   212 dnl ------------------ Optional driver support -------------------
   213 dnl Check for Apple CoreAudio
   214 AC_CHECK_HEADER([CoreAudio/CoreAudio.h], [
   215      HAVE_CORE_AUDIO=yes
   216      LIBS="$LIBS -framework CoreAudio"
   217      AUDIO_DRIVERS="$AUDIO_DRIVERS osx"
   218      AC_DEFINE([HAVE_CORE_AUDIO], 1, [Have Apple CoreAudio support]) ],[true ])
   219 AM_CONDITIONAL( AUDIO_OSX, [test "$HAVE_CORE_AUDIO" = 'yes'] )
   221 dnl Check for pulseaudio
   222 if test "x$with_pulse" != "xno"; then
   223    PKG_CHECK_MODULES(PULSE, [libpulse-simple], [
   224        HAVE_PULSE='yes'
   225        AUDIO_DRIVERS="$AUDIO_DRIVERS pulse"
   226        AC_DEFINE([HAVE_PULSE],1,[Have pulseaudio support]) 
   227    ], [
   228        if test "x$with_pulse" = "xyes"; then
   229           AC_MSG_FAILURE( [PulseAudio audio package could not be found (but was required)] )
   230        fi
   231    ])
   232 fi
   233 AM_CONDITIONAL( AUDIO_PULSE, [test "$HAVE_PULSE" = 'yes'] )
   235 dnl Check for esound
   236 if test "x$with_esd" != "xno"; then
   237    PKG_CHECK_MODULES(ESOUND, [esound], [ 
   238        HAVE_ESOUND='yes'
   239        AUDIO_DRIVERS="$AUDIO_DRIVERS esd"
   240        AC_DEFINE([HAVE_ESOUND],1,[Have esound support]) 
   241    ], [
   242        if test "x$with_esd" = "xyes"; then
   243           AC_MSG_FAILURE( [ESounD audio package could not be found (but was required)] )
   244        fi
   245    ])
   246 fi
   247 AM_CONDITIONAL( AUDIO_ESOUND, [test "$HAVE_ESOUND" = 'yes'] )
   249 dnl Check for alsa support
   250 PKG_CHECK_MODULES(ALSA, [alsa], [ 
   251      HAVE_ALSA='yes'
   252      AUDIO_DRIVERS="$AUDIO_DRIVERS alsa"
   253      AC_DEFINE([HAVE_ALSA],1,[Have alsa support]) ], [true])
   254 AM_CONDITIONAL( AUDIO_ALSA, [test "$HAVE_ALSA" = 'yes'] )
   257 dnl Check for native cdrom support. There can be only one.
   258 AC_CHECK_HEADER([linux/cdrom.h], [CDROM_DRIVER=linux], [true])
   259 AC_CHECK_HEADER([IOKit/IOKitLib.h], [
   260      CDROM_DRIVER=osx
   261      LIBS="$LIBS -framework IOKit"],[true])
   262 AM_CONDITIONAL(CDROM_LINUX, [test "x$CDROM_DRIVER" = "xlinux"])
   263 AM_CONDITIONAL(CDROM_OSX, [test "x$CDROM_DRIVER" = "xosx"])
   264 AM_CONDITIONAL(CDROM_NONE, [test "x$CDROM_DRIVER" = "x"])
   266 AC_CHECK_HEADER([linux/joystick.h], [
   267     HAVE_LINUX_JOYSTICK_H=yes
   268     AC_DEFINE([HAVE_LINUX_JOYSTICK], 1, [Have linux joystick support]) ], 
   269   [ echo "Linux Joystick support not found, building without it."] )
   270 AM_CONDITIONAL(JOY_LINUX, [test "$HAVE_LINUX_JOYSTICK_H" = "yes"])
   272 dnl Check for cross-compiler availability - needed for system tests
   273 AC_PATH_PROG(SHCC, [sh-elf-gcc])
   274 AC_PATH_PROG(SHLD, [sh-elf-ld])
   275 AC_PATH_PROG(SHOBJCOPY, [sh-elf-objcopy])
   276 AC_PATH_PROG(ARMCC, [arm-elf-gcc])
   277 AC_PATH_PROG(ARMLD, [arm-elf-ld])
   278 AC_PATH_PROG(ARMOBJCOPY, [arm-elf-objcopy])
   280 if test "x$SHCC" = "x" -o "x$SHLD" = "x" -o "x$SHOBJCOPY" = "x"; then
   281   BUILD_SH="no"
   282   echo "Warning: SH4 cross-compiler not found, system tests will be disabled."
   283 else
   284   BUILD_SH="yes"
   285 fi
   286 if test "x$ARMCC" = "x" -o "x$ARMLD" = "x" -o "x$ARMOBJCOPY" = "x"; then
   287   BUILD_ARM="no"
   288   echo "Warning: ARM cross-compiler not found, AICA tests will be disabled."
   289 else
   290   BUILD_ARM="yes"
   291 fi
   292 AM_CONDITIONAL(BUILD_SYSTEST, [test "$BUILD_SH" = "yes"])
   293 AM_CONDITIONAL(BUILD_ARMTEST, [test "$BUILD_ARM" = "yes"])
   296 dnl ----------------------- All done, finish up -----------------------
   297 GETTEXT_PACKAGE=lxdream
   298 AC_SUBST(GETTEXT_PACKAGE)
   299 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[translation domain])
   301 dnl Add the languages which your application supports here.
   302 ALL_LINGUAS="de es it pt_BR"
   303 AM_GLIB_GNU_GETTEXT
   305 AC_OUTPUT([
   306 Makefile
   307 src/Makefile
   308 po/Makefile.in
   309 test/Makefile
   310 Info.plist
   311 ])
   312 AS_MKDIR_P(test/sh4)
   314 dnl ------------------------- Print out a summary ----------------------
   316 echo
   317 echo "Configuration complete"
   318 echo
   320 if test "x$HAVE_GTK" = x; then
   321   if test "x$HAVE_COCOA" = x; then
   322      echo "  User interface: none"
   323   else
   324      echo "  User interface: Cocoa"
   325   fi
   326 else
   327   echo "  User interface: GTK"
   328 fi
   330 if test "x$SH4_TRANSLATOR" = "x"; then
   331   echo "  SH4 translator: None (emulation core only)"
   332 else
   333   echo "  SH4 translator: $SH4_TRANSLATOR"
   334 fi
   336 if test "x$VIDEO_DRIVERS" = "x"; then
   337    echo "  Video drivers: none (no supported GL found)"
   338 else
   339    echo "  Video drivers: $VIDEO_DRIVERS"
   340 fi
   342 if test "x$AUDIO_DRIVERS" = "x"; then
   343    echo "  Audio drivers: none (no supported output devices found)"
   344 else
   345    echo "  Audio drivers: $AUDIO_DRIVERS"
   346 fi
   348 if test "x$CDROM_DRIVER" = "x"; then
   349    echo "  CD-ROM driver: none (no supported cd-rom devices found)"
   350 else
   351    echo "  CD-ROM driver: $CDROM_DRIVER"
   352 fi
.