X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1eff60811f6684622b8ce0dabc7a668bcd232739..5a92b56137aa9914fb1463fbc9342d595e38a88e:/configure.in?ds=sidebyside diff --git a/configure.in b/configure.in index 16bd623c60..77e9c4e87b 100644 --- a/configure.in +++ b/configure.in @@ -17,7 +17,7 @@ dnl --------------------------------------------------------------------------- dnl initialization dnl --------------------------------------------------------------------------- -AC_INIT([wxWidgets], [2.9.4], [wx-dev@lists.wxwidgets.org]) +AC_INIT([wxWidgets], [2.9.5], [wx-dev@lists.wxwidgets.org]) dnl the file passed to AC_CONFIG_SRCDIR should be specific to our package AC_CONFIG_SRCDIR([wx-config.in]) @@ -43,7 +43,7 @@ dnl wx_release_number += 1 wx_major_version_number=2 wx_minor_version_number=9 -wx_release_number=4 +wx_release_number=5 wx_subrelease_number=0 WX_RELEASE=$wx_major_version_number.$wx_minor_version_number @@ -385,27 +385,23 @@ dnl features disabled by default DEFAULT_wxUSE_ACCESSIBILITY=no DEFAULT_wxUSE_IPV6=no DEFAULT_wxUSE_GSTREAMER8=no +DEFAULT_wxUSE_UNICODE_UTF8=no +DEFAULT_wxUSE_UNICODE_UTF8_LOCALE=no dnl automatic features DEFAULT_wxUSE_ARTPROVIDER_TANGO=auto -DEFAULT_wxUSE_UNICODE_UTF8=auto DEFAULT_wxUSE_OPENGL=auto DEFAULT_wxUSE_MEDIACTRL=auto DEFAULT_wxUSE_COMPILER_TLS=auto DEFAULT_wxUSE_HOTKEY=auto DEFAULT_wxUSE_METAFILE=auto -DEFAULT_wxUSE_UNICODE_UTF8_LOCALE=no - dnl Mac/Cocoa users need to enable building universal binaries explicitly DEFAULT_wxUSE_UNIVERSAL_BINARY=no DEFAULT_wxUSE_MAC_ARCH=no DEFAULT_wxUSE_OFFICIAL_BUILD=no -dnl Applicable only when --with-gtk was used: -DEFAULT_wxUSE_GTK2=yes - dnl Always default to no. Only special cases require this. DEFAULT_wxUSE_OBJC_UNIQUIFYING=no @@ -470,7 +466,7 @@ fi dnl we use AC_ARG_WITH and not WX_ARG_WITH for the toolkit options as they dnl shouldn't default to wxUSE_ALL_FEATURES -AC_ARG_WITH(gtk, [[ --with-gtk[=VERSION] use GTK+, VERSION can be 2 (default), 1 or "any"]], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1]) +AC_ARG_WITH(gtk, [[ --with-gtk[=VERSION] use GTK+, VERSION can be 3, 2 (default), 1 or "any"]], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1]) AC_ARG_WITH(motif, [ --with-motif use Motif/Lesstif], [wxUSE_MOTIF="$withval" CACHE_MOTIF=1 TOOLKIT_GIVEN=1]) AC_ARG_WITH(osx_carbon, [ --with-osx_carbon use Mac OS X (Carbon)], [wxUSE_OSX_CARBON="$withval" CACHE_OSX_CARBON=1 TOOLKIT_GIVEN=1]) AC_ARG_WITH(osx_cocoa, [ --with-osx_cocoa use Mac OS X (Cocoa)], [wxUSE_OSX_COCOA="$withval" CACHE_OSX_COCOA=1 TOOLKIT_GIVEN=1]) @@ -488,8 +484,6 @@ AC_ARG_WITH(directfb, [ --with-directfb use DirectFB], [wxUSE_DFB= AC_ARG_WITH(microwin, [ --with-microwin use MicroWindows], [wxUSE_MICROWIN="$withval" CACHE_MICROWIN=1 TOOLKIT_GIVEN=1]) AC_ARG_WITH(x11, [ --with-x11 use X11], [wxUSE_X11="$withval" wxUSE_UNIVERSAL="yes" CACHE_X11=1 TOOLKIT_GIVEN=1]) WX_ARG_ENABLE(nanox, [ --enable-nanox use NanoX], wxUSE_NANOX) - -AC_ARG_ENABLE(gtk2, [ --disable-gtk2 use GTK+ 1.2 instead of 2.0], [wxUSE_GTK2="$enableval"]) WX_ARG_ENABLE(gpe, [ --enable-gpe use GNOME PDA Environment features if possible], wxUSE_GPE) dnl check that no more than one toolkit is given and that if none are given that @@ -561,15 +555,6 @@ if test "$wxUSE_GUI" = "yes"; then AC_MSG_ERROR(Please specify at most one toolkit) esac - # to be removed when --disable-gtk2 isn't needed - if test "x$wxUSE_GTK2" = "xyes"; then - wxGTK_VERSION=2 - wxUSE_GTK1=0 - elif test "x$wxUSE_GTK2" = "xno"; then - wxGTK_VERSION=1 - wxUSE_GTK1=1 - fi - for toolkit in $ALL_TOOLKITS; do var=wxUSE_$toolkit eval "value=\$${var}" @@ -728,7 +713,7 @@ WX_ARG_ENABLE(permissive, [ --enable-permissive compile code disregardin WX_ARG_ENABLE(no_deps, [ --enable-no_deps create code without dependency information], wxUSE_NO_DEPS) WX_ARG_DISABLE(vararg_macros,[ --disable-vararg_macros don't use vararg macros, even if they are supported], wxUSE_VARARG_MACROS) -WX_ARG_ENABLE_PARAM(universal_binary, [[ --enable-universal_binary create universal binary with Mac PPC and i386 (and x86_64 if using Cocoa) architectures ]], wxUSE_UNIVERSAL_BINARY) +WX_ARG_ENABLE_PARAM(universal_binary, [[ --enable-universal_binary=archs create universal binary for the specified (or all supported) architectures]], wxUSE_UNIVERSAL_BINARY) WX_ARG_ENABLE_PARAM(macosx_arch, [[ --enable-macosx_arch=ARCH build for just the specified architecture]], wxUSE_MAC_ARCH) WX_ARG_ENABLE(compat26, [ --enable-compat26 enable wxWidgets 2.6 compatibility], WXWIN_COMPATIBILITY_2_6) @@ -1049,7 +1034,7 @@ WX_ARG_FEATURE(dragimage, [ --enable-dragimage use wxDragImage], wxUSE_D WX_ARG_FEATURE(accessibility,[ --enable-accessibility enable accessibility support], wxUSE_ACCESSIBILITY) WX_ARG_FEATURE(uiactionsim, [ --enable-uiactionsim use wxUIActionSimulator (experimental)], wxUSE_UIACTIONSIMULATOR) WX_ARG_FEATURE(dctransform, [ --enable-dctransform use wxDC::SetTransformMatrix and related], wxUSE_DC_TRANSFORM_MATRIX) -WX_ARG_FEATURE(webviewwebkit,[ --enable-webview-webkit use wxWebView WebKit backend], wxUSE_WEBVIEW_WEBKIT) +WX_ARG_FEATURE(webviewwebkit,[ --enable-webview_webkit use wxWebView WebKit backend], wxUSE_WEBVIEW_WEBKIT) dnl --------------------------------------------------------------------------- dnl support for image formats that do not rely on external library @@ -1074,7 +1059,7 @@ WX_ARG_FEATURE(ps-in-msw, [ --enable-ps-in-msw use PS printing in wxMSW WX_ARG_FEATURE(ownerdrawn, [ --enable-ownerdrawn use owner drawn controls (Win32 and OS/2 only)], wxUSE_OWNER_DRAWN) WX_ARG_FEATURE(uxtheme, [ --enable-uxtheme enable support for Windows XP themed look (Win32 only)], wxUSE_UXTHEME) WX_ARG_FEATURE(wxdib, [ --enable-wxdib use wxDIB class (Win32 only)], wxUSE_DIB) -WX_ARG_FEATURE(webviewie, [ --enable-webview-ie use wxWebView IE backend (Win32 only)], wxUSE_WEBVIEW_IE) +WX_ARG_FEATURE(webviewie, [ --enable-webview_ie use wxWebView IE backend (Win32 only)], wxUSE_WEBVIEW_IE) dnl this one is not really MSW-specific but it exists mainly to be turned off dnl under MSW, it should be off by default on the other platforms @@ -1147,60 +1132,53 @@ if test "$wxUSE_MAC" = 1; then retest_macosx_linking=no OSX_ARCH_OPTS="" -if test "x$wxUSE_MAC_ARCH" != xno; then - OSX_ARCH_OPTS="-arch $wxUSE_MAC_ARCH" -fi - -dnl Support the old --enable-universal_binary in case anyone was using it. - if test "x$wxUSE_UNIVERSAL_BINARY" != xno ; then - dnl --enable-universal_binary uses a default SDK (currently 10.4u) - dnl --enable-universal_binary=SDK names a path to an SDK - if test "x$wxUSE_UNIVERSAL_BINARY" == xyes; then - # Implicitly turn on the new --with-macosx-sdk using the default - # SDK which provides the behaviour this option has always had. - if test "x$wxUSE_MACOSX_SDK" = "x"; then - AC_MSG_WARN([Enabling default SDK due to --enable-universal_binary.]) - AC_MSG_WARN([If you don't want this, specify --without-macosx-sdk]) - wxUSE_MACOSX_SDK=yes - fi - else - # Complain to user if he specified an argument to --enable-universal_binary - # and also 1) specified --with-macosx-sdk using the default (yes) or - # 2) specified --with-macosx-sdk using a path or 3) specified - # --without-macosx-sdk (no). - if test "x$wxUSE_MACOSX_SDK" != "x" ; then - AC_MSG_FAILURE([Please specify the new --with-macosx-sdk=PATH and do not specify an arg to --enable-universal_binary]) - else - # Put the SDK path into the wxUSE_MACOSX_SDK. We don't have to - # special-case the empty string because the below test simply - # converts "no" to the empty string anyway. - wxUSE_MACOSX_SDK="$wxUSE_UNIVERSAL_BINARY" - dnl Warn about deprecated usage. - AC_MSG_WARN([Please use --with-macosx-sdk=PATH and --enable-universal_binary without an argument]) - fi - fi - dnl FIXME: I think it would be better to put this into CC, CXX, and LD rather than the flags. - OSX_ARCH_OPTS="-arch ppc -arch i386" - if test "$wxUSE_OSX_COCOA" = 1; then - OSX_ARCH_OPTS="$OSX_ARCH_OPTS -arch x86_64" + +dnl Deal with architecture selection. By default, we compile for the current +dnl architecture, whatever it is. With --enable-universal_binary the list of +dnl architectures can be explicitly specified. If it isn't, we compile for all +dnl supported ones. +if test "x$wxUSE_UNIVERSAL_BINARY" != xno ; then + if test "x$wxUSE_MAC_ARCH" != xno; then + AC_MSG_WARN([--enable-macosx_arch is ignored when --enable-universal_binary is used.]) + fi + + if test "x$wxUSE_UNIVERSAL_BINARY" != xyes; then + OSX_ARCH_OPTS=$wxUSE_UNIVERSAL_BINARY + else dnl Use all architectures supported + OSX_ARCH_OPTS="ppc,i386" + if test "$wxUSE_OSX_COCOA" = 1; then + OSX_ARCH_OPTS="$OSX_ARCH_OPTS,x86_64" fi - AC_MSG_CHECKING([for universal binary architectures]) - AC_MSG_RESULT([$OSX_ARCH_OPTS]) - - dnl NOTE: Only the compiler driver needs arch flags. The link editor - dnl is incapable of using them but the compiler driver (which we use - dnl as LD when building dynamic libraries) uses them to invoke the - dnl real ld multiple times. If we moved to libtool -dynamic we would - dnl need no arch flags because libtool automatically invokes ld for - dnl every architecture found in the fat input files. - dnl - dnl For static library builds, AR/RANLIB automatically create proper - dnl fat archives although AR is unable to update them once RANLIB has - dnl made them into proper fat archives. Fortunately, our link process - dnl simply removes the .a file before using ar to create a new one. - dnl If we did move to libtool -static we still wouldn't need arch flags - dnl because libtool automatically figures it out based on input. - retest_macosx_linking=yes + fi + + AC_MSG_CHECKING([for architectures to use in universal binary]) + AC_MSG_RESULT([$OSX_ARCH_OPTS]) + + dnl NOTE: Only the compiler driver needs arch flags. The link editor + dnl is incapable of using them but the compiler driver (which we use + dnl as LD when building dynamic libraries) uses them to invoke the + dnl real ld multiple times. If we moved to libtool -dynamic we would + dnl need no arch flags because libtool automatically invokes ld for + dnl every architecture found in the fat input files. + dnl + dnl For static library builds, AR/RANLIB automatically create proper + dnl fat archives although AR is unable to update them once RANLIB has + dnl made them into proper fat archives. Fortunately, our link process + dnl simply removes the .a file before using ar to create a new one. + dnl If we did move to libtool -static we still wouldn't need arch flags + dnl because libtool automatically figures it out based on input. + retest_macosx_linking=yes +else + if test "x$wxUSE_MAC_ARCH" != xno; then + OSX_ARCH_OPTS=$wxUSE_MAC_ARCH + fi +fi + +if test "x$OSX_ARCH_OPTS" != "x"; then + dnl Check if there is more than one architecture + if echo $OSX_ARCH_OPTS | grep -q ","; then + AC_MSG_WARN([Disabling dependency tracking due to universal binary build.]) + disable_macosx_deps=yes dnl HACK: PCH could be made to work by precompiling for each architecture into separate directories dnl and including all architecture directories with each compiler invocation. @@ -1210,11 +1188,14 @@ dnl Support the old --enable-universal_binary in case anyone was using it. bk_use_pch=no fi -CXXFLAGS="$OSX_ARCH_OPTS $CXXFLAGS" -CFLAGS="$OSX_ARCH_OPTS $CFLAGS" -OBJCXXFLAGS="$OSX_ARCH_OPTS $OBJCXXFLAGS" -OBJCFLAGS="$OSX_ARCH_OPTS $OBJCFLAGS" -LDFLAGS="$OSX_ARCH_OPTS $LDFLAGS" + OSX_ARCH_OPTS=`echo $OSX_ARCH_OPTS | sed -e 's/^/-arch /' -e 's/,/ -arch /g'` + + CXXFLAGS="$OSX_ARCH_OPTS $CXXFLAGS" + CFLAGS="$OSX_ARCH_OPTS $CFLAGS" + OBJCXXFLAGS="$OSX_ARCH_OPTS $OBJCXXFLAGS" + OBJCFLAGS="$OSX_ARCH_OPTS $OBJCFLAGS" + LDFLAGS="$OSX_ARCH_OPTS $LDFLAGS" +fi dnl Set up the Mac OS X SDK. We do this early so configure tests will occur dnl with the SDK in place. @@ -1273,66 +1254,14 @@ dnl We need to quote the next line where we don't need macros and do need [] in wxUSE_MACOSX_VERSION_MIN= fi elif test "x$wxUSE_MACOSX_VERSION_MIN" = "x"; then - AC_CHECK_PROGS(OSX_SW_VERS, sw_vers) - if test "$OSX_SW_VERS" != ""; then - OSX_VERSION=`sw_vers -productVersion | grep 10.[[0-9]]` - else - dnl can't determine it (happens e.g. when cross-compiling) so use a - dnl conservative default - AC_MSG_WARN([Assuming OS X 10.4, use --with-macosx-version-min to override.]) - OSX_VERSION="10.4" - fi - - case "$OSX_VERSION" in - 10.4* ) - wxUSE_MACOSX_VERSION_MIN=10.4 - ;; - - * ) - if test "$wxUSE_OSX_CARBON" = 1; then - # otherwise configure stops on leopard for universal_binary - wxUSE_MACOSX_VERSION_MIN=10.4 - else - # for Cocoa, use 10.5 to be able to compile it in 64 bits too - wxUSE_MACOSX_VERSION_MIN=10.5 - fi - ;; - esac -fi - -NEEDS_GCC40="no" -if test "x$wxUSE_MACOSX_VERSION_MIN" == "x10.4"; then - NEEDS_GCC40="yes" -fi - -if test "$wxUSE_OSX_CARBON" = 1; then - NEEDS_GCC40="yes" -fi - -if test "x$NEEDS_GCC40" == "xyes"; then - # gcc 4.2 cannot compile 10.4 compatible code, so if the user is using it - # and wants 10.4 compatible code, then 'downgrade' to 4.0 - # This is also the simplest way to get 32-bit binaries on Snow Leopard. - if test "x$CC" = "xgcc"; then - CCVERSION=`$CC --version | grep 4.[[2-9]].` - if test "x$CCVERSION" != "x"; then - echo "$as_me:$LINENO: WARNING: gcc >= 4.2 cannot compile 10.4 compatible code. Using gcc 4.0 instead." - CC="gcc-4.0" - fi - fi - - if test "x$CXX" = "xg++"; then - CCVERSION=`$CXX --version | grep 4.[[2-9]].` - if test "x$CCVERSION" != "x"; then - CXX="g++-4.0" - fi - fi + wxUSE_MACOSX_VERSION_MIN=10.5 fi if test "x$MACOSX_SDK_OPTS" != "x"; then eval "CC=\"$CC $MACOSX_SDK_OPTS\"" eval "CXX=\"$CXX $MACOSX_SDK_OPTS\"" eval "LD=\"$LD $MACOSX_SDK_OPTS\"" + retest_macosx_linking=yes fi if test "x$wxUSE_MACOSX_VERSION_MIN" != "x"; then @@ -1352,12 +1281,12 @@ dnl still compile and link both C and C++. If we didn't do this, then most dnl of the remaining tests would fail. if test "x$retest_macosx_linking" = "xyes"; then AC_LANG_PUSH(C) - AC_MSG_CHECKING([if C compiler works with SDK/version options]) + AC_MSG_CHECKING([if C compiler ($CC) works with SDK/version options]) AC_TRY_LINK([],[],[AC_MSG_RESULT([yes])],[AC_MSG_FAILURE([no. Try a different SDK]); exit 1]) AC_LANG_POP() AC_LANG_PUSH(C++) - AC_MSG_CHECKING([if C++ compiler works with SDK/version options]) + AC_MSG_CHECKING([if C++ compiler ($CXX) works with SDK/version options]) AC_TRY_LINK([],[],[AC_MSG_RESULT([yes])],[AC_MSG_FAILURE([no. Try a different SDK]); exit 1]) AC_LANG_POP() fi @@ -2892,8 +2821,10 @@ if test "$wxUSE_GUI" = "yes"; then GUI_TK_LIBRARY= + WXGTK1= WXGTK127= WXGTK2= + WXGTK3= WXGPE= if test "$wxUSE_OLD_COCOA" = 1 ; then @@ -2941,6 +2872,10 @@ if test "$wxUSE_GUI" = "yes"; then GTK_MODULES=gthread fi + if test -z "$wxGTK_VERSION"; then + wxGTK_VERSION=any + fi + dnl detect GTK2 wx_cv_lib_gtk= if test "x$wxGTK_VERSION" != "x1" @@ -2955,7 +2890,14 @@ if test "$wxUSE_GUI" = "yes"; then fi esac - AM_PATH_GTK_2_0(2.4.0, wx_cv_lib_gtk=2.0, , $GTK_MODULES) + if test "$wxGTK_VERSION" != 3; then + AM_PATH_GTK_2_0(2.6.0, wx_cv_lib_gtk=2.0, , $GTK_MODULES) + fi + if test -z "$wx_cv_lib_gtk"; then + if test "$wxGTK_VERSION" = 3 -o "$wxGTK_VERSION" = any; then + AM_PATH_GTK_3_0(, wx_cv_lib_gtk=3, , $GTK_MODULES) + fi + fi fi dnl detect GTK1.x @@ -2991,12 +2933,16 @@ if test "$wxUSE_GUI" = "yes"; then fi case "$wx_cv_lib_gtk" in + 3) WXGTK3=1 + TOOLKIT_VERSION=3 + ;; 2.0) WXGTK2=1 TOOLKIT_VERSION=2 ;; 1.2.7) WXGTK127=1 + WXGTK1=1 ;; - 1.2*) ;; + 1.2*) WXGTK1=1 ;; *) AC_MSG_ERROR([ The development files for GTK+ were not found. For GTK+ 2, please ensure that pkg-config is in the path and that gtk+-2.0.pc is @@ -3008,7 +2954,10 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config ;; esac - if test "$WXGTK2" = 1; then + if test "$WXGTK3" = 1; then + AC_DEFINE(__WXGTK218__) + AC_DEFINE(__WXGTK210__) + elif test "$WXGTK2" = 1; then save_CFLAGS="$CFLAGS" save_LIBS="$LIBS" CFLAGS="$wx_cv_cflags_gtk $CFLAGS" @@ -3027,7 +2976,6 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config [ AC_DEFINE(__WXGTK218__) AC_DEFINE(__WXGTK210__) - AC_DEFINE(__WXGTK26__) AC_MSG_RESULT([yes]) ac_wxgtk218=1 ], @@ -3049,7 +2997,6 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config ], [ AC_DEFINE(__WXGTK210__) - AC_DEFINE(__WXGTK26__) AC_MSG_RESULT([yes]) ac_wxgtk210=1 ], @@ -3057,28 +3004,6 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config AC_MSG_RESULT([no]) ac_wxgtk210=0 ]) - - if test "$ac_wxgtk210" = 0; then - dnl test if we have at least GTK+ 2.6: - AC_MSG_CHECKING([if GTK+ is version >= 2.6]) - AC_TRY_COMPILE([ - #include - ], - [ - #if !GTK_CHECK_VERSION(2,6,0) - Not GTK+ 2.6 - #endif - ], - [ - AC_DEFINE(__WXGTK26__) - AC_MSG_RESULT([yes]) - ac_wxgtk26=1 - ], - [ - AC_MSG_RESULT([no]) - ac_wxgtk26=0 - ]) - fi fi CFLAGS="$save_CFLAGS" @@ -3620,25 +3545,6 @@ else fi -dnl --------------------------------------------------------------------------- -dnl UTF-8 support -dnl --------------------------------------------------------------------------- - -dnl If UTF-8 support wasn't explicitly enabled or disabled, enable it only -dnl for ports where it makes sense by default (GTK+, DirectFB): -if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_UTF8" = "auto" ; then - if test "$USE_UNIX" = 1 -a "$wxUSE_DARWIN" != 1 ; then - wxUSE_UNICODE_UTF8=yes - elif test "$USE_OS2" = 1 ; then - dnl wide char support is quite incomplete in libc; - dnl UTF-8 might actually work when evaluating/setting - dnl code pages correctly, even for ports other than GTK20. - wxUSE_UNICODE_UTF8=yes - else - wxUSE_UNICODE_UTF8=no - fi -fi - dnl --------------------------------------------------------------------------- dnl Optional libraries included when system library is not used dnl --------------------------------------------------------------------------- @@ -3665,7 +3571,7 @@ dnl --------------------------------------------------------------------------- USE_XINERAMA=0 if test "$wxUSE_DISPLAY" = "yes"; then dnl Xinerama is used for wxGTK1/wxX11/wxMotif only - if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_X11" = 1 -o "$wxUSE_GTK1" = 1; then + if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_X11" = 1 -o "$WXGTK1" = 1; then WX_FIND_LIB(Xinerama, XineramaQueryScreens) if test "$ac_find_libraries" != "" ; then if test "$ac_find_libraries" != "std" ; then @@ -3742,7 +3648,7 @@ if test "$wxUSE_OPENGL" = "yes" -o "$wxUSE_OPENGL" = "auto"; then OPENGL_LIBS="-framework OpenGL -framework AGL" elif test "$wxUSE_MSW" = 1; then OPENGL_LIBS="-lopengl32 -lglu32" - elif test "$wxUSE_MOTIF" = 1 -o "$wxUSE_X11" = 1 -o "$wxUSE_GTK2" = 1 -o "$wxUSE_GTK" = 1; then + elif test "$wxUSE_MOTIF" = 1 -o "$wxUSE_X11" = 1 -o "$wxUSE_GTK" = 1; then dnl adjust CPPFLAGS to include GL/gl.h location if necessary dnl (/opt/graphics/OpenGL is for HP-UX systems, bug 925307) @@ -4214,19 +4120,11 @@ if test "$ac_cv_func_vsnprintf" = "yes"; then AC_CACHE_CHECK([for vsnprintf declaration], wx_cv_func_vsnprintf_decl, [ dnl our troubles are not over: HP-UX 11 prototypes vsnprintf() as - dnl taking "char *" and not "const char *" while Metrowerks does - dnl provide a correct vsnprintf declaration but in C++ mode it's - dnl always in std namespace and so we have to bring it in scope + dnl taking "char *" and not "const char *" so test for this too AC_TRY_COMPILE( [ #include #include - #ifdef __MSL__ - #if __MSL__ >= 0x6000 - namespace std {} - using namespace std; - #endif - #endif ], [ char *buf; @@ -4987,7 +4885,13 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then dnl do other tests only if we are using threads if test "$wxUSE_THREADS" = "yes" ; then - AC_CHECK_FUNCS(thr_setconcurrency) + AC_CHECK_FUNCS(pthread_setconcurrency, + AC_DEFINE(HAVE_PTHREAD_SET_CONCURRENCY), + [ + AC_CHECK_FUNCS(thr_setconcurrency, + AC_DEFINE(HAVE_THR_SETCONCURRENCY), + AC_MSG_WARN(Setting thread concurrency will not work properly)) + ]) dnl can't use AC_CHECK_FUNCS for this one as it's usually a macro and so dnl wouldn't be found by it @@ -5258,6 +5162,10 @@ dnl AC_CHECK_FUNC(getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO), [ dnl ] dnl ) +dnl This is currently always defined under Unix, there is no reason to ever +dnl disable compiler TLS support there. +AC_DEFINE(wxUSE_COMPILER_TLS) + if test "$wxUSE_THREADS" = "yes"; then AC_DEFINE(wxUSE_THREADS) @@ -5276,6 +5184,10 @@ else fi fi +if test "$WXGTK3" = 1 ; then + AC_DEFINE_UNQUOTED(__WXGTK3__, 1) + WXGTK2=1 +fi if test "$WXGTK2" = 1 ; then AC_DEFINE_UNQUOTED(__WXGTK20__,$WXGTK2) fi @@ -5312,10 +5224,10 @@ if test "$wxUSE_DEBUG_FLAG" = "no" ; then WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -DwxDEBUG_LEVEL=0" if test "$wxUSE_GTK" = 1 ; then - if test "x$wxGTK_VERSION" = "x1" ; then - CPPFLAGS="-DGTK_NO_CHECK_CASTS $CPPFLAGS" - else + if test "$WXGTK2" = 1 ; then CPPFLAGS="$CPPFLAGS -DG_DISABLE_CAST_CHECKS" + else + CPPFLAGS="-DGTK_NO_CHECK_CASTS $CPPFLAGS" fi fi fi @@ -5688,10 +5600,15 @@ if test "$WXGTK2" = 1; then if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then if test "$wxUSE_GTKPRINT" = "yes" ; then - + if test "$WXGTK3" = 1; then + gtk_unix_print="gtk+-unix-print-3.0" + else + gtk_unix_print="gtk+-unix-print-2.0 >= 2.10" + fi PKG_CHECK_MODULES(GTKPRINT, - [gtk+-unix-print-2.0 >= 2.10], + [$gtk_unix_print], [ + GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GTKPRINT_LIBS" CFLAGS="$GTKPRINT_CFLAGS $CFLAGS" CXXFLAGS="$GTKPRINT_CFLAGS $CXXFLAGS" AC_DEFINE(wxUSE_GTKPRINT) @@ -5703,11 +5620,16 @@ if test "$WXGTK2" = 1; then ) fi + if test "$WXGTK3" = 1; then + wxUSE_LIBGNOMEPRINT=no + fi + if test "$wxUSE_LIBGNOMEPRINT" = "yes" ; then PKG_CHECK_MODULES(LIBGNOMEPRINTUI, [libgnomeprintui-2.2 >= 2.8], [ + GUI_TK_LIBRARY="$GUI_TK_LIBRARY $LIBGNOMEPRINTUI_LIBS" CFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CFLAGS" CXXFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CXXFLAGS" AC_DEFINE(wxUSE_LIBGNOMEPRINT) @@ -5730,6 +5652,7 @@ if test "$WXGTK2" = 1; then PKG_CHECK_MODULES(GNOMEVFS, [gnome-vfs-2.0 >= 2.0], [ + GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GNOMEVFS_LIBS" CFLAGS="$GNOMEVFS_CFLAGS $CFLAGS" CXXFLAGS="$GNOMEVFS_CFLAGS $CXXFLAGS" AC_DEFINE(wxUSE_LIBGNOMEVFS) @@ -5746,7 +5669,7 @@ if test "$WXGTK2" = 1; then PKG_CHECK_MODULES(HILDON, [hildon-lgpl >= 0.9], [ - EXTRALIBS_HILDON="$HILDON_LIBS" + GUI_TK_LIBRARY="$GUI_TK_LIBRARY $HILDON_LIBS" CFLAGS="$CFLAGS $HILDON_CFLAGS" CXXFLAGS="$CXXFLAGS $HILDON_CFLAGS" AC_DEFINE(wxUSE_LIBHILDON) @@ -5763,7 +5686,7 @@ if test "$WXGTK2" = 1; then PKG_CHECK_MODULES(HILDON2, [hildon-1 >= 1.99], [ - EXTRALIBS_HILDON="$HILDON2_LIBS" + GUI_TK_LIBRARY="$GUI_TK_LIBRARY $HILDON2_LIBS" CFLAGS="$CFLAGS $HILDON2_CFLAGS" CXXFLAGS="$CXXFLAGS $HILDON2_CFLAGS" AC_DEFINE(wxUSE_LIBHILDON2) @@ -7235,6 +7158,10 @@ fi if test "$wxUSE_TASKBARICON" = "yes"; then AC_DEFINE(wxUSE_TASKBARICON) + dnl This is used under MSW, just enable it always without testing for the + dnl toolkit nor providing a separate option for it because it's totally + dnl harmless to have it defined even if it's unnecessary. + AC_DEFINE(wxUSE_TASKBARICON_BALLOONS) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS taskbar" fi @@ -7269,8 +7196,12 @@ if test "$wxUSE_WEBVIEW" = "yes"; then USE_WEBVIEW_WEBKIT=0 if test "$wxUSE_WEBVIEW_WEBKIT" = "yes"; then if test "$wxUSE_GTK" = 1; then + webkitgtk=webkit-1.0 + if test "$WXGTK3" = 1; then + webkitgtk=webkitgtk-3.0 + fi PKG_CHECK_MODULES([WEBKIT], - [webkit-1.0 >= 1.3.1], + [$webkitgtk >= 1.3.1], [ USE_WEBVIEW_WEBKIT=1 CPPFLAGS="$CPPFLAGS $WEBKIT_CFLAGS" @@ -7734,7 +7665,39 @@ if test "$wxUSE_MAC" = 1 ; then if test "$wxUSE_OSX_IPHONE" = 1; then EXTRA_FRAMEWORKS="-framework IOKit -framework UIKit -framework CFNetwork -framework AudioToolbox -framework CoreFoundation -framework CoreGraphics -framework OpenGLES -framework Foundation -framework QuartzCore" else - EXTRA_FRAMEWORKS="-framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL -framework QuickTime" + EXTRA_FRAMEWORKS="-framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL" + + dnl The case of QuickTime framework is special: we only need it in + dnl 32 bit builds and not in 64 bit and, moreover, linking with it + dnl in 64 bit builds results in a warning because the framework is + dnl not available in 64 bits itself. So make an effort to avoid it + dnl when building for 64 bits only (i.e. not universal build). + + if test "$cross_compiling" != "no"; then + dnl The check below doesn't work well when cross-compiling + dnl ("file" under non-OS X systems might not recognize + dnl universal binaries) so assume we do build for 32 bits as + dnl it's safer: at worst we'll get a warning when building in + dnl 64 bits only, but at least the build will still work. + wx_cv_target_x86_64=no + else + AC_CACHE_CHECK( + [if we target only x86_64], + wx_cv_target_x86_64, + AC_LINK_IFELSE( + [AC_LANG_SOURCE([int main() { return 0; }])], + if file conftest$ac_exeext|grep -q 'i386\|ppc'; then + wx_cv_target_x86_64=no + else + wx_cv_target_x86_64=yes + fi + ) + ) + fi + + if test "$wx_cv_target_x86_64" != "yes"; then + EXTRA_FRAMEWORKS="$EXTRA_FRAMEWORKS -framework QuickTime" + fi fi fi fi @@ -7844,8 +7807,7 @@ dnl add -I options we use during library compilation dnl dnl note that the order is somewhat important: wxWidgets headers should dnl come first and the one with setup.h should be before $(top_srcdir)/include -dnl in case the latter contains setup.h used by non-autoconf makefiles (e.g. -dnl CodeWarrior): +dnl in case the latter contains setup.h used by non-autoconf makefiles CPPFLAGS=`echo $WXCONFIG_CPPFLAGS \ -I\\${wx_top_builddir}/lib/wx/include/${TOOLCHAIN_FULLNAME} \ -I\\${top_srcdir}/include $TOOLKIT_INCLUDE \ @@ -7885,7 +7847,7 @@ EXTRALIBS_HTML="$MSPACK_LINK" EXTRALIBS_MEDIA="$GST_LIBS" EXTRALIBS_STC="-lwxscintilla${WX_LIB_FLAVOUR}-${WX_RELEASE}${HOST_SUFFIX}" if test "$wxUSE_GUI" = "yes"; then - EXTRALIBS_GUI=`echo $GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK $WEBKIT_LINK $EXTRALIBS_HILDON $EXTRALIBS_GNOMEVFS $EXTRALIBS_GNOMEPRINT` + EXTRALIBS_GUI=`echo $GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK $WEBKIT_LINK` fi if test "$wxUSE_OPENGL" = "yes"; then EXTRALIBS_OPENGL="$LDFLAGS_GL $OPENGL_LIBS" @@ -7987,10 +7949,6 @@ AC_SUBST(EXTRALIBS_OPENGL) AC_SUBST(EXTRALIBS_SDL) AC_SUBST(EXTRALIBS_STC) AC_SUBST(WITH_PLUGIN_SDL) -AC_SUBST(EXTRALIBS_GTKPRINT) -AC_SUBST(EXTRALIBS_GNOMEPRINT) -AC_SUBST(EXTRALIBS_GNOMEVFS) -AC_SUBST(EXTRALIBS_HILDON) AC_SUBST(UNICODE) AC_SUBST(DEBUG_INFO) AC_SUBST(DEBUG_FLAG) @@ -8009,7 +7967,11 @@ case "$TOOLKIT" in GTK) TOOLKIT_DESC="GTK+" if test "$WXGTK2" = 1; then - TOOLKIT_DESC="$TOOLKIT_DESC 2" + if test "$WXGTK3" = 1; then + TOOLKIT_DESC="$TOOLKIT_DESC 3" + else + TOOLKIT_DESC="$TOOLKIT_DESC 2" + fi if test "$wxUSE_GTKPRINT" = "yes" ; then TOOLKIT_EXTRA="$TOOLKIT_EXTRA GTK+ printing"; fi @@ -8185,9 +8147,11 @@ dnl at which time, this hack can be removed. if test "$wxUSE_MAC" = 1 ; then if test "x$wxUSE_UNIVERSAL_BINARY" != "xno" ; then - sed "s/DEPSMODE=gcc/DEPSMODE=none/" < bk-deps > temp - mv temp bk-deps - chmod +x bk-deps + if test "x$disable_macosx_deps" = "xyes"; then + sed "s/DEPSMODE=gcc/DEPSMODE=none/" < bk-deps > temp + mv temp bk-deps + chmod +x bk-deps + fi fi fi