ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/Unix/configure.ac
(Generate patch)

Comparing BasiliskII/src/Unix/configure.ac (file contents):
Revision 1.62 by gbeauche, 2006-03-14T21:18:44Z vs.
Revision 1.78 by asvitkine, 2010-07-28T01:07:45Z

# Line 14 | Line 14 | dnl Some systems do not put corefiles in
14   dnl cores for the configure tests since some are intended to dump core.
15   ulimit -c 0
16  
17 + AC_ARG_ENABLE(standalone-gui,[  --enable-standalone-gui enable a standalone GUI prefs editor [default=no]], [WANT_STANDALONE_GUI=$enableval], [WANT_STANDALONE_GUI=no])
18 +
19   dnl Video options.
20   AC_ARG_ENABLE(xf86-dga,      [  --enable-xf86-dga       use the XFree86 DGA extension [default=yes]], [WANT_XF86_DGA=$enableval], [WANT_XF86_DGA=yes])
21   AC_ARG_ENABLE(xf86-vidmode,  [  --enable-xf86-vidmode   use the XFree86 VidMode extension [default=yes]], [WANT_XF86_VIDMODE=$enableval], [WANT_XF86_VIDMODE=yes])
# Line 24 | Line 26 | dnl SDL options.
26   AC_ARG_ENABLE(sdl-static,    [  --enable-sdl-static     use SDL static libraries for linking [default=no]], [WANT_SDL_STATIC=$enableval], [WANT_SDL_STATIC=no])
27   AC_ARG_ENABLE(sdl-video,     [  --enable-sdl-video      use SDL for video graphics [default=no]], [WANT_SDL_VIDEO=$enableval], [WANT_SDL_VIDEO=no])
28   AC_ARG_ENABLE(sdl-audio,     [  --enable-sdl-audio      use SDL for audio [default=no]], [WANT_SDL_AUDIO=$enableval], [WANT_SDL_AUDIO=no])
29 + AC_ARG_ENABLE(sdl-framework,    [  --enable-sdl-framework  use SDL framework [default=no]], [WANT_SDL_FRAMEWORK=$enableval], [WANT_SDL_FRAMEWORK=no])
30 + AC_ARG_ENABLE(sdl-framework-prefix,    [  --enable-sdl-framework-prefix=PFX    default=/Library/Frameworks], [SDL_FRAMEWORK="$enableval"], [SDL_FRAMEWORK=/Library/Frameworks])
31  
32   dnl JIT compiler options.
33   AC_ARG_ENABLE(jit-compiler,  [  --enable-jit-compiler   enable JIT compiler [default=no]], [WANT_JIT=$enableval], [WANT_JIT=no])
# Line 99 | Line 103 | case "$target_cpu" in
103    x86_64* ) HAVE_X86_64=yes;;
104   esac
105  
106 + dnl Check if we should really be assuming x86_64 even if we detected HAVE_I386 above.
107 + if [[ "x$HAVE_I386" = "xyes" ]]; then
108 +  AC_TRY_RUN([
109 +    int main(void) {
110 +        #if defined(__x86_64__)
111 +                return 0;
112 +        #else
113 +                return 1;
114 +        #endif
115 +    }
116 +  ], [
117 +    HAVE_I386=no
118 +    HAVE_X86_64=yes
119 +  ])
120 + fi
121 +
122 + dnl Check if we should really be assuming x86_64 even if we detected HAVE_I386 above.
123 + if [[ "x$HAVE_I386" = "xyes" ]]; then
124 +  AC_TRY_RUN([
125 +    int main(void) {
126 +        #if defined(__x86_64__)
127 +                return 0;
128 +        #else
129 +                return 1;
130 +        #endif
131 +    }
132 +  ], [
133 +    HAVE_I386=no
134 +    HAVE_X86_64=yes
135 +  ])
136 + fi
137 +
138   dnl Checks for programs.
139   AC_PROG_CC
140   AC_PROG_CC_C_O
# Line 116 | Line 152 | if [[ "x$WANT_MON" = "xyes" ]]; then
152    if grep mon_init $mon_srcdir/mon.h >/dev/null 2>/dev/null; then
153      AC_MSG_RESULT(yes)
154      AC_DEFINE(ENABLE_MON, 1, [Define if using "mon".])
155 <    MONSRCS="$mon_srcdir/mon.cpp $mon_srcdir/mon_6502.cpp $mon_srcdir/mon_z80.cpp $mon_srcdir/mon_cmd.cpp $mon_srcdir/mon_disass.cpp $mon_srcdir/mon_ppc.cpp $mon_srcdir/mon_lowmem.cpp $mon_srcdir/disass/floatformat.c $mon_srcdir/disass/i386-dis.c $mon_srcdir/disass/m68k-dis.c $mon_srcdir/disass/m68k-opc.c"
155 >    MONSRCS="$mon_srcdir/mon.cpp $mon_srcdir/mon_6502.cpp $mon_srcdir/mon_z80.cpp $mon_srcdir/mon_cmd.cpp $mon_srcdir/mon_disass.cpp $mon_srcdir/mon_ppc.cpp $mon_srcdir/mon_lowmem.cpp $mon_srcdir/disass/floatformat.c $mon_srcdir/disass/i386-dis.c $mon_srcdir/disass/m68k-dis.c $mon_srcdir/disass/m68k-opc.c $mon_srcdir/disass/mips-dis.c $mon_srcdir/disass/mips-opc.c $mon_srcdir/disass/mips16-opc.c"
156      CXXFLAGS="$CXXFLAGS -I$mon_srcdir -I$mon_srcdir/disass"
157      AC_CHECK_LIB(ncurses, tgetent, ,
158 <      AC_CHECK_LIB(termcap, tgetent, ,
159 <        AC_CHECK_LIB(termlib, tgetent, ,
160 <          AC_CHECK_LIB(terminfo, tgetent, ,
161 <            AC_CHECK_LIB(Hcurses, tgetent, ,
162 <              AC_CHECK_LIB(curses, tgetent))))))
158 >      [AC_CHECK_LIB(termcap, tgetent, ,
159 >        [AC_CHECK_LIB(termlib, tgetent, ,
160 >          [AC_CHECK_LIB(terminfo, tgetent, ,
161 >            [AC_CHECK_LIB(Hcurses, tgetent, ,
162 >              [AC_CHECK_LIB(curses, tgetent)])])])])])
163      AC_CHECK_LIB(readline, readline)
164    else
165      AC_MSG_RESULT(no)
# Line 138 | Line 174 | AC_CHECK_LIB(rt, timer_create)
174   AC_CHECK_LIB(rt, shm_open)
175   AC_CHECK_LIB(m, cos)
176  
177 + dnl AC_CHECK_SDLFRAMEWORK($1=NAME, $2=INCLUDES)
178 + dnl AC_TRY_LINK uses main() but SDL needs main to take args,
179 + dnl therefore main is undefined with #undef.
180 + dnl Framework can be in an custom location.
181 + AC_DEFUN([AC_CHECK_SDLFRAMEWORK], [
182 +  AS_VAR_PUSHDEF([ac_Framework], [ac_cv_framework_$1])
183 +  AC_CACHE_CHECK([whether compiler supports framework $1],
184 +    ac_Framework, [
185 +    saved_LIBS="$LIBS"
186 +    LIBS="$LIBS -framework $1"
187 +    if [[ "x$SDL_FRAMEWORK" != "x/Library/Frameworks" ]]; then
188 +      if [[ "x$SDL_FRAMEWORK" != "x/System/Library/Frameworks" ]]; then
189 +        LIBS="$saved_LIBS -F$SDL_FRAMEWORK -framework $1"
190 +      fi
191 +    fi
192 +    saved_CPPFLAGS="$CPPFLAGS"
193 +    CPPFLAGS="$CPPFLAGS -I$SDL_FRAMEWORK/SDL.framework/Headers"
194 +    AC_TRY_LINK(
195 +      [$2
196 + #undef main], [],
197 +      [AS_VAR_SET(ac_Framework, yes)], [AS_VAR_SET(ac_Framework, no);
198 + LIBS="$saved_LIBS"; CPPFLAGS="$saved_CPPFLAGS"]
199 +    )
200 +  ])
201 +  AS_IF([test AS_VAR_GET(ac_Framework) = yes],
202 +    [AC_DEFINE(AS_TR_CPP(HAVE_FRAMEWORK_$1), 1, [Define if framework $1 is available.])]
203 +  )
204 +  AS_VAR_POPDEF([ac_Framework])
205 + ])
206 +
207   dnl Do we need SDL?
208   WANT_SDL=no
209   if [[ "x$WANT_SDL_VIDEO" = "xyes" ]]; then
# Line 152 | Line 218 | if [[ "x$WANT_SDL_AUDIO" = "xyes" ]]; th
218    SDL_SUPPORT="$SDL_SUPPORT audio"
219   fi
220   if [[ "x$WANT_SDL" = "xyes" ]]; then
221 <  AC_PATH_PROG(sdl_config, "sdl-config")
222 <  if [[ -n "$sdl_config" ]]; then
157 <    case $target_os in
158 <    # Special treatment for Cygwin so that we can still use the POSIX layer
159 <    *cygwin*)
160 <      sdl_cflags="-I`$sdl_config --prefix`/include/SDL"
161 <      sdl_libs="-L`$sdl_config --exec-prefix`/lib -lSDL"
162 <      ;;
163 <    *)
164 <      sdl_cflags=`$sdl_config --cflags`
165 <      if [[ "x$WANT_SDL_STATIC" = "xyes" ]]; then
166 <        sdl_libs=`$sdl_config --static-libs`
167 <      else
168 <        sdl_libs=`$sdl_config --libs`
169 <      fi
170 <      ;;
171 <    esac
172 <    CFLAGS="$CFLAGS $sdl_cflags"
173 <    CXXFLAGS="$CXXFLAGS $sdl_cflags"
174 <    LIBS="$LIBS $sdl_libs"
221 >  if [[ "x$WANT_SDL_FRAMEWORK" = "xyes" ]]; then
222 >    AC_CHECK_SDLFRAMEWORK(SDL, [#include <SDL.h>])
223    else
224 <    WANT_SDL=no
224 >    ac_cv_framework_SDL=no
225 >  fi
226 >  if [[ "x$ac_cv_framework_SDL" = "xno" ]]; then
227 >    AC_PATH_PROG(sdl_config, "sdl-config")
228 >    if [[ -n "$sdl_config" ]]; then
229 >      case $target_os in
230 >      # Special treatment for Cygwin so that we can still use the POSIX layer
231 >      *cygwin*)
232 >        sdl_cflags="-I`$sdl_config --prefix`/include/SDL"
233 >        sdl_libs="-L`$sdl_config --exec-prefix`/lib -lSDL"
234 >        ;;
235 >      *)
236 >        sdl_cflags=`$sdl_config --cflags`
237 >        if [[ "x$WANT_SDL_STATIC" = "xyes" ]]; then
238 >          sdl_libs=`$sdl_config --static-libs`
239 >        else
240 >          sdl_libs=`$sdl_config --libs`
241 >        fi
242 >        ;;
243 >      esac
244 >      CFLAGS="$CFLAGS $sdl_cflags"
245 >      CXXFLAGS="$CXXFLAGS $sdl_cflags"
246 >      LIBS="$LIBS $sdl_libs"
247 >    else
248 >      WANT_SDL=no
249 >    fi
250    fi
251    SDL_SUPPORT=`echo "$SDL_SUPPORT" | sed -e "s/^ //"`
252   else
# Line 251 | Line 324 | UISRCS=../dummy/prefs_editor_dummy.cpp
324   case "x$WANT_GTK" in
325   xgtk2*)
326    AM_PATH_GTK_2_0(1.3.15, [
327 <    AC_DEFINE(ENABLE_GTK, 1, [Define if using GTK.])
328 <    CFLAGS="$CFLAGS $GTK_CFLAGS"
256 <    CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
257 <    LIBS="$LIBS $GTK_LIBS"
258 <    UISRCS=prefs_editor_gtk.cpp
327 >    GUI_CFLAGS="$GTK_CFLAGS"
328 >    GUI_LIBS="$GTK_LIBS"
329      WANT_GTK=gtk2
330    ], [
331      case "x${WANT_GTK}x" in
# Line 273 | Line 343 | xgtk2*)
343   esac
344   if [[ "x$WANT_GTK" = "xgtk" ]]; then
345    AM_PATH_GTK(1.2.0, [
346 <    AC_DEFINE(ENABLE_GTK, 1, [Define if using GTK.])
347 <    CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
278 <    LIBS="$LIBS $GTK_LIBS"
279 <    UISRCS=prefs_editor_gtk.cpp
346 >    GUI_CFLAGS="$GTK_CFLAGS"
347 >    GUI_LIBS="$GTK_LIBS"
348      dnl somehow, <gnome-i18n.h> would redefine gettext() to nothing if
349      dnl ENABLE_NLS is not set, thusly conflicting with C++ <string> which
350      dnl includes <libintl.h>
351      AM_GNU_GETTEXT
352      B2_PATH_GNOMEUI([
353        AC_DEFINE(HAVE_GNOMEUI, 1, [Define if libgnomeui is available.])
354 <      CXXFLAGS="$CXXFLAGS $GNOMEUI_CFLAGS"
355 <      LIBS="$LIBS $GNOMEUI_LIBS"
354 >      GUI_CFLAGS="$GUI_CFLAGS $GNOMEUI_CFLAGS"
355 >      GUI_LIBS="$GUI_LIBS $GNOMEUI_LIBS"
356      ], [])
357    ], [
358      AC_MSG_WARN([Could not find GTK+, disabling user interface.])
359      WANT_GTK=no
360    ])
361   fi
362 + if [[ "x$WANT_GTK" != "xno" -a "x$WANT_STANDALONE_GUI" = "xno" ]]; then
363 +  AC_DEFINE(ENABLE_GTK, 1, [Define if using GTK.])
364 +  UISRCS=prefs_editor_gtk.cpp
365 + fi
366 + AC_SUBST(GUI_CFLAGS)
367 + AC_SUBST(GUI_LIBS)
368 +
369 + dnl Build external GUI if requested.
370 + if [[ "$WANT_STANDALONE_GUI" != "yes" ]]; then
371 +  WANT_STANDALONE_GUI=no
372 + fi
373 + if [[ "$WANT_GTK" = "no" ]]; then
374 +  WANT_STANDALONE_GUI=no
375 + fi
376 + AC_SUBST(STANDALONE_GUI, [$WANT_STANDALONE_GUI])
377  
378   dnl We use ESD if possible.
379   if [[ "x$WANT_ESD" = "xyes" ]]; then
# Line 400 | Line 483 | mips-sony-bsd|mips-sony-newsos4)
483   *-*-cygwin*)
484          no_dev_ptmx=1
485          ;;
486 + *-*-darwin*)
487 +        no_dev_ptmx=1
488 +        ;;
489   esac
490  
491   if test -z "$no_dev_ptmx" ; then
# Line 418 | Line 504 | AC_CHECK_FILE([/dev/ptc],
504                  have_dev_ptc=1
505          ]
506   )
421
507   dnl (end of code from openssh-3.2.2p1 configure.ac)
508  
424
509   dnl Check for systems where POSIX-style non-blocking I/O (O_NONBLOCK)
510   dnl doesn't work or is unimplemented. On these systems (mostly older
511   dnl ones), use the old BSD-style FIONBIO approach instead. [tcl.m4]
# Line 495 | Line 579 | AC_DEFUN([AC_CHECK_FRAMEWORK], [
579   ])
580  
581   dnl Check for some MacOS X frameworks
582 + AC_CHECK_FRAMEWORK(AppKit, [])
583   AC_CHECK_FRAMEWORK(Carbon, [#include <Carbon/Carbon.h>])
584   AC_CHECK_FRAMEWORK(IOKit, [#include <IOKit/IOKitLib.h>])
585   AC_CHECK_FRAMEWORK(CoreFoundation, [#include <CoreFoundation/CoreFoundation.h>])
# Line 567 | Line 652 | darwin*)
652      EXTRASYSSRCS="../MacOSX/sys_darwin.cpp"
653    fi
654    if [[ "x$ac_cv_framework_Carbon" = "xyes" ]]; then
655 <    EXTFSSRC=../MacOSX/extfs_macosx.mm
655 >    EXTFSSRC=../MacOSX/extfs_macosx.cpp
656    fi
657    ;;
658   cygwin*)
# Line 598 | Line 683 | AC_SUBST(SLIRP_SRCS)
683   dnl SDL overrides
684   if [[ "x$WANT_SDL" = "xyes" ]]; then
685    AC_DEFINE(USE_SDL, 1, [Define to enble SDL support])
686 +  if [[ "x$WANT_SDL_FRAMEWORK" = "xyes" ]]; then
687 +    EXTRASYSSRCS="$EXTRASYSSRCS ../SDL/SDLMain.m"
688 +  fi
689   fi
690   if [[ "x$WANT_SDL_VIDEO" = "xyes" ]]; then
691    AC_DEFINE(USE_SDL_VIDEO, 1, [Define to enable SDL video graphics support])
# Line 857 | Line 945 | AC_CACHE_CHECK([whether we can map Low M
945    ]
946   )
947  
860 dnl Check if we have POSIX shared memory support
861 AC_CACHE_CHECK([whether POSIX shared memory is working],
862  ac_cv_have_posix_shm, [
863  AC_LANG_SAVE
864  AC_LANG_CPLUSPLUS
865  AC_TRY_RUN([
866    #define HAVE_POSIX_SHM
867    #include "vm_alloc.cpp"
868    int main(void) { /* returns 0 if we have working POSIX shm */
869      if (vm_init() < 0) exit(2);
870      char *m1 = (char *)vm_acquire(32768, VM_MAP_DEFAULT | VM_MAP_33BIT);
871      if (m1 == VM_MAP_FAILED) exit(3);
872      vm_exit(); exit(0);
873    }
874  ], ac_cv_have_posix_shm=yes, ac_cv_have_posix_shm=no,
875  dnl When cross-compiling, do not assume anything.
876  ac_cv_have_posix_shm="guessing no"
877  )
878  AC_LANG_RESTORE
879  ]
880 )
881 AC_TRANSLATE_DEFINE(HAVE_POSIX_SHM, "$ac_cv_have_posix_shm",
882  [Define if your system supports POSIX shared memory.])
883
884 dnl Check if we have working 33-bit memory addressing
885 AC_CACHE_CHECK([whether 33-bit memory addressing is working],
886  ac_cv_have_33bit_addressing, [
887  AC_LANG_SAVE
888  AC_LANG_CPLUSPLUS
889  AC_TRY_RUN([
890    #define USE_33BIT_ADDRESSING 1
891    #include "vm_alloc.cpp"
892    int main(void) { /* returns 0 if we have working 33-bit addressing */
893      if (sizeof(void *) < 8) exit(1);
894      if (vm_init() < 0) exit(2);
895      char *m1 = (char *)vm_acquire(32768, VM_MAP_DEFAULT | VM_MAP_33BIT);
896      if (m1 == VM_MAP_FAILED) exit(3);
897      char *m2 = m1 + (1L << 32);
898      m1[0] = 0x12; if (m2[0] != 0x12) exit(4);
899      m2[0] = 0x34; if (m1[0] != 0x34) exit(5);
900      vm_exit(); exit(0);
901    }
902  ], ac_cv_have_33bit_addressing=yes, ac_cv_have_33bit_addressing=no,
903  dnl When cross-compiling, do not assume anything.
904  ac_cv_have_33bit_addressing="guessing no"
905  )
906  AC_LANG_RESTORE
907  ]
908 )
909
948   dnl Check signal handlers need to be reinstalled
949   AC_CACHE_CHECK([whether signal handlers need to be reinstalled],
950    ac_cv_signal_need_reinstall, [
# Line 974 | Line 1012 | AC_CACHE_CHECK([whether your system supp
1012    AC_LANG_SAVE
1013    AC_LANG_CPLUSPLUS
1014    AC_TRY_RUN([
1015 +    #define HAVE_MACH_VM 1
1016 +    #define HAVE_MACH_TASK_SELF 1
1017      #define HAVE_MACH_EXCEPTIONS 1
1018      #define CONFIGURE_TEST_SIGSEGV_RECOVERY
1019      #include "vm_alloc.cpp"
# Line 1100 | Line 1140 | dnl Check for linker script support
1140   case $target_os:$target_cpu in
1141   linux*:i?86)    LINKER_SCRIPT_FLAGS="-Wl,-T,ldscripts/linux-i386.ld";;
1142   linux*:x86_64)  LINKER_SCRIPT_FLAGS="-Wl,-T,ldscripts/linux-x86_64.ld";;
1143 < darwin*:powerpc)LINKER_SCRIPT_FLAGS="-Wl,-seg1addr,0x78048000";;
1143 > linux*:powerpc) LINKER_SCRIPT_FLAGS="-Wl,-T,ldscripts/linux-ppc.ld";;
1144 > netbsd*:i?86)   LINKER_SCRIPT_FLAGS="-Wl,-T,ldscripts/linux-i386.ld";;
1145 > freebsd*:i?86)  LINKER_SCRIPT_FLAGS="-Wl,-T,ldscripts/freebsd-i386.ld";;
1146 > darwin*:*)      LINKER_SCRIPT_FLAGS="-Wl,-seg1addr,0x78048000";;
1147   esac
1148   if [[ -n "$LINKER_SCRIPT_FLAGS" ]]; then
1149    AC_CACHE_CHECK([whether linker script is usable],
# Line 1313 | Line 1356 | if [[ "x$HAVE_GCC27" = "xyes" -a "x$HAVE
1356    DEFINES="$DEFINES -DUNALIGNED_PROFITABLE -DREGPARAM=\"__attribute__((regparm(3)))\""
1357    if [[ "x$HAVE_GAS" = "xyes" ]]; then
1358      ASM_OPTIMIZATIONS=i386
1359 <    DEFINES="$DEFINES -DX86_ASSEMBLY -DOPTIMIZED_FLAGS -DSAHF_SETO_PROFITABLE"
1359 >    DEFINES="-m32 $DEFINES -DX86_ASSEMBLY -DOPTIMIZED_FLAGS -DSAHF_SETO_PROFITABLE"
1360      JITSRCS="cpuemu1_nf.cpp cpuemu2_nf.cpp cpuemu3_nf.cpp cpuemu4_nf.cpp cpuemu5_nf.cpp cpuemu6_nf.cpp cpuemu7_nf.cpp cpuemu8_nf.cpp $JITSRCS"
1361      CAN_JIT=yes
1362    fi
# Line 1322 | Line 1365 | elif [[ "x$HAVE_GCC30" = "xyes" -a "x$HA
1365    DEFINES="$DEFINES -DUNALIGNED_PROFITABLE"
1366    if [[ "x$HAVE_GAS" = "xyes" ]]; then
1367      ASM_OPTIMIZATIONS="x86-64"
1368 <    DEFINES="$DEFINES -DX86_64_ASSEMBLY -DOPTIMIZED_FLAGS"
1368 >    DEFINES="-m64 $DEFINES -DX86_64_ASSEMBLY -DOPTIMIZED_FLAGS"
1369      JITSRCS="cpuemu1_nf.cpp cpuemu2_nf.cpp cpuemu3_nf.cpp cpuemu4_nf.cpp cpuemu5_nf.cpp cpuemu6_nf.cpp cpuemu7_nf.cpp cpuemu8_nf.cpp $JITSRCS"
1370      CAN_JIT=yes
1328    WANT_33BIT_ADDRESSING=yes
1371    fi
1372   elif [[ "x$HAVE_GCC27" = "xyes" -a "x$HAVE_SPARC" = "xyes" -a "x$HAVE_GAS" = "xyes" ]]; then
1373    dnl SPARC CPU
# Line 1382 | Line 1424 | else
1424    JITSRCS=""
1425   fi
1426  
1385 dnl Use 33-bit memory addressing?
1386 if [[ "$ac_cv_have_33bit_addressing:$WANT_33BIT_ADDRESSING" = "yes:yes" ]]; then
1387  use_33bit_addressing=yes
1388 fi
1389 AC_TRANSLATE_DEFINE(USE_33BIT_ADDRESSING, "$use_33bit_addressing",
1390  [Define to use 33-bit memory addressing on 64-bit JIT capable systems.])
1391
1427   dnl Utility macro used by next two tests.
1428   dnl AC_EXAMINE_OBJECT(C source code,
1429   dnl     commands examining object file,

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines