X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8c5395826817b4a7a7359c8fa2c5f32141ba02a3..80a779275ae04443c568dca919adb26cf6f5002c:/configure.in?ds=sidebyside diff --git a/configure.in b/configure.in index 1c093c21cc..38a18b2e7a 100644 --- a/configure.in +++ b/configure.in @@ -17,7 +17,7 @@ dnl --------------------------------------------------------------------------- dnl initialization dnl --------------------------------------------------------------------------- -AC_INIT([wxWidgets], [2.6.1], [wx-dev@lists.wxwidgets.org]) +AC_INIT([wxWidgets], [2.7.1], [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]) @@ -31,33 +31,11 @@ AC_CANONICAL_TARGET dnl When making releases do: dnl dnl wx_release_number += 1 -dnl -dnl ..and update WX_CURRENT, WX_REVISION and WX_AGE according to the -dnl following rules: -dnl -dnl If any changes have been made to the public interface, that is if any -dnl exported class, method, global or global type has been added, removed -dnl or changed in any way, then do: WX_CURRENT += 1 -dnl -dnl If source changes have been made that *do not* alter the public -dnl interface then do: WX_REVISION += 1 -dnl If WX_CURRENT was incremented (as above) instead do: WX_REVISION = 0 -dnl -dnl If any public interface was added, do: WX_AGE += 1 -dnl If any public interface was removed (or altered in a way effectively -dnl removing the previous definition), instead do: WX_AGE = 0 -dnl -dnl When the major or minor version numbers are incremented, all the above -dnl variables should be reset to 0. wx_subrelease_number should be set to zero -dnl when major, minor or release numbers change. -dnl -dnl The resulting library name will be of the form: -dnl libwx_$(TOOLKIT)-$(WX_RELEASE).so.$(WX_CURRENT).$(WX_REVISION).$(WX_AGE) wx_major_version_number=2 -wx_minor_version_number=6 +wx_minor_version_number=7 wx_release_number=1 -wx_subrelease_number=1 +wx_subrelease_number=2 WX_RELEASE=$wx_major_version_number.$wx_minor_version_number WX_VERSION=$WX_RELEASE.$wx_release_number @@ -65,9 +43,6 @@ WX_SUBVERSION=$WX_VERSION.$wx_subrelease_number WX_MSW_VERSION=$wx_major_version_number$wx_minor_version_number$wx_release_number -WX_CURRENT=0 -WX_REVISION=1 -WX_AGE=0 dnl ------------------------------------------------------------------------ @@ -114,7 +89,7 @@ NEEDS_D_REENTRANT_FOR_R_FUNCS=0 dnl the list of all available toolkits dnl dnl update NUM_TOOLKITS calculation below when adding a new toolkit here! -ALL_TOOLKITS="COCOA GTK MAC MGL MICROWIN MOTIF MSW PM X11" +ALL_TOOLKITS="COCOA GTK MAC MGL MICROWIN MOTIF MSW PM X11 DFB" dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones dnl which are either yes or no @@ -127,6 +102,7 @@ DEFAULT_wxUSE_MOTIF=0 DEFAULT_wxUSE_MSW=0 DEFAULT_wxUSE_PM=0 DEFAULT_wxUSE_X11=0 +DEFAULT_wxUSE_DFB=0 dnl these are the values which are really default for the given platform - dnl they're not cached and are only used if no --with-toolkit was given *and* @@ -140,6 +116,7 @@ DEFAULT_DEFAULT_wxUSE_MOTIF=0 DEFAULT_DEFAULT_wxUSE_MSW=0 DEFAULT_DEFAULT_wxUSE_PM=0 DEFAULT_DEFAULT_wxUSE_X11=0 +DEFAULT_DEFAULT_wxUSE_DFB=0 PROGRAM_EXT= SO_SUFFIX=so @@ -159,6 +136,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 @@ -212,7 +193,7 @@ case "${host}" in AC_DEFINE(__BSD__) DEFAULT_DEFAULT_wxUSE_GTK=1 ;; - *-*-openbsd*) + *-*-openbsd*|*-*-mirbsd*) USE_BSD=1 USE_OPENBSD=1 AC_DEFINE(__OPENBSD__) @@ -225,6 +206,11 @@ case "${host}" in AC_DEFINE(__NETBSD__) AC_DEFINE(__BSD__) DEFAULT_DEFAULT_wxUSE_GTK=1 + NEEDS_D_REENTRANT_FOR_R_FUNCS=1 + + dnl some standard declarations in NetBSD headers are only included if + dnl _NETBSD_SOURCE and _LIBC are defined, e.g. getservbyname_r in netdb.h + CPPFLAGS="-D_NETBSD_SOURCE -D_LIBC $CPPFLAGS" ;; *-*-osf* ) USE_ALPHA=1 @@ -277,7 +263,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 ;; @@ -324,8 +309,8 @@ case "${host}" in DEFAULT_STD_FLAG=no ;; - powerpc-*-darwin* ) - dnl PowerPC Darwin based distributions (including Mac OS X) + *-*-darwin* ) + dnl Darwin based distributions (including Mac OS X) USE_BSD=1 USE_DARWIN=1 SO_SUFFIX=dylib @@ -355,7 +340,11 @@ case "${host}" in ;; *) - AC_MSG_ERROR(unknown system type ${host}.) + AC_MSG_WARN([*** System type ${host} is unknown, assuming generic Unix and continuing nevertheless.]) + AC_MSG_WARN([*** Please report the build results to wx-dev@lists.wxwidgets.org.]) + + DEFAULT_DEFAULT_wxUSE_X11=1 + DEFAULT_wxUSE_SHARED=no esac dnl --------------------------------------------------------------------------- @@ -381,12 +370,13 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_THREADS=yes - DEFAULT_wxUSE_SHARED=yes + DEFAULT_wxUSE_SHARED=${DEFAULT_wxUSE_SHARED:-yes} DEFAULT_wxUSE_OPTIMISE=no DEFAULT_wxUSE_PROFILE=no DEFAULT_wxUSE_NO_DEPS=no DEFAULT_wxUSE_NO_RTTI=no DEFAULT_wxUSE_NO_EXCEPTIONS=no + DEFAULT_wxUSE_UNIVERSAL_BINARY=no DEFAULT_wxUSE_RPATH=yes DEFAULT_wxUSE_PERMISSIVE=no DEFAULT_wxUSE_DEBUG_FLAG=yes @@ -417,6 +407,8 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_LIBMSPACK=no DEFAULT_wxUSE_LIBSDL=no DEFAULT_wxUSE_LIBGNOMEPRINT=no + DEFAULT_wxUSE_LIBGNOMEVFS=no + DEFAULT_wxUSE_LIBHILDON=no DEFAULT_wxUSE_ODBC=no DEFAULT_wxUSE_OPENGL=no @@ -436,7 +428,9 @@ 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_GSTREAMER8=no + DEFAULT_wxUSE_PRINTF_POS_PARAMS=no DEFAULT_wxUSE_INTL=no DEFAULT_wxUSE_CONFIG=no DEFAULT_wxUSE_FONTMAP=no @@ -482,7 +476,9 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_PROTOCOL_FTP=no DEFAULT_wxUSE_PROTOCOL_FILE=no DEFAULT_wxUSE_URL=no + DEFAULT_wxUSE_VARIANT=no + DEFAULT_wxUSE_ABOUTDLG=no DEFAULT_wxUSE_COMMONDLGS=no DEFAULT_wxUSE_CHOICEDLG=no DEFAULT_wxUSE_COLOURDLG=no @@ -501,7 +497,9 @@ 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_AUI=no DEFAULT_wxUSE_WEBKIT=no DEFAULT_wxUSE_FILESYSTEM=no DEFAULT_wxUSE_FS_INET=no @@ -512,24 +510,36 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_VALIDATORS=no DEFAULT_wxUSE_ACCEL=no + DEFAULT_wxUSE_ANIMATIONCTRL=no DEFAULT_wxUSE_BUTTON=no DEFAULT_wxUSE_BMPBUTTON=no + DEFAULT_wxUSE_BITMAPCOMBOBOX=no DEFAULT_wxUSE_CALCTRL=no DEFAULT_wxUSE_CARET=no DEFAULT_wxUSE_CHECKBOX=no DEFAULT_wxUSE_CHECKLST=no DEFAULT_wxUSE_CHOICE=no DEFAULT_wxUSE_CHOICEBOOK=no + DEFAULT_wxUSE_COLOURPICKERCTRL=no DEFAULT_wxUSE_COMBOBOX=no + DEFAULT_wxUSE_COMBOCTRL=no DEFAULT_wxUSE_DATEPICKCTRL=no DEFAULT_wxUSE_DISPLAY=no + DEFAULT_wxUSE_DETECT_SM=no + DEFAULT_wxUSE_DIRPICKERCTRL=no + DEFAULT_wxUSE_FILEPICKERCTRL=no + DEFAULT_wxUSE_FONTPICKERCTRL=no DEFAULT_wxUSE_GAUGE=no + DEFAULT_wxUSE_GRAPHICS_CONTEXT=no DEFAULT_wxUSE_GRID=no + DEFAULT_wxUSE_HYPERLINKCTRL=no + DEFAULT_wxUSE_DATAVIEWCTRL=no DEFAULT_wxUSE_IMAGLIST=no DEFAULT_wxUSE_LISTBOOK=no DEFAULT_wxUSE_LISTBOX=no DEFAULT_wxUSE_LISTCTRL=no DEFAULT_wxUSE_NOTEBOOK=no + DEFAULT_wxUSE_ODCOMBOBOX=no DEFAULT_wxUSE_RADIOBOX=no DEFAULT_wxUSE_RADIOBTN=no DEFAULT_wxUSE_SASH=no @@ -543,12 +553,13 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_STATLINE=no DEFAULT_wxUSE_STATTEXT=no DEFAULT_wxUSE_STATUSBAR=yes - DEFAULT_wxUSE_TABDIALOG=no + DEFAULT_wxUSE_TAB_DIALOG=no DEFAULT_wxUSE_TEXTCTRL=no DEFAULT_wxUSE_TOGGLEBTN=no DEFAULT_wxUSE_TOOLBAR=no DEFAULT_wxUSE_TOOLBAR_NATIVE=no - DEFAULT_wxUSE_TOOLBAR_SIMPLE=no + DEFAULT_wxUSE_TREEBOOK=no + DEFAULT_wxUSE_TOOLBOOK=no DEFAULT_wxUSE_TREECTRL=no DEFAULT_wxUSE_POPUPWIN=no DEFAULT_wxUSE_TIPWINDOW=no @@ -566,7 +577,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 @@ -578,12 +589,13 @@ else DEFAULT_wxUSE_THREADS=yes - DEFAULT_wxUSE_SHARED=yes + DEFAULT_wxUSE_SHARED=${DEFAULT_wxUSE_SHARED:-yes} DEFAULT_wxUSE_OPTIMISE=yes DEFAULT_wxUSE_PROFILE=no DEFAULT_wxUSE_NO_DEPS=no DEFAULT_wxUSE_NO_RTTI=no DEFAULT_wxUSE_NO_EXCEPTIONS=no + DEFAULT_wxUSE_UNIVERSAL_BINARY=no DEFAULT_wxUSE_RPATH=yes DEFAULT_wxUSE_PERMISSIVE=no DEFAULT_wxUSE_DEBUG_FLAG=no @@ -613,6 +625,8 @@ else DEFAULT_wxUSE_LIBMSPACK=yes DEFAULT_wxUSE_LIBSDL=no DEFAULT_wxUSE_LIBGNOMEPRINT=no + DEFAULT_wxUSE_LIBGNOMEVFS=no + DEFAULT_wxUSE_LIBHILDON=no DEFAULT_wxUSE_ODBC=no DEFAULT_wxUSE_OPENGL=no @@ -633,6 +647,8 @@ else DEFAULT_wxUSE_TEXTFILE=yes DEFAULT_wxUSE_SOUND=yes DEFAULT_wxUSE_MEDIACTRL=no + DEFAULT_wxUSE_GSTREAMER8=no + DEFAULT_wxUSE_PRINTF_POS_PARAMS=yes DEFAULT_wxUSE_INTL=yes DEFAULT_wxUSE_CONFIG=yes DEFAULT_wxUSE_FONTMAP=yes @@ -678,7 +694,9 @@ else DEFAULT_wxUSE_PROTOCOL_FTP=yes DEFAULT_wxUSE_PROTOCOL_FILE=yes DEFAULT_wxUSE_URL=yes + DEFAULT_wxUSE_VARIANT=yes + DEFAULT_wxUSE_ABOUTDLG=yes DEFAULT_wxUSE_COMMONDLGS=yes DEFAULT_wxUSE_CHOICEDLG=yes DEFAULT_wxUSE_COLOURDLG=yes @@ -697,7 +715,9 @@ else DEFAULT_wxUSE_MENUS=yes DEFAULT_wxUSE_MINIFRAME=yes DEFAULT_wxUSE_HTML=yes + DEFAULT_wxUSE_RICHTEXT=yes DEFAULT_wxUSE_XRC=yes + DEFAULT_wxUSE_AUI=yes DEFAULT_wxUSE_WEBKIT=yes DEFAULT_wxUSE_FILESYSTEM=yes DEFAULT_wxUSE_FS_INET=yes @@ -708,24 +728,36 @@ else DEFAULT_wxUSE_VALIDATORS=yes DEFAULT_wxUSE_ACCEL=yes + DEFAULT_wxUSE_ANIMATIONCTRL=yes DEFAULT_wxUSE_BUTTON=yes DEFAULT_wxUSE_BMPBUTTON=yes + DEFAULT_wxUSE_BITMAPCOMBOBOX=yes DEFAULT_wxUSE_CALCTRL=yes DEFAULT_wxUSE_CARET=yes DEFAULT_wxUSE_CHECKBOX=yes DEFAULT_wxUSE_CHECKLST=yes DEFAULT_wxUSE_CHOICE=yes DEFAULT_wxUSE_CHOICEBOOK=yes + DEFAULT_wxUSE_COLOURPICKERCTRL=yes DEFAULT_wxUSE_COMBOBOX=yes + DEFAULT_wxUSE_COMBOCTRL=yes DEFAULT_wxUSE_DATEPICKCTRL=yes DEFAULT_wxUSE_DISPLAY=yes + DEFAULT_wxUSE_DETECT_SM=yes + DEFAULT_wxUSE_DIRPICKERCTRL=yes + DEFAULT_wxUSE_FILEPICKERCTRL=yes + DEFAULT_wxUSE_FONTPICKERCTRL=yes DEFAULT_wxUSE_GAUGE=yes DEFAULT_wxUSE_GRID=yes + DEFAULT_wxUSE_GRAPHICS_CONTEXT=no + DEFAULT_wxUSE_HYPERLINKCTRL=yes + DEFAULT_wxUSE_DATAVIEWCTRL=no DEFAULT_wxUSE_IMAGLIST=yes DEFAULT_wxUSE_LISTBOOK=yes DEFAULT_wxUSE_LISTBOX=yes DEFAULT_wxUSE_LISTCTRL=yes DEFAULT_wxUSE_NOTEBOOK=yes + DEFAULT_wxUSE_ODCOMBOBOX=yes DEFAULT_wxUSE_RADIOBOX=yes DEFAULT_wxUSE_RADIOBTN=yes DEFAULT_wxUSE_SASH=yes @@ -739,12 +771,13 @@ else DEFAULT_wxUSE_STATLINE=yes DEFAULT_wxUSE_STATTEXT=yes DEFAULT_wxUSE_STATUSBAR=yes - DEFAULT_wxUSE_TABDIALOG=no + DEFAULT_wxUSE_TAB_DIALOG=no DEFAULT_wxUSE_TEXTCTRL=yes DEFAULT_wxUSE_TOGGLEBTN=yes DEFAULT_wxUSE_TOOLBAR=yes DEFAULT_wxUSE_TOOLBAR_NATIVE=yes - DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes + DEFAULT_wxUSE_TREEBOOK=yes + DEFAULT_wxUSE_TOOLBOOK=yes DEFAULT_wxUSE_TREECTRL=yes DEFAULT_wxUSE_POPUPWIN=yes DEFAULT_wxUSE_TIPWINDOW=yes @@ -762,12 +795,12 @@ 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 - dnl Appliable only when --with-gtk was used: + dnl Applicable only when --with-gtk was used: DEFAULT_wxUSE_GTK2=yes fi @@ -788,7 +821,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" @@ -807,6 +840,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 @@ -819,6 +853,7 @@ AC_ARG_WITH(wine, [ --with-wine use Wine], [wxUSE_WINE="$w AC_ARG_WITH(msw, [ --with-msw use MS-Windows], [wxUSE_MSW="$withval" CACHE_MSW=1 TOOLKIT_GIVEN=1]) AC_ARG_WITH(pm, [ --with-pm use OS/2 Presentation Manager], [wxUSE_PM="$withval" CACHE_PM=1 TOOLKIT_GIVEN=1]) AC_ARG_WITH(mgl, [ --with-mgl use SciTech MGL], [wxUSE_MGL="$withval" wxUSE_UNIVERSAL="yes" CACHE_MGL=1 TOOLKIT_GIVEN=1]) +AC_ARG_WITH(directfb, [ --with-directfb use DirectFB], [wxUSE_DFB="$withval" wxUSE_UNIVERSAL="yes" CACHE_DFB=1 TOOLKIT_GIVEN=1]) 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) @@ -832,9 +867,15 @@ WX_ARG_SYS_WITH(libtiff, [ --with-libtiff use libtiff (TIFF file for WX_ARG_SYS_WITH(libxpm, [ --with-libxpm use libxpm (XPM file format)], wxUSE_LIBXPM) WX_ARG_WITH(libmspack, [ --with-libmspack use libmspack (CHM help files loading)], wxUSE_LIBMSPACK) WX_ARG_WITH(sdl, [ --with-sdl use SDL for audio on Unix], wxUSE_LIBSDL) -WX_ARG_WITH(gnomeprint, [ --with-gnomeprint use GNOME print for printing under Unix], wxUSE_LIBGNOMEPRINT) +WX_ARG_WITH(gnomeprint, [ --with-gnomeprint use GNOME print for printing under GNOME], wxUSE_LIBGNOMEPRINT) +WX_ARG_WITH(gnomevfs, [ --with-gnomevfs use GNOME VFS for associating MIME types], wxUSE_LIBGNOMEVFS) +WX_ARG_WITH(hildon, [ --with-hildon use Hildon framework for Nokia 770], wxUSE_LIBHILDON) WX_ARG_WITH(opengl, [ --with-opengl use OpenGL (or Mesa)], wxUSE_OPENGL) +if test "$wxUSE_UNIVERSAL" = "yes"; then + AC_ARG_WITH(themes, [ --with-themes=all|list use only the specified comma-separated list of wxUniversal themes], [wxUNIV_THEMES="$withval"]) +fi + fi dnl for GUI only @@ -877,9 +918,10 @@ WX_ARG_ENABLE(no_rtti, [ --enable-no_rtti create code without RTTI WX_ARG_ENABLE(no_exceptions, [ --enable-no_exceptions create code without C++ exceptions handling], wxUSE_NO_EXCEPTIONS) 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_PARAM(universal_binary, [[ --enable-universal_binary[=SDK] create Mac PowerPC and Intel Universal binary (not yet working)]], wxUSE_UNIVERSAL_BINARY) -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) @@ -937,10 +979,12 @@ WX_ARG_ENABLE(timer, [ --enable-timer use wxTimer class], wxUS WX_ARG_ENABLE(unicode, [ --enable-unicode compile wxString with Unicode support], wxUSE_UNICODE) WX_ARG_ENABLE(sound, [ --enable-sound use wxSound class], wxUSE_SOUND) WX_ARG_ENABLE(mediactrl, [ --enable-mediactrl use wxMediaCtrl class], wxUSE_MEDIACTRL) -WX_ARG_ENABLE(wxprintfv, [ --enable-wxprintfv use wxWidgets implementation of vprintf()], wxUSE_EXPERIMENTAL_PRINTF) +WX_ARG_ENABLE(gstreamer8, [ --enable-gstreamer8 force GStreamer 0.8 instead of 0.10 with the wxMediaCtrl class on unix], wxUSE_GSTREAMER8) +WX_ARG_ENABLE(printfposparam,[ --enable-printfposparam use wxVsnprintf() which supports positional parameters], wxUSE_PRINTF_POS_PARAMS) WX_ARG_ENABLE(zipstream, [ --enable-zipstream use wxZip streams], wxUSE_ZIPSTREAM) WX_ARG_ENABLE(url, [ --enable-url use wxURL class], wxUSE_URL) +WX_ARG_ENABLE(variant, [ --enable-variant use wxVariant class], wxUSE_VARIANT) WX_ARG_ENABLE(protocol, [ --enable-protocol use wxProtocol class], wxUSE_PROTOCOL) WX_ARG_ENABLE(protocol_http, [ --enable-protocol-http HTTP support in wxProtocol], wxUSE_PROTOCOL_HTTP) WX_ARG_ENABLE(protocol_ftp, [ --enable-protocol-ftp FTP support in wxProtocol], wxUSE_PROTOCOL_FTP) @@ -965,6 +1009,7 @@ WX_ARG_ENABLE(mshtmlhelp, [ --enable-mshtmlhelp use MS HTML Help (win32)], WX_ARG_ENABLE(html, [ --enable-html use wxHTML sub-library], wxUSE_HTML) WX_ARG_ENABLE(htmlhelp, [ --enable-htmlhelp use wxHTML-based help], wxUSE_WXHTML_HELP) WX_ARG_ENABLE(xrc, [ --enable-xrc use XRC resources sub-library], wxUSE_XRC) +WX_ARG_ENABLE(aui, [ --enable-aui use AUI docking library], wxUSE_AUI) WX_ARG_ENABLE(constraints, [ --enable-constraints use layout-constraints system], wxUSE_CONSTRAINTS) WX_ARG_ENABLE(printarch, [ --enable-printarch use printing architecture], wxUSE_PRINTING_ARCHITECTURE) WX_ARG_ENABLE(mdi, [ --enable-mdi use multiple document interface architecture], wxUSE_MDI) @@ -973,6 +1018,8 @@ 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) +WX_ARG_ENABLE(graphics_ctx, [ --enable-graphics_ctx use graphics context 2D drawing API], wxUSE_GRAPHICS_CONTEXT) dnl --------------------------------------------------------------------------- dnl PostScript options @@ -1011,6 +1058,7 @@ dnl --disable- later on the command line - but by default all will be dnl used (and vice versa) if test "$wxUSE_CONTROLS" = "yes"; then DEFAULT_wxUSE_ACCEL=yes + DEFAULT_wxUSE_ANIMATIONCTRL=yes DEFAULT_wxUSE_BMPBUTTON=yes DEFAULT_wxUSE_BUTTON=yes DEFAULT_wxUSE_CALCTRL=yes @@ -1020,9 +1068,18 @@ if test "$wxUSE_CONTROLS" = "yes"; then DEFAULT_wxUSE_CHECKLISTBOX=yes DEFAULT_wxUSE_CHOICE=yes DEFAULT_wxUSE_CHOICEBOOK=yes + DEFAULT_wxUSE_COLOURPICKERCTRL=yes + DEFAULT_wxUSE_COMBOBOX=yes DEFAULT_wxUSE_DATEPICKCTRL=yes + DEFAULT_wxUSE_DISPLAY=yes + DEFAULT_wxUSE_DETECT_SM=yes + DEFAULT_wxUSE_DIRPICKERCTRL=yes + DEFAULT_wxUSE_FILEPICKERCTRL=yes + DEFAULT_wxUSE_FONTPICKERCTRL=yes DEFAULT_wxUSE_GAUGE=yes DEFAULT_wxUSE_GRID=yes + DEFAULT_wxUSE_HYPERLINKCTRL=yes + DEFAULT_wxUSE_DATAVIEWCTRL=no DEFAULT_wxUSE_IMAGLIST=yes DEFAULT_wxUSE_LISTBOOK=yes DEFAULT_wxUSE_LISTBOX=yes @@ -1044,13 +1101,15 @@ if test "$wxUSE_CONTROLS" = "yes"; then DEFAULT_wxUSE_TOGGLEBTN=yes DEFAULT_wxUSE_TOOLBAR=yes DEFAULT_wxUSE_TOOLBAR_NATIVE=yes - DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes DEFAULT_wxUSE_TOOLTIPS=yes + DEFAULT_wxUSE_TREEBOOK=yes + DEFAULT_wxUSE_TOOLBOOK=yes DEFAULT_wxUSE_TREECTRL=yes DEFAULT_wxUSE_POPUPWIN=yes DEFAULT_wxUSE_TIPWINDOW=yes elif test "$wxUSE_CONTROLS" = "no"; then DEFAULT_wxUSE_ACCEL=no + DEFAULT_wxUSE_ANIMATIONCTRL=no DEFAULT_wxUSE_BMPBUTTON=no DEFAULT_wxUSE_BUTTON=no DEFAULT_wxUSE_CALCTRL=no @@ -1060,9 +1119,18 @@ elif test "$wxUSE_CONTROLS" = "no"; then DEFAULT_wxUSE_CHECKLISTBOX=no DEFAULT_wxUSE_CHOICE=no DEFAULT_wxUSE_CHOICEBOOK=no + DEFAULT_wxUSE_COLOURPICKERCTRL=no + DEFAULT_wxUSE_COMBOBOX=no DEFAULT_wxUSE_DATEPICKCTRL=no + DEFAULT_wxUSE_DISPLAY=no + DEFAULT_wxUSE_DETECT_SM=no + DEFAULT_wxUSE_DIRPICKERCTRL=no + DEFAULT_wxUSE_FILEPICKERCTRL=no + DEFAULT_wxUSE_FONTPICKERCTRL=no DEFAULT_wxUSE_GAUGE=no DEFAULT_wxUSE_GRID=no + DEFAULT_wxUSE_HYPERLINKCTRL=no + DEFAULT_wxUSE_DATAVIEWCTRL=no DEFAULT_wxUSE_IMAGLIST=no DEFAULT_wxUSE_LISTBOOK=no DEFAULT_wxUSE_LISTBOX=no @@ -1084,32 +1152,44 @@ elif test "$wxUSE_CONTROLS" = "no"; then DEFAULT_wxUSE_TOGGLEBTN=no DEFAULT_wxUSE_TOOLBAR=no DEFAULT_wxUSE_TOOLBAR_NATIVE=no - DEFAULT_wxUSE_TOOLBAR_SIMPLE=no DEFAULT_wxUSE_TOOLTIPS=no + DEFAULT_wxUSE_TREEBOOK=no + DEFAULT_wxUSE_TOOLBOOK=no DEFAULT_wxUSE_TREECTRL=no DEFAULT_wxUSE_POPUPWIN=no DEFAULT_wxUSE_TIPWINDOW=no fi WX_ARG_ENABLE(accel, [ --enable-accel use accelerators], wxUSE_ACCEL) +WX_ARG_ENABLE(animatectrl, [ --enable-animatectrl use wxAnimationCtrl class], wxUSE_ANIMATIONCTRL) WX_ARG_ENABLE(button, [ --enable-button use wxButton class], wxUSE_BUTTON) WX_ARG_ENABLE(bmpbutton, [ --enable-bmpbutton use wxBitmapButton class], wxUSE_BMPBUTTON) +WX_ARG_ENABLE(bmpcombobox, [ --enable-bmpcombobox use wxBitmapComboBox class], wxUSE_BITMAPCOMBOBOX) WX_ARG_ENABLE(calendar, [ --enable-calendar use wxCalendarCtrl class], wxUSE_CALCTRL) WX_ARG_ENABLE(caret, [ --enable-caret use wxCaret class], wxUSE_CARET) WX_ARG_ENABLE(checkbox, [ --enable-checkbox use wxCheckBox class], wxUSE_CHECKBOX) WX_ARG_ENABLE(checklst, [ --enable-checklst use wxCheckListBox (listbox with checkboxes) class], wxUSE_CHECKLST) WX_ARG_ENABLE(choice, [ --enable-choice use wxChoice class], wxUSE_CHOICE) WX_ARG_ENABLE(choicebook, [ --enable-choicebook use wxChoicebook class], wxUSE_CHOICEBOOK) +WX_ARG_ENABLE(colourpicker,[ --enable-colourpicker use wxColourPickerCtrl class], wxUSE_COLOURPICKERCTRL) WX_ARG_ENABLE(combobox, [ --enable-combobox use wxComboBox class], wxUSE_COMBOBOX) +WX_ARG_ENABLE(comboctrl, [ --enable-comboctrl use wxComboCtrl class], wxUSE_COMBOCTRL) WX_ARG_ENABLE(datepick, [ --enable-datepick use wxDatePickerCtrl class], wxUSE_DATEPICKCTRL) +WX_ARG_ENABLE(dirpicker, [ --enable-dirpicker use wxDirPickerCtrl class], wxUSE_DIRPICKERCTRL) WX_ARG_ENABLE(display, [ --enable-display use wxDisplay class], wxUSE_DISPLAY) +WX_ARG_ENABLE(detect_sm, [ --enable-detect_sm use code to detect X11 session manager], wxUSE_DETECT_SM) +WX_ARG_ENABLE(filepicker, [ --enable-filepicker use wxFilePickerCtrl class], wxUSE_FILEPICKERCTRL) +WX_ARG_ENABLE(fontpicker, [ --enable-fontpicker use wxFontPickerCtrl class], wxUSE_FONTPICKERCTRL) WX_ARG_ENABLE(gauge, [ --enable-gauge use wxGauge class], wxUSE_GAUGE) WX_ARG_ENABLE(grid, [ --enable-grid use wxGrid class], wxUSE_GRID) +WX_ARG_ENABLE(dataviewctrl,[ --enable-dataviewctrl, use wxDataViewCtrl class], wxUSE_DATAVIEWCTRL) +WX_ARG_ENABLE(hyperlink, [ --enable-hyperlink use wxHyperlinkCtrl class], wxUSE_HYPERLINKCTRL) WX_ARG_ENABLE(imaglist, [ --enable-imaglist use wxImageList class], wxUSE_IMAGLIST) WX_ARG_ENABLE(listbook, [ --enable-listbook use wxListbook class], wxUSE_LISTBOOK) WX_ARG_ENABLE(listbox, [ --enable-listbox use wxListBox class], wxUSE_LISTBOX) WX_ARG_ENABLE(listctrl, [ --enable-listctrl use wxListCtrl class], wxUSE_LISTCTRL) WX_ARG_ENABLE(notebook, [ --enable-notebook use wxNotebook class], wxUSE_NOTEBOOK) +WX_ARG_ENABLE(odcombobox, [ --enable-odcombobox use wxOwnerDrawnComboBox class], wxUSE_ODCOMBOBOX) WX_ARG_ENABLE(radiobox, [ --enable-radiobox use wxRadioBox class], wxUSE_RADIOBOX) WX_ARG_ENABLE(radiobtn, [ --enable-radiobtn use wxRadioButton class], wxUSE_RADIOBTN) WX_ARG_ENABLE(sash, [ --enable-sash use wxSashWindow class], wxUSE_SASH) @@ -1123,12 +1203,13 @@ WX_ARG_ENABLE(statbox, [ --enable-statbox use wxStaticBox class], wx WX_ARG_ENABLE(statline, [ --enable-statline use wxStaticLine class], wxUSE_STATLINE) WX_ARG_ENABLE(stattext, [ --enable-stattext use wxStaticText class], wxUSE_STATTEXT) WX_ARG_ENABLE(statusbar, [ --enable-statusbar use wxStatusBar class], wxUSE_STATUSBAR) -WX_ARG_ENABLE(tabdialog, [ --enable-tabdialog use wxTabControl class], wxUSE_TABDIALOG) +WX_ARG_ENABLE(tabdialog, [ --enable-tabdialog use wxTabControl class], wxUSE_TAB_DIALOG) WX_ARG_ENABLE(textctrl, [ --enable-textctrl use wxTextCtrl class], wxUSE_TEXTCTRL) WX_ARG_ENABLE(togglebtn, [ --enable-togglebtn use wxToggleButton class], wxUSE_TOGGLEBTN) 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(toolbook, [ --enable-toolbook use wxToolbook class], wxUSE_TOOLBOOK) 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) @@ -1138,6 +1219,7 @@ dnl common dialogs dnl --------------------------------------------------------------------------- WX_ARG_ENABLE(commondlg, [ --enable-commondlg use all common dialogs], wxUSE_COMMONDLGS) +WX_ARG_ENABLE(aboutdlg, [ --enable-aboutdlg use wxAboutBox], wxUSE_ABOUTDLG) WX_ARG_ENABLE(choicedlg, [ --enable-choicedlg use wxChoiceDialog], wxUSE_CHOICEDLG) WX_ARG_ENABLE(coldlg, [ --enable-coldlg use wxColourDialog], wxUSE_COLOURDLG) WX_ARG_ENABLE(filedlg, [ --enable-filedlg use wxFileDialog], wxUSE_FILEDLG) @@ -1164,10 +1246,14 @@ WX_ARG_ENABLE(mousewheel, [ --enable-mousewheel use mousewheel], wxUSE_MOU WX_ARG_ENABLE(validators, [ --enable-validators use wxValidator and derived classes], wxUSE_VALIDATORS) WX_ARG_ENABLE(busyinfo, [ --enable-busyinfo use wxBusyInfo], wxUSE_BUSYINFO) WX_ARG_ENABLE(joystick, [ --enable-joystick use wxJoystick], wxUSE_JOYSTICK) -WX_ARG_ENABLE(metafile, [ --enable-metafiles use wxMetaFile (Windows only)], wxUSE_METAFILE) +WX_ARG_ENABLE(metafile, [ --enable-metafiles use wxMetaFile (Win32 only)], wxUSE_METAFILE) WX_ARG_ENABLE(dragimage, [ --enable-dragimage use wxDragImage], wxUSE_DRAGIMAGE) WX_ARG_ENABLE(accessibility,[ --enable-accessibility enable accessibility support], wxUSE_ACCESSIBILITY) +if test "$wxUSE_MSW" = "1"; then + WX_ARG_ENABLE(dccache, [ --enable-dccache cache temporary wxDC objects (Win32 only)], wxUSE_DC_CACHEING) +fi + dnl --------------------------------------------------------------------------- dnl support for image formats that do not rely on external library dnl --------------------------------------------------------------------------- @@ -1263,7 +1349,7 @@ if test "$wxUSE_GUI" = "yes"; then dnl we suppose that expr is available (maybe there is a better way to do dnl this? what about using ALL_TOOLKITS? TODO) NUM_TOOLKITS=`expr ${wxUSE_COCOA:-0} + ${wxUSE_GTK:-0} + ${wxUSE_MAC:-0} \ - + ${wxUSE_MGL:-0} + ${wxUSE_MICROWIN:-0} \ + + ${wxUSE_MGL:-0} + ${wxUSE_DFB:-0} + ${wxUSE_MICROWIN:-0} \ + ${wxUSE_MOTIF:-0} + ${wxUSE_MSW:-0} + ${wxUSE_X11:-0}` dnl Allow wxUSE_PM only for OS/2 with EMX. @@ -1328,6 +1414,7 @@ case "${host}" in *-*-cygwin*) if test "$wxUSE_MSW" = 1 ; then wants_win32=1 + BAKEFILE_FORCE_PLATFORM=win32 else doesnt_want_win32=1 fi @@ -1345,7 +1432,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 @@ -1379,24 +1465,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 @@ -1413,8 +1481,11 @@ dnl is -traditional needed for correct compilations dnl adds -traditional for gcc if needed AC_PROG_GCC_TRADITIONAL -AC_LANG_SAVE -AC_LANG_CPLUSPLUS +dnl do all checks from now on using the C++ compiler: this saves us a lot of +dnl problems with various functions which may be available in libc but not +dnl declared in the header and various pointer conversions which compile with +dnl the C compiler but not in C++ +AC_LANG_PUSH(C++) dnl C++-compiler checks dnl defines CXX with the compiler to use @@ -1426,15 +1497,13 @@ dnl see CFLAGS line above CXXFLAGS=${CXXFLAGS:=} AC_BAKEFILE_PROG_CXX -AC_LANG_RESTORE - dnl ranlib command dnl defines RANLIB with the appropriate command 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 @@ -1460,7 +1529,7 @@ case "${host}" in dnl The other BSD's should probably go in here too, since this is dnl to workaround a strange static lib BSDism. dnl Mac OS X install seems to ignore -p option... - powerpc-*-darwin* ) + *-*-darwin* ) INSTALL_PROGRAM="cp -fp" INSTALL_DATA="cp -fp" ;; @@ -1469,8 +1538,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, @@ -1535,18 +1621,18 @@ fi dnl not GNU make dnl needed for making link to setup.h AC_PROG_LN_S + dnl ------------------------------------------------------------------------ dnl Platform specific tests dnl ------------------------------------------------------------------------ -dnl xlC needs -qunique (at least on AIX) so that one source file can be +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"; then - CXXFLAGS="$CXXFLAGS -qunique" +if test "x$XLCXX" = "xyes" -a "x$USE_AIX" = "x1"; then + CXXFLAGS="-qunique $CXXFLAGS" fi - -dnl This case is for OS X vs. everything else +dnl This case is for PowerPC OS X vs. everything else case "${host}" in powerpc-*-darwin* ) AC_MSG_CHECKING([if __POWERPC__ is already defined]) @@ -1558,6 +1644,12 @@ case "${host}" in [AC_MSG_RESULT([no]) AC_DEFINE(__POWERPC__) ]) + ;; +esac + +dnl This case is for OS X vs. everything else +case "${host}" in + *-*-darwin* ) AC_MSG_CHECKING([if CoreFoundation/CFBase.h is usable]) AC_TRY_COMPILE([#include ],[], @@ -1570,7 +1662,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.])] ) ] @@ -1589,6 +1681,7 @@ case "${host}" in dnl not "g++/c++". dnl --------------------------------------------------------------------- dnl (OS/2-only piece) + AC_LANG_PUSH(C) if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_GTK" = 1 -o "$wxUSE_X11" = 1; then dnl More complete Unix emulation for unix-like ports dnl by linking in POSIX/2's cExt (if available). @@ -1604,7 +1697,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 @@ -1622,22 +1715,23 @@ case "${host}" in #else "Innotek6" #endif - ); + ); exit(0); } ], - wx_cv_gccversion=`cat conftestval`, + wx_cv_gccversion=`cat conftestval`, wx_cv_gccversion="EMX2", dnl Compilation error: Assuming standard EMX environment wx_cv_gccversion="EMX2" ) ]) + AC_LANG_POP if test "$wx_cv_gccversion" = "EMX2"; then LIBS="$LIBS -lstdcpp" LDFLAGS="$LDFLAGS -Zsysv-signals" else if test "$wx_cv_gccversion" = "EMX3"; then - LIBS="$LIBS -lstdcxx" + LIBS="$LIBS -lstdcxx -lgcc" LDFLAGS="$LDFLAGS -Zsysv-signals" else LIBS="$LIBS -lstdc++" @@ -1658,9 +1752,6 @@ case "${host}" in dnl --------------------------------------------------------------------- dnl (non-OS/2-only piece) - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_CACHE_CHECK([for strcasecmp() in string.h], ac_cv_string_strcasecmp, [ AC_TRY_LINK([ #include @@ -1695,7 +1786,6 @@ case "${host}" in fi fi - AC_LANG_RESTORE dnl (end of non-OS/2-only piece) ;; esac @@ -1722,10 +1812,6 @@ fi dnl defines HAVE_FNMATCH_H AC_CHECK_HEADERS(fnmatch.h) -if test "x$ac_cv_header_fnmatch_h" = "xyes"; then - AC_CHECK_FUNCS(fnmatch) -fi - dnl defines HAVE_LANGINFO_H (GNU libc locale parameters) AC_CHECK_HEADERS(langinfo.h) @@ -1742,17 +1828,9 @@ 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 +dnl POSIX needs this for select(), but old systems don't have it +if test "$USE_UNIX" = 1 ; then + AC_CHECK_HEADERS([sys/select.h]) fi dnl --------------------------------------------------------------------------- @@ -1782,7 +1860,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 ;; * ) @@ -1879,6 +1957,31 @@ else fi fi +dnl Check if variadic macros (C99 feature) are supported: +AC_CACHE_CHECK( + [whether the compiler supports variadic macros], + [wx_cv_have_variadic_macros], + [ + AC_COMPILE_IFELSE( + AC_LANG_PROGRAM( + [ + #include + #define test(fmt, ...) printf(fmt, __VA_ARGS__) + ], + [ + test("%s %d %p", "test", 1, 0); + ] + ), + [wx_cv_have_variadic_macros=yes], + [wx_cv_have_variadic_macros=no] + ) + ] +) + +if test $wx_cv_have_variadic_macros = "yes"; then + AC_DEFINE(HAVE_VARIADIC_MACROS) +fi + dnl check for large file support AC_SYS_LARGEFILE @@ -1889,16 +1992,43 @@ 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_TRY_COMPILE( + [], + [ + #ifndef __STDC_EXT__ + choke me + #endif + ], + wx_cv_STDC_EXT_required=no, + wx_cv_STDC_EXT_required=yes + ) + ] + ) + 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) @@ -1920,10 +2050,62 @@ AC_CXX_STATIC_CAST dnl we don't use HAVE_DYNAMIC_CAST anywhere right now... 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="-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 if test "$wxUSE_STD_STRING" = "yes" -o "$wxUSE_STL" = "yes"; then - AC_LANG_PUSH(C++) - if test "$wxUSE_UNICODE" = "yes"; then std_string="std::wstring" char_type="wchar_t" @@ -1968,13 +2150,9 @@ if test "$wxUSE_STD_STRING" = "yes" -o "$wxUSE_STL" = "yes"; then ] ) ]) - - AC_LANG_POP fi if test "$wxUSE_STD_IOSTREAM" = "yes"; then - AC_LANG_PUSH(C++) - AC_CHECK_TYPES([std::istream, std::ostream],, [wxUSE_STD_IOSTREAM=no], [#include ]) @@ -1986,13 +2164,9 @@ if test "$wxUSE_STD_IOSTREAM" = "yes"; then AC_MSG_WARN([No std::iostreams, switching to --disable-std_iostreams]) fi fi - - AC_LANG_POP fi if test "$wxUSE_STL" = "yes"; then - AC_LANG_PUSH(C++) - dnl check for basic STL functionality AC_MSG_CHECKING([for basic STL functionality]) AC_TRY_COMPILE([#include @@ -2002,7 +2176,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])], @@ -2047,8 +2221,6 @@ if test "$wxUSE_STL" = "yes"; then AC_DEFINE(HAVE_GNU_CXX_HASH_MAP)], [AC_MSG_RESULT(no)]) ]) - - AC_LANG_POP fi dnl --------------------------------------------------------------------------- @@ -2071,9 +2243,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 \ @@ -2102,42 +2271,105 @@ 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 + dnl for gcc cross-compilers "$CC -print-prog-name=ld" prints the path to + dnl the linker. Stripping off the trailing '/bin/ld' gives us a candiate + dnl for a 'root' below which libraries and headers for the target system + dnl might be installed. + if cross_root=`$CC -print-prog-name=ld 2>/dev/null`; then + cross_root=`dirname $cross_root` + cross_root=`dirname $cross_root` + + dnl substitute this candiate root for '^/usr' in the search lists, + 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 + PKG_CONFIG_PATH="$cross_root/local/lib/pkgconfig:$cross_root/lib/pkgconfig" + export PKG_CONFIG_PATH + fi + + dnl AC_PATH_XTRA doesn't work currently unless -x-includes and + dnl -x-libraries are given on the command line. So if they are not + dnl set then set them here to plausible defaults. + if test -z "$x_includes" -o "$x_includes" = NONE; then + WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, X11/Intrinsic.h) + x_includes=$ac_find_includes + fi + if test -z "$x_libraries" -o "$x_libraries" = NONE; then + WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xt) + x_libraries=$ac_find_libraries + fi + fi +fi dnl ------------------------------------------------------------------------ dnl Check for libraries @@ -2155,7 +2387,7 @@ if test "$USE_LINUX" = 1 -o "$USE_GNU" = 1; then AC_TRY_COMPILE([#include ], [ #if (__GLIBC__ < 2) || (__GLIBC_MINOR__ < 1) - #error not glibc2.1 + not glibc 2.1 #endif ], [ @@ -2185,6 +2417,47 @@ if test "x$wx_cv_lib_glibc21" = "xyes"; then fi fi +dnl Only add the -lm library if floating point functions cannot be used +dnl without it. This check is important on cygwin because of the bizarre +dnl way that they have organized functions into libraries. On cygwin, both +dnl libc.a and libm.a are symbolic links to a single lib libcygwin.a. This +dnl means that +dnl 1) linking with -lm is not necessary, and +dnl 2) linking with -lm is dangerous if the order of libraries is wrong +dnl In particular, if you compile any program with -mno-cygwin and link with +dnl -lm, it will crash instantly when it is run. This happens because the +dnl linker incorrectly links the Cygwin libm.a (==libcygwin.a), which replaces +dnl the ___main function instead of allowing it to be defined by +dnl /usr/lib/mingw/libmingw32.a as it should be. +dnl +dnl On MacOS X, this test will find that -lm is unnecessary and leave it out. +dnl +dnl Just check a few floating point functions. If they are all found without +dnl -lm, then we must not need -lm. +have_cos=0 +have_floor=0 +AC_CHECK_FUNCS(cos, have_cos=1) +AC_CHECK_FUNCS(floor, have_floor=1) +AC_MSG_CHECKING(if floating point functions link without -lm) +if test "$have_cos" = 1 -a "$have_floor" = 1; then + AC_MSG_RESULT(yes) +else + AC_MSG_RESULT(no) + LIBS="$LIBS -lm" + # use different functions to avoid configure caching + have_sin=0 + have_ceil=0 + AC_CHECK_FUNCS(sin, have_sin=1) + AC_CHECK_FUNCS(ceil, have_ceil=1) + AC_MSG_CHECKING(if floating point functions link with -lm) + if test "$have_sin" = 1 -a "$have_ceil" = 1; then + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + # not sure we should warn the user, crash, etc. + fi +fi + dnl --------------------------------------------------------------------------- dnl Optional libraries dnl @@ -2211,7 +2484,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 @@ -2220,7 +2493,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 @@ -2496,21 +2769,18 @@ 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: AC_CACHE_CHECK([if expat.h is valid C++ header], wx_cv_expat_is_not_broken, [ - AC_LANG_SAVE - AC_LANG_CPLUSPLUS AC_TRY_COMPILE([#include ],[], wx_cv_expat_is_not_broken=yes, wx_cv_expat_is_not_broken=no ) - AC_LANG_RESTORE ] ) if test "$wx_cv_expat_is_not_broken" = "yes" ; then @@ -2588,7 +2858,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 @@ -2601,11 +2870,26 @@ 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 + + dnl the jpeg header jmorecfg.h delcares the type boolean, which conflicts + dnl on systems which declare it in the system headers. If HAVE_BOOLEAN is + dnl defined then jmorecfg.h doesn't declare it, so checking for it here + dnl solves the problem. + AC_CHECK_TYPES(boolean, [], [], [#include ]) + + dnl pbt.h is missing on Wine at least + AC_CHECK_HEADERS(pbt.h, [], [AC_DEFINE(NEED_PBT_H)]) fi if test "$wxUSE_GUI" = "yes"; then @@ -2645,6 +2929,9 @@ if test "$wxUSE_GUI" = "yes"; then fi if test "$wxUSE_GTK" = 1; then + dnl GTK+ test program must be compiled with C compiler + AC_LANG_PUSH(C) + AC_MSG_CHECKING([for GTK+ version]) gtk_version_cached=1 @@ -2664,8 +2951,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 @@ -2686,7 +2997,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 ] ) @@ -2720,30 +3031,39 @@ 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 dnl in the lib (not the header). - AC_MSG_CHECKING([if gtk_icon_size_lookup is missing]) + AC_CHECK_DECLS([gtk_icon_size_lookup], [], + [AC_DEFINE(NEED_GTK_ICON_SIZE_LOOKUP)], + [#include ]) + + dnl test if we have at least GTK+ 2.6: + AC_MSG_CHECKING([if GTK+ is version >= 2.6]) AC_TRY_COMPILE([ #include ], [ - void *f = gtk_icon_size_lookup; + #if !GTK_CHECK_VERSION(2,6,0) + Not GTK+ 2.6 + #endif ], [ - AC_MSG_RESULT([no]) + AC_DEFINE(__WXGTK26__) + AC_DEFINE(__WXGTK24__) + AC_MSG_RESULT([yes]) + ac_wxgtk26=1 ], [ - AC_DEFINE(NEED_GTK_ICON_SIZE_LOOKUP) - AC_MSG_RESULT([yes]) + AC_MSG_RESULT([no]) + ac_wxgtk26=0 ]) - + + if test "$ac_wxgtk26" = 0; then dnl test if we have at least GTK+ 2.4: AC_MSG_CHECKING([if GTK+ is version >= 2.4]) AC_TRY_COMPILE([ @@ -2751,7 +3071,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config ], [ #if !GTK_CHECK_VERSION(2,4,0) - #error "Not GTK+ 2.4" + Not GTK+ 2.4 #endif ], [ @@ -2761,7 +3081,8 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config [ AC_MSG_RESULT([no]) ]) - + fi + CFLAGS="$save_CFLAGS" LIBS="$save_LIBS" else @@ -2769,8 +3090,13 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config AC_MSG_WARN([Unicode configuration not supported with GTK+ 1.x]) wxUSE_UNICODE=no fi + + dnl test for XIM support in libgdk + AC_CHECK_LIB(gdk, gdk_im_open, AC_DEFINE(HAVE_XIM)) fi + AC_LANG_POP + dnl we need poll() in src/gtk/app.cpp (we know that Darwin doesn't dnl have it but we do the check for the others) if test "$USE_DARWIN" != 1; then @@ -2784,10 +3110,6 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config TOOLKIT=GTK GUIDIST=GTK_DIST - 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) @@ -2798,7 +3120,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 @@ -2808,7 +3130,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 @@ -2883,6 +3205,24 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config GUIDIST=MGL_DIST fi + if test "$wxUSE_DFB" = 1; then + PKG_PROG_PKG_CONFIG() + + PKG_CHECK_MODULES(DIRECTFB, + [directfb >= 0.9.22], + [ + wxUSE_UNIVERSAL="yes" + TOOLKIT_INCLUDE="$DIRECTFB_CFLAGS" + GUI_TK_LIBRARY="$DIRECTFB_LIBS" + TOOLKIT=DFB + GUIDIST=DFB_DIST + ], + [ + AC_MSG_ERROR([DirectFB not found.]) + ] + ) + fi + if test "$wxUSE_MICROWIN" = 1; then AC_MSG_CHECKING(for MicroWindows) if test "x$MICROWINDOWS" = x ; then @@ -2918,7 +3258,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 @@ -2944,42 +3284,44 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config fi if test "$wxUSE_UNICODE" = "yes"; then - PKG_CHECK_MODULES(PANGOX, pangox, - [ - CXXFLAGS="$CXXFLAGS $PANGOX_CFLAGS" - GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOX_LIBS" - ], - [ - AC_MSG_ERROR([pangox library not found, library cannot be compiled in Unicode mode]) - ] - ) - PKG_CHECK_MODULES(PANGOFT2, pangoft2, - [ - CXXFLAGS="$CXXFLAGS $PANGOFT2_CFLAGS" - GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS" - ], - [ - AC_MSG_WARN([pangoft2 library not found, library will be compiled without printing support]) - wxUSE_PRINTING_ARCHITECTURE="no" - ] - ) - PKG_CHECK_MODULES(PANGOXFT, pangoxft, - [ - AC_DEFINE(HAVE_PANGO_XFT) - CXXFLAGS="$CXXFLAGS $PANGOXFT_CFLAGS" - GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOXFT_LIBS" - ], - [ - AC_MSG_WARN([pangoxft library not found, library will be compiled without anti-aliasing support]) - ] - ) - save_CFLAGS="$CFLAGS" - save_LIBS="$LIBS" - CFLAGS="$CFLAGS $PANGOX_CFLAGS" - LIBS="$LIBS $PANGOX_LIBS" - AC_CHECK_FUNCS([pango_font_family_is_monospace]) - CFLAGS="$save_CFLAGS" - LIBS="$save_LIBS" + PKG_PROG_PKG_CONFIG() + + PKG_CHECK_MODULES(PANGOX, pangox, + [ + CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS" + GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOX_LIBS" + ], + [ + AC_MSG_ERROR([pangox library not found, library cannot be compiled in Unicode mode]) + ] + ) + PKG_CHECK_MODULES(PANGOFT2, pangoft2, + [ + CXXFLAGS="$PANGOFT2_CFLAGS $CXXFLAGS" + GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS" + ], + [ + AC_MSG_WARN([pangoft2 library not found, library will be compiled without printing support]) + wxUSE_PRINTING_ARCHITECTURE="no" + ] + ) + PKG_CHECK_MODULES(PANGOXFT, pangoxft, + [ + AC_DEFINE(HAVE_PANGO_XFT) + CXXFLAGS="$PANGOXFT_CFLAGS $CXXFLAGS" + GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOXFT_LIBS" + ], + [ + AC_MSG_WARN([pangoxft library not found, library will be compiled without anti-aliasing support]) + ] + ) + save_CXXFLAGS="$CXXFLAGS" + save_LIBS="$LIBS" + CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS" + LIBS="$LIBS $PANGOX_LIBS" + AC_CHECK_FUNCS([pango_font_family_is_monospace]) + CXXFLAGS="$save_CXXFLAGS" + LIBS="$save_LIBS" fi wxUSE_UNIVERSAL="yes" @@ -3008,6 +3350,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_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS" + AC_TRY_COMPILE( [ #include @@ -3022,47 +3367,52 @@ 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) ] ) - 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) + CXXFLAGS=$save_CXXFLAGS + 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 - 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_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) - ] - ) + AC_MSG_CHECKING(for Motif/Lesstif library) + WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm) - CFLAGS=$save_CFLAGS - fi - fi + if test "x$ac_find_libraries" != "x" ; then + AC_MSG_RESULT(found in $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 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_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS" + 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) + ] + ) + + CXXFLAGS=$save_CXXFLAGS + LIBS="$save_LIBS" + fi AC_MSG_CHECKING([if we need -lXp and/or -lSM -lICE]) libp_link="" @@ -3074,8 +3424,8 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config if test "$libs_found" = "0"; then save_LIBS="$LIBS" LIBS="$GUI_TK_LIBRARY -lXm ${libp} -lXmu -lXext -lXt${libsm_ice} -lX11" - save_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS $TOOLKIT_INCLUDE" + save_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS" AC_TRY_LINK( [ @@ -3098,7 +3448,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config ) LIBS="$save_LIBS" - CFLAGS=$save_CFLAGS + CXXFLAGS=$save_CXXFLAGS fi done fi @@ -3109,28 +3459,53 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config AC_MSG_ERROR([can't link a simple motif program]) fi - save_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS $TOOLKIT_INCLUDE" - AC_MSG_CHECKING([for Motif 2]) - AC_TRY_COMPILE([ - #include - ], - [ - #if XmVersion < 2000 - #error "Not Motif 2" - #endif - ], - [ - AC_DEFINE(__WXMOTIF20__,1) - AC_MSG_RESULT([found]) - ], - [ - AC_DEFINE(__WXMOTIF20__,0) - AC_MSG_RESULT([not found]) - ]) - CFLAGS=$save_CFLAGS - - GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXm${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11" + 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_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS" + + 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 + + CXXFLAGS=$save_CXXFLAGS + + GUI_TK_LIBRARY="$GUI_TK_LIBRARY${libsgm_link} -lXm${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11" TOOLKIT=MOTIF GUIDIST=MOTIF_DIST fi @@ -3144,13 +3519,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" + save_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS" AC_TRY_COMPILE( [ @@ -3164,7 +3539,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config wx_cv_x11_xpm_h=no ) - CFLAGS=$save_CFLAGS + CXXFLAGS=$save_CXXFLAGS ] ) @@ -3187,12 +3562,12 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config [], [$GUI_TK_LIBRARY -lX11]) if test "$wxHAVE_XEXT_LIB" = 1; then - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $TOOLKIT_INCLUDE" + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS" AC_MSG_CHECKING([for X11/extensions/shape.h]) AC_TRY_COMPILE([ - #include + #include #include ], [ @@ -3207,7 +3582,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config [ AC_MSG_RESULT([not found]) ]) - CFLAGS="$save_CFLAGS" + CXXFLAGS="$save_CXXFLAGS" fi fi @@ -3225,10 +3600,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 @@ -3307,6 +3682,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 @@ -3315,7 +3704,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 @@ -3331,7 +3720,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]) @@ -3355,7 +3744,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 --------------------------------------------------------------------------- @@ -3385,7 +3774,7 @@ dnl --------------------------------------------------------------------------- [ GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXxf86vm" ], - [], + [], [ #if HAVE_X11_XLIB_H #include @@ -3394,7 +3783,7 @@ dnl --------------------------------------------------------------------------- else AC_MSG_RESULT([no]) fi - + else AC_MSG_RESULT([no]) AC_MSG_WARN([Xinerama not found; disabling wxDisplay]) @@ -3402,17 +3791,37 @@ dnl --------------------------------------------------------------------------- fi elif test "$wxUSE_MSW" = 1; then dnl --------------------------------------------------------------------------- -dnl DirectDraw / Multimon for MSW +dnl DirectDraw for MSW - optionally used by WxDisplay. dnl --------------------------------------------------------------------------- - AC_CHECK_HEADERS([multimon.h ddraw.h], [], - [ - wxUSE_DISPLAY="no" - AC_MSG_WARN([ddraw.h or multimon.h not found; disabling wxDisplay]) - ], - [#include ]) + AC_CHECK_HEADERS([ddraw.h], [], [], [#include ]) + fi +fi + +dnl --------------------------------------------------------------------------- +dnl X11 session management +dnl --------------------------------------------------------------------------- +if test "$wxUSE_DETECT_SM" = "yes"; then + if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1; then + AC_MSG_CHECKING([for -lSM - X11 session management]) + WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],SM) + if test "$ac_find_libraries" != "" ; then + WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS]) + if test "$ac_path_to_link" != " -L/usr/lib" ; then + LDFLAGS="$LDFLAGS $ac_path_to_link" + fi + GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lSM" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + AC_MSG_WARN([libSM not found; disabling session management detection]) + wxUSE_DETECT_SM="no" + fi + else + wxUSE_DETECT_SM="no" fi fi + dnl --------------------------------------------------------------------------- dnl OpenGL libraries dnl --------------------------------------------------------------------------- @@ -3432,7 +3841,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, @@ -3529,13 +3938,13 @@ if test "$wxUSE_SHARED" = "yes"; then *-*-linux* | *-*-gnu* ) SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib" WXCONFIG_RPATH="-Wl,-rpath,\$libdir" - ;; + ;; *-*-solaris2* ) 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: @@ -3560,7 +3969,7 @@ if test "$wxUSE_SHARED" = "yes"; then WXCONFIG_RPATH="-Wl,-R,\$libdir" ],[ AC_MSG_RESULT([no]) - ]) + ]) ]) LDFLAGS="$saveLdflags" else @@ -3568,8 +3977,8 @@ if test "$wxUSE_SHARED" = "yes"; then WXCONFIG_RPATH="-R\$libdir" fi ;; - - powerpc-*-darwin* ) + + *-*-darwin* ) install_name_tool=`which install_name_tool` if test "$install_name_tool" -a -x "$install_name_tool"; then SAMPLES_RPATH_POSTLINK="\$(top_builddir)change-install-names \$(LIBDIRNAME) \$(prefix) \$@" @@ -3585,16 +3994,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 @@ -3701,7 +4112,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) @@ -3710,26 +4121,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 @@ -3753,8 +4167,6 @@ AC_CHECK_TYPES(ssize_t) dnl check what exactly size_t is on this machine - this is necessary to avoid dnl ambiguous overloads in several places, notably wx/string.h and wx/array.h -AC_LANG_SAVE -AC_LANG_CPLUSPLUS AC_CACHE_CHECK([if size_t is unsigned int], wx_cv_size_t_is_uint, [ @@ -3801,8 +4213,6 @@ else fi fi -AC_LANG_RESTORE - dnl --------------------------------------------------------------------------- dnl Checks for structures dnl --------------------------------------------------------------------------- @@ -3858,42 +4268,53 @@ if test "$wxUSE_WCHAR_T" = "yes"; then AC_DEFINE(HAVE_WCSLEN) fi - dnl on HP-UX aCC and g++ need this define to find mbstrtowcs() &c - if test "$USE_HPUX" = 1; then - CPPFLAGS="$CPPFLAGS -D_INCLUDE__STDC_A1_SOURCE " + dnl On HP-UX aCC need this define to find mbstrtowcs() &c + dnl Can't be used for g++ since the mbstate_t in wchar.h can conflict + 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="-D_INCLUDE__STDC_A1_SOURCE $CPPFLAGS" fi - dnl try to use wcsrtombs instead of wcstombs which is buggy in old GNU - dnl libc versions if possible - AC_CHECK_FUNCS(wcsrtombs) + dnl Try to use wcsrtombs instead of wcstombs which is buggy in old GNU + dnl libc versions if possible. AC_CHECK_FUNCS only checks it's in the + dnl library, not the header, so do a header check for mbstate_t first. + AC_CHECK_TYPES([mbstate_t], + [AC_CHECK_FUNCS(wcsrtombs)], + [], + [#include ]) else AC_MSG_WARN([Wide character support is unavailable]) fi -dnl *printf() functions sometimes are available in the library but not -dnl prototyped -- if this is the case, we can't use them from C++ code, but to -dnl detect this we have to use C++ compiler for testing -AC_LANG_SAVE -AC_LANG_CPLUSPLUS - dnl check for vsnprintf() -- a safe version of vsprintf()) dnl -dnl the trouble here is that on some systems (notable HP-UX) this function is +dnl the trouble here is that on some systems (e.g HP-UX 10) this function is dnl present in libc but not in the system headers and so AC_CHECK_FUNCS (which, dnl stupidly, provides a dummy function declaration inside its extension) dnl succeeds, even with C++ compiler, but the compilation of wxWidgets fails dnl dnl so we first check if the function is in the library -AC_CHECK_FUNCS(vsnprintf) +AC_CHECK_FUNCS(snprintf vsnprintf) if test "$ac_cv_func_vsnprintf" = "yes"; then dnl yes it is -- now check if it is in the headers 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 AC_TRY_COMPILE( [ #include #include + #ifdef __MSL__ + #if __MSL__ >= 0x6000 + namespace std {} + using namespace std; + #endif + #endif ], [ char *buf; @@ -3901,37 +4322,180 @@ if test "$ac_cv_func_vsnprintf" = "yes"; then vsnprintf(buf, 10u, "%s", ap); ], wx_cv_func_vsnprintf_decl=yes, - [ - dnl Metrowerks does provide a vsnprintf declaration - dnl but in C++ mode it's always in std namespace. - dnl FIXME: Do we have any UNIX C++ compilers that would - dnl fail this test if using namespace std; was - dnl simply always included? - AC_TRY_COMPILE( - [ - #include - #include - using namespace std; - ], - [ - char *buf; - va_list ap; - vsnprintf(buf, 10u, "%s", ap); - ], - wx_cv_func_vsnprintf_decl=yes, - wx_cv_func_vsnprintf_decl=no - ) - ] + wx_cv_func_vsnprintf_decl=no ) ] ) 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 + +dnl the same as above but for snprintf() now: it's not present in at least AIX +dnl 4.2 headers +if test "$ac_cv_func_snprintf" = "yes"; then + AC_CACHE_CHECK([for snprintf declaration], wx_cv_func_snprintf_decl, + [ + AC_TRY_COMPILE( + [ + #include + #include + #ifdef __MSL__ + #if __MSL__ >= 0x6000 + namespace std {} + using namespace std; + #endif + #endif + ], + [ + char *buf; + snprintf(buf, 10u, "%s", "wx"); + ], + wx_cv_func_snprintf_decl=yes, + wx_cv_func_snprintf_decl=no + ) + ] + ) + + 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 + + if test "$wxUSE_PRINTF_POS_PARAMS" = "yes"; then + + dnl check if snprintf() has support for positional arguments + dnl NB: if snprintf() has positional support we can safely suppose that also + dnl other *printf() functions support them as they all belong to the same + dnl family and they all fallback to the same implementation + AC_CACHE_CHECK([if snprintf supports positional arguments], wx_cv_func_snprintf_pos_params, + [ + AC_TRY_RUN( + [ + #include + + int main (void) + { + char buffer[128]; + snprintf (buffer, 128, "%2\$d %3\$d %1\$d", 1, 2, 3); + if (strcmp ("2 3 1", buffer) == 0) + exit (0); + exit (1); + } + ], + wx_cv_func_snprintf_pos_params=no, + wx_cv_func_snprintf_pos_params=yes, + dnl be pessimistic when cross-compiling + [ + AC_MSG_WARN([Assuming Unix98 printf() is not available, +define HAVE_UNIX98_PRINTF as 1 in setup.h if it is available.]) + wx_cv_func_snprintf_pos_params=no + ] + ) + ] + ) + + if test "$wx_cv_func_snprintf_pos_params" = "yes"; then + AC_DEFINE(HAVE_UNIX98_PRINTF) + fi fi fi if test "$wxUSE_UNICODE" = yes; then + + dnl our wxVsnprintf() implementation needs to use the system swprintf() in Unicode + dnl builds so let's check if swprintf() is declared as C99 imposes: + dnl int swprintf(wchar_t *s, size_t n, const wchar_t *format, ...); + dnl or rather as: + dnl int swprintf(wchar_t *s, const wchar_t *format, ...); + AC_CHECK_FUNCS(swprintf) + + if test "$ac_cv_func_swprintf" = "yes"; then + AC_CACHE_CHECK([if swprintf declaration is broken], wx_cv_func_broken_swprintf_decl, + [ + AC_TRY_COMPILE( + [ + #include + #include + #include + ], + [ + wchar_t *buf; + const wchar_t *fmt = L"test"; + swprintf(buf, 10u, fmt); + ], + wx_cv_func_broken_swprintf_decl=no, + wx_cv_func_broken_swprintf_decl=yes + ) + ] + ) + + if test "$wx_cv_func_broken_swprintf_decl" = "yes"; then + AC_DEFINE(HAVE_BROKEN_SWPRINTF_DECL) + fi + fi + dnl also look if we have wide char IO functions AC_CHECK_FUNCS(wputc wputchar putws fputws wprintf vswprintf) @@ -3946,8 +4510,18 @@ if test "$wxUSE_UNICODE" = yes; then [AC_MSG_RESULT([no])]); fi -AC_LANG_RESTORE +if test "x$ac_cv_header_fnmatch_h" = "xyes"; then + AC_CHECK_FUNCS(fnmatch) +fi + +if test "$wxUSE_FILE" = "yes"; then + AC_CHECK_FUNCS(fsync) +fi +AC_CHECK_FUNCS(round) +if test "$ac_cv_func_round" = yes; then + AC_CHECK_DECLS(round,,,[#include ]) +fi dnl the following tests are for Unix(like) systems only @@ -3955,11 +4529,8 @@ if test "$TOOLKIT" != "MSW"; then dnl check for available version of iconv() -AC_LANG_SAVE -AC_LANG_CPLUSPLUS AM_ICONV LIBS="$LIBICONV $LIBS" -AC_LANG_RESTORE dnl check for POSIX signals if we need them if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then @@ -3971,9 +4542,6 @@ if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then fi if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_CACHE_CHECK([for sa_handler type], wx_cv_type_sa_handler, [ AC_TRY_COMPILE([#include ], @@ -3989,17 +4557,12 @@ if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then ]) ]) - AC_LANG_RESTORE - AC_DEFINE_UNQUOTED(wxTYPE_SA_HANDLER, $wx_cv_type_sa_handler) fi fi dnl backtrace() and backtrace_symbols() for wxStackWalker if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_CACHE_CHECK([for backtrace() in ], wx_cv_func_backtrace, [ AC_TRY_COMPILE([#include ], @@ -4038,11 +4601,9 @@ if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then AC_DEFINE(HAVE_CXA_DEMANGLE) fi fi - - 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 @@ -4057,10 +4618,10 @@ AC_CACHE_CHECK(for statfs, wx_cv_func_statfs, AC_TRY_COMPILE( [ #if defined(__BSD__) - #include - #include + #include + #include #else - #include + #include #endif ], [ @@ -4071,16 +4632,36 @@ AC_CACHE_CHECK(for statfs, wx_cv_func_statfs, l += fs.f_blocks; l += fs.f_bavail; ], - [ - wx_cv_func_statfs=yes - ], - [ - wx_cv_func_statfs=no - ] + wx_cv_func_statfs=yes, + wx_cv_func_statfs=no ) ) if test "$wx_cv_func_statfs" = "yes"; then + dnl check whether we have its dcelaration too: some systems (AIX 4) lack it + AC_CACHE_CHECK(for statfs declaration, wx_cv_func_statfs_decl, + 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 + ) + ) + + if test "$wx_cv_func_statfs_decl" = "yes"; then + AC_DEFINE(HAVE_STATFS_DECL) + fi + wx_cv_type_statvfs_t="struct statfs" AC_DEFINE(HAVE_STATFS) else @@ -4106,9 +4687,6 @@ else dnl dnl for this check C++ compiler has to be used as passing incompatible dnl pointers is just a warning and not an error in C - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_CACHE_CHECK(for statvfs argument type, wx_cv_type_statvfs_t, AC_TRY_COMPILE( [ @@ -4143,8 +4721,6 @@ else ) ) - AC_LANG_RESTORE - if test "$wx_cv_type_statvfs_t" != "unknown"; then AC_DEFINE(HAVE_STATVFS) fi @@ -4217,14 +4793,7 @@ fi dnl check for uname (POSIX) and gethostname (BSD) AC_CHECK_FUNCS(uname gethostname, break) -dnl check for MT-safe version of strtok (on DEC Alpha, it's ok for C compiler -dnl but not for C++ one - hence change language) -AC_LANG_SAVE -AC_LANG_CPLUSPLUS - -AC_CHECK_FUNCS(strtok_r) - -AC_LANG_RESTORE +WX_CHECK_FUNCS(strtok_r, [], [], [#define _REENTRANT]) dnl check for inet_addr and inet_aton (these may live either in libc, or in dnl libnsl or libresolv or libsocket) @@ -4304,19 +4873,18 @@ 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: dnl - dnl defines THREADS_LINK and THREADS_CFLAGS which are the options + dnl defines THREADS_LINK and THREADS_CXXFLAGS which are the options dnl necessary to build the MT programs for the linker and compiler dnl respectively dnl dnl sets wxUSE_THREADS=1 if thread support is activated THREADS_LINK= - THREADS_CFLAGS= + THREADS_CXXFLAGS= if test "$wxUSE_THREADS" = "yes" ; then if test "$USE_BEOS" = 1; then @@ -4364,11 +4932,14 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then THREAD_OPTS="pthreads" ;; *-hp-hpux* ) - dnl HP-UX aCC only gives a warning, not an error about - dnl -pthread but it doesn't work and we have to use -lpthread - dnl there - if test "x$GCC" != "xyes"; then - 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 ;; @@ -4404,7 +4975,7 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then -*) AC_MSG_CHECKING([whether pthreads work with $flag]) - THREADS_CFLAGS="$flag" + THREADS_CXXFLAGS="$flag" ;; *) @@ -4414,16 +4985,16 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then esac save_LIBS="$LIBS" - save_CFLAGS="$CFLAGS" + save_CXXFLAGS="$CXXFLAGS" LIBS="$THREADS_LINK $LIBS" - CFLAGS="$THREADS_CFLAGS $CFLAGS" + CXXFLAGS="$THREADS_CXXFLAGS $CXXFLAGS" AC_TRY_LINK([#include ], [pthread_create(0,0,0,0);], THREADS_OK=yes) LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" + CXXFLAGS="$save_CXXFLAGS" AC_MSG_RESULT($THREADS_OK) if test "x$THREADS_OK" = "xyes"; then @@ -4431,7 +5002,7 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then fi THREADS_LINK="" - THREADS_CFLAGS="" + THREADS_CXXFLAGS="" done if test "x$THREADS_OK" != "xyes"; then @@ -4440,7 +5011,7 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then else dnl yes, these special compiler flags should be used with the dnl linker as well - LDFLAGS="$THREADS_CFLAGS $LDFLAGS" + LDFLAGS="$THREADS_CXXFLAGS $LDFLAGS" LIBS="$THREADS_LINK $LIBS" AC_MSG_CHECKING([if more special flags are required for pthreads]) @@ -4472,14 +5043,11 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then esac AC_MSG_RESULT(${flag}) if test "x$flag" != xno; then - THREADS_CFLAGS="$THREADS_CFLAGS $flag" + THREADS_CXXFLAGS="$THREADS_CXXFLAGS $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_CXXFLAGS="$WXCONFIG_CXXFLAGS $THREADS_CXXFLAGS" fi fi @@ -4487,6 +5055,28 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then if test "$wxUSE_THREADS" = "yes" ; then AC_CHECK_FUNCS(thr_setconcurrency) + 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 + AC_CACHE_CHECK([for pthread_cleanup_push/pop], wx_cv_func_pthread_cleanup, + [ + AC_TRY_COMPILE([#include + void ThreadCleanupFunc(void *p); + ], + [ + void *p; + pthread_cleanup_push(ThreadCleanupFunc, p); + pthread_cleanup_pop(0); + ], [ + wx_cv_func_pthread_cleanup=yes + ], [ + wx_cv_func_pthread_cleanup=no + ] + ) + ]) + if test "x$wx_cv_func_pthread_cleanup" = "xyes"; then + AC_DEFINE(wxHAVE_PTHREAD_CLEANUP) + fi + AC_CHECK_HEADERS(sched.h) if test "$ac_cv_header_sched_h" = "yes"; then AC_CHECK_FUNC(sched_yield, @@ -4550,16 +5140,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], @@ -4593,8 +5198,8 @@ else AC_CACHE_CHECK([if compiler supports -mthreads], wx_cv_cflags_mthread, [ - CFLAGS_OLD="$CFLAGS" - CFLAGS="$CFLAGS -mthreads" + CXXFLAGS_OLD="$CXXFLAGS" + CXXFLAGS="-mthreads $CXXFLAGS" AC_TRY_COMPILE([], [], wx_cv_cflags_mthread=yes, wx_cv_cflags_mthread=no @@ -4604,23 +5209,58 @@ else if test "$wx_cv_cflags_mthread" = "yes"; then dnl it does, use it - CXXFLAGS="$CXXFLAGS -mthreads" - TOOLCHAIN_DEFS="$TOOLCHAIN_DEFS -mthreads" + WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -mthreads" LDFLAGS="$LDFLAGS -mthreads" else dnl it doesn't - CFLAGS="$CFLAGS_OLD" + CXXFLAGS="$CXXFLAGS_OLD" 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, we probably should use getaddrinfo which avoids thread +dnl safety issues and supports IPv6, however there currently is no code +dnl for it, so testing for it is temporarily disabled and we are restricted +dnl to gethostbyname_r/gethostbyaddr_r and getservbyname_r + +dnl 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 ) +dnl ] +dnl ) + if test "$wxUSE_THREADS" = "yes"; then AC_DEFINE(wxUSE_THREADS) @@ -4628,10 +5268,10 @@ if test "$wxUSE_THREADS" = "yes"; then else dnl on some systems, _REENTRANT should be defined if we want to use any _r() dnl functions - add tests for other functions here as well - if test "$ac_cv_func_strtok_r" = "yes"; then + if test "$wx_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) @@ -4656,26 +5296,29 @@ 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" + if test "x$wxGTK_VERSION" = "x1" ; then + CPPFLAGS="-DGTK_NO_CHECK_CASTS $CPPFLAGS" + fi fi fi @@ -4690,22 +5333,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 @@ -4721,33 +5363,39 @@ 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} " - ;; + *-pc-os2_emx | *-pc-os2-emx ) + dnl Not all of the supported gcc versions understand + dnl -fstrict-aliasing and none actually needs it (yet). + OPTIMISE_CFLAGS="-O2" + ;; + *) + dnl Switch on optimisation but keep strict-aliasing off for + dnl now (see -fstrict-aliasing in the gcc manual). When it is + dnl switched back on consider using -Wstrict-aliasing=2. + OPTIMISE_CFLAGS="-O2 -fno-strict-aliasing" + ;; esac else - OPTIMISE="-O" + OPTIMISE_CFLAGS="-O" fi fi @@ -4755,14 +5403,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 --------------------------------------------------------------------------- @@ -4914,8 +5562,43 @@ 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 SNDCTL_DSP_SPEED in sys/soundcard.h], ac_cv_header_sys_soundcard, [ + AC_TRY_LINK([ + #include + #include + ], + [ + ioctl(0, SNDCTL_DSP_SPEED, 0); + ], + ac_cv_header_sys_soundcard=yes, + [ + saveLibs="$LIBS" + LIBS="$saveLibs -lossaudio" + AC_TRY_LINK([ + #include + #include + ], + [ + ioctl(0, SNDCTL_DSP_SPEED, 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 @@ -4924,7 +5607,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"]) @@ -4933,7 +5616,7 @@ if test "$wxUSE_SOUND" = "yes"; then fi fi fi - + AC_DEFINE(wxUSE_SOUND) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sound" fi @@ -4941,23 +5624,59 @@ 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" - AC_DEFINE(wxUSE_LIBGNOMEPRINT) +dnl EXTRALIBS_GNOMEPRINT="$LIBGNOMEPRINTUI_LIBS" + CXXFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CXXFLAGS" + AC_DEFINE(wxUSE_LIBGNOMEPRINT) + ], + [ + AC_MSG_WARN([libgnomeprintui not found, library will use standard PostScript printing]) + wxUSE_LIBGNOMEPRINT="no" + ] + ) + fi + fi +fi + +if test "$WXGTK20" = 1; then + if test "$wxUSE_MIMETYPE" = "yes" ; then + if test "$wxUSE_LIBGNOMEVFS" = "yes" ; then + + PKG_CHECK_MODULES(GNOMEVFS, + [gnome-vfs-2.0 >= 2.0], + [ +dnl EXTRALIBS_GNOMEVFS="$LIBGNOMEVFS_LIBS" + CXXFLAGS="$GNOMEVFS_CFLAGS $CXXFLAGS" + AC_DEFINE(wxUSE_LIBGNOMEVFS) ], [ - AC_MSG_WARN([libgnomeprintui not found, library will use standard PostScript printing]) - wxUSE_LIBGNOMEPRINT="no" + AC_MSG_WARN([libgnomevfs not found, library won't be able to associate MIME type]) + wxUSE_LIBGNOMEVFS="no" ] ) fi fi fi +if test "$WXGTK20" = 1; then + if test "$wxUSE_LIBHILDON" = "yes" ; then + PKG_CHECK_MODULES(HILDON, + [hildon-lgpl >= 0.9], + [ + EXTRALIBS_HILDON="$HILDON_LIBS" + CXXFLAGS="$CXXFLAGS $HILDON_CFLAGS" + AC_DEFINE(wxUSE_LIBHILDON) + ], + [ + AC_MSG_WARN([libhildon_lgpl not found]) + wxUSE_LIBHILDON="no" + ] + ) + fi +fi if test "$wxUSE_CMDLINE_PARSER" = "yes"; then AC_DEFINE(wxUSE_CMDLINE_PARSER) @@ -5109,13 +5828,38 @@ if test "$wxUSE_STREAMS" = "yes" ; then AC_DEFINE(wxUSE_STREAMS) fi +if test "$wxUSE_PRINTF_POS_PARAMS" = "yes"; then + AC_DEFINE(wxUSE_PRINTF_POS_PARAMS) +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_TRY_COMPILE( + [ + #include + ], + [ + struct tm t; + strptime("foo", "bar", &t); + ], + wx_cv_func_strptime_decl=yes, + wx_cv_func_strptime_decl=no + ) + ] + ) + 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 @@ -5211,9 +5955,6 @@ if test "$wxUSE_DATETIME" = "yes"; then wx_cv_func_gettimeofday_has_2_args, [ dnl on some _really_ old systems it takes only 1 argument - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_TRY_COMPILE( [ #include @@ -5240,7 +5981,6 @@ if test "$wxUSE_DATETIME" = "yes"; then ] ) ) - AC_LANG_RESTORE ]) if test "$wx_cv_func_gettimeofday_has_2_args" != "yes"; then @@ -5292,7 +6032,6 @@ if test "$wxUSE_SOCKETS" = "yes" ; then dnl This test needs to be done in C++ mode since gsocket.cpp now dnl is C++ code and pointer cast that are possible even without dnl warning in C still fail in C++. - AC_LANG_PUSH(C++) AC_CACHE_CHECK([what is the type of the third argument of getsockname], wx_cv_type_getsockname3, [ @@ -5313,9 +6052,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( @@ -5342,7 +6081,7 @@ if test "$wxUSE_SOCKETS" = "yes" ; then ) ) - CFLAGS="$CFLAGS_OLD" + CXXFLAGS="$CXXFLAGS_OLD" ] ) ]) @@ -5351,7 +6090,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], @@ -5374,9 +6113,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( @@ -5403,7 +6142,7 @@ if test "$wxUSE_SOCKETS" = "yes" ; then ) ) - CFLAGS="$CFLAGS_OLD" + CXXFLAGS="$CXXFLAGS_OLD" ] ) ]) @@ -5414,7 +6153,6 @@ if test "$wxUSE_SOCKETS" = "yes" ; then else AC_DEFINE_UNQUOTED(SOCKOPTLEN_T, $wx_cv_type_getsockopt5) fi - AC_LANG_POP fi fi @@ -5444,7 +6182,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 @@ -5459,6 +6197,10 @@ if test "$wxUSE_URL" = "yes"; then fi fi +if test "$wxUSE_VARIANT" = "yes"; then + AC_DEFINE(wxUSE_VARIANT) +fi + if test "$wxUSE_FS_INET" = "yes"; then AC_DEFINE(wxUSE_FS_INET) fi @@ -5479,14 +6221,12 @@ if test "$wxUSE_GUI" = "yes" -a "$wxUSE_JOYSTICK" = "yes"; then if test "$USE_DARWIN" = 1; then dnl check for a bug in the headers, some have bad setEventCallout AC_MSG_CHECKING([headers have declarations needed for joystick support]) - AC_LANG_PUSH(C++) AC_TRY_COMPILE( [ #include ], [ IOHIDQueueInterface *qi = NULL; IOHIDCallbackFunction cb = NULL; qi->setEventCallout(NULL, cb, NULL, NULL); ], [ wxUSE_JOYSTICK=yes ] ) - AC_LANG_POP AC_MSG_RESULT($wxUSE_JOYSTICK) fi @@ -5499,7 +6239,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 @@ -5607,6 +6347,17 @@ if test "$wxUSE_PROLOGIO" = "yes" -o "$wxUSE_RESOURCES" = "yes"; then AC_MSG_ERROR([wxExpr and old-style resources are now available in contrib only]) fi +dnl --------------------------------------------------------------------------- +dnl wxMetafile availability +dnl --------------------------------------------------------------------------- + +if test "$wxUSE_METAFILE" = "yes"; then + if test "$wxUSE_MSW" != 1 -a "$wxUSE_MAC" != 1 -a "$wxUSE_PM" != 1; then + AC_MSG_WARN([wxMetafile is not available on this system... disabled]) + wxUSE_METAFILE=no + fi +fi + dnl --------------------------------------------------------------------------- dnl IPC: IPC, Drag'n'Drop, Clipboard, ... dnl --------------------------------------------------------------------------- @@ -5621,20 +6372,18 @@ if test "$USE_WIN32" = 1 -a \( "$wxUSE_DATAOBJ" = "yes" \ if test "$ac_cv_header_ole2_h" = "yes" ; then if test "$GCC" = yes ; then - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_MSG_CHECKING([if g++ requires -fvtable-thunks]) AC_TRY_COMPILE([#include #include ], [], [AC_MSG_RESULT(no)], [AC_MSG_RESULT(yes) - CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fvtable-thunks"]) - AC_LANG_RESTORE + WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fvtable-thunks"]) LIBS=" -lrpcrt4 -loleaut32 -lole32 -luuid$LIBS" if test "$wxUSE_OLE" = "yes" ; then AC_DEFINE(wxUSE_OLE) + AC_DEFINE(wxUSE_OLE_AUTOMATION) + AC_DEFINE(wxUSE_OLE_ACTIVEX) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS oleauto" fi fi @@ -5672,6 +6421,19 @@ if test "$wxUSE_IPC" = "yes"; then fi fi +if test "$wxUSE_DATAOBJ" = "yes"; then + if test "$wxUSE_MGL" = 1; then + AC_MSG_WARN([wxDataObject not yet supported under MGL... disabled]) + wxUSE_DATAOBJ=no + else + AC_DEFINE(wxUSE_DATAOBJ) + fi +else + AC_MSG_WARN([Clipboard and drag-and-drop require wxDataObject -- disabled]) + wxUSE_CLIPBOARD=no + wxUSE_DRAG_AND_DROP=no +fi + if test "$wxUSE_CLIPBOARD" = "yes"; then if test "$wxUSE_MGL" = 1; then AC_MSG_WARN([Clipboard not yet supported under MGL... disabled]) @@ -5680,9 +6442,6 @@ if test "$wxUSE_CLIPBOARD" = "yes"; then if test "$wxUSE_CLIPBOARD" = "yes"; then AC_DEFINE(wxUSE_CLIPBOARD) - - dnl required by clipboard code in configuration check - AC_DEFINE(wxUSE_DATAOBJ) fi fi @@ -5741,6 +6500,12 @@ if test "$wxUSE_ACCEL" = "yes"; then USES_CONTROLS=1 fi +if test "$wxUSE_ANIMATIONCTRL" = "yes"; then + AC_DEFINE(wxUSE_ANIMATIONCTRL) + USES_CONTROLS=1 + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS animate" +fi + if test "$wxUSE_BUTTON" = "yes"; then AC_DEFINE(wxUSE_BUTTON) USES_CONTROLS=1 @@ -5768,6 +6533,11 @@ if test "$wxUSE_COMBOBOX" = "yes"; then USES_CONTROLS=1 fi +if test "$wxUSE_COMBOCTRL" = "yes"; then + AC_DEFINE(wxUSE_COMBOCTRL) + USES_CONTROLS=1 +fi + if test "$wxUSE_CHOICE" = "yes"; then AC_DEFINE(wxUSE_CHOICE) USES_CONTROLS=1 @@ -5789,16 +6559,40 @@ if test "$wxUSE_CHECKLST" = "yes"; then SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS checklst" fi +if test "$wxUSE_COLOURPICKERCTRL" = "yes"; then + AC_DEFINE(wxUSE_COLOURPICKERCTRL) + USES_CONTROLS=1 +fi + if test "$wxUSE_DATEPICKCTRL" = "yes"; then AC_DEFINE(wxUSE_DATEPICKCTRL) USES_CONTROLS=1 fi +if test "$wxUSE_DIRPICKERCTRL" = "yes"; then + AC_DEFINE(wxUSE_DIRPICKERCTRL) + USES_CONTROLS=1 +fi + +if test "$wxUSE_FILEPICKERCTRL" = "yes"; then + AC_DEFINE(wxUSE_FILEPICKERCTRL) + USES_CONTROLS=1 +fi + +if test "$wxUSE_FONTPICKERCTRL" = "yes"; then + AC_DEFINE(wxUSE_FONTPICKERCTRL) + USES_CONTROLS=1 +fi + if test "$wxUSE_DISPLAY" = "yes"; then AC_DEFINE(wxUSE_DISPLAY) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS display multimon" fi +if test "$wxUSE_DETECT_SM" = "yes"; then + AC_DEFINE(wxUSE_DETECT_SM) +fi + if test "$wxUSE_GAUGE" = "yes"; then AC_DEFINE(wxUSE_GAUGE) USES_CONTROLS=1 @@ -5810,6 +6604,22 @@ if test "$wxUSE_GRID" = "yes"; then SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS grid" fi +if test "$wxUSE_HYPERLINKCTRL" = "yes"; then + AC_DEFINE(wxUSE_HYPERLINKCTRL) + USES_CONTROLS=1 +fi + +if test "$wxUSE_BITMAPCOMBOBOX" = "yes"; then + AC_DEFINE(wxUSE_BITMAPCOMBOBOX) + USES_CONTROLS=1 +fi + +if test "$wxUSE_DATAVIEWCTRL" = "yes"; then + AC_DEFINE(wxUSE_DATAVIEWCTRL) + USES_CONTROLS=1 + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dataview" +fi + if test "$wxUSE_IMAGLIST" = "yes"; then AC_DEFINE(wxUSE_IMAGLIST) fi @@ -5841,6 +6651,12 @@ if test "$wxUSE_NOTEBOOK" = "yes"; then SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook" fi +if test "$wxUSE_ODCOMBOBOX" = "yes"; then + AC_DEFINE(wxUSE_ODCOMBOBOX) + USES_CONTROLS=1 + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS combo" +fi + dnl if test "$wxUSE_PROPSHEET" = "yes"; then dnl AC_DEFINE(wxUSE_PROPSHEET) dnl USES_CONTROLS=1 @@ -5917,7 +6733,7 @@ if test "$wxUSE_STATUSBAR" = "yes"; then SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS statbar" fi -if test "$wxUSE_TABDIALOG" = "yes"; then +if test "$wxUSE_TAB_DIALOG" = "yes"; then AC_DEFINE(wxUSE_TAB_DIALOG) fi @@ -5932,10 +6748,6 @@ if test "$wxUSE_TOGGLEBTN" = "yes"; then AC_MSG_WARN([Toggle button not yet supported under Mac OS X... disabled]) wxUSE_TOGGLEBTN=no fi - if test "$wxUSE_UNIVERSAL" = "yes"; then - AC_MSG_WARN([Toggle button not yet supported under wxUniversal... disabled]) - wxUSE_TOGGLEBTN=no - fi if test "$wxUSE_TOGGLEBTN" = "yes"; then AC_DEFINE(wxUSE_TOGGLEBTN) @@ -5943,24 +6755,15 @@ if test "$wxUSE_TOGGLEBTN" = "yes"; then fi fi -if test "$wxUSE_TOOLBAR_SIMPLE" = "yes"; then - AC_DEFINE(wxUSE_TOOLBAR_SIMPLE) - wxUSE_TOOLBAR="yes" - USES_CONTROLS=1 -fi - if test "$wxUSE_TOOLBAR" = "yes"; then AC_DEFINE(wxUSE_TOOLBAR) USES_CONTROLS=1 - dnl if wxUSE_TOOLBAR and !wxUSE_TOOLBAR_SIMPLE => wxUSE_TOOLBAR_NATIVE - if test "$wxUSE_TOOLBAR_SIMPLE" != "yes"; then + if test "$wxUSE_UNIVERSAL" = "yes"; then + wxUSE_TOOLBAR_NATIVE="no" + else wxUSE_TOOLBAR_NATIVE="yes" - fi - - if test "$wxUSE_TOOLBAR_NATIVE" = "yes"; then AC_DEFINE(wxUSE_TOOLBAR_NATIVE) - USES_CONTROLS=1 fi SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS toolbar" @@ -5978,6 +6781,16 @@ 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_TOOLBOOK" = "yes"; then + AC_DEFINE(wxUSE_TOOLBOOK) + USES_CONTROLS=1 +fi + if test "$wxUSE_TREECTRL" = "yes"; then if test "$wxUSE_IMAGLIST" = "yes"; then AC_DEFINE(wxUSE_TREECTRL) @@ -6034,6 +6847,10 @@ if test "$wxUSE_ACCESSIBILITY" = "yes"; then SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS access" fi +if test "$wxUSE_DC_CACHEING" = "yes"; then + AC_DEFINE(wxUSE_DC_CACHEING) +fi + if test "$wxUSE_DRAGIMAGE" = "yes"; then AC_DEFINE(wxUSE_DRAGIMAGE) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dragimag" @@ -6060,7 +6877,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) @@ -6091,6 +6908,13 @@ if test "$wxUSE_XRC" = "yes"; then fi fi +USE_AUI=0 +if test "$wxUSE_AUI" = "yes"; then + AC_DEFINE(wxUSE_AUI) + USE_AUI=1 + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS aui" +fi + if test "$wxUSE_MENUS" = "yes"; then AC_DEFINE(wxUSE_MENUS) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS menu" @@ -6132,6 +6956,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 --------------------------------------------------------------------------- @@ -6168,6 +6999,10 @@ dnl --------------------------------------------------------------------------- dnl common dialogs dnl --------------------------------------------------------------------------- +if test "$wxUSE_ABOUTDLG" = "yes"; then + AC_DEFINE(wxUSE_ABOUTDLG) +fi + if test "$wxUSE_CHOICEDLG" = "yes"; then AC_DEFINE(wxUSE_CHOICEDLG) fi @@ -6235,90 +7070,106 @@ if test "$wxUSE_WIZARDDLG" = "yes"; then fi dnl --------------------------------------------------------------------------- -dnl wxMediaCtrl +dnl wxGraphicsContext +dnl --------------------------------------------------------------------------- + +if test "$wxUSE_GRAPHICS_CONTEXT" = "yes"; then + if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = "1"; then + AC_DEFINE(wxUSE_GRAPHICS_CONTEXT) + elif test "$wxUSE_GTK" != 1; then + dnl for other builds we'll just wing it for now... + AC_DEFINE(wxUSE_GRAPHICS_CONTEXT) + else + dnl ...but let's check for cairo availability for wxGTK builds + PKG_CHECK_MODULES(CAIRO, cairo, + [ + AC_DEFINE(wxUSE_GRAPHICS_CONTEXT) + ], + [ + AC_MSG_WARN([Cairo library not found, unable to set wxUSE_GRAPHICS_CONTEXT]) + ] + ) + fi +fi + +dnl --------------------------------------------------------------------------- +dnl wxMediaCtrl dnl --------------------------------------------------------------------------- +USE_MEDIA=0 + if test "$wxUSE_MEDIACTRL" = "yes"; then + USE_MEDIA=1 + 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" - LIBS="$LIBS $GSTREAMER_LIBS -lgstplay-0.8" - ], - [ - AC_MSG_WARN([GStreamer installation not found]) - wxUSE_GSTREAMER="no" - ]) - + wxUSE_GSTREAMER="no" + dnl ------------------------------------------------------------------- - dnl Perform a check for a GStreamer element using gst-inspect - dnl Thomas Vander Stichele - dnl Last modification: 25/01/2005 + dnl Test for at least 0.8 gstreamer module from pkg-config + dnl Even totem doesn't accept 0.9 evidently. dnl - dnl AM_GST_ELEMENT_CHECK(ELEMENT-NAME, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND) - dnl ------------------------------------------------------------------- - AC_DEFUN([AM_GST_ELEMENT_CHECK], - [ - 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 - AC_MSG_RESULT(found.) - $2 - else - AC_MSG_RESULT(not found.) - $3 - fi - fi - ]) - - dnl ------------------------------------------------------------------- - dnl Test for x video sink (video useless without) - dnl ------------------------------------------------------------------- - AM_GST_ELEMENT_CHECK(xvimagesink,[], - [ - wxUSE_GSTREAMER="no" - AC_MSG_WARN([x video sink not found - cannot use GStreamer]) - ]) - + dnl So, we first check to see if 0.10 if available - if not we + dnl try the older 0.8 version dnl ------------------------------------------------------------------- - dnl Check for gstplay-0.8 lib and corresponding x overlay header - 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) - - if test "$ac_find_libraries" = "" ; then - AC_MSG_RESULT([no]) - wxUSE_GSTREAMER="no" + GST_VERSION_MAJOR=0 + GST_VERSION_MINOR=10 + GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR + + if test "$wxUSE_GSTREAMER8" = "no"; then + PKG_CHECK_MODULES(GST, + [gstreamer-$GST_VERSION gstreamer-plugins-base-$GST_VERSION gconf-2.0], + [ + wxUSE_GSTREAMER="yes" + GST_LIBS="$GST_LIBS -lgstinterfaces-$GST_VERSION" + ], + [ + AC_MSG_WARN([GStreamer 0.10 not available, falling back to 0.8]) + GST_VERSION_MINOR=8 + ] + ) else - AC_MSG_RESULT([yes]) + dnl check only for 0.8 + GST_VERSION_MINOR=8 + fi + + if test $GST_VERSION_MINOR = "8"; then + GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR + PKG_CHECK_MODULES(GST, + [gstreamer-$GST_VERSION gstreamer-interfaces-$GST_VERSION gstreamer-gconf-$GST_VERSION], + wxUSE_GSTREAMER="yes", + [ + AC_MSG_WARN([GStreamer 0.8/0.10 not available.]) + ]) fi - + + if test "$wxUSE_GSTREAMER" = "yes"; then + dnl system gstreamer package is compiled with Sun CC and outputs + dnl CC-specific "-mt" in its flags, remove it for gcc compilation + case "${host}" in + *-*-solaris2* ) + if "$GCC" = yes; then + GST_CFLAGS=`echo $GST_CFLAGS | sed 's/-mt//'` + GST_LIBS=`echo $GST_LIBS | sed 's/-mt//'` + fi + esac + + CPPFLAGS="$GST_CFLAGS $CPPFLAGS" + LIBS="$GST_LIBS $LIBS" + AC_DEFINE(wxUSE_GSTREAMER) - AC_MSG_RESULT([GStreamer detection successful]) + else + USE_MEDIA=0 fi fi - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mediaplayer" - AC_DEFINE(wxUSE_MEDIACTRL) + + if test $USE_MEDIA = 1; then + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mediaplayer" + AC_DEFINE(wxUSE_MEDIACTRL) + fi fi dnl --------------------------------------------------------------------------- @@ -6372,6 +7223,9 @@ fi if test "$wxUSE_XRC" = "yes" ; then CORE_GUI_LIBS="xrc $CORE_GUI_LIBS" fi +if test "$wxUSE_AUI" = "yes" ; then + CORE_GUI_LIBS="aui $CORE_GUI_LIBS" +fi if test "$wxUSE_GUI" != "yes"; then CORE_GUI_LIBS="" @@ -6380,15 +7234,14 @@ fi AC_SUBST(CORE_BASE_LIBS) AC_SUBST(CORE_GUI_LIBS) - dnl --------------------------------------------------------------------------- dnl Output the makefiles and such from the results found above dnl --------------------------------------------------------------------------- -dnl all additional libraries (except wxWidgets itself) we link with +dnl no more tests from here +AC_LANG_POP -dnl note that we always link with -lm except for Mac OS X -dnl extended.c uses floor() and is always linked in +dnl all additional libraries (except wxWidgets itself) we link with if test "$wxUSE_MAC" = 1 ; then if test "$wxUSE_SOUND" = "yes" || test "$wxUSE_MEDIACTRL" = "yes"; then @@ -6414,53 +7267,8 @@ if test "$USE_DARWIN" = 1 -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1 ; then LDFLAGS="$LDFLAGS -framework IOKit -framework CoreServices -framework System -framework ApplicationServices" fi -dnl FIXME: should this be covered by the conditional above -dnl given the -lm comment there? Or should that comment (and -dnl this one) be removed.. [ 7 Nov 2001 ] - LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK $LIBS" -dnl Only add the -lm library if floating point functions cannot be used -dnl without it. This check is important on cygwin because of the bizarre -dnl way that they have organized functions into libraries. On cygwin, both -dnl libc.a and libm.a are symbolic links to a single lib libcygwin.a. This -dnl means that -dnl 1) linking with -lm is not necessary, and -dnl 2) linking with -lm is dangerous if the order of libraries is wrong -dnl In particular, if you compile any program with -mno-cygwin and link with -dnl -lm, it will crash instantly when it is run. This happens because the -dnl linker incorrectly links the Cygwin libm.a (==libcygwin.a), which replaces -dnl the ___main function instead of allowing it to be defined by -dnl /usr/lib/mingw/libmingw32.a as it should be. -dnl -dnl On MacOS X, this test will find that -lm is unnecessary and leave it out. -dnl -dnl Just check a few floating point functions. If they are all found without -dnl -lm, then we must not need -lm. -have_cos=0 -have_floor=0 -AC_CHECK_FUNCS(cos, have_cos=1) -AC_CHECK_FUNCS(floor, have_floor=1) -AC_MSG_CHECKING(if floating point functions link without -lm) -if test "$have_cos" = 1 -a "$have_floor" = 1; then - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) - LIBS="$LIBS -lm" - # use different functions to avoid configure caching - have_sin=0 - have_ceil=0 - AC_CHECK_FUNCS(sin, have_sin=1) - AC_CHECK_FUNCS(ceil, have_ceil=1) - AC_MSG_CHECKING(if floating point functions link with -lm) - if test "$have_sin" = 1 -a "$have_ceil" = 1; then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - # not sure we should warn the user, crash, etc. - fi -fi - if test "$wxUSE_GUI" = "yes"; then dnl TODO add checks that these samples will really compile (i.e. all the @@ -6470,7 +7278,7 @@ if test "$wxUSE_GUI" = "yes"; then SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS artprov controls dialogs drawing \ dynamic erase event exec font image minimal mobile \ mobile/wxedit mobile/styles propsize render \ - richedit rotate shaped vscroll widgets" + rotate shaped vscroll widgets" if test "$wxUSE_MONOLITHIC" != "yes"; then SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS console" @@ -6489,31 +7297,71 @@ 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" - CXXWARNINGS="$CWARNINGS -Wno-ctor-dtor-privacy" - dnl should enable this one day... - dnl CXXWARNINGS="-Wall -Werror" -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 ` + +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` -EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE" -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 dnl must use from system not our local copy on OS X, @@ -6536,22 +7384,15 @@ EXTRALIBS_XML="$EXPAT_LINK" EXTRALIBS_HTML="$MSPACK_LINK" EXTRALIBS_ODBC="$ODBC_LINK" if test "$wxUSE_GUI" = "yes"; then - EXTRALIBS_GUI=`echo $GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK $WEBKIT_LINK $EXTRALIBS_GNOMEPRINT` + EXTRALIBS_GUI=`echo $GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK $WEBKIT_LINK $EXTRALIBS_HILDON $EXTRALIBS_GNOMEVFS $EXTRALIBS_GNOMEPRINT` 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 @@ -6577,12 +7418,23 @@ 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 if test "x$wxUSE_UNIVERSAL" = "xyes" ; then WXUNIV=1 + + case "$wxUNIV_THEMES" in + ''|all) + AC_DEFINE(wxUSE_ALL_THEMES) + ;; + + *) + for t in `echo $wxUNIV_THEMES | tr , ' ' | tr a-z A-Z`; do + AC_DEFINE_UNQUOTED(wxUSE_THEME_$t) + done + esac else WXUNIV=0 fi @@ -6643,6 +7495,8 @@ AC_SUBST(EXTRALIBS_OPENGL) AC_SUBST(EXTRALIBS_SDL) AC_SUBST(WITH_PLUGIN_SDL) AC_SUBST(EXTRALIBS_GNOMEPRINT) +AC_SUBST(EXTRALIBS_GNOMEVFS) +AC_SUBST(EXTRALIBS_HILDON) AC_SUBST(UNICODE) AC_SUBST(BUILD) AC_SUBST(DEBUG_INFO) @@ -6658,14 +7512,31 @@ AC_SUBST(CPPUNIT_LIBS) case "$TOOLKIT" in GTK) - TOOLKIT_USER="GTK+" + TOOLKIT_DESC="GTK+" if test "$WXGTK20" = 1; then - TOOLKIT_USER="$TOOLKIT_USER 2" + TOOLKIT_DESC="$TOOLKIT_DESC 2" + if test "$wxUSE_LIBGNOMEPRINT" = "yes" ; then + TOOLKIT_EXTRA="$TOOLKIT_EXTRA gnomeprint"; + fi + if test "$wxUSE_LIBGNOMEVFS" = "yes" ; then + TOOLKIT_EXTRA="$TOOLKIT_EXTRA gnomevfs" + fi + if test "$wxUSE_LIBHILDON" = "yes"; then + TOOLKIT_EXTRA="$TOOLKIT_EXTRA hildon" + fi + + if test "$TOOLKIT_EXTRA" != ""; then + TOOLKIT_DESC="$TOOLKIT_DESC with support for `echo $TOOLKIT_EXTRA | tr -s ' '`" + fi fi ;; + ?*) + TOOLKIT_DESC=$TOOLKIT_LOWERCASE + ;; + *) - TOOLKIT_USER=$TOOLKIT_LOWERCASE + TOOLKIT_DESC="base only" ;; esac @@ -6673,10 +7544,46 @@ if test "$wxUSE_WINE" = "yes"; then BAKEFILE_FORCE_PLATFORM=win32 fi +dnl --------------------------------------------------------------------------- +dnl Add Universal binary support +dnl Note we don't do this earlier because adding these cpp/ld flags could +dnl cause configure tests to fail. +dnl --------------------------------------------------------------------------- +if test "$wxUSE_MAC" = 1 ; then + 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 + OSX_UNIV_OPTS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk" + else + dnl '' would mean universal with no SDK, which may be the case if + dnl the compiler uses a sysroot by default + OSX_UNIV_OPTS=${wxUSE_UNIVERSAL_BINARY:+"-isysroot '$wxUSE_UNIVERSAL_BINARY'"} + fi + OSX_UNIV_OPTS="$OSX_UNIV_OPTS -arch ppc -arch i386" + CXXFLAGS="$OSX_UNIV_OPTS $CXXFLAGS" + CFLAGS="$OSX_UNIV_OPTS $CFLAGS" + LDFLAGS="$OSX_UNIV_OPTS $LDFLAGS" + bk_use_pch=no + fi + # TODO: where do we add "-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk" for libtool (static builds only)? + # The makefile currently uses AR and RANLIB, which libtool apparently supercedes. +fi + AC_BAKEFILE([m4_include(autoconf_inc.m4)]) -if test "$wxUSE_WINE" = "yes"; then - RESCOMP=wrc +dnl HACK ALERT!! +dnl For now, we need to alter bk-deps not to generate deps +dnl when we've configured a Universal binary build. +dnl The next version of Bakefile will have the correct fix for this +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 + fi fi if test "$wxUSE_SHARED" = "yes"; then @@ -6717,14 +7624,15 @@ if test "$wxUSE_OMF" = "yes"; then esac fi +dnl find out if the compiler supports PCH +dnl +dnl TODO: this should be in bakefile if test $GCC_PCH = 1 ; then CPPFLAGS="-DWX_PRECOMP $CPPFLAGS" fi -dnl FIXME: This is a temporary measure until the need for it is also -dnl removed from the headers. -CPPFLAGS="-DNO_GCC_PRAGMA $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 @@ -6746,9 +7654,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) @@ -6757,8 +7662,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) @@ -6769,13 +7672,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(CODE_GEN_FLAGS) -AC_SUBST(CODE_GEN_FLAGS_CXX) +AC_SUBST(WXCONFIG_RESFLAGS) AC_SUBST(EXE_LINKER) dnl distribution vars @@ -6794,6 +7709,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) @@ -6802,9 +7719,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) @@ -6819,6 +7735,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}" ]) @@ -6829,8 +7762,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 ], @@ -6845,7 +7777,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" @@ -6902,7 +7834,7 @@ for subdir in `echo $SUBDIRS`; do done fi done - +fi dnl wxWITH_SUBDIRS AC_OUTPUT @@ -6910,7 +7842,7 @@ dnl report how we have been configured echo echo "Configured wxWidgets ${WX_VERSION} for \`${host}'" echo "" -echo " Which GUI toolkit should wxWidgets use? ${TOOLKIT_USER:-base only}" +echo " Which GUI toolkit should wxWidgets use? ${TOOLKIT_DESC}" echo " Should wxWidgets be compiled into single library? ${wxUSE_MONOLITHIC:-yes}" echo " Should wxWidgets be compiled in debug mode? ${wxUSE_DEBUG:-no}" @@ -6918,8 +7850,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}" @@ -6934,7 +7866,6 @@ echo " odbc ${wxUSE_ODBC}" echo " expat ${wxUSE_EXPAT}" echo " libmspack ${wxUSE_LIBMSPACK}" echo " sdl ${wxUSE_LIBSDL}" -echo " gnomeprint ${wxUSE_LIBGNOMEPRINT-none}" echo ""