dnl Init. AC_INIT(dosbox,0.62) AC_PREREQ(2.50) AC_CONFIG_SRCDIR(README) dnl Detect the canonical host and target build environment AC_CANONICAL_HOST AC_CANONICAL_TARGET dnl Setup for automake AM_INIT_AUTOMAKE AM_CONFIG_HEADER(config.h) dnl Checks for programs. AC_PROG_MAKE_SET AC_PROG_CC AC_PROG_CPP AC_PROG_CXX AC_PROG_INSTALL AC_PROG_RANLIB dnl Check for SDL SDL_VERSION=1.2.0 AM_PATH_SDL($SDL_VERSION, :, AC_MSG_ERROR([*** SDL version $SDL_VERSION not found!]) ) LIBS="$LIBS $SDL_LIBS" CPPFLAGS="$CPPFLAGS $SDL_CFLAGS" dnl Checks for header files. dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE AC_TYPE_SIZE_T AC_STRUCT_TM AC_CHECK_SIZEOF(unsigned char) AC_CHECK_SIZEOF(unsigned short) AC_CHECK_SIZEOF(unsigned int) AC_CHECK_SIZEOF(unsigned long) AC_CHECK_SIZEOF(unsigned long long) AC_CHECK_SIZEOF(int *) AC_MSG_CHECKING(if environ can be included) AC_TRY_LINK([#include #include ],[*environ;], [AC_MSG_RESULT(yes);AC_DEFINE(ENVIRON_INCLUDED,1,[environ can be included])],AC_MSG_RESULT(no)) AC_MSG_CHECKING(if environ can be linked) AC_TRY_LINK([extern char ** environ;],[*environ;], [AC_MSG_RESULT(yes);AC_DEFINE(ENVIRON_LINKED,1,[environ can be linked])],AC_MSG_RESULT(no)) dnl Checks for libraries. #Check if the compiler support attributes AH_TEMPLATE([C_HAS_ATTRIBUTE],[Determines if the compilers supports attributes for structures.]) AC_MSG_CHECKING(if compiler allows __attribute__) AC_TRY_COMPILE([], [typedef struct { } __attribute__ ((packed)) junk;], [ AC_MSG_RESULT(yes);AC_DEFINE(C_HAS_ATTRIBUTE)],AC_MSG_RESULT(no)) AM_PATH_ALSA(0.9.0, AC_DEFINE(HAVE_ALSA,1,[Define to 1 to use ALSA for MIDI]) , : ) #Check for big endian machine, should #define WORD_BIGENDIAN if so AC_C_BIGENDIAN #Features to enable/disable AH_TEMPLATE(C_DEBUG,[Define to 1 to enable internal debugger, requires libcurses]) AH_TEMPLATE(C_HEAVY_DEBUG,[Define to 1 to enable heavy debugging, also have to enable C_DEBUG]) AC_ARG_ENABLE(debug,AC_HELP_STRING([--enable-debug],[Enable debug mode]),[ AC_CHECK_HEADER(curses.h,have_curses_h=yes,) AC_CHECK_LIB(curses, initscr, have_curses_lib=yes, , ) AC_CHECK_LIB(pdcurses, initscr, have_pdcurses_lib=yes, , ) if test x$have_curses_lib = xyes -a x$have_curses_h = xyes ; then LIBS="$LIBS -lcurses" AC_DEFINE(C_DEBUG,1) if test x$enable_debug = xheavy ; then AC_DEFINE(C_HEAVY_DEBUG,1) fi elif test x$have_pdcurses_lib = xyes -a x$have_curses_h = xyes ; then LIBS="$LIBS -lpdcurses" AC_DEFINE(C_DEBUG,1) if test x$enable_debug = xheavy ; then AC_DEFINE(C_HEAVY_DEBUG,1) fi else AC_MSG_WARN([Can't find curses, debug mode disabled]) fi ],) AH_TEMPLATE(C_CORE_INLINE,[Define to 1 to use inlined memory functions in cpu core]) AC_ARG_ENABLE(core-inline,AC_HELP_STRING([--enable-core-inline],[Enable inlined memory handling in CPU Core]),[ if test x$enable_core_inline = xyes ; then AC_MSG_RESULT([enabling inlined memory handling in CPU Core]) AC_DEFINE(C_CORE_INLINE,1) fi ],) dnl The target cpu checks for dynamic cores AH_TEMPLATE(C_HOSTCPU,[The type of cpu this host has]) AC_MSG_CHECKING(for target cpu type) case "$target_cpu" in i386|i486|i586|i686) AC_DEFINE(C_HOSTCPU,X86) AC_MSG_RESULT(x86 compatible) c_hostcpu="x86" ;; *) AC_DEFINE(C_HOSTCPU,UNKOWN) AC_MSG_RESULT(unknown) ;; esac AH_TEMPLATE(C_DYNAMIC_X86,[Define to 1 to use x86 dynamic cpu core]) AC_ARG_ENABLE(dynamic-x86,AC_HELP_STRING([--disable-dynamic-x86],[Disable x86 dynamic cpu core]),,enable_dynamic_x86=yes) AC_MSG_CHECKING(whether x86 dynamic cpu core will be enabled) if test x$enable_dynamic_x86 = xno ; then AC_MSG_RESULT(no) else if test x$c_hostcpu = xx86 ; then AC_DEFINE(C_DYNAMIC_X86,1) AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi fi AH_TEMPLATE(C_FPU,[Define to 1 to enable floating point emulation]) AC_ARG_ENABLE(fpu,AC_HELP_STRING([--disable-fpu],[Disable fpu support]),,enable_fpu=yes) AC_MSG_CHECKING(whether fpu emulation will be enabled) if test x$enable_fpu = xyes ; then AC_MSG_RESULT(yes) AC_DEFINE(C_FPU,1) else AC_MSG_RESULT(no) fi AH_TEMPLATE(C_SSHOT,[Define to 1 to enable screenshots, requires libpng]) AC_CHECK_HEADER(png.h,have_png_h=yes,) AC_CHECK_LIB(png, png_check_sig, have_png_lib=yes, ,-lz) if test x$have_png_lib = xyes -a x$have_png_h = xyes ; then LIBS="$LIBS -lpng -lz" AC_DEFINE(C_SSHOT,1) else AC_MSG_WARN([Can't find libpng, screenshot support disabled]) fi AH_TEMPLATE(C_MODEM,[Define to 1 to enable internal modem support, requires SDL_net]) AH_TEMPLATE(C_IPX,[Define to 1 to enable IPX over Internet networking, requires SDL_net]) AC_CHECK_HEADER(SDL_net.h,have_sdl_net_h=yes,) AC_CHECK_LIB(SDL_net, SDLNet_Init, have_sdl_net_lib=yes, , ) if test x$have_sdl_net_lib = xyes -a x$have_sdl_net_h = xyes ; then LIBS="$LIBS -lSDL_net" AC_DEFINE(C_MODEM,1) AC_DEFINE(C_IPX,1) else AC_MSG_WARN([Can't find SDL_net, internal modem and ipx disabled]) fi AH_TEMPLATE(C_OPENGL,[Define to 1 to use opengl display output support]) AC_ARG_ENABLE(opengl,AC_HELP_STRING([--disable-opengl],[Disable opengl support]),,enable_opengl=yes) AC_CHECK_LIB(GL, main, have_gl_lib=yes, have_gl_lib=no , ) AC_CHECK_LIB(opengl32, main, have_opengl32_lib=yes,have_opengl32_lib=no , ) AC_CHECK_HEADER(GL/gl.h, have_gl_h=yes , have_gl_h=no , ) AC_MSG_CHECKING(whether opengl display output will be enabled) if test x$enable_opengl = xyes -a x$have_gl_h = xyes -a x$have_gl_lib = xyes ; then AC_MSG_RESULT(yes) LIBS="$LIBS -lGL" AC_DEFINE(C_OPENGL,1) elif test x$enable_opengl = xyes -a x$have_gl_h = xyes -a x$have_opengl32_lib = xyes ; then AC_MSG_RESULT(yes) LIBS="$LIBS -lopengl32" AC_DEFINE(C_OPENGL,1) else AC_MSG_RESULT(no) fi AH_TEMPLATE(C_SDL_SOUND,[Define to 1 to enable SDL_sound support]) AC_CHECK_HEADER(SDL/SDL_sound.h,have_SDL_sound_h=yes,) AC_CHECK_LIB(SDL_sound, Sound_Init, have_SDL_sound_lib=yes,,) if test x$have_SDL_sound_h = xyes -a x$have_SDL_sound_lib = xyes ; then LIBS="$LIBS -lSDL_sound" AC_DEFINE(C_SDL_SOUND,1) else AC_MSG_WARN([Can't find libSDL_sound, libSDL_sound support disabled]) fi AH_TEMPLATE(C_SET_PRIORITY,[Define to 1 if you have setpriority support]) AC_MSG_CHECKING(for setpriority support) AC_LINK_IFELSE([ #include int main(int argc,char * argv[]) { return setpriority (PRIO_PROCESS, 0,PRIO_MIN+PRIO_MAX); }; ],AC_MSG_RESULT(yes);AC_DEFINE(C_SET_PRIORITY,1),AC_MSG_RESULT(no)) dnl Some host detection and actions for them case "$target" in *-*-cygwin* | *-*-mingw32*) LIBS="$LIBS -lwinmm" AC_CHECK_HEADERS(ddraw.h) AC_DEFINE(C_DIRECTSERIAL, 1, [ Define to 1 if you want serial passthrough support (Win32 only).]) ;; *-*-darwin*) dnl We have a problem here: both MacOS X and Darwin report dnl the same signature "powerpc-apple-darwin*" - so we have dnl to do more to distinguish them. dnl For now I am lazy and do not add proper detection code. AC_DEFINE(MACOSX, 1, [Compiling on Mac OS X]) LIBS="$LIBS -framework AudioUnit" ;; *-*-linux-gnu*) AC_DEFINE(LINUX, 1, [Compiling on GNU/Linux]) ;; esac AC_OUTPUT([ Makefile src/Makefile src/cpu/Makefile src/cpu/core_full/Makefile src/cpu/core_normal/Makefile src/cpu/core_dyn_x86/Makefile src/debug/Makefile src/dos/Makefile src/fpu/Makefile src/gui/Makefile src/hardware/Makefile src/ints/Makefile src/misc/Makefile src/shell/Makefile src/platform/Makefile src/platform/visualc/Makefile visualc/Makefile visualc_net/Makefile include/Makefile docs/Makefile ])