dnl configure.ac - Autoconf script for building configure dnl dnl Copyright (C) 2001 Krzysztof Nikiel dnl Copyright (C) 2001-2014 Atari800 development team (see DOC/CREDITS) dnl dnl This file is part of the Atari800 emulator project which emulates dnl the Atari 400, 800, 800XL, 130XE, and 5200 8-bit computers. dnl dnl Atari800 is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 2 of the License, or dnl (at your option) any later version. dnl dnl Atari800 is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with Atari800; if not, write to the Free Software dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA AC_PREREQ(2.57) AC_INIT(Atari800, 3.1.0, pstehlik@sophics.cz) AC_CONFIG_SRCDIR(atari.c) AC_CONFIG_HEADER(config.h) dnl Set a8_target... case "$target" in default | falcon | ps2 | rpi | android | windx | x11 | x11-shm | x11-motif | x11-xview | x11-xview-shm) a8_target="$target" ;; shm | motif | xview | xview-shm) a8_target="x11-$target" ;; "") a8_target=default ;; *) echo echo "Usage: configure [--target=] " echo echo "The '--target' option, if not given, defaults to 'default'. Use '--help'" echo "to see other available options, including Atari800 specific '--enable' options." echo "Possible values for the '--target' option are:" echo " default (autodetect available graphics and sound libraries)" echo " android (Android devices)" echo " falcon (Atari Falcon systems only)" echo " ps2 (Sony PlayStation 2)" echo " rpi (Raspberry Pi: set --host=arm-linux)" echo " windx (Windows with DirectX only)" echo " x11 (Standard X11)" echo " (x11-)motif (Motif on X11)" echo " (x11-)shm (Standard X11 with shared memory extensions)" echo " (x11-)xview (XView on X11)" echo " (x11-)xview-shm (XView on X11, with shared memory extensions)" echo exit 1; ;; esac AC_CANONICAL_BUILD WANT_IDE="yes" dnl Set a8_host... AC_CANONICAL_HOST if [[ "$host_os" = "cygwin" ]]; then CC="gcc -mno-cygwin" echo echo "Using CC=\"$CC\" to disable cygwin library..."; echo host_os="mingw32" fi case $host_os in i386-pc-os2-emx) a8_host="os/2" ;; mingw32*) a8_host="win" if [[ "$a8_target" != "android" ]]; then dnl Android target uses normal slashes AC_DEFINE(DIR_SEP_BACKSLASH,1,[Define to use back slash as directory separator.]) fi AC_DEFINE(DOS_DRIVES,1,[Define to enable DOS style drives support.]) ;; msdosdjgpp) a8_host="dos" AC_DEFINE(DIR_SEP_BACKSLASH,1,[Define to use back slash as directory separator.]) AC_DEFINE(DEFAULT_CFG_NAME,"atari800.cfg",[Alternate config filename due to 8+3 fs limit.]) AC_DEFINE(DOS_DRIVES,1,[Define to enable DOS style drives support.]) AC_DEFINE(SYSTEM_WIDE_CFG_FILE,"c:\\atari800.cfg",[Alternate system-wide config file for non-Unix OS.]) ;; linux | linux-gnu) a8_host="linux" ;; mint) a8_host="falcon" AC_DEFINE(DIR_SEP_BACKSLASH,1,[Define to use back slash as directory separator.]) AC_DEFINE(DEFAULT_CFG_NAME,"atari800.cfg",[Alternate config filename due to 8+3 fs limit.]) AC_DEFINE(DOS_DRIVES,1,[Define to enable DOS style drives support.]) AC_DEFINE(SYSTEM_WIDE_CFG_FILE,"c:\\atari800.cfg",[Alternate system-wide config file for non-Unix OS.]) WANT_IDE="no" ;; beos) a8_host="beos" ;; *unix*) a8_host="unix" ;; *) a8_host="$host_os" ;; esac dnl Set CFLAGS and LDFLAGS... if [[ "X_$CFLAGS" = "X_" ]]; then CFLAGS="-O2 -Wall" fi if [[ "X_$LDFLAGS" = "X_" ]]; then LDFLAGS="" fi if [[ "$a8_target" = "ps2" ]]; then CC="ee-gcc" CFLAGS="$CFLAGS -D_EE -G0 -mno-crt0 -fno-builtin-printf -nostartfiles" CFLAGS="$CFLAGS -I${PS2SDK}/common/include -I${PS2SDK}/ee/include" CFLAGS="$CFLAGS -I${GSKIT}/ee/dma/include -I${GSKIT}/ee/gs/include" CFLAGS="$CFLAGS -I${PS2DEV}/ee/lib/gcc-lib/ee/3.2.2/include" CFLAGS="$CFLAGS -I${PS2SDK}/ports/include" LDFLAGS="$LDFLAGS -T${PS2SDK}/ee/startup/linkfile" LDFLAGS="$LDFLAGS -L${PS2SDK}/ee/lib -L${GSKITSRC}/lib -L${PS2DEV}/ee/lib/gcc-lib/ee/3.2.2" LDFLAGS="$LDFLAGS -L${PS2SDK}/ports/lib" fi if [[ "$a8_target" = "rpi" ]]; then [[ -z "$RPI_SDK" ]] && RPI_SDK="/opt/vc" CC="arm-linux-gnueabihf-gcc" CFLAGS="$CFLAGS -I${RPI_SDK}/include -I${RPI_SDK}/include/SDL -I${RPI_SDK}/include/interface/vmcs_host/linux -I${RPI_SDK}/include/interface/vcos/pthreads" LDFLAGS="$LDFLAGS -Wl,--unresolved-symbols=ignore-in-shared-libs -L${RPI_SDK}/lib" fi if [[ "$a8_target" = "android" ]]; then CC="arm-linux-androideabi-gcc" CPP="arm-linux-androideabi-cpp" AC_NO_EXECUTABLES CPPFLAGS="$CPPFLAGS -I$ANDROID_NDK_ROOT/platforms/android-9/arch-arm/usr/include/" WANT_IDE=no with_readline=no WANT_EVENT_RECORDING=no AC_DEFINE(HAVE_GETTIMEOFDAY,1) fi dnl Check for programs... AC_PROG_CC AC_PROG_INSTALL a8_use_sdl=no dnl Check if SDL library exists. If it's found, set a8_use_sdl to yes and AC_DEFINE the SDL symbol. dnl If called multiple times, it will check for the library only once. dnl Usage: TRY_USE_SDL() AC_DEFUN(TRY_USE_SDL, [ if [[ "$a8_use_sdl" = no ]]; then dnl Check for SDL SDL_VERSION=1.2.0 AM_PATH_SDL($SDL_VERSION, [ OBJS="$OBJS sdl/init.o" AC_DEFINE(SDL,1,[Target: SDL library.]) AC_DEFINE(SUPPORTS_PLATFORM_TIME,1,[Platform-specific time function.]) LIBS="$LIBS $SDL_LIBS" CPPFLAGS="$CPPFLAGS $SDL_CFLAGS" if [[ "$a8_host" = "win" ]]; then dnl Don't redefine main -- SDL.h will do it for us in atari_sdl.c Otherwise dnl the autoconf tests don't work. CPPFLAGS=${CPPFLAGS/-Dmain=SDL_main/} dnl Avoid making stdout.txt on Windows sdl target by compiling our own SDL_main dnl Get SDL_win32_main.c from the SDL source and copy it to the src directory. LIBS=${LIBS/-lSDLmain/} OBJS="$OBJS SDL_win32_main.o" CPPFLAGS="$CPPFLAGS -DNO_STDIO_REDIRECT" dnl Don't make this a windowed app, make it a console app. LIBS=${LIBS/-mwindows/} fi a8_use_sdl=yes ]) fi ]) dnl Check if host os Java NestedVM... if [[ "$a8_target" != "android" ]]; then dnl Android target cannot perform link tests AC_MSG_CHECKING([whether host is Java NestedVM]) AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[extern int _call_java(int a, int b, int c, int d);]], [[_call_java(0, 0, 0, 0);]] )], [ a8_host=javanvm EXEEXT=".mips" enable_unalignedwords=no if [[ "$build_os" = "cygwin" ]]; then JAVAFLAGS="-classpath '""`cygpath -wp $CLASSPATH`'" JAVACFLAGS="-source 1.4 -classpath '""`cygpath -wp $CLASSPATH`'" fi AC_MSG_RESULT(yes) ], [ AC_MSG_RESULT(no) ] ) fi dnl Check for header files... dnl Beware: AC_PATH_X must NOT be inside "case"! if [[ "$a8_target" != "android" ]]; then AC_PATH_X fi case "$a8_target" in x11*) if [[ "X_$x_includes" != "X_" ]]; then CFLAGS="$CFLAGS -I$x_includes" fi if [[ "X_$x_libraries" != "X_" ]]; then LDFLAGS="$LDFLAGS -L$x_libraries -Wl,-rpath,$x_libraries" fi ;; esac if [[ "$a8_target" = "android" ]]; then echo "hardcoding dirent.h header" AC_DEFINE(HAVE_DIRENT_H) else AC_HEADER_DIRENT fi AC_HEADER_STDC AC_HEADER_TIME AC_CHECK_HEADERS([direct.h errno.h file.h signal.h sys/time.h time.h unistd.h unixio.h]) SUPPORTS_SOUND_OSS=yes AC_CHECK_HEADERS([fcntl.h sys/ioctl.h sys/soundcard.h],,SUPPORTS_SOUND_OSS=no) SUPPORTS_RDEVICE=yes if [[ "$a8_host" = "win" ]]; then AC_CHECK_HEADERS([windows.h winsock2.h],,SUPPORTS_RDEVICE=no) else AC_CHECK_HEADERS([arpa/inet.h netdb.h netinet/in.h sys/socket.h termios.h],,SUPPORTS_RDEVICE=no) fi dnl Check for libraries... AC_DEFUN(A8_NEED_LIB,AC_CHECK_LIB($1,main,,AC_MSG_ERROR("$1 library not found!"))) if [[ "$a8_target" = "android" ]]; then echo "hardcoding libz" LIBS="-lz $LIBS" AC_DEFINE(HAVE_LIBZ) dnl libm is automatically appended by the build system else AC_CHECK_LIB(z,gzopen) AC_CHECK_LIB(png,png_get_libpng_ver) AC_CHECK_LIB(m,cos,[LIBS="-lm $LIBS"]) AC_CHECK_LIB(ossaudio,_oss_ioctl,[LIBS="-lossaudio $LIBS"]) fi dnl Set OBJS and libraries depending on host and target... dnl OBJS is not an AC "precious" variable but is used in the Makefile, so dnl it must be explicitly AC_SUBST'ed at the end of this file. OBJS= case "$a8_target" in default) if [[ "$a8_host" != "dos" ]]; then dnl In DJGPP building with zlib fails with -ansi. CFLAGS="$CFLAGS -ansi" fi CFLAGS="$CFLAGS -pedantic -Waggregate-return -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Winline" if [[ "$a8_host" != "beos" ]]; then dnl BeOS has a real issue with redundant-decls CFLAGS="$CFLAGS -Wredundant-decls" fi ;; falcon) AC_DEFINE(FALCON,1,[Target: Atari Falcon system.]) AC_CHECK_LIB(gem, appl_init) OBJS="atari_falcon.o falcon/c2p_uni.o falcon/c2p_unid.o falcon/videl.o falcon/ikbd.o" ;; ps2) AC_DEFINE(PS2,1,[Target: Sony PlayStation 2.]) AC_DEFINE(SUPPORTS_PLATFORM_SLEEP,1,[Platform-specific sleep function.]) AC_DEFINE(SUPPORTS_PLATFORM_TIME,1,[Platform-specific time function.]) AC_DEFINE(DEFAULT_CFG_NAME,"mc0:/ATARI/ATARI800.CFG",[Alternate config filename due to 8+3 fs limit.]) A8_NEED_LIB(kernel) A8_NEED_LIB(audsrv) A8_NEED_LIB(debug) A8_NEED_LIB(syscall) A8_NEED_LIB(dmakit) A8_NEED_LIB(gskit) A8_NEED_LIB(pad) A8_NEED_LIB(kbd) A8_NEED_LIB(mc) A8_NEED_LIB(g) A8_NEED_LIB(z) A8_NEED_LIB(c) OBJS="atari_ps2.o ps2kbd.s usbd.s audsrv.s" ;; rpi) AC_DEFINE(RPI,1,[Target: Raspberry Pi.]) AC_DEFINE(GUI_SDL,1,[Use SDL for graphics and input.]) AC_DEFINE(SUPPORTS_PLATFORM_CONFIGURE,1,[Additional config file options.]) AC_DEFINE(SUPPORTS_PLATFORM_CONFIGSAVE,1,[Save additional config file options.]) AC_DEFINE(SUPPORTS_PLATFORM_PALETTEUPDATE,1,[Update the Palette if it changed.]) AC_DEFINE(PLATFORM_MAP_PALETTE,1,[Platform-specific mapping of RGB palette to display surface.]) A8_NEED_LIB(GLESv2) A8_NEED_LIB(EGL) A8_NEED_LIB(SDL) A8_NEED_LIB(bcm_host) OBJS="atari_rpi.o gles2/video.o sdl/main.o sdl/input.o" ;; android) AC_DEFINE(ANDROID,1,[Target: Android]) AC_DEFINE(SUPPORTS_PLATFORM_PALETTEUPDATE,1,[Update the Palette if it changed.]) AC_DEFINE(DIRTYRECT,1,[Define to use dirty screen partial repaints.]) dnl AC_DEFINE(NODIRTYCOMPARE,1,[Define to skip memory comparisons - Requires DIRTYRECT.]) ;; windx) AC_DEFINE(DIRECTX,1,[Target: Windows with DirectX.]) AC_DEFINE(SUPPORTS_PLATFORM_CONFIGURE,1,[Additional config file options.]) AC_DEFINE(SUPPORTS_PLATFORM_CONFIGSAVE,1,[Save additional config file options.]) AC_DEFINE(SUPPORTS_PLATFORM_PALETTEUPDATE,1,[Update the Palette if it changed.]) AC_DEFINE(SUPPORTS_SOUND_REINIT,1,[Reinitialise the sound system.]) A8_NEED_LIB(ddraw) A8_NEED_LIB(dinput) A8_NEED_LIB(dsound) A8_NEED_LIB(dxguid) A8_NEED_LIB(d3d9) A8_NEED_LIB(gdiplus) A8_NEED_LIB(stdc++) A8_NEED_LIB(ws2_32) A8_NEED_LIB(gdi32) OBJS="win32/atari_win32.o win32/screen_win32.o win32/render_direct3d.o win32/render_directdraw.o win32/render_gdi.o win32/render_gdiplus.o win32/main.o win32/keyboard.o win32/joystick.o win32/atari.ro" CFLAGS="$CFLAGS -ansi -pedantic -Waggregate-return -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wstrict-prototypes -Winline" LDFLAGS="$LDFLAGS -mwindows" ;; x11*) AC_DEFINE(X11,1,[Target: Standard X11.]) AC_DEFINE(SUPPORTS_PLATFORM_PALETTEUPDATE,1,[Update the Palette if it changed.]) A8_NEED_LIB(X11) case "$a8_target" in *-shm) AC_DEFINE(SHM,1,[Target: X11 with shared memory extensions.]) A8_NEED_LIB(Xext) ;; esac case "$a8_target" in x11-xview*) AC_DEFINE(XVIEW,1,[Target: X11 with XView.]) dnl Dunno if this is the right way... CFLAGS="$CFLAGS -I/usr/openwin/include" dnl -lxview must come before -lolgx, otherwise it does not link. dnl Note that AC_CHECK_LIB (and therefore A8_NEED_LIB) _prepends_ dnl the found library to LIBS. A8_NEED_LIB(olgx) A8_NEED_LIB(xview) ;; x11-motif) AC_DEFINE(MOTIF,1,[Target: X11 with Motif.]) dnl According to the information I was able to find, dnl "-lgen -lsocket" is necessary only with old Sun Motif libs. AC_CHECK_LIB(socket,main,[LIBS="-lsocket $LIBS"]) AC_CHECK_LIB(gen,main,[LIBS="-lgen $LIBS"]) dnl -lXm must come before -lXt, otherwise I get the following dnl fatal error at runtime, when calling XtVaCreateManagedWidget: dnl X Error of failed request: BadWindow (invalid Window parameter) dnl See MOTIF FAQ "What order should the libraries be linked in?" dnl Note that AC_CHECK_LIB (and therefore A8_NEED_LIB) _prepends_ dnl the found library to LIBS. A8_NEED_LIB(Xt) A8_NEED_LIB(Xm) ;; esac OBJS="atari_x11.o" ;; esac dnl All future references to OBJS should ADD to it, not (re)define it. dnl Check for typedefs, structures, and compiler characteristics... AC_C_BIGENDIAN AC_C_CONST AC_C_INLINE AC_C_VOLATILE AC_PROG_GCC_TRADITIONAL AC_STRUCT_TM AC_TYPE_SIGNAL AC_TYPE_SIZE_T dnl Set usage of unaligned word accesses... AC_ARG_ENABLE(unalignedwords,AC_HELP_STRING(--enable-unalignedwords,[Override usage of unaligned words])) if [[ "$enable_unalignedwords" != "yes" -a "$enable_unalignedwords" != "no" ]]; then case $host_cpu in alpha* | arm* | hppa* | ia64 | mips* | sparc*) enable_unalignedwords=no ;; i*86 | m68* | powerpc* | x86_64) enable_unalignedwords=yes ;; *) AC_MSG_WARN([$host_cpu architecture is unknown to this script.]) AC_MSG_WARN([Performance may be sub-optimal. Please contact Atari800 developers.]) enable_unalignedwords=no ;; esac fi if [[ "$enable_unalignedwords" = "yes" ]]; then dnl Make sure it is allowed AC_MSG_CHECKING([for unaligned word access validity]) AC_RUN_IFELSE( [AC_LANG_PROGRAM([[#include ]],[[ unsigned char test_data[] = "Hello, I test unaligned word access validity."; unsigned char *p; /* step through test_data as far as 4 bytes are available via p */ for (p = test_data; p[2] != '\0'; p++) { unsigned int word_read = *(unsigned short *) p; if (word_read != (p[0] + (p[1] << 8)) && word_read != (p[1] + (p[0] << 8))) { printf("16-bit access at address %p yields bad data!\n" "Bytes: %02X %02X; Value read: %04X\n", p, p[0], p[1], word_read); return 1; } word_read = *(unsigned int *) p; if (word_read != (p[0] + (p[1] << 8) + (p[2] << 16) + (p[3] << 24)) && word_read != (p[3] + (p[2] << 8) + (p[1] << 16) + (p[0] << 24))) { printf("32-bit access at address %p yields bad data!\n" "Bytes: %02X %02X %02X %02X; Value read: %08X\n", p, p[0], p[1], p[2], p[3], word_read); return 1; } } ]])], AC_MSG_RESULT([yes]), [enable_unalignedwords=no; AC_MSG_RESULT([failed! disabling unaligned word access])], AC_MSG_RESULT([skipped because cross-compiling]) ) if [[ "$enable_unalignedwords" = "yes" ]]; then AC_DEFINE(WORDS_UNALIGNED_OK,1,[Define if unaligned word access is ok.]) fi fi dnl Check for library functions... # from "Autoconf Archive": AC_DEFUN([AX_FUNC_MKDIR], [AC_CHECK_FUNCS([mkdir _mkdir]) AC_CACHE_CHECK([whether mkdir takes one argument], [ac_cv_mkdir_takes_one_arg], [AC_TRY_COMPILE([ #include #if HAVE_UNISTD_H # include #endif ], [mkdir (".");], [ac_cv_mkdir_takes_one_arg=yes], [ac_cv_mkdir_takes_one_arg=no])]) if test x"$ac_cv_mkdir_takes_one_arg" = xyes; then AC_DEFINE([MKDIR_TAKES_ONE_ARG], 1, [Define if mkdir takes only one argument.]) fi ]) AC_FUNC_CLOSEDIR_VOID AC_FUNC_MEMCMP AC_FUNC_SELECT_ARGTYPES AC_FUNC_STAT if [[ "$a8_target" = "android" ]]; then echo "hardcoding libc funcs" AC_DEFINE(HAVE_VPRINTF) AC_DEFINE(HAVE_ATEXIT) AC_DEFINE(HAVE_CHMOD) AC_DEFINE(HAVE_FDOPEN) AC_DEFINE(HAVE_FFLUSH) AC_DEFINE(HAVE_FLOOR) AC_DEFINE(HAVE_FSTAT) AC_DEFINE(HAVE_GETCWD) AC_DEFINE(HAVE_GETTIMEOFDAY) AC_DEFINE(HAVE_LOCALTIME) AC_DEFINE(HAVE_MEMMOVE) AC_DEFINE(HAVE_MEMSET) AC_DEFINE(HAVE_MKSTEMP) AC_DEFINE(HAVE_MKTEMP) AC_DEFINE(HAVE_MODF) AC_DEFINE(HAVE_NANOSLEEP) AC_DEFINE(HAVE_OPENDIR) AC_DEFINE(HAVE_RENAME) AC_DEFINE(HAVE_REWIND) AC_DEFINE(HAVE_RMDIR) AC_DEFINE(HAVE_SIGNAL) AC_DEFINE(HAVE_SNPRINTF) AC_DEFINE(HAVE_STAT) AC_DEFINE(HAVE_STRCASECMP) AC_DEFINE(HAVE_STRCHR) AC_DEFINE(HAVE_STRDUP) AC_DEFINE(HAVE_STRERROR) AC_DEFINE(HAVE_STRRCHR) AC_DEFINE(HAVE_STRSTR) AC_DEFINE(HAVE_STRTOL) AC_DEFINE(HAVE_SYSTEM) AC_DEFINE(HAVE_TIME) AC_DEFINE(HAVE_TMPNAM) AC_DEFINE(HAVE_UCLOCK) AC_DEFINE(HAVE_UNLINK) AC_DEFINE(HAVE_VSNPRINTF) AC_DEFINE(HAVE_MKDIR) AC_DEFINE(HAVE_SELECT) AC_DEFINE(HAVE_USLEEP) AC_DEFINE(HAVE_STRNCPY) dnl Leave out tmpfile to force creation of temp files to external else AC_FUNC_VPRINTF AC_CHECK_FUNCS([atexit chmod clock fdopen fflush floor fstat getcwd]) AC_CHECK_FUNCS([gettimeofday localtime memmove memset mkstemp mktemp]) AC_CHECK_FUNCS([modf nanosleep opendir rename rewind rmdir signal snprintf]) AC_CHECK_FUNCS([stat strcasecmp strchr strdup strerror strrchr strstr]) AC_CHECK_FUNCS([strtol system time tmpfile tmpnam uclock unlink vsnprintf]) AX_FUNC_MKDIR dnl select usleep strncpy are broken on the NestedVM host if test "x$a8_host" != xjavanvm ; then AC_CHECK_FUNCS([select usleep strncpy]) fi fi if [[ "$a8_host" != "win" -a "$a8_target" != "android" ]]; then AC_CHECK_FUNCS([gethostbyaddr gethostbyname inet_ntoa socket],,SUPPORTS_RDEVICE=no) fi dnl Select/detect video interface. AC_ARG_WITH([video], [AC_HELP_STRING([--with-video@<:@=no|yes|curses|ncurses|pdcurses|dosvga|sdl|javanvm@:>@],[Select video interface to use @<:@default=check@:>@])], [ case "$withval" in no | yes | check | curses | ncurses | pdcurses | dosvga | sdl | javanvm) ;; *) AC_MSG_ERROR([unrecognized value for --with-video: "$withval"]) ;; esac ], [with_video=check]) if [[ "$a8_target" = default ]]; then if [[ "$with_video" != no ]]; then if [[ "$with_video" = check -o "$with_video" = yes -o "$with_video" = javanvm ]]; then if [[ "$a8_host" = javanvm ]]; then with_video=javanvm elif [[ "$with_video" = javanvm ]]; then AC_MSG_ERROR([--with-video=javanvm was given, but host system is not NestedVM!]) fi fi if [[ "$with_video" = check -o "$with_video" = yes -o "$with_video" = dosvga ]]; then if [[ "$a8_host" = dos ]]; then with_video=dosvga elif [[ "$with_video" = dosvga ]]; then AC_MSG_ERROR([--with-video=dosvga was given, but host system is not DOS!]) fi fi if [[ "$with_video" = check -o "$with_video" = yes -o "$with_video" = sdl ]]; then TRY_USE_SDL() if [[ "$a8_use_sdl" = yes ]]; then with_video=sdl elif [[ "$with_video" = sdl ]]; then AC_MSG_FAILURE([--with-video=sdl was given, but SDL library not found!]) fi fi if [[ "$with_video" = check -o "$with_video" = yes -o "$with_video" = curses ]]; then AC_CHECK_LIB([curses], [initscr], [LIBS="-lcurses $LIBS" with_video=curses ], [if [[ "$with_video" = curses ]]; then AC_MSG_FAILURE([--with-video=curses was given, but curses library not found!]) fi ]) fi if [[ "$with_video" = check -o "$with_video" = yes -o "$with_video" = ncurses ]]; then AC_CHECK_LIB([ncurses], [initscr], [LIBS="-lncurses $LIBS" with_video=ncurses AC_DEFINE(USE_NCURSES,1,[Target: Ncurses library.]) ], [if [[ "$with_video" = ncurses ]]; then AC_MSG_FAILURE([--with-video=ncurses was given, but ncurses library not found!]) fi ]) fi if [[ "$with_video" = check -o "$with_video" = yes -o "$with_video" = pdcurses ]]; then AC_CHECK_LIB([pdcurses], [initscr], [LIBS="-lpdcurses $LIBS" with_video=pdcurses ], [if [[ "$with_video" = pdcurses ]]; then AC_MSG_FAILURE([--with-video=pdcurses was given, but pdcurses library not found!]) fi ]) fi fi if [[ "$with_video" = check ]]; then with_video=no fi case "$with_video" in javanvm) AC_DEFINE(SUPPORTS_PLATFORM_PALETTEUPDATE,1,[Update the Palette if it changed.]) AC_DEFINE(SUPPORTS_PLATFORM_SLEEP,1,[Platform-specific sleep function.]) OBJS="javanvm/main.o javanvm/video.o javanvm/input.o" ;; sdl) AC_DEFINE(GUI_SDL,1,[Use SDL for graphics and input.]) AC_DEFINE(SUPPORTS_PLATFORM_CONFIGURE,1,[Additional config file options.]) AC_DEFINE(SUPPORTS_PLATFORM_CONFIGSAVE,1,[Save additional config file options.]) AC_DEFINE(SUPPORTS_PLATFORM_PALETTEUPDATE,1,[Update the Palette if it changed.]) AC_DEFINE(SUPPORTS_CHANGE_VIDEOMODE,1,[Can change video modes on the fly.]) AC_DEFINE(SUPPORTS_ROTATE_VIDEOMODE,1,[Can display the screen rotated sideways.]) AC_DEFINE(PLATFORM_MAP_PALETTE,1,[Platform-specific mapping of RGB palette to display surface.]) WANT_XEP80_EMULATION=yes WANT_NTSC_FILTER=yes WANT_PAL_BLENDING=yes OBJS="$OBJS videomode.o sdl/main.o sdl/video.o sdl/video_sw.o sdl/input.o sdl/palette.o" AC_DEFINE(PBI_PROTO80,1,[A prototype 80 column card for the 1090 expansion box.]) OBJS="$OBJS pbi_proto80.o" AC_DEFINE(AF80,1,[The Austin Franklin 80 column card.]) OBJS="$OBJS af80.o" AC_DEFINE(BIT3,1,[The Bit3 Full View 80 column card.]) OBJS="$OBJS bit3.o" ;; dosvga) AC_DEFINE(DOSVGA,1,[Target: DOS VGA.]) AC_DEFINE(SUPPORTS_PLATFORM_CONFIGURE,1,[Additional config file options.]) AC_DEFINE(SUPPORTS_PLATFORM_PALETTEUPDATE,1,[Update the Palette if it changed.]) OBJS="$OBJS dos/atari_vga.o dos/vga_gfx.o dos/vga_asm.o" ;; curses | ncurses | pdcurses) AC_DEFINE(USE_CURSES,1,[Target: Curses-compatible library.]) OBJS="$OBJS atari_curses.o" WANT_EVENT_RECORDING=no ;; no) AC_DEFINE(BASIC,1,[Target: standard I/O.]) OBJS="$OBJS atari_basic.o" WANT_EVENT_RECORDING=no ;; *) AC_MSG_ERROR([--with-video=$with_video was given, but no video/input library found!]) ;; esac fi dnl Select optional Atari800 features... dnl The A8_OPTION macro automates the calling of AC_ARG_ENABLE, AC_HELP_STRING and AC_DEFINE. dnl $1 = the name of the feature, what follows "--enable-". dnl $2 = "yes" or "no", determines if feature defaults to being active or not. dnl $3 = The right side of the help line. dnl The left side is always "--enable-$1". dnl $4 = The symbol name which goes to config.h, the C #define symbol. dnl A symbol called "WANT_$4" is defined for use in this configure.ac. dnl $5 = The help string which shows up in config.h for the $4 symbol. AC_DEFUN([A8_OPTION],[ AC_ARG_ENABLE($1,AC_HELP_STRING(--enable-$1,$3),WANT_$4=$enableval,WANT_$4=$2) if [[ "$WANT_$4" = "yes" ]]; then AC_DEFINE($4,1,$5) fi ]) if [[ "$a8_target" != "default" -o "$with_video" != no ]]; then dnl These objects are not compiled when --with-video=no OBJS="$OBJS input.o statesav.o ui_basic.o ui.o" case "$with_video" in *curses) A8_OPTION(cursesbasic,yes, [No bitmap graphics emulation (curses targets only) (default=ON)], CURSES_BASIC,[Define to disable bitmap graphics emulation in CURSES target.] ) ;; esac if [[ "$WANT_CURSES_BASIC" != "yes" ]]; then dnl These objects are not compiled when --with-video=no or --enable-cursesbasic=no OBJS="$OBJS artifact.o colours.o colours_ntsc.o colours_pal.o colours_external.o screen.o" A8_OPTION(newcycleexact,yes, [Allow color changes inside a scanline (default=ON)], NEW_CYCLE_EXACT,[Define to allow color changes inside a scanline.] ) if [[ "$WANT_NEW_CYCLE_EXACT" = "yes" ]]; then OBJS="$OBJS cycle_map.o" fi A8_OPTION(veryslow,no, [Use very slow computer support (use with the -refresh option) (default=OFF)], VERY_SLOW,[Define to use very slow computer support (faster -refresh).] ) fi A8_OPTION(crashmenu,yes, [Display a menu after a CIM instruction (default=ON)], CRASH_MENU,[Define to activate crash menu after CIM instruction.] ) fi A8_OPTION(pagedattrib,no, [Use page-based attribute array (default=OFF)], PAGED_ATTRIB,[Define to use page-based attribute array.] ) A8_OPTION(bufferedlog,no, [Use buffered debug output (until the graphics mode switches back to text mode) (default=OFF)], BUFFERED_LOG,[Define to use buffered debug output.] ) A8_OPTION(monitorasm,yes, [Provide an assembler in the monitor (default=ON)], MONITOR_ASSEMBLER,[Define to activate assembler in monitor.] ) A8_OPTION(monitorbreak,yes, [Support code breakpoints and execution history (slower emulation) (default=ON)], MONITOR_BREAK,[Define to activate code breakpoints and execution history.] ) A8_OPTION(monitorbreakpoints,no, [Support user-defined breakpoints (default=OFF)], MONITOR_BREAKPOINTS,[Define to activate user-defined breakpoints.] ) A8_OPTION(monitorhints,yes, [Provide hints in the disassembler (human-readable address labels) (default=ON)], MONITOR_HINTS,[Define to activate hints in disassembler.] ) A8_OPTION(monitorprofile,no, [6502 opcode profiling (default=OFF)], MONITOR_PROFILE,[Define to activate 6502 opcode profiling.] ) A8_OPTION(monitortrace,no, [Support TRACE command in the monitor (default=OFF)], MONITOR_TRACE,[Define to activate TRACE command in monitor.] ) if [[ "$WANT_EVENT_RECORDING" != "no" ]]; then dnl we already checked for libz and added it to LIBS AC_CHECK_LIB(z,adler32, [A8_OPTION(eventrecording,yes, [Support event recording (default=ON)], EVENT_RECORDING,[Define to enable event recording.] )], WANT_EVENT_RECORDING="no" ) fi A8_OPTION(pbi_mio,yes, [Emulate the MIO board (default=ON)], PBI_MIO,[Define to emulate the MIO board.] ) if [[ "$WANT_PBI_MIO" = "yes" ]]; then OBJS="$OBJS pbi_mio.o" fi A8_OPTION(pbi_bb,yes, [Emulate the Black Box (default=ON)], PBI_BB,[Define to emulate the Black Box.] ) if [[ "$WANT_PBI_BB" = "yes" ]]; then OBJS="$OBJS pbi_bb.o" fi if [[ "$WANT_PBI_BB" = "yes" -o "$WANT_PBI_MIO" = "yes" ]]; then OBJS="$OBJS pbi_scsi.o" fi dnl Select/detect sound interface. AC_ARG_WITH([sound], [AC_HELP_STRING([--with-sound@<:@=no|yes|dossb|oss|falcon|win|sdl|javanvm@:>@],[Select sound interface to use @<:@default=check@:>@])], [ case "$withval" in no | yes | check | dossb | oss | falcon | win | sdl | javanvm) ;; *) AC_MSG_ERROR([unrecognized value for --with-sound: "$withval"]) ;; esac ], [with_sound=check]) if [[ "$a8_target" != "ps2" -a "$a8_target" != "android" ]]; then if [[ "$with_sound" != no ]]; then if [[ "$with_sound" = check -o "$with_sound" = yes -o "$with_sound" = javanvm ]]; then if [[ "$a8_host" = javanvm ]]; then with_sound=javanvm elif [[ "$with_sound" = javanvm ]]; then AC_MSG_ERROR([--with-sound=javanvm was given, but host system is not NestedVM!]) fi fi if [[ "$with_sound" = check -o "$with_sound" = yes -o "$with_sound" = win ]]; then AC_CHECK_LIB([winmm], [main], [LIBS="-lwinmm $LIBS" with_sound=win ], [if [[ "$with_sound" = win ]]; then AC_MSG_FAILURE([--with-sound=win was given, but WinMM library not found!]) fi ]) fi if [[ "$with_sound" = check -o "$with_sound" = yes -o "$with_sound" = falcon ]]; then if [[ "$a8_host" = falcon ]]; then with_sound=falcon elif [[ "$with_sound" = falcon ]]; then AC_MSG_ERROR([--with-sound=falcon was given, but host system is not Falcon!]) fi fi if [[ "$with_sound" = check -o "$with_sound" = yes -o "$with_sound" = dossb ]]; then if [[ "$a8_host" = dos ]]; then with_sound=dossb elif [[ "$with_sound" = dossb ]]; then AC_MSG_ERROR([--with-sound=dossb was given, but host system is not DOS!]) fi fi if [[ "$with_sound" = check -o "$with_sound" = yes -o "$with_sound" = sdl ]]; then TRY_USE_SDL() if [[ "$a8_use_sdl" = yes ]]; then with_sound=sdl elif [[ "$with_sound" = sdl ]]; then AC_MSG_FAILURE([--with-sound=sdl was given, but SDL library not found!]) fi fi if [[ "$with_sound" = check -o "$with_sound" = yes -o "$with_sound" = oss ]]; then if [[ "$SUPPORTS_SOUND_OSS" = yes ]]; then with_sound=oss elif [[ "$with_sound" = oss ]]; then AC_MSG_ERROR([--with-sound=oss was given, but OSS is not supported!]) fi fi fi if [[ "$with_sound" = check ]]; then with_sound=no fi case "$with_sound" in javanvm) WANT_SOUND_THIN_API=yes OBJS="$OBJS javanvm/sound.o" ;; sdl) WANT_SOUND_THIN_API=yes WANT_SOUND_CALLBACK=yes OBJS="$OBJS sdl/sound.o" ;; win) AC_DEFINE(SUPPORTS_SOUND_REINIT,1,[Reinitialise the sound system.]) OBJS="$OBJS win32/sound.o" ;; falcon) OBJS="$OBJS sound_falcon.o falcon/sound_dma.o" ;; oss) WANT_SOUND_THIN_API=yes OBJS="$OBJS sound_oss.o" ;; dossb) WANT_SOUND_THIN_API=yes WANT_SOUND_CALLBACK=yes OBJS="$OBJS dos/sound_dos.o dos/dos_sb.o" ;; no) ;; *) AC_MSG_ERROR([--with-sound=$with_sound was given, but no sound library found!]) ;; esac fi dnl Set sound support options... if [[ "$with_sound" != no ]]; then AC_DEFINE(SOUND, 1, [Define to activate sound support.]) OBJS="$OBJS pokeysnd.o mzpokeysnd.o remez.o sndsave.o" if [[ "$WANT_SOUND_THIN_API" = "yes" ]]; then AC_DEFINE(SOUND_THIN_API,1,[Use new sound API.]) OBJS="$OBJS sound.o" A8_OPTION(synchronized_sound,yes, [Use synchronized sound (default=ON)], SYNCHRONIZED_SOUND,[Define to use synchronized sound.] ) if [[ "$WANT_SOUND_CALLBACK" = "yes" ]]; then AC_DEFINE(SOUND_CALLBACK,1,[Platform updates sound buffer by callback function.]) fi else WANT_SYNCHRONIZED_SOUND="no" fi A8_OPTION(nonlinear_mixing,yes, [Use nonlinear POKEY mixing (default=ON)], NONLINEAR_MIXING,[Define to use nonlinear POKEY mixing.] ) A8_OPTION(interpolatesound,yes, [Use sound interpolation (default=ON)], INTERPOLATE_SOUND,[Define to allow sound interpolation.] ) A8_OPTION(stereosound,yes, [Use stereo sound (default=ON)], STEREO_SOUND,[Define to allow stereo sound.] ) if [[ "$WANT_SYNCHRONIZED_SOUND" != "yes" ]]; then A8_OPTION(volonlysound,yes, [Use volume only sound (digitized sound effects) (default=ON)], VOL_ONLY_SOUND,[Define to allow volume only sound.] ) fi if [[ "$WANT_SYNCHRONIZED_SOUND" = "yes" -o "$WANT_VOL_ONLY_SOUND" = "yes" ]]; then A8_OPTION(consolesound,yes, [Use console sound (keyboard clicks) (default=ON)], CONSOLE_SOUND,[Define to allow console sound (keyboard clicks).] ) A8_OPTION(seriosound,no, [Use serial in/out sound (default=OFF)], SERIO_SOUND,[Define to allow serial in/out sound.] ) else WANT_CONSOLE_SOUND="no" WANT_SERIO_SOUND="no" fi A8_OPTION(clipsound,no, [Use sound clipping (default=OFF)], CLIP_SOUND,[Define to allow sound clipping.] ) A8_OPTION(pbi_xld,yes, [Emulate 1450XLD (default=ON)], PBI_XLD,[Define to emulate the 1400XL/1450XLD.] ) A8_OPTION(voicebox,yes, [Emulate the Alien Group Voice Box (default=ON)], VOICEBOX,[Define to emulate the Alien Group Voice Box.] ) if [[ "$WANT_PBI_XLD" = "yes" ]]; then OBJS="$OBJS pbi_xld.o" fi if [[ "$WANT_VOICEBOX" = "yes" ]]; then OBJS="$OBJS voicebox.o" fi if [[ "$WANT_PBI_XLD" = "yes" -o "$WANT_VOICEBOX" = "yes" ]]; then OBJS="$OBJS votrax.o votraxsnd.o" fi else WANT_NONLINEAR_MIXING="no" WANT_SYNCHRONIZED_SOUND="no" WANT_INTERPOLATE_SOUND="no" WANT_STEREO_SOUND="no" WANT_VOL_ONLY_SOUND="no" WANT_CONSOLE_SOUND="no" WANT_SERIO_SOUND="no" WANT_CLIP_SOUND="no" WANT_PBI_XLD_SOUND="no" fi A8_OPTION(ide,$WANT_IDE, [Provide IDE emulation (default=ON)], IDE,[Define to add IDE harddisk emulation.] ) if [[ "$WANT_IDE" == "yes" ]]; then AC_SYS_LARGEFILE AC_FUNC_FSEEKO OBJS="$OBJS ide.o" fi if [[ "$a8_use_sdl" = yes ]]; then A8_OPTION(onscreenkeyboard,no, [Enable on-screen keyboard (default=OFF)], USE_UI_BASIC_ONSCREEN_KEYBOARD,[Define to enable on-screen keyboard.] ) fi dnl Select/detect features based on external software... dnl Check for existence of the readline library and headers. AC_ARG_WITH(readline, [AC_HELP_STRING(--with-readline,[Use libreadline for input in monitor @<:@default=check@:>@])], [], [with_readline=check]) if [[ "$with_readline" != no ]]; then dnl Readline uses termcap internally. Termcap's functionality is nowadays dnl provided by several libraries (eg. ncurses). However, on some environments, dnl Readline is not linked to a Termcap-providing library at compile-time. dnl So, we check whether Readline is already linked to such library, by checking dnl existence of the tgetent symbol in readline. If not, we search for tgetent dnl in a few other libraries. All done with a single AC_SEARCH_LIBS statement. have_readline=no AC_SEARCH_LIBS(tgetent, [readline termcap ncursesw ncurses curses], [ AC_SEARCH_LIBS(readline, readline, [ AC_CHECK_HEADER([readline/readline.h], [ have_readline=yes ], [ if [[ "$with_readline" = yes ]]; then AC_MSG_ERROR([unable to use libreadline - readline/readline.h not found or not compilable.]) fi ]) ], [ if [[ "$with_readline" = yes ]]; then AC_MSG_ERROR([unable to link libreadline - the library is not installed on this system.]) fi ]) ], [ if [[ "$with_readline" = yes ]]; then AC_MSG_ERROR([unable to properly link libreadline - a library \ providing termcap functionality is not found. Try installing one of ncursew, \ ncurses, curses, termcap.]) fi ]) with_readline=$have_readline fi if [[ "$with_readline" = yes ]]; then AC_DEFINE(MONITOR_READLINE, 1, [Define to activate readline support in monitor.]) fi dnl Check for availability of the OpenGL header. AC_ARG_WITH(opengl, AC_HELP_STRING(--with-opengl,[Use OpenGL for graphics - only in SDL target @<:@default=check@:>@]), [], [with_opengl=check]) if [[ "$a8_target" != default -o "$with_video" != sdl ]]; then if [[ "$with_opengl" = "yes" ]]; then AC_MSG_ERROR([option --with-opengl only supported with --target=default --with-video=sdl!]) fi with_opengl=no fi if [[ "$with_opengl" != no ]]; then have_opengl=no AC_CHECK_HEADER([SDL_opengl.h], [ have_opengl=yes ], [ if [[ "$with_opengl" = yes ]]; then AC_MSG_ERROR([unable to use OpenGL - SDL_opengl.h not found or not compilable.]) fi ]) with_opengl=$have_opengl fi if [[ "$with_opengl" = "yes" ]]; then AC_DEFINE(HAVE_OPENGL, 1, [Support for OpenGL graphics acceleration.]) OBJS="$OBJS sdl/video_gl.o" fi dnl Select host/target specific features... if [[ "$a8_host" = "falcon" -a "$a8_target" = "falcon" ]]; then A8_OPTION(falconcpuasm,no, [Use m68k assembler CPU core for Falcon target (default=OFF)], FALCON_CPUASM,[Define to use m68k assembler CPU core for Falcon target.] ) if [[ "$WANT_FALCON_CPUASM" = "yes" ]]; then OBJS="$OBJS cpu_m68k.o" fi fi if [[ "$a8_host" = "linux" ]]; then case "$a8_target" in x11*) A8_OPTION(linuxjoystick,yes, [Use LINUX joystick (linux x11 targets only) (default=ON)], LINUX_JOYSTICK,[Define to use LINUX joystick.] ) esac fi if [[ "$a8_target" = "windx" ]]; then A8_OPTION(cursorblock,no, [Using cursor/ctrl keys for keyboard joystick (windx targets only) (default=OFF)], USE_CURSORBLOCK,[Define for using cursor/ctrl keys for keyboard joystick.] ) fi if [[ "$WANT_XEP80_EMULATION" = "yes" ]]; then AC_DEFINE(XEP80_EMULATION,1,[Emulate the XEP80.]) OBJS="$OBJS xep80.o xep80_fonts.o" fi if [[ "$WANT_NTSC_FILTER" = "yes" ]]; then AC_DEFINE(NTSC_FILTER,1,[Use NTSC video filter.]) OBJS="$OBJS filter_ntsc.o atari_ntsc/atari_ntsc.o" fi if [[ "$WANT_PAL_BLENDING" = "yes" ]]; then AC_DEFINE(PAL_BLENDING,1,[Use accurate PAL color blending.]) OBJS="$OBJS pal_blending.o" fi if [[ "$SUPPORTS_RDEVICE" = "yes" ]]; then A8_OPTION(riodevice,no, [Use the R: networking device (Linux/Unix/Win32) (default=OFF)], R_IO_DEVICE,[Define to use R: device.] ) if [[ "$WANT_R_IO_DEVICE" = "yes" ]]; then OBJS="$OBJS rdevice.o" A8_OPTION(rnetwork,yes, [Use IP network connection with the R: networking device (Linux/Unix/Win32) (default=ON)], R_NETWORK,[Define to use IP network connection with the R: device.] ) if [[ "$a8_host" != "win" ]]; then A8_OPTION(rserial,yes, [Use the host serial port with the R: networking device (Linux/Unix only) (default=ON)], R_SERIAL,[Define to use the host serial port with the R: device.] ) else A8_NEED_LIB(ws2_32) WANT_R_SERIAL="no" fi fi fi dnl Wrapup: export OBJS and write Makefile... AC_SUBST(OBJS) AC_SUBST(JAVAFLAGS) AC_SUBST(JAVACFLAGS) CONFIGURE_TARGET="$target" AC_SUBST(CONFIGURE_TARGET) CONFIGURE_HOST="$a8_host" AC_SUBST(CONFIGURE_HOST) AC_CONFIG_FILES(Makefile) if [[ "$a8_target" = "android" ]]; then AC_CONFIG_FILES(android/jni/Android.mk) fi AC_OUTPUT dnl Print results of configure's work... echo "-------------------------------------------------------" echo " CONFIGURATION RESULTS:" echo "-------------------------------------------------------" echo "Host OS...............................: $a8_host" echo "Target ...............................: $a8_target" echo if [[ "$a8_target" = default ]]; then echo "Interface for video...................: $with_video" case "$with_video" in *curses) echo "Using no bitmap graphics emulation?...: $WANT_CURSES_BASIC" ;; esac fi if [[ "$a8_target" != "default" -o "$with_video" != no ]]; then if [[ "$WANT_CURSES_BASIC" != "yes" ]]; then echo "Using cycle exact?....................: $WANT_NEW_CYCLE_EXACT" echo "Using the very slow computer support?.: $WANT_VERY_SLOW" fi echo "Using the crash menu?.................: $WANT_CRASH_MENU" fi echo "Using the paged attribute array?......: $WANT_PAGED_ATTRIB" echo "Using the buffered log?...............: $WANT_BUFFERED_LOG" echo "Using the monitor assembler?..........: $WANT_MONITOR_ASSEMBLER" echo "Using code breakpoints and history?...: $WANT_MONITOR_BREAK" echo "Using user-defined breakpoints?.......: $WANT_MONITOR_BREAKPOINTS" echo "Using monitor hints?..................: $WANT_MONITOR_HINTS" echo "Using 6502 opcode profiling?..........: $WANT_MONITOR_PROFILE" echo "Using TRACE monitor command?..........: $WANT_MONITOR_TRACE" echo "Using readline support in monitor?....: $with_readline" echo "Using event recording?................: $WANT_EVENT_RECORDING" echo "Using MIO emulation?..................: $WANT_PBI_MIO" echo "Using Black Box emulation?............: $WANT_PBI_BB" echo "Using IDE emulation?..................: $WANT_IDE" echo "Interface for sound...................: $with_sound" if [[ "$with_sound" != no ]]; then echo " Using nonlinear mixing?...........: $WANT_NONLINEAR_MIXING" echo " Using synchronized sound?.........: $WANT_SYNCHRONIZED_SOUND" echo " Using sound interpolation?........: $WANT_INTERPOLATE_SOUND" echo " Using stereo sound?...............: $WANT_STEREO_SOUND" echo " Using volume only sound?..........: $WANT_VOL_ONLY_SOUND" if [[ "$WANT_VOL_ONLY_SOUND" = "yes" ]]; then echo " Using console sound?..........: $WANT_CONSOLE_SOUND" echo " Using serial I/O sound?.......: $WANT_SERIO_SOUND" else echo " (Volume only sound sub-options disabled)" fi echo " Using 1400XL/1450XLD emulation?...: $WANT_PBI_XLD" echo " Using sound clipping?.............: $WANT_CLIP_SOUND" else echo " (Sound sub-options disabled)" fi if [[ "$a8_target" = "falcon" ]]; then echo "Using M68K assembler CPU core?........: $WANT_FALCON_CPUASM" fi if [[ "$a8_host" = "linux" ]]; then case "$a8_target" in x11*) echo "Using Linux joystick?.................: $WANT_LINUX_JOYSTICK" esac fi if [[ "$a8_target" = "windx" ]]; then echo "Using cursor/ctrl keys?...............: $WANT_USE_CURSORBLOCK" fi if [[ "$SUPPORTS_RDEVICE" = "yes" ]]; then echo "Using R: device?......................: $WANT_R_IO_DEVICE" if [[ "$a8_host" != "win" -a "$WANT_R_IO_DEVICE" = "yes" ]]; then echo "Using R: with the host serial port?...: $WANT_R_SERIAL" echo "Using R: with IP network support......: $WANT_R_NETWORK" fi fi if [[ "$a8_target" = default -a "$with_video" = sdl ]]; then echo "Using on-screen keyboard?.............: $WANT_USE_UI_BASIC_ONSCREEN_KEYBOARD" echo "Using OpenGL?.........................: $with_opengl" fi echo echo "Main build variables:" echo " CC......: \"$CC\"" echo " CFLAGS..: \"$CFLAGS\"" echo " CPPFLAGS: \"$CPPFLAGS\"" echo " LDFLAGS.: \"$LDFLAGS\"" echo " OBJS....: \"$OBJS\"" echo " LIBS....: \"$LIBS\"" echo "-------------------------------------------------------" if [[ "$WANT_VERY_SLOW" = "yes" ]]; then echo echo "IMPORTANT: --enable-veryslow provides a bit better performance" echo "only when the compiled atari800 is run with the -refresh option." if [[ "$WANT_MONITOR_BREAK" = "yes" ]]; then echo "It is better to use --disable-monitorbreak." fi if [[ "$with_sound" != "no" ]]; then echo "Try --without-sound, too." fi if [[ "$WANT_PAGED_ATTRIB" != "yes" ]]; then echo "Have you tried --enable-pagedattrib ?" fi fi echo echo "Now run \"gmake\" or \"make\"." echo