mirror of
https://github.com/mauiaaron/apple2.git
synced 2024-09-29 23:54:53 +00:00
29b5bdf05a
999dbf6 directly bring in LSS for simplicity =P 0449204 Get Breakpad Building For Me(tm) against android-10 46fc8fc Allow building of minidump stackwalker on Android 5c786d8 Allow minidump_stackwalk.cc to be embedded 5447d35 Allow printing of stackwalker output to something other than stdio a78a22d Get Android breakpad Building-For-Me(tm) a0ac3ee GitHub penance ... ignore libchromeshell.so.sym c6cade7 Teach dump_syms to handle additional zerofill sections c341fb0 Fix automake files after README.md -> README rename 69b0606 Add GPU fingerprint information to breakpad microdumps. ddadd52 Add wiki content to Markdown docs cba0226 Update configure to look for README.md instead of README 70125ab add markdown docs (converted from Wiki) bc4ecd1 Linux ExceptionHandler: don't allocate the CrashContext on the stack REVERT: 32e8c7a Link to lss subtree to unstick local build REVERT: 21da24f Merge commit '6270714adbd3816049a0fda61da52d7f0789c826' as 'src/third_party/lss-subtree' REVERT: 6270714 Squashed 'src/third_party/lss-subtree/' content from commit 66889fb REVERT: 44fdc48 GitHub penance ... ignore libchromeshell.so.sym git-subtree-dir: externals/breakpad git-subtree-split: 999dbf65c838d75b73ec0438101ba8690bc4dfae
277 lines
9.2 KiB
Plaintext
277 lines
9.2 KiB
Plaintext
dnl ---------------------------------------------------------------------------
|
|
|
|
AC_DEFINE(PACKAGE_URL, "https://github.com/mauiaaron/apple2", [apple2ix project URL])
|
|
|
|
AC_PREREQ([2.69])
|
|
AC_INIT([apple2ix], [0.8])
|
|
|
|
AC_CANONICAL_TARGET
|
|
|
|
AM_INIT_AUTOMAKE([foreign subdir-objects])
|
|
|
|
dnl AM_CONFIG_HEADER(src/config.h) -- disable config.h because it makes it difficult/impossible to do modular builds for the test suite
|
|
|
|
AC_PROG_CC([clang gcc])
|
|
AM_PROG_CC_C_O dnl apparently required for custom font.c target?
|
|
AM_PROG_AS
|
|
AC_PROG_INSTALL
|
|
|
|
dnl ---------------------------------------------------------------------------
|
|
dnl Arch checks
|
|
|
|
ASM_O="src/x86/glue.o src/x86/cpu.o"
|
|
TESTVM_ASM_O="src/x86/testvm-glue.o src/x86/testvm-cpu.o"
|
|
TESTDISK_ASM_O="src/x86/testdisk-glue.o src/x86/testdisk-cpu.o"
|
|
TESTTRACE_ASM_O="src/x86/testtrace-glue.o src/x86/testtrace-cpu.o"
|
|
arch=''
|
|
case $target in
|
|
x86_64-*-*)
|
|
arch='x64'
|
|
;;
|
|
i?86-*-*)
|
|
arch='x86'
|
|
;;
|
|
x86*)
|
|
dnl support shorthand ./configure --target=x86
|
|
arch='x86'
|
|
;;
|
|
*)
|
|
ASM_O=""
|
|
AC_MSG_ERROR([emulator does not presently support architecture $target])
|
|
;;
|
|
esac
|
|
|
|
AM_CFLAGS="-std=gnu11 -Wall"
|
|
|
|
dnl double-check compilation for x86 target
|
|
if test "$arch" = "x86" ; then
|
|
my_save_cflags="$CFLAGS"
|
|
AC_MSG_CHECKING([whether compiler supports x86 target])
|
|
case $host in
|
|
i?86-*-*)
|
|
dnl building on an actual x86 machine presumably works
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], [
|
|
AC_MSG_RESULT([32bit w00t!])
|
|
], [
|
|
AC_MSG_RESULT([oops])
|
|
AC_MSG_ERROR([world is b0rken])
|
|
])
|
|
;;
|
|
*)
|
|
dnl check x86 compilation on x86_64 (or other) host
|
|
CFLAGS="-m32 -Xassembler --32"
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], [
|
|
AC_MSG_RESULT([w00t!])
|
|
AC_MSG_WARN([compiling for x86 architecture appears to work, but emulator may fail to link if x86 versions of required libraries are not present...])
|
|
dnl HACK FIXME TODO --------------------------------------------------------- ^^^^^^^^^^^^ should check for this (and check linking against all x86 versions of needed libraries
|
|
AM_CFLAGS="$AM_CFLAGS $CFLAGS"
|
|
dnl -------- ARCHOS_HACK_LDFLAGS="-L/usr/lib/i386-linux-gnu -L/lib/i386-linux-gnu"
|
|
], [
|
|
AC_MSG_RESULT([oops])
|
|
AC_MSG_ERROR([build system does not support building for $arch architecture])
|
|
])
|
|
;;
|
|
esac
|
|
CFLAGS="$my_save_cflags"
|
|
fi
|
|
|
|
AC_SUBST(ASM_O)
|
|
AC_SUBST(TESTVM_ASM_O)
|
|
AC_SUBST(TESTDISK_ASM_O)
|
|
AC_SUBST(TESTTRACE_ASM_O)
|
|
AC_SUBST([AM_CFLAGS])
|
|
|
|
|
|
dnl OS Check
|
|
AC_EGREP_CPP(unsupported_, [
|
|
#if defined(__ANDROID__)
|
|
unsupported_for_now
|
|
#elif __APPLE__
|
|
unsupported_for_now
|
|
#include "TargetConditionals.h"
|
|
#if TARGET_IPHONE_SIMULATOR
|
|
#elif TARGET_OS_IPHONE
|
|
#elif TARGET_OS_MAC
|
|
#else
|
|
#endif
|
|
#elif __linux
|
|
linux
|
|
#elif __unix
|
|
unix
|
|
#elif __posix
|
|
posix
|
|
#else
|
|
unknown
|
|
#endif
|
|
], [
|
|
AC_MSG_CHECKING([Operating System ])
|
|
AC_MSG_RESULT([unsupported])
|
|
AC_MSG_ERROR([Apparently you have an unsupported OS, build aborted])
|
|
], [
|
|
AC_MSG_CHECKING([Operating System ])
|
|
AC_MSG_RESULT([supported])
|
|
])
|
|
|
|
dnl ASM underscore linking test
|
|
AC_TRY_LINK([asm("_glibc_foobar:");], [glibc_foobar()], [
|
|
AC_MSG_NOTICE([Underscores in assembly linkage allowed...])
|
|
], [
|
|
AC_MSG_NOTICE([Underscores in assembly linkage not allowed...])
|
|
AC_DEFINE(NO_UNDERSCORES, 1, [Underscores allowed in assembly linkage])
|
|
])
|
|
|
|
|
|
dnl ---------------------------------------------------------------------------
|
|
|
|
AM_PROG_LEX
|
|
|
|
dnl AS_IF([test "x$LEX" = "xno"], [
|
|
dnl AC_MSG_ERROR([Emulator needs lex/flex to build source...])
|
|
dnl ], [
|
|
dnl AC_MSG_RESULT([Found lex $LEX])
|
|
dnl ])
|
|
|
|
dnl POSIX high-precision clock
|
|
AC_SEARCH_LIBS(clock_gettime, rt, [], [
|
|
AC_MSG_ERROR([Emulator needs realtime clocks (-lrt) to build...])
|
|
], [])
|
|
|
|
AC_CHECK_HEADER(zlib.h, [], [
|
|
AC_MSG_ERROR([Emulator requires zlib headers to build...])
|
|
])
|
|
AC_SEARCH_LIBS(gzopen, z, [], [
|
|
AC_MSG_ERROR([Emulator requires zlib library to build...])
|
|
], [])
|
|
|
|
AC_CHECK_HEADER(pthread.h, [], [
|
|
AC_MSG_ERROR([Emulator requires pthread headers to build...])
|
|
])
|
|
AC_SEARCH_LIBS(pthread_create, pthread, [], [
|
|
AC_MSG_ERROR([Emulator requires pthread library to build...])
|
|
], [])
|
|
|
|
AC_SEARCH_LIBS(sqrtf, m, [], [
|
|
AC_MSG_ERROR([Emulator requires math library to build...])
|
|
], [])
|
|
|
|
|
|
dnl ---------------------------------------------------------------------------
|
|
dnl Video ...
|
|
|
|
AC_PATH_XTRA
|
|
|
|
opengl_selected='yes'
|
|
AC_ARG_ENABLE([opengl], AS_HELP_STRING([--disable-opengl], [Disable OpenGL video driver (uses regular X11)]), [
|
|
opengl_selected='no'
|
|
], [
|
|
AC_CHECK_HEADER(GL/glew.h, [
|
|
AC_CHECK_HEADER(GL/freeglut.h, [
|
|
AC_SEARCH_LIBS(glCreateProgram, [GL], [
|
|
AC_SEARCH_LIBS(glutMainLoop, [glut freeglut], [
|
|
AC_SEARCH_LIBS(glewInit, [GLEW glew], [
|
|
opengl_supported='yes'
|
|
AC_DEFINE(VIDEO_OPENGL, 1, [Use OpenGL])
|
|
AC_DEFINE(USE_GLUT, 1, [Use GLUT library])
|
|
VIDEO_O="src/video/glvideo.o src/video/glnode.o src/video/glalert.o src/video/glhudmodel.o src/video/glutinput.o src/video_util/matrixUtil.o src/video_util/modelUtil.o src/video_util/sourceUtil.o src/video_util/vectorUtil.o"
|
|
AC_MSG_RESULT([Building emulator with OpenGL support, w00t!])
|
|
], [
|
|
AC_MSG_WARN([Did not find OpenGL GLEW library...])
|
|
], [-lGL -lGLEW -lglut])
|
|
], [
|
|
AC_MSG_WARN([Did not find glut library...])
|
|
], [-lGL -lGLEW -lglut])
|
|
], [
|
|
AC_MSG_WARN([Did not find OpenGL library...])
|
|
], [-lGL])
|
|
], [
|
|
AC_MSG_WARN([Did not find GL/freeglut.h header ...])
|
|
])
|
|
], [
|
|
AC_MSG_WARN([Did not find GL/glew.h header ...])
|
|
])
|
|
])
|
|
|
|
AS_IF([test "x$opengl_supported" = "xyes"], [
|
|
], [
|
|
dnl OpenGL not supported
|
|
AS_IF([test "x$opengl_selected" = "xyes"], [
|
|
AC_MSG_WARN([Did not find OpenGL libraries, will attempt to build legacy X11 variant ...])
|
|
], [])
|
|
|
|
AC_CHECK_HEADER(X11/XKBlib.h, [
|
|
AC_SEARCH_LIBS(XPutImage, [X11], [
|
|
AC_SEARCH_LIBS(XShmAttach, Xext, [
|
|
AC_DEFINE(HAVE_X11_SHM, 1, [Enable X11 MIT SHM extension])
|
|
], [
|
|
AC_MSG_WARN([Building emulator without support of X11 MITSHM extension...])
|
|
], [-lX11])
|
|
VIDEO_O="src/video/xvideo.o"
|
|
], [
|
|
AC_MSG_ERROR([Did not find OpenGL nor X11 libraries...])
|
|
], [-LX11])
|
|
], [
|
|
AC_MSG_ERROR([Did not find OpenGL nor X11 headers...])
|
|
])
|
|
])
|
|
|
|
AC_SUBST(VIDEO_O)
|
|
|
|
dnl ---------------------------------------------------------------------------
|
|
dnl Sound ...
|
|
|
|
AC_ARG_ENABLE([audio], AS_HELP_STRING([--disable-audio], [Disable emulator audio output]), [], [
|
|
AC_CHECK_HEADER(AL/al.h, [
|
|
AC_CHECK_HEADER(AL/alc.h, [
|
|
AC_CHECK_HEADER(AL/alext.h, [
|
|
AC_SEARCH_LIBS(alcOpenDevice, openal, [
|
|
dnl found OpenAL ...
|
|
AC_DEFINE(AUDIO_ENABLED, 1, [Enable sound module])
|
|
AUDIO_GLUE_C="src/audio/speaker.c src/audio/mockingboard.c src/audio/playqueue.c"
|
|
AUDIO_O="src/audio/soundcore.o src/audio/soundcore-openal.o src/audio/speaker.o src/audio/playqueue.o src/audio/alhelpers.o src/audio/mockingboard.o src/audio/AY8910.o"
|
|
], [
|
|
AC_MSG_WARN([Could not find OpenAL libraries, sound will be disabled])
|
|
], [])
|
|
], [
|
|
AC_MSG_WARN([Could not find OpenAL headers, sound will be disabled])
|
|
], [
|
|
#include <AL/al.h>
|
|
#include <AL/alc.h>
|
|
])
|
|
], [
|
|
AC_MSG_WARN([Could not find OpenAL headers, sound will be disabled])
|
|
])
|
|
], [
|
|
AC_MSG_WARN([Could not find OpenAL headers, sound will be disabled])
|
|
])
|
|
])
|
|
AC_SUBST(AUDIO_GLUE_C)
|
|
AC_SUBST(AUDIO_O)
|
|
|
|
dnl AS_IF([test "x$audio_disabled" = "xno"], [
|
|
dnl ...
|
|
dnl ])
|
|
|
|
|
|
dnl ---------------------------------------------------------------------------
|
|
dnl Debugger & classic interface ...
|
|
AC_ARG_ENABLE([debugger], AS_HELP_STRING([--disable-debugger], [Disable 6502 debugging console]), [], [
|
|
AC_DEFINE(DEBUGGER, 1, [Enable 6502 debugger module])
|
|
META_O="src/meta/debug.o src/meta/debugger.o src/meta/opcodes.o src/test/sha1.o"
|
|
])
|
|
AC_SUBST(META_O)
|
|
|
|
AC_DEFINE(INTERFACE_CLASSIC, 1, [Use the classic menu interface])
|
|
|
|
dnl ---------------------------------------------------------------------------
|
|
dnl Misc ...
|
|
|
|
AC_DEFINE(APPLE2IX, 1, [Denotes a section of code as Apple//ix sourced, used with external sources])
|
|
AC_DEFINE(KEYPAD_JOYSTICK, 1, [Joystick emulated on keyboard ... should not be true on mobile devices])
|
|
AC_DEFINE(CONFORMANT_TRACKS, 1, [Conformant to Applewin, and apparently also to the original //e disk timing, but hella-slow on low-end mobile devices])
|
|
|
|
dnl ---------------------------------------------------------------------------
|
|
|
|
AC_CONFIG_FILES([Makefile])
|
|
AC_OUTPUT
|
|
|