X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/84ae7ca4f69a393d2a94e8cc000898ee358985a8..1feb5443ff11ea45e9f21b1ea9a6f58caf2b6b4f:/configure.in diff --git a/configure.in b/configure.in index ed32ab7bfc..45197844dc 100644 --- a/configure.in +++ b/configure.in @@ -17,7 +17,7 @@ dnl --------------------------------------------------------------------------- dnl initialization dnl --------------------------------------------------------------------------- -AC_INIT([wxWidgets], [2.6.2], [wx-dev@lists.wxwidgets.org]) +AC_INIT([wxWidgets], [2.7.0], [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]) @@ -33,9 +33,9 @@ dnl dnl wx_release_number += 1 wx_major_version_number=2 -wx_minor_version_number=6 -wx_release_number=2 -wx_subrelease_number=1 +wx_minor_version_number=7 +wx_release_number=0 +wx_subrelease_number=0 WX_RELEASE=$wx_major_version_number.$wx_minor_version_number WX_VERSION=$WX_RELEASE.$wx_release_number @@ -134,6 +134,10 @@ case "${host}" in NEEDS_D_REENTRANT_FOR_R_FUNCS=1 SO_SUFFIX=sl AC_DEFINE(__HPUX__) + + dnl many standard declarations in HP-UX headers are only included if either + dnl _HPUX_SOURCE is defined, see stdsyms(5) + CPPFLAGS="-D_HPUX_SOURCE $CPPFLAGS" ;; *-*-linux* ) USE_LINUX=1 @@ -252,7 +256,6 @@ case "${host}" in dnl USE_UNIX must be set and not USE_WIN32 SO_SUFFIX=dll PROGRAM_EXT=".exe" - RESCOMP=windres DEFAULT_DEFAULT_wxUSE_MSW=1 DEFAULT_STD_FLAG=no ;; @@ -411,7 +414,7 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_TEXTBUFFER=no DEFAULT_wxUSE_TEXTFILE=no DEFAULT_wxUSE_SOUND=no - DEFAULT_wxUSE_MEDIACTRL=no + DEFAULT_wxUSE_MEDIACTRL=no DEFAULT_wxUSE_INTL=no DEFAULT_wxUSE_CONFIG=no DEFAULT_wxUSE_FONTMAP=no @@ -476,6 +479,7 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_MENUS=no DEFAULT_wxUSE_MINIFRAME=no DEFAULT_wxUSE_HTML=no + DEFAULT_wxUSE_RICHTEXT=no DEFAULT_wxUSE_XRC=no DEFAULT_wxUSE_WEBKIT=no DEFAULT_wxUSE_FILESYSTEM=no @@ -524,6 +528,7 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_TOOLBAR=no DEFAULT_wxUSE_TOOLBAR_NATIVE=no DEFAULT_wxUSE_TOOLBAR_SIMPLE=no + DEFAULT_wxUSE_TREEBOOK=no DEFAULT_wxUSE_TREECTRL=no DEFAULT_wxUSE_POPUPWIN=no DEFAULT_wxUSE_TIPWINDOW=no @@ -541,7 +546,7 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_XPM=no DEFAULT_wxUSE_ICO_CUR=no DEFAULT_wxUSE_ACCESSIBILITY=no - + DEFAULT_wxUSE_MONOLITHIC=no DEFAULT_wxUSE_PLUGINS=no DEFAULT_wxUSE_OFFICIAL_BUILD=no @@ -672,6 +677,7 @@ else DEFAULT_wxUSE_MENUS=yes DEFAULT_wxUSE_MINIFRAME=yes DEFAULT_wxUSE_HTML=yes + DEFAULT_wxUSE_RICHTEXT=yes DEFAULT_wxUSE_XRC=yes DEFAULT_wxUSE_WEBKIT=yes DEFAULT_wxUSE_FILESYSTEM=yes @@ -720,6 +726,7 @@ else DEFAULT_wxUSE_TOOLBAR=yes DEFAULT_wxUSE_TOOLBAR_NATIVE=yes DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes + DEFAULT_wxUSE_TREEBOOK=yes DEFAULT_wxUSE_TREECTRL=yes DEFAULT_wxUSE_POPUPWIN=yes DEFAULT_wxUSE_TIPWINDOW=yes @@ -737,7 +744,7 @@ else DEFAULT_wxUSE_XPM=yes DEFAULT_wxUSE_ICO_CUR=yes DEFAULT_wxUSE_ACCESSIBILITY=no - + DEFAULT_wxUSE_MONOLITHIC=no DEFAULT_wxUSE_PLUGINS=no DEFAULT_wxUSE_OFFICIAL_BUILD=no @@ -763,7 +770,7 @@ for toolkit in `echo $ALL_TOOLKITS`; do has_toolkit_in_cache=1 eval "DEFAULT_$LINE" eval "CACHE_$toolkit=1" - + LINE=`grep "wx${toolkit}_VERSION=" ${wx_arg_cache_file}` if test "x$LINE" != "x" ; then eval "DEFAULT_$LINE" @@ -782,6 +789,7 @@ dnl --------------------------------------------------------------------------- WX_ARG_ENABLE(gui, [ --enable-gui use GUI classes], wxUSE_GUI) WX_ARG_ENABLE(monolithic, [ --enable-monolithic build wxWidgets as single library], wxUSE_MONOLITHIC) WX_ARG_ENABLE(plugins, [ --enable-plugins build parts of wxWidgets as loadable components], wxUSE_PLUGINS) +WX_ARG_WITH(subdirs, [ --without-subdirs don't generate makefiles for samples/demos/...], wxWITH_SUBDIRS, without) if test "$wxUSE_GUI" = "yes"; then @@ -853,8 +861,8 @@ WX_ARG_ENABLE(no_exceptions, [ --enable-no_exceptions create code without C++ WX_ARG_ENABLE(permissive, [ --enable-permissive compile code disregarding strict ANSI], wxUSE_PERMISSIVE) WX_ARG_ENABLE(no_deps, [ --enable-no_deps create code without dependency information], wxUSE_NO_DEPS) -WX_ARG_ENABLE(compat22, [ --enable-compat22 enable wxWidgets 2.2 compatibility], WXWIN_COMPATIBILITY_2_2) -WX_ARG_ENABLE(compat24, [ --disable-compat24 disable wxWidgets 2.4 compatibility], WXWIN_COMPATIBILITY_2_4, disable) +WX_ARG_ENABLE(compat24, [ --enable-compat24 enable wxWidgets 2.4 compatibility], WXWIN_COMPATIBILITY_2_4, enable) +WX_ARG_ENABLE(compat26, [ --disable-compat26 disable wxWidgets 2.6 compatibility], WXWIN_COMPATIBILITY_2_6, disable) WX_ARG_ENABLE(rpath, [ --disable-rpath disable use of rpath for uninstalled builds], wxUSE_RPATH) @@ -948,6 +956,7 @@ WX_ARG_ENABLE(loggui, [ --enable-loggui use standard GUI logger], WX_ARG_ENABLE(logwin, [ --enable-logwin use wxLogWindow], wxUSE_LOGWINDOW) WX_ARG_ENABLE(logdialog, [ --enable-logdialog use wxLogDialog], wxUSE_LOGDIALOG) WX_ARG_ENABLE(webkit, [ --enable-webkit use wxWebKitCtrl (Mac)], wxUSE_WEBKIT) +WX_ARG_ENABLE(html, [ --enable-richtext use wxRichTextCtrl], wxUSE_RICHTEXT) dnl --------------------------------------------------------------------------- dnl PostScript options @@ -1021,6 +1030,7 @@ if test "$wxUSE_CONTROLS" = "yes"; then DEFAULT_wxUSE_TOOLBAR_NATIVE=yes DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes DEFAULT_wxUSE_TOOLTIPS=yes + DEFAULT_wxUSE_TREEBOOK=yes DEFAULT_wxUSE_TREECTRL=yes DEFAULT_wxUSE_POPUPWIN=yes DEFAULT_wxUSE_TIPWINDOW=yes @@ -1061,6 +1071,7 @@ elif test "$wxUSE_CONTROLS" = "no"; then DEFAULT_wxUSE_TOOLBAR_NATIVE=no DEFAULT_wxUSE_TOOLBAR_SIMPLE=no DEFAULT_wxUSE_TOOLTIPS=no + DEFAULT_wxUSE_TREEBOOK=no DEFAULT_wxUSE_TREECTRL=no DEFAULT_wxUSE_POPUPWIN=no DEFAULT_wxUSE_TIPWINDOW=no @@ -1104,6 +1115,7 @@ WX_ARG_ENABLE(togglebtn, [ --enable-togglebtn use wxToggleButton class], WX_ARG_ENABLE(toolbar, [ --enable-toolbar use wxToolBar class], wxUSE_TOOLBAR) WX_ARG_ENABLE(tbarnative, [ --enable-tbarnative use native wxToolBar class], wxUSE_TOOLBAR_NATIVE) WX_ARG_ENABLE(tbarsmpl, [ --enable-tbarsmpl use wxToolBarSimple class], wxUSE_TOOLBAR_SIMPLE) +WX_ARG_ENABLE(treebook, [ --enable-treebook use wxTreebook class], wxUSE_TREEBOOK) WX_ARG_ENABLE(treectrl, [ --enable-treectrl use wxTreeCtrl class], wxUSE_TREECTRL) WX_ARG_ENABLE(tipwindow, [ --enable-tipwindow use wxTipWindow class], wxUSE_TIPWINDOW) WX_ARG_ENABLE(popupwin, [ --enable-popupwin use wxPopUpWindow class], wxUSE_POPUPWIN) @@ -1325,7 +1337,6 @@ if test "$wxUSE_WINE" = "yes"; then dnl FIXME: we should do a better job of testing for these CC=winegcc CXX=wineg++ - RESCOMP=wrc LDFLAGS_GUI="-mwindows" fi @@ -1359,24 +1370,6 @@ dnl --------------------------------------------------------------------------- dnl flush the cache because checking for programs might abort AC_CACHE_SAVE -dnl cross-compiling support: we're cross compiling if the build system is -dnl different from the target one (assume host and target be always the same) -if test "$build" != "$host" ; then - if test "$USE_WIN32" = 1 -o "$USE_DOS" = 1 -o "$USE_UNIX" = 1; then - CC=$host_alias-gcc - CXX=$host_alias-c++ - AR=$host_alias-ar - RANLIB=$host_alias-ranlib - DLLTOOL=$host_alias-dlltool - RESCOMP=$host_alias-windres - STRIP=$host_alias-strip - elif test "x$CC" '!=' "x"; then - echo "You set CC, I assume you know what you are doing." - else - AC_MSG_ERROR($build_alias -> $host_alias cross compilation not supported yet.) - fi -fi - dnl C-compiler checks dnl defines CC with the compiler to use dnl defines GCC with yes if using gcc @@ -1414,7 +1407,7 @@ AC_PROG_RANLIB dnl ar command dnl defines AR with the appropriate command -AC_CHECK_PROG(AR, ar, ar) +AC_CHECK_TOOL(AR, ar) if test "x$AR" = "x" ; then AC_MSG_ERROR([ar is needed to build wxWidgets]) fi @@ -1449,8 +1442,25 @@ case "${host}" in esac dnl strip command -dnl defines STRIP as strip or nothing if not found -AC_CHECK_PROG(STRIP, strip, strip, true) +dnl defines STRIP as strip or nothing (true) if not found +AC_CHECK_TOOL(STRIP, strip, true) + +dnl Win32 tools +if test "$wxUSE_WINE" = "yes"; then + AC_CHECK_TOOL(WINDRES, wrc) + RESCOMP="$WINDRES" +else + case "${host}" in + *-*-cygwin* | *-*-mingw32* ) + dnl Bakefile CVS (as of 2005-11-24) now detects windres properly + dnl ... maybe it does, but it does not make it available here + dnl anymore, so do it ourselves still. + AC_CHECK_TOOL(WINDRES, windres) + RESCOMP="$WINDRES" + AC_CHECK_TOOL(DLLTOOL, dlltool) + ;; + esac +fi dnl does make support "-include" (only GNU make does AFAIK)? AC_CACHE_CHECK([if make is GNU make], wx_cv_prog_makeisgnu, @@ -1515,6 +1525,10 @@ fi dnl not GNU make dnl needed for making link to setup.h AC_PROG_LN_S +dnl lndir can be used by "make dist" to save copying files +AC_CHECK_PROGS(LNDIR, lndir, [cp -pR]) + + dnl ------------------------------------------------------------------------ dnl Platform specific tests dnl ------------------------------------------------------------------------ @@ -1522,10 +1536,9 @@ dnl ------------------------------------------------------------------------ dnl xlC needs -qunique under AIX so that one source file can be dnl compiled to multiple object files and safely linked together. if test "x$XLCXX" = "xyes" -a "x$USE_AIX" = "x1"; then - CXXFLAGS="$CXXFLAGS -qunique" + CXXFLAGS="-qunique $CXXFLAGS" fi - dnl This case is for PowerPC OS X vs. everything else case "${host}" in powerpc-*-darwin* ) @@ -1556,7 +1569,7 @@ case "${host}" in [AC_MSG_RESULT([yes]) dnl We must use -D so source files that don't include wx/setup.h dnl but do include CFBase will work. - CPPFLAGS="$CPPFLAGS -D__CF_USE_FRAMEWORK_INCLUDES__"], + CPPFLAGS="-D__CF_USE_FRAMEWORK_INCLUDES__ $CPPFLAGS"], [AC_MSG_FAILURE([no. CoreFoundation not available.])] ) ] @@ -1590,7 +1603,7 @@ case "${host}" in dnl wx_cv_gccversion = Innotek6 -> gcc-3.3.5 with Innotek libc6. AC_CACHE_CHECK([for gcc/libc version], wx_cv_gccversion,[ AC_TRY_RUN( - dnl Check the gcc version macro. + dnl Check the gcc version macro. [ #include @@ -1724,19 +1737,6 @@ case "${host}" in ;; esac -if test "$wxUSE_GUI" = "yes"; then - if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_PM" != 1; then - dnl defines HAVE_X11_XKBLIB_H - AC_CHECK_HEADERS(X11/Xlib.h) - AC_CHECK_HEADERS([X11/XKBlib.h], [], [], - [ - #if HAVE_X11_XLIB_H - #include - #endif - ]) - fi -fi - dnl --------------------------------------------------------------------------- dnl Checks for compiler characteristics dnl --------------------------------------------------------------------------- @@ -1764,7 +1764,7 @@ case "${host}" in AC_CHECK_SIZEOF(long long, 0) if test "$ac_cv_sizeof_long_long" != "0"; then dnl HPUX 10.20 headers need this define in order to use long long definitions - CPPFLAGS="$CPPFLAGS -D_INCLUDE_LONGLONG" + CPPFLAGS="-D_INCLUDE_LONGLONG $CPPFLAGS" fi ;; * ) @@ -1871,16 +1871,46 @@ dnl sizeof(off_t) in different source files of the same program and linking dnl problems if test "x$wx_largefile" = "xyes"; then if test "x$ac_cv_sys_file_offset_bits" = "x64"; then - WX_LARGEFILE_FLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGE_FILES" + WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES" + + dnl We get "Large Files (ILP32) not supported in strict ANSI mode." + dnl #error from HP standard headers unless __STDC_EXT__ is defined. + dnl The compiler should define it automatically, but some old g++ + dnl versions don't define it, so test and add it if necessary. AFAIK + dnl the problem only affects the C++ compiler so it is added to + dnl CXXFLAGS only. + if test "$USE_HPUX" = 1 -a "$GXX" = "yes"; then + AC_CACHE_CHECK( + [if -D__STDC_EXT__ is required], + wx_cv_STDC_EXT_required, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE( + [], + [ + #ifndef __STDC_EXT__ + choke me + #endif + ], + wx_cv_STDC_EXT_required=no, + wx_cv_STDC_EXT_required=yes + ) + AC_LANG_RESTORE + ] + ) + if test "x$wx_cv_STDC_EXT_required" = "xyes"; then + WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -D__STDC_EXT__" + fi + fi else - WX_LARGEFILE_FLAGS="-D_LARGE_FILES" + WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_LARGE_FILES" fi dnl AC_FUNC_FSEEKO sets HAVE_FSEEKO and $ac_cv_sys_largefile_source AC_FUNC_FSEEKO if test "$ac_cv_sys_largefile_source" != no; then - WX_LARGEFILE_FLAGS="$WX_LARGEFILE_FLAGS -D_LARGEFILE_SOURCE=$ac_cv_sys_largefile_source" + WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_LARGEFILE_SOURCE=$ac_cv_sys_largefile_source" fi - CPPFLAGS="$CPPFLAGS $WX_LARGEFILE_FLAGS" fi dnl check for bytesex stuff (don't use AC_C_BIGENDIAN to allow cross-compiling) @@ -1905,7 +1935,55 @@ dnl AC_CXX_DYNAMIC_CAST dnl With Sun CC, temporaries have block scope by default. This flag is needed dnl to get the expression scope behaviour that conforms to the standard. if test "x$SUNCXX" = xyes; then - CXXFLAGS="$CXXFLAGS -features=tmplife" + CXXFLAGS="-features=tmplife $CXXFLAGS" +fi + +dnl Sun X11 headers are (still, in 2005!) non-ANSI and the best they could do +dnl was to hack their C++ compiler to accept them silently -- but C compiler +dnl still spits out dozens of warnings for each X include file, so suppress +dnl them +if test "x$SUNCC" = xyes; then + CFLAGS="-erroff=E_NO_EXPLICIT_TYPE_GIVEN $CFLAGS" +fi + +dnl SGI mipsPro compiler gives this warning for "conversion from pointer to +dnl same-sized integral type" even when there is an explicit cast and as there +dnl is no way to turn it off and there are hundreds of these warnings in wx +dnl sources, just turn it off for now +dnl +dnl a better long term solution would be to use #pragma set/reset woff in +dnl wxPtrToUInt() and use it instead of casts elsewhere +if test "x$SGICC" = "xyes"; then + CFLAGS="-woff 3970 $CFLAGS" +fi +if test "x$SGICXX" = "xyes"; then + CXXFLAGS="-woff 3970 $CXXFLAGS" +fi + +dnl HP-UX c89/aCC compiler warnings +if test "x$HPCC" = "xyes"; then + dnl 2011: "unrecognized preprocessor directive": nice warning but it's given + dnl even for directives inside #if which is not true (i.e. which are + dnl used for other compilers/OS) and so we have no way to get rid of it + dnl 2450: "long long is non standard" -- yes, we know + CFLAGS="+W 2011,2450 $CFLAGS" +fi +if test "x$HPCXX" = "xyes"; then + dnl 2340: "value copied to temporary, reference to temporary used": very + dnl painful as triggered by any occurrence of user-defined conversion + CXXFLAGS="+W 2340 $CXXFLAGS" +fi + +dnl DEC/Compaq/HP cxx warnings +if test "x$COMPAQCXX" = "xyes"; then + dnl -w0 enables all warnings, then we disable some of them: + dnl basclsnondto: base class dtor non virtual (sometimes we do want this) + dnl unrimpret: "end of routine block may be unreachable" is given for + dnl every "if ( ) return ...; else return ...;" + dnl intconlosbit: "conversion to integral type of smaller size could lose + dnl data" this is a useful warning but there are too many of + dnl them for now + CXXFLAGS="-w0 -msg_disable basclsnondto,unrimpret,intconlosbit" fi dnl check for std::string or std::wstring @@ -1974,7 +2052,7 @@ if test "$wxUSE_STD_IOSTREAM" = "yes"; then AC_MSG_WARN([No std::iostreams, switching to --disable-std_iostreams]) fi fi - + AC_LANG_POP fi @@ -1990,7 +2068,7 @@ if test "$wxUSE_STL" = "yes"; then #include ], [std::vector moo; std::list foo; - std::vector::iterator it = + std::vector::iterator it = std::find_if(moo.begin(), moo.end(), std::bind2nd(std::less(), 3));], [AC_MSG_RESULT([yes])], @@ -2059,9 +2137,6 @@ SEARCH_INCLUDE="\ /usr/Motif-2.1/include \ /usr/Motif-1.2/include \ /usr/include/Motif1.2 \ - /opt/xpm/include/X11 \ - /opt/GBxpm/include/ \ - /opt/GBxpm/X11/include/ \ \ /usr/dt/include \ /usr/openwin/include \ @@ -2090,42 +2165,69 @@ SEARCH_INCLUDE="\ /usr/local/X11/include \ /usr/local/include/X11 \ \ - /usr/X386/include \ - /usr/x386/include \ /usr/XFree86/include/X11 \ - \ - X:/XFree86/include \ - X:/XFree86/include/X11 \ - \ - /usr/include/gtk \ - /usr/local/include/gtk \ - /usr/include/glib \ - /usr/local/include/glib \ - \ - /usr/include/qt \ - /usr/local/include/qt \ - \ - /usr/local/arm/3.3.2/include \ - \ - /usr/include/windows \ - /usr/include/wine \ - /usr/local/include/wine \ - \ - /usr/unsupported/include \ - /usr/athena/include \ - /usr/local/x11r5/include \ - /usr/lpp/Xamples/include \ + /usr/pkg/include \ \ /usr/openwin/share/include" -dnl prepend lib and lib32 for IRIX where the files in these directories should -dnl be found before the ones in lib64 for 32bit compilation -- of course, this -dnl probably/surely breaks 64bit compilation... IMO the only real solution is to -dnl stop using WX_PATH_FIND_LIBRARIES() at all and use AC_CHECK_LIB() instead -dnl -dnl also put 64 bit versions for Linux on AMD, they must come before the usual -dnl locations or 64 bit compilation failed -SEARCH_LIB="/usr/lib /usr/lib32 /usr/lib64 /usr/X11R6/lib64 `echo "$SEARCH_INCLUDE" | sed s/include/lib/g`" +dnl try to find out the standard lib locations for the systems with multiple +dnl ABIs +AC_MSG_CHECKING([for libraries directory]) + +case "${host}" in + *-*-irix6* ) + AC_CACHE_VAL( + wx_cv_std_libpath, + [ + for d in WX_STD_LIBPATH(); do + for e in a so sl dylib dll.a; do + libc="$d/libc.$e" + if test -f $libc; then + save_LIBS="$LIBS" + LIBS="$libc" + AC_LINK_IFELSE([int main() { return 0; }], + wx_cv_std_libpath=`echo $d | sed s@/usr/@@`) + LIBS="$save_LIBS" + if test "x$wx_cv_std_libpath" != "x"; then + break 2 + fi + fi + done + done + if test "x$wx_cv_std_libpath" = "x"; then + wx_cv_std_libpath="lib" + fi + ] + ) + ;; + + *-*-solaris2* ) + dnl use ../lib or ../lib/64 depending on the size of void* + if test "$ac_cv_sizeof_void_p" = 8 -a -d "/usr/lib/64"; then + wx_cv_std_libpath="lib/64" + else + wx_cv_std_libpath="lib" + fi + ;; + + *-*-linux* ) + dnl use ../lib or ../lib64 depending on the size of void* + if test "$ac_cv_sizeof_void_p" = 8 -a \ + -d "/usr/lib64" -a ! -h "/usr/lib64"; then + wx_cv_std_libpath="lib64" + else + wx_cv_std_libpath="lib" + fi + ;; + + *) + wx_cv_std_libpath="lib"; + ;; +esac + +AC_MSG_RESULT($wx_cv_std_libpath) + +SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s@include@$wx_cv_std_libpath@g` /usr/$wx_cv_std_libpath" dnl Cross compiling with gcc? if test "$build" != "$host" -a "$GCC" = yes; then @@ -2141,6 +2243,7 @@ if test "$build" != "$host" -a "$GCC" = yes; then dnl strip out any that don't start '^/usr'. SEARCH_LIB=`for x in $SEARCH_LIB; do echo $x; done | sed -ne "s|^/usr|$cross_root|p"` SEARCH_INCLUDE=`for x in $SEARCH_INCLUDE; do echo $x; done | sed -ne "s|^/usr|$cross_root|p"` + SEARCH_INCLUDE="$SEARCH_INCLUDE $cross_root/include" dnl also have pkg-config search for *.pc files under this 'root' if test -z "$PKG_CONFIG_PATH"; then @@ -2234,7 +2337,7 @@ dnl ------------------------------------------------------------------------ if test "$wxUSE_REGEX" != "no"; then AC_DEFINE(wxUSE_REGEX) - + if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_REGEX" = "yes"; then AC_MSG_WARN([Defaulting to the the builtin regex library for Unicode build.]) wxUSE_REGEX=builtin @@ -2243,7 +2346,7 @@ if test "$wxUSE_REGEX" != "no"; then if test "$wxUSE_REGEX" = "sys" -o "$wxUSE_REGEX" = "yes" ; then dnl according to Unix 98 specs, regcomp() is in libc but I believe that dnl on some old systems it may be in libregex - check for it too? - AC_CHECK_HEADER(regex.h, [AC_CHECK_FUNCS(regcomp)]) + AC_CHECK_HEADER(regex.h, [AC_CHECK_FUNCS(regcomp re_search)]) if test "x$ac_cv_func_regcomp" != "xyes"; then if test "$wxUSE_REGEX" = "sys" ; then @@ -2519,8 +2622,8 @@ if test "$wxUSE_EXPAT" != "no"; then wxUSE_XML=yes AC_DEFINE(wxUSE_EXPAT) AC_DEFINE(wxUSE_XML) - - if test "$wxUSE_EXPAT" = "sys" -o "$wxUSE_EXPAT" = "yes" ; then + + if test "$wxUSE_EXPAT" = "sys" -o "$wxUSE_EXPAT" = "yes" ; then AC_CHECK_HEADER([expat.h], [found_expat_h=1]) if test "x$found_expat_h" = "x1"; then dnl Expat 1.95.6 comes with broken expat.h: @@ -2611,7 +2714,6 @@ if test "$USE_WIN32" = 1 ; then *-*-cygwin* ) dnl Cygwin doesn't include these by default LIBS="$LIBS -lkernel32 -luser32" - TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WIN95__" esac dnl add extra odbc libs if we have compiled in odbc @@ -2624,9 +2726,15 @@ if test "$USE_WIN32" = 1 ; then fi dnl We might want to abort here if wxUSE_ODBC="builtin" isn't supported on msw. + dnl This one is still used by some sample makefiles. RESFLAGS="--include-dir \$(top_srcdir)/include --include-dir \$(top_srcdir)/\$(program_dir) --define __WIN32__ --define __WIN95__ --define __GNUWIN32__" RESPROGRAMOBJ="\$(PROGRAM)_resources.o" + dnl This lot we export to wx-config. It must add the relevant + dnl include directories at the point when they can be known. + dnl (but are these (still) required anyway?) + WXCONFIG_RESFLAGS="--define __WIN32__ --define __WIN95__ --define __GNUWIN32__" + dnl install Win32-specific files in "make install" WIN32INSTALL=win32install fi @@ -2687,8 +2795,32 @@ if test "$wxUSE_GUI" = "yes"; then dnl detect GTK2 wx_cv_lib_gtk= - if test "x$wxGTK_VERSION" != "x1"; then + if test "x$wxGTK_VERSION" != "x1" + then + dnl The gthread.pc that ships with solaris returns '-mt', + dnl it's correct for Sun CC, but gcc requires '-pthreads'. + dnl So disable the compile check and remove the -mt below. + case "${host}" in + *-*-solaris2* ) + if test "$wxUSE_THREADS" = "yes" -a "$GCC" = yes; then + enable_gtktest=no + fi + esac + AM_PATH_GTK_2_0(2.0.0, wx_cv_lib_gtk=2.0, , $GTK_MODULES) + + dnl Remove the '-mt' for gcc on solaris + case "${host}" in + *-*-solaris2* ) + if test "$wxUSE_THREADS" = "yes" -a "$GCC" = yes; then + GTK_CFLAGS=`echo $GTK_CFLAGS | sed 's/-mt//'` + GTK_LIBS=`echo $GTK_LIBS | sed 's/-mt//'` + fi + dnl solaris also requires -lX11 for static lib + if test "$wxUSE_SHARED" != "yes"; then + GTK_LIBS="$GTK_LIBS -lX11" + fi + esac fi dnl detect GTK1.x @@ -2709,7 +2841,7 @@ if test "$wxUSE_GUI" = "yes"; then dnl we need to cache GTK_CFLAGS and GTK_LIBS for the dnl subsequent runs wx_cv_cflags_gtk=$GTK_CFLAGS - wx_cv_libs_gtk=$GTK_LIBS + wx_cv_libs_gtk=`echo $GTK_LIBS | sed -e 's/ -l[[^ ]]*cairo[[^ ]]*//g'` fi ] ) @@ -2743,11 +2875,9 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config if test "$WXGTK20" = 1; then save_CFLAGS="$CFLAGS" save_LIBS="$LIBS" - CFLAGS="$CFLAGS $wx_cv_cflags_gtk" + CFLAGS="$wx_cv_cflags_gtk $CFLAGS" LIBS="$LIBS $wx_cv_libs_gtk" - AC_CHECK_FUNCS([pango_font_family_is_monospace]) - dnl gtk_icon_size_lookup is not available in the GTK+ headers dnl that have shipped with some versions of Sun's JDS. Not using dnl AC_CHECK_FUNCS here since it only checks the function exists @@ -2809,8 +2939,8 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config dnl test for XIM support in libgdk AC_CHECK_LIB(gdk, gdk_im_open, AC_DEFINE(HAVE_XIM)) - - + + dnl test for external libxpm if we're configured to use it if test "$wxUSE_GPE" = "yes"; then AC_MSG_CHECKING(for gpewidget library) @@ -2821,7 +2951,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config dnl we guess its path from the prefix GUI_TK_LIBRARY="-L${prefix}/lib -lgpewidget $GUI_TK_LIBRARY" WXGPE=1 - AC_MSG_RESULT(found at $ac_find_libraries) + AC_MSG_RESULT([found in $ac_find_libraries]) else AC_MSG_RESULT(not found) fi @@ -2831,7 +2961,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config dnl if test "$ac_find_libraries" != "" ; then dnl WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY) dnl GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lgpe" - dnl AC_MSG_RESULT(found at $ac_find_libraries) + dnl AC_MSG_RESULT(found in $ac_find_libraries) dnl else dnl AC_MSG_RESULT(not found) dnl fi @@ -2941,7 +3071,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config AC_PATH_XTRA if test "$no_x" = "yes"; then - AC_MSG_ERROR(X11 not found, please use --x-includes and/or --x-libraries options) + AC_MSG_ERROR([X11 not found, please use --x-includes and/or --x-libraries options (see config.log for details)]) fi dnl for some reason AC_PATH_XTRA seems to add -INONE and -LNONE (and @@ -2969,7 +3099,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config if test "$wxUSE_UNICODE" = "yes"; then PKG_CHECK_MODULES(PANGOX, pangox, [ - CXXFLAGS="$CXXFLAGS $PANGOX_CFLAGS" + CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS" GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOX_LIBS" ], [ @@ -2978,7 +3108,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config ) PKG_CHECK_MODULES(PANGOFT2, pangoft2, [ - CXXFLAGS="$CXXFLAGS $PANGOFT2_CFLAGS" + CXXFLAGS="$PANGOFT2_CFLAGS $CXXFLAGS" GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS" ], [ @@ -2989,7 +3119,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config PKG_CHECK_MODULES(PANGOXFT, pangoxft, [ AC_DEFINE(HAVE_PANGO_XFT) - CXXFLAGS="$CXXFLAGS $PANGOXFT_CFLAGS" + CXXFLAGS="$PANGOXFT_CFLAGS $CXXFLAGS" GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOXFT_LIBS" ], [ @@ -2998,7 +3128,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config ) save_CFLAGS="$CFLAGS" save_LIBS="$LIBS" - CFLAGS="$CFLAGS $PANGOX_CFLAGS" + CFLAGS="$PANGOX_CFLAGS $CFLAGS" LIBS="$LIBS $PANGOX_LIBS" AC_CHECK_FUNCS([pango_font_family_is_monospace]) CFLAGS="$save_CFLAGS" @@ -3031,6 +3161,9 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE) TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE$ac_path_to_include" else + save_CFLAGS=$CFLAGS + CFLAGS="$TOOLKIT_INCLUDE $CFLAGS" + AC_TRY_COMPILE( [ #include @@ -3045,46 +3178,51 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config ], [ AC_MSG_RESULT(no) - AC_MSG_ERROR(please set CFLAGS to contain the location of Xm/Xm.h) + AC_MSG_ERROR(please set CPPFLAGS to contain the location of Xm/Xm.h) ] ) + + CFLAGS=$save_CFLAGS fi - if test "$COMPILED_X_PROGRAM" = 0; then - AC_MSG_CHECKING(for Motif/Lesstif library) - WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm) - if test "$ac_find_libraries" != "" ; then - AC_MSG_RESULT(found at $ac_find_libraries) - WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY) - GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link" - else - dnl it might happen that we found headers in one of the - dnl standard paths but the libs are elsewhere - we do need to - dnl try to compile a sample program then here - save_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS $TOOLKIT_INCLUDE" + AC_MSG_CHECKING(for Motif/Lesstif library) + WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm) - AC_TRY_COMPILE( - [ - #include - ], - [ - int version; - version = xmUseVersion; - ], - [ - AC_MSG_RESULT(found in default search path) - COMPILED_X_PROGRAM=1 - ], - [ - AC_MSG_RESULT(no) - AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm) - ] - ) + if test "x$ac_find_libraries" != "x" ; then + AC_MSG_RESULT(found in $ac_find_libraries) - CFLAGS=$save_CFLAGS - fi + WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY) + GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link" + else + dnl it might happen that we found headers in one of the standard + dnl paths but the libs are elsewhere but still in default (linker) + dnl path -- try to compile a test program to check for this + save_CFLAGS=$CFLAGS + CFLAGS="$TOOLKIT_INCLUDE $CFLAGS" + save_LIBS="$LIBS" + LIBS="$GUI_TK_LIBRARY -lXm -lXmu -lXext -lX11" + + AC_TRY_LINK( + [ + #include + ], + [ + int version; + version = xmUseVersion; + ], + [ + AC_MSG_RESULT(found in default search path) + COMPILED_X_PROGRAM=1 + ], + [ + AC_MSG_RESULT(no) + AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm) + ] + ) + + CFLAGS=$save_CFLAGS + LIBS="$save_LIBS" fi AC_MSG_CHECKING([if we need -lXp and/or -lSM -lICE]) @@ -3098,7 +3236,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config save_LIBS="$LIBS" LIBS="$GUI_TK_LIBRARY -lXm ${libp} -lXmu -lXext -lXt${libsm_ice} -lX11" save_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS $TOOLKIT_INCLUDE" + CFLAGS="$TOOLKIT_INCLUDE $CFLAGS" AC_TRY_LINK( [ @@ -3132,46 +3270,53 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config AC_MSG_ERROR([can't link a simple motif program]) fi + dnl this seems to be needed under IRIX and shouldn't do any harm + dnl elsewhere + AC_CHECK_LIB(Sgm, [SgCreateList], [libsgm_link=" -lSgm"]) + save_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS $TOOLKIT_INCLUDE" - AC_MSG_CHECKING([for Motif 2]) - AC_TRY_COMPILE([ - #include - ], - [ - #if XmVersion < 2000 - Not Motif 2 - #endif - ], - [ - AC_DEFINE(__WXMOTIF20__,1) - AC_MSG_RESULT([found]) - ], - [ - AC_DEFINE(__WXMOTIF20__,0) - AC_MSG_RESULT([not found]) - ]) - - AC_MSG_CHECKING([whether Motif is Lesstif]) - AC_TRY_COMPILE([ - #include - ], - [ - #if !defined(LesstifVersion) || LesstifVersion <= 0 - Not Lesstif - #endif - ], - [ - AC_DEFINE(__WXLESSTIF__,1) - AC_MSG_RESULT([yes]) - ], - [ - AC_DEFINE(__WXLESSTIF__,0) - AC_MSG_RESULT([no]) - ]) + CFLAGS="$TOOLKIT_INCLUDE $CFLAGS" + + AC_CACHE_CHECK([for Motif 2], + wx_cv_lib_motif2, + AC_TRY_COMPILE([ + #include + ], + [ + #if XmVersion < 2000 + Not Motif 2 + #endif + ], + wx_cv_lib_motif2="yes", + wx_cv_lib_motif2="no")) + if test "$wx_cv_lib_motif2" = "yes"; then + AC_DEFINE(__WXMOTIF20__,1) + else + AC_DEFINE(__WXMOTIF20__,0) + fi + + AC_CACHE_CHECK([whether Motif is Lesstif], + wx_cv_lib_lesstif, + AC_TRY_COMPILE([ + #include + ], + [ + #if !defined(LesstifVersion) || LesstifVersion <= 0 + Not Lesstif + #endif + ], + wx_cv_lib_lesstif="yes", + wx_cv_lib_lesstif="no") + ) + if test "$wx_cv_lib_lesstif" = "yes"; then + AC_DEFINE(__WXLESSTIF__,1) + else + AC_DEFINE(__WXLESSTIF__,0) + fi + CFLAGS=$save_CFLAGS - GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXm${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11" + GUI_TK_LIBRARY="$GUI_TK_LIBRARY${libsgm_link} -lXm${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11" TOOLKIT=MOTIF GUIDIST=MOTIF_DIST fi @@ -3185,13 +3330,13 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config if test "$ac_find_libraries" != "" ; then WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY) GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link" - AC_MSG_RESULT(found at $ac_find_libraries) + AC_MSG_RESULT(found in $ac_find_libraries) AC_CACHE_CHECK([for X11/xpm.h], wx_cv_x11_xpm_h, [ save_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS $TOOLKIT_INCLUDE" + CFLAGS="$TOOLKIT_INCLUDE $CFLAGS" AC_TRY_COMPILE( [ @@ -3229,11 +3374,11 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config if test "$wxHAVE_XEXT_LIB" = 1; then save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $TOOLKIT_INCLUDE" + CFLAGS="$TOOLKIT_INCLUDE $CFLAGS" AC_MSG_CHECKING([for X11/extensions/shape.h]) AC_TRY_COMPILE([ - #include + #include #include ], [ @@ -3266,10 +3411,10 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config fi if test "x$wxUSE_UNIX" = "xyes"; then - CPPFLAGS="$CPPFLAGS $CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -I/Developer/Headers/FlatCarbon" + CPPFLAGS="$CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -I/Developer/Headers/FlatCarbon $CPPFLAGS" else dnl platform.h needs TARGET_CARBON before setup.h - CPPFLAGS="$CPPFLAGS $CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -DTARGET_CARBON" + CPPFLAGS="$CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -DTARGET_CARBON $CPPFLAGS" fi TOOLKIT=MAC @@ -3348,6 +3493,20 @@ dnl --------------------------------------------------------------------------- dnl Optional libraries included when system library is not used dnl --------------------------------------------------------------------------- +dnl do this after test for X11 above so that we have a chance of finding Xlib.h +if test "$wxUSE_GUI" = "yes"; then + if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_PM" != 1; then + dnl defines HAVE_X11_XKBLIB_H + AC_CHECK_HEADERS(X11/Xlib.h) + AC_CHECK_HEADERS([X11/XKBlib.h], [], [], + [ + #if HAVE_X11_XLIB_H + #include + #endif + ]) + fi +fi + dnl ---------------------------------------------------------------- dnl iODBC support @@ -3356,7 +3515,7 @@ dnl ---------------------------------------------------------------- IODBC_C_SRC="" -dnl ODBC is handled separately for MSW +dnl ODBC is handled separately for MSW if test "$TOOLKIT" != "MSW" ; then if test "$wxUSE_ODBC" = "sys" -o "$wxUSE_ODBC" = "yes" ; then @@ -3372,7 +3531,7 @@ if test "$TOOLKIT" != "MSW" ; then AC_CHECK_LIB(odbc, SQLAllocEnv, ODBC_LINK=" -lodbc") ]) ]) - fi + fi if test "x$ODBC_LINK" = "x" ; then if test "$wxUSE_ODBC" = "sys" ; then AC_MSG_ERROR([system ODBC library not found! Use --with-odbc=builtin to use built-in version]) @@ -3396,7 +3555,7 @@ if test "$wxUSE_ODBC" != "no" ; then SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db" dnl is this still necessary? - WXODBCFLAG="-D_IODBC_" + WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_IODBC_" fi dnl --------------------------------------------------------------------------- @@ -3426,7 +3585,7 @@ dnl --------------------------------------------------------------------------- [ GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXxf86vm" ], - [], + [], [ #if HAVE_X11_XLIB_H #include @@ -3435,7 +3594,7 @@ dnl --------------------------------------------------------------------------- else AC_MSG_RESULT([no]) fi - + else AC_MSG_RESULT([no]) AC_MSG_WARN([Xinerama not found; disabling wxDisplay]) @@ -3473,7 +3632,7 @@ if test "$wxUSE_OPENGL" = "yes"; then if test "$ac_find_includes" != "" ; then AC_MSG_RESULT(found in $ac_find_includes) WX_INCLUDE_PATH_EXIST($ac_find_includes, $CPPFLAGS) - CPPFLAGS="$CPPFLAGS$ac_path_to_include" + CPPFLAGS="$ac_path_to_include $CPPFLAGS" fi AC_CHECK_HEADER(GL/gl.h, @@ -3576,7 +3735,7 @@ if test "$wxUSE_SHARED" = "yes"; then if test "$GCC" = yes ; then dnl newer versions of gcc need -isystem to compile X headers on dnl Solaris (which use old style C syntax) - CPPFLAGS="$CPPFLAGS -isystem /usr/openwin/include" + CPPFLAGS="-isystem /usr/openwin/include $CPPFLAGS" dnl gcc may use Sun's ld, in which case -rpath gives a confusing dnl error message. We have to try both -Wl,-rpath and -Wl,-R: @@ -3601,7 +3760,7 @@ if test "$wxUSE_SHARED" = "yes"; then WXCONFIG_RPATH="-Wl,-R,\$libdir" ],[ AC_MSG_RESULT([no]) - ]) + ]) ]) LDFLAGS="$saveLdflags" else @@ -3609,7 +3768,7 @@ if test "$wxUSE_SHARED" = "yes"; then WXCONFIG_RPATH="-R\$libdir" fi ;; - + *-*-darwin* ) install_name_tool=`which install_name_tool` if test "$install_name_tool" -a -x "$install_name_tool"; then @@ -3626,16 +3785,18 @@ EOF chmod +x change-install-names fi ;; - + *-*-cygwin* | *-*-mingw32* ) - TOOLCHAIN_DLL_DEFS="${TOOLCHAIN_DLL_DEFS} -DWXUSINGDLL=1" - ;; - + dnl this one shouldn't be used for the library build so put it in a + dnl separate variable from WXCONFIG_CPPFLAGS + WXCONFIG_ONLY_CPPFLAGS="$WXCONFIG_ONLY_CPPFLAGS -DWXUSINGDLL" + ;; + *-*-hpux* ) SAMPLES_RPATH_FLAG="-Wl,+b,\$(top_builddir)lib" WXCONFIG_RPATH="-Wl,+b,\$libdir" - ;; - + ;; + esac if test $wxUSE_RPATH = "no"; then @@ -3742,7 +3903,7 @@ if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1; then dnl add the resources target for wxMac LIBWXMACRES="\$(top_builddir)lib/${WX_RESOURCES_MACOSX_ASCII}" - AC_CHECK_PROG(RESCOMP, Rez, Rez, /Developer/Tools/Rez) + AC_CHECK_PROG(REZ, Rez, Rez, /Developer/Tools/Rez) AC_CHECK_PROG(DEREZ, DeRez, DeRez, /Developer/Tools/DeRez) AC_CHECK_PROG(SETFILE, SetFile, SetFile, /Developer/Tools/SetFile) @@ -3751,26 +3912,29 @@ if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1; then dnl resources are bundled both with shared library and applications dnl since the carb resource *must* be included in the application if test "$wxUSE_MAC" = 1; then - MACRESCOMP="\$(RESCOMP) -d __DARWIN__ -t APPL Carbon.r -o" - - dnl this command is used to implement `wx-config --rezflags` and it is - dnl eval'd there so escape any metacharacters inside - MACRESWXCONFIG="${RESCOMP} -d __DARWIN__ -t APPL Carbon.r -o" + POSTLINK_COMMAND="\$(REZ) -d __DARWIN__ -t APPL Carbon.r -o" + RESCOMP="$REZ" + WXCONFIG_RESFLAGS="-d __DARWIN__ -t APPL Carbon.r -o" else - MACRESCOMP="echo -n | \$(RESCOMP) -d __DARWIN__ -t APPL ${LIBWXMACRES} -o" - MACRESWXCONFIG="echo -n \\\| ${RESCOMP} -d __DARWIN__ -t APPL \\\${exec_prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o" + POSTLINK_COMMAND="echo -n | \$(REZ) -d __DARWIN__ -t APPL ${LIBWXMACRES}" + RESCOMP="echo -n \| $REZ" + WXCONFIG_RESFLAGS="-d __DARWIN__ -t APPL \$libdir/$WX_RESOURCES_MACOSX_ASCII" fi + else dnl default value is to (silently) do nothing in the makefile MACSETFILE="@true" - MACRESWXCONFIG="@true" - dnl confusingly, wxOS2 also uses MACRESCOMP in its post-link step if test "$wxUSE_PM" = 1; then - MACRESCOMP="emxbind -ep" + RESCOMP="emxbind" + WXCONFIG_RESFLAGS="-ep" + + dnl Is this one really used anywhere for pm? + POSTLINK_COMMAND="$RESCOMP $WXCONFIG_RESFLAGS" else - MACRESCOMP="@true" + POSTLINK_COMMAND="@true" fi + fi @@ -3904,7 +4068,7 @@ if test "$wxUSE_WCHAR_T" = "yes"; then dnl with g++'s in (unless -D_INCLUDE__STDC_A1_SOURCE is in the dnl flags when g++ is configured, it will declare it's own). if test "$USE_HPUX" = 1 -a "$GCC" != "yes"; then - CPPFLAGS="$CPPFLAGS -D_INCLUDE__STDC_A1_SOURCE " + CPPFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CPPFLAGS" fi dnl Try to use wcsrtombs instead of wcstombs which is buggy in old GNU @@ -3956,8 +4120,7 @@ if test "$ac_cv_func_vsnprintf" = "yes"; then [ char *buf; va_list ap; - const char *fmt = "%s"; - vsnprintf(buf, 10u, fmt, ap); + vsnprintf(buf, 10u, "%s", ap); ], wx_cv_func_vsnprintf_decl=yes, wx_cv_func_vsnprintf_decl=no @@ -3967,6 +4130,37 @@ if test "$ac_cv_func_vsnprintf" = "yes"; then if test "$wx_cv_func_vsnprintf_decl" = "yes"; then AC_DEFINE(HAVE_VSNPRINTF_DECL) + + dnl we know there is a vsnprintf declaration, but some old headers + dnl may have one taking a "char *" format instead of "const char *" + AC_CACHE_CHECK([if vsnprintf declaration is broken], wx_cv_func_broken_vsnprintf_decl, + [ + AC_TRY_COMPILE( + [ + #include + #include + #ifdef __MSL__ + #if __MSL__ >= 0x6000 + namespace std {} + using namespace std; + #endif + #endif + ], + [ + char *buf; + va_list ap; + const char *fmt = "%s"; + vsnprintf(buf, 10u, fmt, ap); + ], + wx_cv_func_broken_vsnprintf_decl=no, + wx_cv_func_broken_vsnprintf_decl=yes + ) + ] + ) + + if test "$wx_cv_func_broken_vsnprintf_decl" = "yes"; then + AC_DEFINE(HAVE_BROKEN_VSNPRINTF_DECL) + fi fi fi @@ -3988,8 +4182,7 @@ if test "$ac_cv_func_snprintf" = "yes"; then ], [ char *buf; - const char *fmt = "%s"; - snprintf(buf, 10u, fmt, "wx"); + snprintf(buf, 10u, "%s", "wx"); ], wx_cv_func_snprintf_decl=yes, wx_cv_func_snprintf_decl=no @@ -3999,6 +4192,36 @@ if test "$ac_cv_func_snprintf" = "yes"; then if test "$wx_cv_func_snprintf_decl" = "yes"; then AC_DEFINE(HAVE_SNPRINTF_DECL) + + dnl we know there is an snprintf declaration, but some old headers + dnl may have one taking a "char *" format instead of "const char *" + AC_CACHE_CHECK([if snprintf declaration is broken], wx_cv_func_broken_snprintf_decl, + [ + AC_TRY_COMPILE( + [ + #include + #include + #ifdef __MSL__ + #if __MSL__ >= 0x6000 + namespace std {} + using namespace std; + #endif + #endif + ], + [ + char *buf; + const char *fmt = "%s"; + snprintf(buf, 10u, fmt, "wx"); + ], + wx_cv_func_broken_snprintf_decl=no, + wx_cv_func_broken_snprintf_decl=yes + ) + ] + ) + + if test "$wx_cv_func_broken_snprintf_decl" = "yes"; then + AC_DEFINE(HAVE_BROKEN_SNPRINTF_DECL) + fi fi fi @@ -4120,7 +4343,7 @@ if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then AC_LANG_RESTORE fi -if test "$wxUSE_STACKWALKER" = "yes" -a "$USE_WIN32" != "1" -a "$USE_UNIX" != "1"; then +if test "$wxUSE_STACKWALKER" = "yes" -a "$USE_WIN32" != "1" -a "$USE_UNIX" != "1"; then AC_MSG_WARN([wxStackWalker is only available on Win32 and UNIX... disabled]) wxUSE_STACKWALKER=no fi @@ -4159,20 +4382,22 @@ if test "$wx_cv_func_statfs" = "yes"; then AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_CACHE_CHECK(for statfs declaration, wx_cv_func_statfs_decl, - [ - #if defined(__BSD__) - #include - #include - #else - #include - #endif - ], - [ - struct statfs fs; - statfs("", &fs); - ], - wx_cv_func_statfs_decl=yes, - wx_cv_func_statfs_decl=no + AC_TRY_COMPILE( + [ + #if defined(__BSD__) + #include + #include + #else + #include + #endif + ], + [ + struct statfs fs; + statfs("", &fs); + ], + wx_cv_func_statfs_decl=yes, + wx_cv_func_statfs_decl=no + ) ) AC_LANG_RESTORE @@ -4403,7 +4628,6 @@ dnl the next matching "else") dnl --------------------------------------------------------------------------- dnl under MSW (except mingw32) we always have thread support -CPP_MT_FLAG= if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then dnl the code below: @@ -4463,11 +4687,14 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then THREAD_OPTS="pthreads" ;; *-hp-hpux* ) - if test "x$GCC" != "xyes"; then - dnl HP-UX aCC only gives a warning, not an error about - dnl -pthread but it doesn't work and we have to use - dnl -lpthread there - THREAD_OPTS="" + if test "x$GCC" = "xyes"; then + dnl g++ versions before 3.3.2 don't support -pthread. + $CXX -dumpspecs | grep 'pthread:' >/dev/null || + THREAD_OPTS="" + else + dnl HP-UX aCC (tested with version B3910B A.06.05 [Jul 25 + dnl 2005]) supports -mt + THREAD_OPTS="-mt" fi ;; @@ -4574,11 +4801,8 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then THREADS_CFLAGS="$THREADS_CFLAGS $flag" fi - if test "x$THREADS_CFLAGS" != "x"; then - dnl don't add these options to CPPFLAGS as cpp might not know them - CFLAGS="$CFLAGS $THREADS_CFLAGS" - CXXFLAGS="$CXXFLAGS $THREADS_CFLAGS" - fi + dnl don't add these options to CPPFLAGS as cpp might not know them + WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS $THREADS_CFLAGS" fi fi @@ -4671,16 +4895,31 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then [ pthread_mutexattr_t attr; pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); - ], [ - wx_cv_type_pthread_mutexattr_t=yes - ], [ - wx_cv_type_pthread_mutexattr_t=no - ] + ], + wx_cv_type_pthread_mutexattr_t=yes, + wx_cv_type_pthread_mutexattr_t=no ) ]) if test "$wx_cv_type_pthread_mutexattr_t" = "yes"; then AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_T) + + dnl check if we already have the declaration we need, it is not + dnl present in some systems' headers + AC_CACHE_CHECK([for pthread_mutexattr_settype declaration], + wx_cv_func_pthread_mutexattr_settype_decl, [ + AC_TRY_COMPILE([#include ], + [ + pthread_mutexattr_t attr; + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); + ], + wx_cv_func_pthread_mutexattr_settype_decl=yes, + wx_cv_func_pthread_mutexattr_settype_decl=no + ) + ]) + if test "$wx_cv_func_pthread_mutexattr_settype_decl" = "yes"; then + AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_SETTYPE_DECL) + fi else dnl don't despair, there may be another way to do it AC_CACHE_CHECK([for PTHREAD_RECURSIVE_MUTEX_INITIALIZER], @@ -4715,7 +4954,7 @@ else wx_cv_cflags_mthread, [ CFLAGS_OLD="$CFLAGS" - CFLAGS="$CFLAGS -mthreads" + CFLAGS="-mthreads $CFLAGS" AC_TRY_COMPILE([], [], wx_cv_cflags_mthread=yes, wx_cv_cflags_mthread=no @@ -4725,8 +4964,7 @@ else if test "$wx_cv_cflags_mthread" = "yes"; then dnl it does, use it - CXXFLAGS="$CXXFLAGS -mthreads" - TOOLCHAIN_DEFS="$TOOLCHAIN_DEFS -mthreads" + WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -mthreads" LDFLAGS="$LDFLAGS -mthreads" else dnl it doesn't @@ -4734,14 +4972,48 @@ else fi ;; *-pc-os2*emx ) - CFLAGS="$CFLAGS -Zmt -D__ST_MT_ERRNO__" - CXXFLAGS="$CXXFLAGS -Zmt -D__ST_MT_ERRNO__" + WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -Zmt -D__ST_MT_ERRNO__" + WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -Zmt -D__ST_MT_ERRNO__" LDFLAGS="$LDFLAGS -Zmt" ;; esac fi fi +AC_CHECK_FUNC(localtime_r, [ AC_DEFINE(HAVE_LOCALTIME_R) ]) +AC_CHECK_FUNC(gmtime_r, [ AC_DEFINE(HAVE_GMTIME_R) ]) +AC_CHECK_FUNC(readdir_r, [ AC_DEFINE(HAVE_READDIR_R) ]) +dnl By preference, use getaddrinfo which avoids thread safety issues. +dnl If that is not available, check for gethostbyname_r/gethostbyaddr_r +dnl and getservbyname_r +AC_CHECK_FUNC(getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO), + dnl no getaddrinfo, so check for gethostbyname_r and + dnl related functions (taken from python's configure.in) + dnl sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments + [ AX_FUNC_WHICH_GETHOSTBYNAME_R + if test "x$ac_cv_func_which_gethostbyname_r" = "xno" -o \ + "x$ac_cv_func_which_gethostbyname_r" = "xunknown" ; then + AC_CHECK_FUNC(gethostbyname, [ AC_DEFINE(HAVE_GETHOSTBYNAME) ]) + fi + dnl A similar test for getservbyname_r + dnl I'm tempted to just not do this test which is taking much time and + dnl do something similar as for gethostbyaddr_r, but OTOH the macro + dnl doing the test already exists, so using it is easy enough. - SN + AC_raf_FUNC_WHICH_GETSERVBYNAME_R + if test "x$ac_cv_func_which_getservbyname_r" = "xno" -o \ + "x$ac_cv_func_which_getservbyname_r" = "xunknown" ; then + AC_CHECK_FUNCS(getservbyname,[ AC_DEFINE(HAVE_GETSERVBYNAME) ]) + fi + dnl For gethostbyaddr_r, we currently do no separate test, instead, we + dnl silently assume it's available exactly if gethostbyname_r is + dnl available and always requires two more arguments than + dnl gethostbyname_r. + dnl (also, I'm lazy and there no m4 file that's ready for use for this + dnl function, although it should be easy to rewrite the gethostbyname_r + dnl check to fit this case, if it's really needed. - SN ) + ] +) + if test "$wxUSE_THREADS" = "yes"; then AC_DEFINE(wxUSE_THREADS) @@ -4752,7 +5024,7 @@ else if test "$ac_cv_func_strtok_r" = "yes"; then AC_MSG_CHECKING(if -D_REENTRANT is needed) if test "$NEEDS_D_REENTRANT_FOR_R_FUNCS" = 1; then - TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D_REENTRANT" + WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_REENTRANT" AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) @@ -4777,26 +5049,27 @@ if test "$WXGPE" = 1 ; then AC_DEFINE_UNQUOTED(__WXGPE__,$WXGPE) fi -WXDEBUG= - +dnl DEBUG_CFLAGS contains debugging options (supposed to be the same for C and C++ +dnl compilers: we'd need a separate DEBUG_CXXFLAGS if this is ever not the case) +DEBUG_CFLAGS= if test "$wxUSE_DEBUG_INFO" = "yes" ; then - WXDEBUG="-g" + DEBUG_CFLAGS="-g" wxUSE_OPTIMISE=no fi if test "$wxUSE_DEBUG_GDB" = "yes" ; then wxUSE_DEBUG_INFO=yes if test "$GCC" = yes; then - WXDEBUG="-ggdb" + DEBUG_CFLAGS="-ggdb" fi fi if test "$wxUSE_DEBUG_FLAG" = "yes" ; then AC_DEFINE(WXDEBUG) - WXDEBUG_DEFINE="-D__WXDEBUG__" + WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D__WXDEBUG__" else if test "$wxUSE_GTK" = 1 ; then - WXDEBUG_DEFINE="-DGTK_NO_CHECK_CASTS" + CPPFLAGS="-DGTK_NO_CHECK_CASTS $CPPFLAGS" fi fi @@ -4811,22 +5084,21 @@ if test "$wxUSE_DMALLOC" = "yes" ; then DMALLOC_LIBS="-ldmallocthcxx" fi -PROFILE= +dnl cc/cxx/ld option for profiling +PROFILE_FLAGS= if test "$wxUSE_PROFILE" = "yes" ; then - PROFILE=" -pg" + PROFILE_FLAGS=" -pg" fi -CODE_GEN_FLAGS= -CODE_GEN_FLAGS_CXX= if test "$GCC" = "yes" ; then if test "$wxUSE_NO_RTTI" = "yes" ; then - CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fno-rtti" + WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fno-rtti" fi if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then - CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fno-exceptions" + WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fno-exceptions" fi if test "$wxUSE_PERMISSIVE" = "yes" ; then - CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fpermissive" + WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -fpermissive" fi dnl Ian Brown reports that versions of gcc before @@ -4842,33 +5114,27 @@ if test "$GCC" = "yes" ; then dnl TODO: test for the gcc version here (how?) case "${host}" in powerpc*-*-aix* ) - CODE_GEN_FLAGS="$CODE_GEN_FLAGS -mminimal-toc" + WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -mminimal-toc" ;; *-hppa* ) - CODE_GEN_FLAGS="$CODE_GEN_FLAGS -ffunction-sections" + WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -ffunction-sections" ;; esac fi -OPTIMISE= +dnl C/C++ compiler option for optimization (supposed to be the same for both) +OPTIMISE_CFLAGS= if test "$wxUSE_OPTIMISE" = "no" ; then if test "$GCC" = yes ; then dnl use -O0 because compiling with it is faster than compiling with no dnl optimization options at all (at least with g++ 3.2) - OPTIMISE="-O0" + OPTIMISE_CFLAGS="-O0" fi else if test "$GCC" = yes ; then - OPTIMISE="-O2" - - dnl VZ: does anybody know what does this do?? - case "${host}" in - i586-*-*|i686-*-* ) - OPTIMISE="${OPTIMISE} " - ;; - esac + OPTIMISE_CFLAGS="-O2" else - OPTIMISE="-O" + OPTIMISE_CFLAGS="-O" fi fi @@ -4876,14 +5142,14 @@ dnl --------------------------------------------------------------------------- dnl compatibility level dnl --------------------------------------------------------------------------- -if test "x$WXWIN_COMPATIBILITY_2_2" = "xyes"; then - AC_DEFINE(WXWIN_COMPATIBILITY_2_2) +if test "x$WXWIN_COMPATIBILITY_2_4" = "xyes"; then + AC_DEFINE(WXWIN_COMPATIBILITY_2_4) - WXWIN_COMPATIBILITY_2_4="yes" + WXWIN_COMPATIBILITY_2_6="yes" fi -if test "x$WXWIN_COMPATIBILITY_2_4" != "xno"; then - AC_DEFINE(WXWIN_COMPATIBILITY_2_4) +if test "x$WXWIN_COMPATIBILITY_2_6" != "xno"; then + AC_DEFINE(WXWIN_COMPATIBILITY_2_6) fi dnl --------------------------------------------------------------------------- @@ -5035,8 +5301,41 @@ fi dnl Unix implementation needs additional checks because audio support dnl comes in many favours: if test "$USE_UNIX" = "1" ; then - AC_CHECK_HEADERS([sys/soundcard.h],, - [DISABLED_CONTRIB="$DISABLED_CONTRIB mmedia"]) + dnl it's not enough to check for just the header because OSS under NetBSD + dnl redefines ioctl as oss_ioctrl inside it and so we also need to test + dnl whether we need -lossaudio at link-time + AC_CACHE_CHECK([for ioctl() in sys/soundcard.h], ac_cv_header_sys_soundcard, [ + AC_TRY_LINK([ + #include + ], + [ + ioctl(0, SNDCTL_DSP_SYNC, 0); + ], + ac_cv_header_sys_soundcard=yes, + [ + saveLibs="$LIBS" + LIBS="$saveLibs -lossaudio" + AC_TRY_LINK([ + #include + ], + [ + ioctl(0, SNDCTL_DSP_SYNC, 0); + ], + ac_cv_header_sys_soundcard=yes, + [ + LIBS="$saveLibs" + ac_cv_header_sys_soundcard=no + ] + ) + ] + ) + ]) + + if test "$ac_cv_header_sys_soundcard" = "yes"; then + AC_DEFINE(HAVE_SYS_SOUNDCARD_H) + else + DISABLED_CONTRIB="$DISABLED_CONTRIB mmedia" + fi fi WITH_PLUGIN_SDL=0 if test "$wxUSE_SOUND" = "yes"; then @@ -5045,7 +5344,7 @@ if test "$wxUSE_SOUND" = "yes"; then AM_PATH_SDL([1.2.0], [ EXTRALIBS_SDL="$SDL_LIBS" - CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" + CXXFLAGS="$SDL_CFLAGS $CXXFLAGS" AC_DEFINE(wxUSE_LIBSDL) ], [wxUSE_LIBSDL="no"]) @@ -5054,7 +5353,7 @@ if test "$wxUSE_SOUND" = "yes"; then fi fi fi - + AC_DEFINE(wxUSE_SOUND) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sound" fi @@ -5062,12 +5361,12 @@ fi if test "$WXGTK20" = 1; then if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then if test "$wxUSE_LIBGNOMEPRINT" = "yes" ; then - - PKG_CHECK_MODULES(LIBGNOMEPRINTUI, + + PKG_CHECK_MODULES(LIBGNOMEPRINTUI, [libgnomeprintui-2.2 >= 2.8], [ dnl EXTRALIBS_GNOMEPRINT="$LIBGNOMEPRINTUI_LIBS" - CXXFLAGS="$CXXFLAGS $LIBGNOMEPRINTUI_CFLAGS" + CXXFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CXXFLAGS" AC_DEFINE(wxUSE_LIBGNOMEPRINT) ], [ @@ -5232,11 +5531,34 @@ fi dnl --------------------------------------------------------------------------- dnl time/date functions -dnl ------------------------------------------------------------------------ +dnl --------------------------------------------------------------------------- if test "$wxUSE_DATETIME" = "yes"; then - dnl check for strptime + dnl check for strptime and for its declaration as some systems lack it AC_CHECK_FUNCS(strptime) + if test "$ac_cv_func_strptime" = "yes"; then + AC_CACHE_CHECK([for strptime declaration], wx_cv_func_strptime_decl, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE( + [ + #include + ], + [ + struct tm t; + strptime("foo", "bar", &t); + ], + wx_cv_func_strptime_decl=yes, + wx_cv_func_strptime_decl=no + ) + AC_LANG_RESTORE + ] + ) + fi + if test "$wx_cv_func_strptime_decl" = "yes"; then + AC_DEFINE(HAVE_STRPTIME_DECL) + fi dnl check for timezone variable dnl doesn't exist under Darwin / Mac OS X which uses tm_gmtoff instead @@ -5434,9 +5756,9 @@ if test "$wxUSE_SOCKETS" = "yes" ; then dnl converting between incompatible pointer types, so dnl try to use it to get the correct behaviour at dnl least with gcc (otherwise we'd always use size_t) - CFLAGS_OLD="$CFLAGS" + CXXFLAGS_OLD="$CXXFLAGS" if test "$GCC" = yes ; then - CFLAGS="$CFLAGS -Werror" + CXXFLAGS="-Werror $CXXFLAGS" fi AC_TRY_COMPILE( @@ -5463,7 +5785,7 @@ if test "$wxUSE_SOCKETS" = "yes" ; then ) ) - CFLAGS="$CFLAGS_OLD" + CXXFLAGS="$CXXFLAGS_OLD" ] ) ]) @@ -5472,7 +5794,7 @@ if test "$wxUSE_SOCKETS" = "yes" ; then wxUSE_SOCKETS=no AC_MSG_WARN([Couldn't find socklen_t synonym for this system]) else - AC_DEFINE_UNQUOTED(SOCKLEN_T, $wx_cv_type_getsockname3) + AC_DEFINE_UNQUOTED(WX_SOCKLEN_T, $wx_cv_type_getsockname3) fi dnl Do this again for getsockopt as it may be different AC_CACHE_CHECK([what is the type of the fifth argument of getsockopt], @@ -5495,9 +5817,9 @@ if test "$wxUSE_SOCKETS" = "yes" ; then dnl converting between incompatible pointer types, so dnl try to use it to get the correct behaviour at dnl least with gcc (otherwise we'd always use size_t) - CFLAGS_OLD="$CFLAGS" + CXXFLAGS_OLD="$CXXFLAGS" if test "$GCC" = yes ; then - CFLAGS="$CFLAGS -Werror" + CXXFLAGS="-Werror $CXXFLAGS" fi AC_TRY_COMPILE( @@ -5524,7 +5846,7 @@ if test "$wxUSE_SOCKETS" = "yes" ; then ) ) - CFLAGS="$CFLAGS_OLD" + CXXFLAGS="$CXXFLAGS_OLD" ] ) ]) @@ -5565,7 +5887,7 @@ if test "$wxUSE_PROTOCOL" = "yes"; then fi else if test "$wxUSE_FS_INET" = "yes"; then - AC_MSG_WARN([HTTP filesystem require protocol classes... disabled]) + AC_MSG_WARN([HTTP filesystem require protocol classes... disabled]) wxUSE_FS_INET="no" fi fi @@ -5620,7 +5942,7 @@ if test "$wxUSE_GUI" = "yes" -a "$wxUSE_JOYSTICK" = "yes"; then AC_DEFINE(wxUSE_JOYSTICK) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest" else - AC_MSG_WARN(Joystick not supported by this system... disabled) + AC_MSG_WARN(Joystick not supported by this system... disabled) fi fi @@ -5762,7 +6084,7 @@ if test "$USE_WIN32" = 1 -a \( "$wxUSE_DATAOBJ" = "yes" \ [], [AC_MSG_RESULT(no)], [AC_MSG_RESULT(yes) - CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fvtable-thunks"]) + WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fvtable-thunks"]) AC_LANG_RESTORE LIBS=" -lrpcrt4 -loleaut32 -lole32 -luuid$LIBS" if test "$wxUSE_OLE" = "yes" ; then @@ -6120,6 +6442,11 @@ if test "$wxUSE_TOOLTIPS" = "yes"; then fi fi +if test "$wxUSE_TREEBOOK" = "yes"; then + AC_DEFINE(wxUSE_TREEBOOK) + USES_CONTROLS=1 +fi + if test "$wxUSE_TREECTRL" = "yes"; then if test "$wxUSE_IMAGLIST" = "yes"; then AC_DEFINE(wxUSE_TREECTRL) @@ -6206,7 +6533,7 @@ fi if test "$wxUSE_WEBKIT" = "yes"; then if test "$wxUSE_MAC" = 1 -a "$USE_DARWIN" = 1; then old_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -x objective-c++" + CPPFLAGS="-x objective-c++ $CPPFLAGS" AC_CHECK_HEADER([WebKit/HIWebView.h], [ AC_DEFINE(wxUSE_WEBKIT) @@ -6278,6 +6605,13 @@ if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_MSLU" = "yes" ; then LIBS=" -lunicows $LIBS" fi +USE_RICHTEXT=0 +if test "$wxUSE_RICHTEXT" = "yes"; then + AC_DEFINE(wxUSE_RICHTEXT) + USE_RICHTEXT=1 + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS richtext" +fi + dnl --------------------------------------------------------------------------- dnl wxImage options dnl --------------------------------------------------------------------------- @@ -6381,29 +6715,29 @@ if test "$wxUSE_WIZARDDLG" = "yes"; then fi dnl --------------------------------------------------------------------------- -dnl wxMediaCtrl +dnl wxMediaCtrl dnl --------------------------------------------------------------------------- if test "$wxUSE_MEDIACTRL" = "yes"; then dnl ----------------------------------------------------------------------- - dnl GStreamer + dnl GStreamer dnl ----------------------------------------------------------------------- if test "$wxUSE_GTK" = 1; then wxUSE_GSTREAMER="yes" - + dnl ------------------------------------------------------------------- dnl Test for gstreamer module from pkg-config dnl ------------------------------------------------------------------- PKG_CHECK_MODULES(GSTREAMER, gstreamer-0.8, [ - CPPFLAGS="$CPPFLAGS $GSTREAMER_CFLAGS" + CPPFLAGS="$GSTREAMER_CFLAGS $CPPFLAGS" LIBS="$LIBS $GSTREAMER_LIBS -lgstplay-0.8" ], [ AC_MSG_WARN([GStreamer installation not found]) wxUSE_GSTREAMER="no" ]) - + dnl ------------------------------------------------------------------- dnl Perform a check for a GStreamer element using gst-inspect dnl Thomas Vander Stichele @@ -6416,7 +6750,7 @@ if test "$wxUSE_MEDIACTRL" = "yes"; then if test "x$GST_INSPECT" == "x"; then AC_CHECK_PROG(GST_INSPECT, gst-inspect, gst-inspect, []) fi - + if test "x$GST_INSPECT" != "x"; then AC_MSG_CHECKING(GStreamer element $1) if [ $GST_INSPECT $1 > /dev/null 2> /dev/null ]; then @@ -6428,36 +6762,36 @@ if test "$wxUSE_MEDIACTRL" = "yes"; then fi fi ]) - + dnl ------------------------------------------------------------------- dnl Test for x video sink (video useless without) dnl ------------------------------------------------------------------- - AM_GST_ELEMENT_CHECK(xvimagesink,[], + AM_GST_ELEMENT_CHECK(xvimagesink,[], [ wxUSE_GSTREAMER="no" AC_MSG_WARN([x video sink not found - cannot use GStreamer]) ]) - + dnl ------------------------------------------------------------------- dnl Check for gstplay-0.8 lib and corresponding x overlay header - dnl ------------------------------------------------------------------- - AC_CHECK_HEADER(gst/xoverlay/xoverlay.h, [], + dnl ------------------------------------------------------------------- + AC_CHECK_HEADER(gst/xoverlay/xoverlay.h, [], [ wxUSE_GSTREAMER="no" AC_MSG_WARN([xoverlay header not found, cannot use GStreamer]) ], [#include ]) - + AC_MSG_CHECKING([for gstplay 0.8]) - WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],gstplay-0.8) - + WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],gstplay-0.8) + if test "$ac_find_libraries" = "" ; then AC_MSG_RESULT([no]) wxUSE_GSTREAMER="no" else - AC_MSG_RESULT([yes]) + AC_MSG_RESULT([yes]) fi - + if test "$wxUSE_GSTREAMER" = "yes"; then AC_DEFINE(wxUSE_GSTREAMER) AC_MSG_RESULT([GStreamer detection successful]) @@ -6635,28 +6969,70 @@ else fi -dnl all -I options we must pass to the compiler +dnl C/C++ compiler options used to compile wxWidgets +dnl +dnl check for icc before gcc as icc is also recognized as gcc +if test "x$INTELCC" = "xyes" ; then + dnl Warnings which can't be easily suppressed in C code are disabled: + dnl + dnl remark #810: conversion from "x" to "y" may lose significant bits + dnl remark #869: parameter "foo" was never referenced + dnl remark #1572: floating-point equality and inequality comparisons + dnl are unreliable + dnl remark #1684: conversion from pointer to same-sized integral type + dnl + dnl (for others see below) + CWARNINGS="-Wall -wd810,869,981,1418,1572,1684" +elif test "$GCC" = yes ; then + CWARNINGS="-Wall -Wundef" +fi + +if test "x$INTELCXX" = "xyes" ; then + dnl Intel compiler gives some warnings which simply can't be worked + dnl around or of which we have too many (810, 869) so it's impractical to + dnl keep them enabled even if in theory it would be nice and some others + dnl (279) are generated for standard macros and so there is nothing we can + dnl do about them + dnl + dnl remark #279: controlling expression is constant + dnl remark #383: value copied to temporary, reference to temporary used + dnl remark #444: destructor for base class "xxx" is not virtual + dnl remark #810: conversion from "x" to "y" may lose significant bits + dnl remark #869: parameter "foo" was never referenced + dnl remark #981: operands are evaluated in unspecified order + dnl remark #1418: external definition with no prior declaration + dnl remark #1419: external declaration in primary source file + CXXWARNINGS="-Wall -wd279,383,444,810,869,981,1418,1419" +elif test "$GXX" = yes ; then + dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror" + CXXWARNINGS="-Wall -Wundef -Wno-ctor-dtor-privacy" +fi + + +dnl combine everything together and remove the extra white space while doing it +WXCONFIG_CFLAGS=`echo $WXCONFIG_CFLAGS` +WXCONFIG_CXXFLAGS=`echo $WXCONFIG_CFLAGS $WXCONFIG_CXXFLAGS` + + +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): -INCLUDES="-I\${top_builddir}lib/wx/include/${TOOLCHAIN_FULLNAME} \ --I\${top_srcdir}/include $TOOLKIT_INCLUDE" +CPPFLAGS=`echo $WXCONFIG_CPPFLAGS \ + -I\\${top_builddir}lib/wx/include/${TOOLCHAIN_FULLNAME} \ + -I\\${top_srcdir}/include $TOOLKIT_INCLUDE \ + $CPPFLAGS ` -dnl C/C++ compiler options used to compile wxWidgets -if test "$GXX" = yes ; then - dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror" - CWARNINGS="-Wall -Wundef" - CXXWARNINGS="$CWARNINGS -Wno-ctor-dtor-privacy" -fi +C_AND_CXX_FLAGS="$DEBUG_CFLAGS $PROFILE_FLAGS $OPTIMISE_CFLAGS" +CFLAGS=`echo $WXCONFIG_CFLAGS $CWARNINGS $C_AND_CXX_FLAGS $CFLAGS ` +CXXFLAGS=`echo $WXCONFIG_CXXFLAGS $CXXWARNINGS $C_AND_CXX_FLAGS $CXXFLAGS ` -EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE" +dnl now that we added WXCONFIG_CPPFLAGS to CPPFLAGS we can add the wx-config +dnl only stuff to it +WXCONFIG_CPPFLAGS=`echo $WXCONFIG_CPPFLAGS $WXCONFIG_ONLY_CPPFLAGS` -dnl remove the extra white space from the cc/c++/ld options -CPPFLAGS=`echo $WXDEBUG_DEFINE $INCLUDES $CPPFLAGS` -CFLAGS=`echo $CODE_GEN_FLAGS $EXTRA_CFLAGS $CFLAGS $CWARNINGS` -CXXFLAGS=`echo $CODE_GEN_FLAGS $CODE_GEN_FLAGS_CXX $EXTRA_CFLAGS $CXXFLAGS $CXXWARNINGS` if test "x$MWCC" = "xyes"; then dnl Correct MW 8.3 to be more similar to GCC. In particular we @@ -6685,17 +7061,10 @@ fi if test "$wxUSE_OPENGL" = "yes"; then EXTRALIBS_OPENGL="$LDFLAGS_GL $OPENGL_LIBS" fi - -LDFLAGS="$LDFLAGS $PROFILE" -dnl wxGTK does not need TOOLKIT includes in wx-config -if test "$wxUSE_GTK" = 1; then - WXCONFIG_INCLUDE= -else - WXCONFIG_INCLUDE="$TOOLKIT_INCLUDE" -fi +LDFLAGS="$LDFLAGS $PROFILE_FLAGS" -WXCONFIG_EXTRALIBS="$LIBS" +WXCONFIG_LIBS="$LIBS" dnl wx-config must output builtin 3rd party libs in --libs in static build: if test "$wxUSE_REGEX" = "builtin" ; then @@ -6721,7 +7090,7 @@ if test "$wxUSE_ZLIB" = "builtin" ; then fi for i in $wxconfig_3rdparty ; do - WXCONFIG_EXTRALIBS="-lwx${i}${lib_debug_suffix}${WX_LIB_FLAVOUR}-${WX_RELEASE}${HOST_SUFFIX} $WXCONFIG_EXTRALIBS" + WXCONFIG_LIBS="-lwx${i}${lib_debug_suffix}${WX_LIB_FLAVOUR}-${WX_RELEASE}${HOST_SUFFIX} $WXCONFIG_LIBS" done @@ -6819,10 +7188,6 @@ fi AC_BAKEFILE([m4_include(autoconf_inc.m4)]) -if test "$wxUSE_WINE" = "yes"; then - RESCOMP=wrc -fi - if test "$wxUSE_SHARED" = "yes"; then dnl We get the shared build linker from bakefile, since it @@ -6861,77 +7226,15 @@ if test "$wxUSE_OMF" = "yes"; then esac fi -dnl According to Vaclav, if NO_GCC_PRAGMA is used for any reason it needs to -dnl be in wx-config output. Not doing so could result in link problems. -GCC_PRAGMA_FLAGS="" -PCH_FLAGS="" - -dnl Find out if we have to define WX_PRECOMP (and thus NO_GCC_PRAGMA) +dnl find out if the compiler supports PCH +dnl +dnl TODO: this should be in bakefile if test $GCC_PCH = 1 ; then - PCH_FLAGS="-DWX_PRECOMP" - GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA" -else - dnl Find out if we have to define NO_GCC_PRAGMA - if test "$GCC" = yes; then - AC_MSG_CHECKING([if this GCC version is >= 4.0 and needs -DNO_GCC_PRAGMA]) - AC_TRY_COMPILE([], - [#if (__GNUC__ < 4) - Not GCC 4.0 or greater - #endif - ], - [GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA" - AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no]) - case "${host}" in - *-*-darwin* ) - dnl Some Apple's GCC version are broken and can't handle the - dnl pragmas: - GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA" - ;; - *-*-mingw32* ) - dnl MinGW GCC versions > 3.2 have problems with - dnl static member of classes derived from templates - dnl in combination with #pragma interface/implementation - dnl (the test case uses 4 files) - dnl ... and with exceptions handling (undefined symbols needed - dnl to correctly calls dtors when unwinding) as well - if test "$wxUSE_STL" = "yes" -o \ - "$wxUSE_NO_EXCEPTIONS" != "yes" -o \ - "$wxUSE_NO_RTTI" != "yes"; then - AC_MSG_CHECKING([if this MinGW version needs -DNO_GCC_PRAGMA]) - AC_TRY_COMPILE([], - [#if !(__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)) - Not GCC 3.2 or greater - #endif - ], - [GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA" - AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no])]) - fi - ;; - *-pc-os2_emx | *-pc-os2-emx ) - dnl GCC versions ported to OS/2 have similar problems with - dnl static member of classes in combination with STL and - dnl pragma interface/implementation - if test "$wxUSE_STL" = "yes"; then - AC_MSG_CHECKING([if this gcc version needs -DNO_GCC_PRAGMA]) - AC_TRY_COMPILE([], - [#if !(__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)) - Not GCC 3.2 or greater - #endif - ], - [GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA" - AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no])]) - fi - ;; - esac -dnl closing bracket of if GCC < 4.0 - ] ) - fi + CPPFLAGS="-DWX_PRECOMP $CPPFLAGS" fi -CPPFLAGS="$PCH_FLAGS $GCC_PRAGMA_FLAGS $CPPFLAGS" +dnl TOOLCHAIN_DEFS should be used for both wx and client code +WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS $TOOLCHAIN_DEFS" dnl for convenience, sort the samples in alphabetical order dnl @@ -6953,9 +7256,6 @@ dnl global options AC_SUBST(WX_LIBRARY_BASENAME_NOGUI) AC_SUBST(WX_LIBRARY_BASENAME_GUI) -dnl debugging options -AC_SUBST(WXDEBUG_DEFINE) - dnl toolkit options AC_SUBST(USE_GUI) AC_SUBST(AFMINSTALL) @@ -6964,8 +7264,6 @@ AC_SUBST(TOOLKIT) AC_SUBST(TOOLKIT_DIR) AC_SUBST(TOOLCHAIN_NAME) AC_SUBST(TOOLCHAIN_FULLNAME) -AC_SUBST(TOOLCHAIN_DEFS) -AC_SUBST(TOOLCHAIN_DLL_DEFS) dnl wx-config options AC_SUBST(host_alias) @@ -6976,14 +7274,25 @@ AC_SUBST(WX_VERSION) AC_SUBST(WX_SUBVERSION) AC_SUBST(WX_CHARTYPE) AC_SUBST(WX_DEBUGTYPE) -AC_SUBST(WXCONFIG_EXTRALIBS) -AC_SUBST(WXCONFIG_INCLUDE) + +dnl note that in addition to the usual CPP/C/CXXFLAGS which are used for +dnl building the library itself, we also have WXCONFIG_-prefixed variants which +dnl are used when building the libraries using the library +dnl +dnl so put anything which should be used only during the library build in, e.g. +dnl CXXFLAGS, but put everything else (by default) into WXCONFIG_CXXFLAGS +dnl +dnl and, finally, for some things which should be only used by wx-config but +dnl not during the library compilation, use WXCONFIG_ONLY_CPPFLAGS which is +dnl added to WXCONFIG_CPPFLAGS after adding the latter to CPPFLAGS +AC_SUBST(WXCONFIG_CPPFLAGS) +AC_SUBST(WXCONFIG_CFLAGS) +AC_SUBST(WXCONFIG_CXXFLAGS) + +AC_SUBST(WXCONFIG_LIBS) AC_SUBST(WXCONFIG_RPATH) AC_SUBST(WXCONFIG_LDFLAGS_GUI) -AC_SUBST(WX_LARGEFILE_FLAGS) -AC_SUBST(GCC_PRAGMA_FLAGS) -AC_SUBST(CODE_GEN_FLAGS) -AC_SUBST(CODE_GEN_FLAGS_CXX) +AC_SUBST(WXCONFIG_RESFLAGS) AC_SUBST(EXE_LINKER) dnl distribution vars @@ -7002,6 +7311,8 @@ AC_SUBST(WX_VERSION_TAG) dnl additional resurces settings AC_SUBST(RESCOMP) +AC_SUBST(WINDRES) +AC_SUBST(REZ) AC_SUBST(RESFLAGS) AC_SUBST(RESPROGRAMOBJ) AC_SUBST(WX_RESOURCES_MACOSX_ASCII) @@ -7010,9 +7321,8 @@ AC_SUBST(WX_RESOURCES_MACOSX_DATA) dnl additional for Mac OS X AC_SUBST(DEREZ) AC_SUBST(LIBWXMACRES) -AC_SUBST(MACRESCOMP) +AC_SUBST(POSTLINK_COMMAND) AC_SUBST(MACSETFILE) -AC_SUBST(MACRESWXCONFIG) dnl other tools AC_SUBST(GCC) @@ -7027,6 +7337,23 @@ AC_PROG_MAKE_SET AC_CONFIG_HEADERS([lib/wx/include/${TOOLCHAIN_FULLNAME}/wx/setup.h:setup.h.in]) +if test "$USE_WIN32" = 1; then + AC_CONFIG_COMMANDS( + [ + rcdefs.h + ], + [ + mkdir -p $outdir && + $CPP $infile | sed 's/^# *[1-9].*//;s/^ *//;/./,/^$/!d' > $outdir/rcdefs.h + ], + [ + CPP="$CPP" + infile="$srcdir/include/wx/msw/genrcdefs.h" + outdir="lib/wx/include/$TOOLCHAIN_FULLNAME/wx/msw" + ] + ) +fi + AC_CONFIG_FILES([ lib/wx/config/${TOOLCHAIN_FULLNAME}:wx-config.in ], [ chmod +x lib/wx/config/${TOOLCHAIN_FULLNAME} ], [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ]) @@ -7037,8 +7364,7 @@ AC_CONFIG_FILES([ lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}:wx-config-inplace. AC_CONFIG_FILES([ version-script Makefile ]) -AC_CONFIG_COMMANDS([ wx-config - ], +AC_CONFIG_COMMANDS([wx-config], [ rm -f wx-config ${LN_S} lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} wx-config ], @@ -7053,7 +7379,7 @@ dnl on platforms that do not have symlinks. dnl AC_CONFIG_LINKS([ include/wx-$WX_RELEASE$WX_FLAVOUR:include ]) dnl AC_CONFIG_LINKS([ contrib/include ]) - +if test "$wxWITH_SUBDIRS" != "no"; then dnl Configure samples, contrib etc. directories, but only if they are present: if test "$wxUSE_GUI" = "yes"; then SUBDIRS="samples demos utils contrib" @@ -7110,7 +7436,7 @@ for subdir in `echo $SUBDIRS`; do done fi done - +fi dnl wxWITH_SUBDIRS AC_OUTPUT @@ -7126,8 +7452,8 @@ echo " Should wxWidgets be linked as a shared library? ${wxUSE_SHARED:- echo " Should wxWidgets be compiled in Unicode mode? ${wxUSE_UNICODE:-no}" echo " What level of wxWidgets compatibility should be enabled?" -echo " wxWidgets 2.2 ${WXWIN_COMPATIBILITY_2_2:-no}" -echo " wxWidgets 2.4 ${WXWIN_COMPATIBILITY_2_4:-yes}" +echo " wxWidgets 2.4 ${WXWIN_COMPATIBILITY_2_4:-no}" +echo " wxWidgets 2.6 ${WXWIN_COMPATIBILITY_2_6:-yes}" echo " Which libraries should wxWidgets use?" echo " jpeg ${wxUSE_LIBJPEG-none}"