X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1cbb95a220ca555404edc97392795499a546f261..80a779275ae04443c568dca919adb26cf6f5002c:/configure.in diff --git a/configure.in b/configure.in index 7c5b95b390..38a18b2e7a 100644 --- a/configure.in +++ b/configure.in @@ -1,14 +1,14 @@ dnl Process this file with autoconf to produce a configure script. AC_REVISION($Id$)dnl -AC_PREREQ(2.57) +AC_PREREQ(2.58) dnl --------------------------------------------------------------------------- dnl -dnl Top-level configure.in for wxWindows by Robert Roebling, Phil Blecker, +dnl Top-level configure.in for wxWidgets by Robert Roebling, Phil Blecker, dnl Vadim Zeitlin and Ron Lee dnl -dnl This script is under the wxWindows licence. +dnl This script is under the wxWidgets licence. dnl dnl Version: $Id$ dnl --------------------------------------------------------------------------- @@ -17,7 +17,7 @@ dnl --------------------------------------------------------------------------- dnl initialization dnl --------------------------------------------------------------------------- -AC_INIT([wxWindows], [2.5.0], [wx-dev@lists.wxwindows.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]) @@ -30,41 +30,19 @@ AC_CANONICAL_TARGET dnl When making releases do: dnl -dnl WX_RELEASE_NUMBER += 1 -dnl -dnl ..and update WX_CURRENT, WX_RELEASE 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. -dnl -dnl The resulting library name will be of the form: -dnl libwx_$(TOOLKIT)-$(WX_RELEASE).so.$(WX_CURRENT).$(WX_REVISION).$(WX_AGE) +dnl wx_release_number += 1 -WX_MAJOR_VERSION_NUMBER=2 -WX_MINOR_VERSION_NUMBER=5 -WX_RELEASE_NUMBER=0 +wx_major_version_number=2 +wx_minor_version_number=7 +wx_release_number=1 +wx_subrelease_number=2 -WX_VERSION=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER.$WX_RELEASE_NUMBER -WX_RELEASE=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER +WX_RELEASE=$wx_major_version_number.$wx_minor_version_number +WX_VERSION=$WX_RELEASE.$wx_release_number +WX_SUBVERSION=$WX_VERSION.$wx_subrelease_number -WX_MSW_VERSION=$WX_MAJOR_VERSION_NUMBER$WX_MINOR_VERSION_NUMBER$WX_RELEASE_NUMBER +WX_MSW_VERSION=$wx_major_version_number$wx_minor_version_number$wx_release_number -WX_CURRENT=0 -WX_REVISION=0 -WX_AGE=0 dnl ------------------------------------------------------------------------ @@ -73,6 +51,7 @@ dnl ------------------------------------------------------------------------ dnl OS (assume Unix) USE_UNIX=1 +USE_OS2=0 USE_WIN32=0 USE_DOS=0 USE_BEOS=0 @@ -110,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 @@ -123,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* @@ -136,10 +116,14 @@ 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 SAMPLES_RPATH_FLAG= +SAMPLES_RPATH_POSTLINK= + +DEFAULT_STD_FLAG=yes dnl to support a new system, you need to add its canonical name (as determined dnl by config.sub or specified by the configure command line) to this "case" @@ -152,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 @@ -163,9 +151,8 @@ case "${host}" in fi DEFAULT_DEFAULT_wxUSE_GTK=1 ;; - *-*-gnu* ) + *-*-gnu* | *-*-k*bsd*-gnu ) USE_GNU=1 - AC_DEFINE(__GNU__) TMP=`uname -m` if test "x$TMP" = "xalpha"; then USE_ALPHA=1 @@ -206,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__) @@ -219,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 @@ -271,8 +263,8 @@ 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 ;; *-pc-msdosdjgpp ) @@ -281,26 +273,64 @@ case "${host}" in AC_DEFINE(__DOS__) PROGRAM_EXT=".exe" DEFAULT_DEFAULT_wxUSE_MGL=1 - dnl DJGPP needs explicit -lstdc++ for some reason (VS: mayb some versions only?) - LIBS="$LIBS -lstdc++" ;; *-pc-os2_emx | *-pc-os2-emx ) AC_DEFINE(__EMX__) + USE_OS2=1 + AC_DEFINE(__OS2__) PROGRAM_EXT=".exe" DEFAULT_DEFAULT_wxUSE_PM=1 + dnl "c++" wrapper is not always available, so always use plain gcc. + CXX=gcc + LDFLAGS="$LDFLAGS -Zcrtdll" + dnl + dnl Some special code that's automatically added by autoconf-2.57 for OS/2 + dnl and hopefully also by autoconf-2.58 and newer on all other platforms. + dnl For now however, we still need it to make sure the configure script + dnl works on OS/2 no matter what platform it is generated on. + ac_executable_extensions=".exe" + export ac_executable_extensions + dnl This strange code is necessary to deal with handling of + dnl backslashes by ksh and pdksh's sh variant. + ac_save_IFS="$IFS" + IFS='\\' + ac_TEMP_PATH= + for ac_dir in $PATH; do + IFS=$ac_save_IFS + if test -z "$ac_TEMP_PATH"; then + ac_TEMP_PATH="$ac_dir" + else + ac_TEMP_PATH="$ac_TEMP_PATH/$ac_dir" + fi + done + export PATH="$ac_TEMP_PATH" + unset ac_TEMP_PATH + 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 AC_DEFINE(__BSD__) AC_DEFINE(__DARWIN__) - AC_DEFINE(__POWERPC__) AC_DEFINE(TARGET_CARBON) DEFAULT_DEFAULT_wxUSE_MAC=1 + DEFAULT_STD_FLAG=no + ;; + powerpc-apple-macos* ) + dnl Classic Mac OS (< X) + USE_UNIX=0 + dnl For some reason the test that should be cross-compiler capable fails + dnl However, there is no doubt that MacOS PowerPC is big endian. + ac_cv_c_bigendian=yes + SO_SUFFIX=shlib + dnl AC_DEFINE(TARGET_CARBON) + dnl platform.h needs TARGET_CARBON before setup.h, we'll add it to CPPFLAGS + DEFAULT_DEFAULT_wxUSE_MAC=1 + DEFAULT_STD_FLAG=no ;; *-*-beos* ) @@ -310,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 --------------------------------------------------------------------------- @@ -336,12 +370,14 @@ 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 DEFAULT_wxUSE_DEBUG_INFO=yes @@ -351,6 +387,7 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_DMALLOC=no DEFAULT_wxUSE_APPLE_IEEE=no + DEFAULT_wxUSE_EXCEPTIONS=no DEFAULT_wxUSE_LOG=yes DEFAULT_wxUSE_LOGWINDOW=no DEFAULT_wxUSE_LOGGUI=no @@ -366,21 +403,34 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_LIBPNG=no DEFAULT_wxUSE_LIBJPEG=no DEFAULT_wxUSE_LIBTIFF=no + DEFAULT_wxUSE_LIBXPM=no + 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 DEFAULT_wxUSE_ON_FATAL_EXCEPTION=no + DEFAULT_wxUSE_STACKWALKER=no + DEFAULT_wxUSE_DEBUGREPORT=no DEFAULT_wxUSE_SNGLINST_CHECKER=no DEFAULT_wxUSE_STD_IOSTREAM=no + DEFAULT_wxUSE_STD_STRING=no DEFAULT_wxUSE_CMDLINE_PARSER=no DEFAULT_wxUSE_DATETIME=no DEFAULT_wxUSE_TIMER=no DEFAULT_wxUSE_STOPWATCH=no DEFAULT_wxUSE_FILE=no DEFAULT_wxUSE_FFILE=no + DEFAULT_wxUSE_STDPATHS=no DEFAULT_wxUSE_TEXTBUFFER=no DEFAULT_wxUSE_TEXTFILE=no - DEFAULT_wxUSE_WAVE=no + DEFAULT_wxUSE_SOUND=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 @@ -404,7 +454,9 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_DRAG_AND_DROP=no DEFAULT_wxUSE_DRAGIMAGE=no DEFAULT_wxUSE_SPLINES=no + DEFAULT_wxUSE_MOUSEWHEEL=no + DEFAULT_wxUSE_MDI=no DEFAULT_wxUSE_MDI_ARCHITECTURE=no DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=no DEFAULT_wxUSE_PRINTING_ARCHITECTURE=no @@ -424,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 @@ -443,29 +497,49 @@ 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 DEFAULT_wxUSE_FS_ZIP=no DEFAULT_wxUSE_BUSYINFO=no + DEFAULT_wxUSE_ARCHIVE_STREAMS=no DEFAULT_wxUSE_ZIPSTREAM=no 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 @@ -479,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 @@ -502,8 +577,9 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_XPM=no DEFAULT_wxUSE_ICO_CUR=no DEFAULT_wxUSE_ACCESSIBILITY=no - - DEFAULT_wxUSE_MONOLITHIC=yes + + DEFAULT_wxUSE_MONOLITHIC=no + DEFAULT_wxUSE_PLUGINS=no DEFAULT_wxUSE_OFFICIAL_BUILD=no else DEFAULT_wxUSE_UNIVERSAL=no @@ -513,12 +589,14 @@ 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 DEFAULT_wxUSE_DEBUG_INFO=no @@ -528,6 +606,7 @@ else DEFAULT_wxUSE_DMALLOC=no DEFAULT_wxUSE_APPLE_IEEE=yes + DEFAULT_wxUSE_EXCEPTIONS=yes DEFAULT_wxUSE_LOG=yes DEFAULT_wxUSE_LOGWINDOW=yes DEFAULT_wxUSE_LOGGUI=yes @@ -542,21 +621,34 @@ else DEFAULT_wxUSE_LIBPNG=yes DEFAULT_wxUSE_LIBJPEG=yes DEFAULT_wxUSE_LIBTIFF=yes + DEFAULT_wxUSE_LIBXPM=yes + 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 DEFAULT_wxUSE_ON_FATAL_EXCEPTION=yes + DEFAULT_wxUSE_STACKWALKER=yes + DEFAULT_wxUSE_DEBUGREPORT=yes DEFAULT_wxUSE_SNGLINST_CHECKER=yes - DEFAULT_wxUSE_STD_IOSTREAM=no + DEFAULT_wxUSE_STD_IOSTREAM=$DEFAULT_STD_FLAG + DEFAULT_wxUSE_STD_STRING=$DEFAULT_STD_FLAG DEFAULT_wxUSE_CMDLINE_PARSER=yes DEFAULT_wxUSE_DATETIME=yes DEFAULT_wxUSE_TIMER=yes DEFAULT_wxUSE_STOPWATCH=yes DEFAULT_wxUSE_FILE=yes DEFAULT_wxUSE_FFILE=yes + DEFAULT_wxUSE_STDPATHS=yes DEFAULT_wxUSE_TEXTBUFFER=yes DEFAULT_wxUSE_TEXTFILE=yes - DEFAULT_wxUSE_WAVE=no + 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 @@ -580,7 +672,9 @@ else DEFAULT_wxUSE_DRAG_AND_DROP=yes DEFAULT_wxUSE_DRAGIMAGE=yes DEFAULT_wxUSE_SPLINES=yes + DEFAULT_wxUSE_MOUSEWHEEL=yes + DEFAULT_wxUSE_MDI=yes DEFAULT_wxUSE_MDI_ARCHITECTURE=yes DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=yes DEFAULT_wxUSE_PRINTING_ARCHITECTURE=yes @@ -600,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 @@ -619,29 +715,49 @@ 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 DEFAULT_wxUSE_FS_ZIP=yes DEFAULT_wxUSE_BUSYINFO=yes + DEFAULT_wxUSE_ARCHIVE_STREAMS=yes DEFAULT_wxUSE_ZIPSTREAM=yes 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_DISPLAY=no + 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 @@ -655,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 @@ -678,11 +795,16 @@ else DEFAULT_wxUSE_XPM=yes DEFAULT_wxUSE_ICO_CUR=yes DEFAULT_wxUSE_ACCESSIBILITY=no - - DEFAULT_wxUSE_MONOLITHIC=yes + + DEFAULT_wxUSE_MONOLITHIC=no + DEFAULT_wxUSE_PLUGINS=no DEFAULT_wxUSE_OFFICIAL_BUILD=no + + dnl Applicable only when --with-gtk was used: + DEFAULT_wxUSE_GTK2=yes fi + dnl WX_ARG_WITH should be used to select whether an external package will be dnl used or not, to configure compile-time features of this package itself, dnl use WX_ARG_ENABLE instead @@ -699,11 +821,16 @@ 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" + fi fi done dnl --------------------------------------------------------------------------- -dnl --disable-gui will build only non-GUI part of wxWindows: check for this +dnl --disable-gui will build only non-GUI part of wxWidgets: check for this dnl first to disable many other switches if it's given dnl dnl NB: this is still in testing stage, don't use if you don't know what you're @@ -711,30 +838,44 @@ dnl doing dnl --------------------------------------------------------------------------- WX_ARG_ENABLE(gui, [ --enable-gui use GUI classes], wxUSE_GUI) -WX_ARG_ENABLE(monolithic, [ --disable-monolithic don't build wxWindows as single library], wxUSE_MONOLITHIC) +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 -WX_ARG_ENABLE(universal, [ --enable-universal use wxWindows GUI controls instead of native ones], wxUSE_UNIVERSAL) -AC_ARG_WITH(gtk, [ --with-gtk use GTK+], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1]) +WX_ARG_ENABLE(universal, [ --enable-universal use wxWidgets GUI controls instead of native ones], wxUSE_UNIVERSAL) +AC_ARG_WITH(gtk, [[ --with-gtk[=VERSION] use GTK+, VERSION can be 2 (default), 1 or "any"]], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1]) AC_ARG_WITH(motif, [ --with-motif use Motif/Lesstif], [wxUSE_MOTIF="$withval" CACHE_MOTIF=1 TOOLKIT_GIVEN=1]) -AC_ARG_WITH(mac, [ --with-mac use Mac OS X], [wxUSE_MAC="$withval" TOOLKIT_GIVEN=1]) -AC_ARG_WITH(cocoa, [ --with-cocoa use Cocoa], [wxUSE_COCOA="$withval" TOOLKIT_GIVEN=1]) +AC_ARG_WITH(mac, [ --with-mac use Mac OS X], [wxUSE_MAC="$withval" CACHE_MAC=1 TOOLKIT_GIVEN=1]) +AC_ARG_WITH(cocoa, [ --with-cocoa use Cocoa], [wxUSE_COCOA="$withval" CACHE_COCOA=1 TOOLKIT_GIVEN=1]) AC_ARG_WITH(wine, [ --with-wine use Wine], [wxUSE_WINE="$withval" CACHE_WINE=1]) 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) -WX_ARG_ENABLE(gtk2, [ --enable-gtk2 use GTK+ 2.0 if available (EXPERIMENTAL)], wxUSE_GTK2) +AC_ARG_ENABLE(gtk2, [ --disable-gtk2 use GTK+ 1.2 instead of 2.0], [wxUSE_GTK2="$enableval"]) +WX_ARG_ENABLE(gpe, [ --enable-gpe use GNOME PDA Environment features if possible], wxUSE_GPE) WX_ARG_SYS_WITH(libpng, [ --with-libpng use libpng (PNG image format)], wxUSE_LIBPNG) WX_ARG_SYS_WITH(libjpeg, [ --with-libjpeg use libjpeg (JPEG file format)], wxUSE_LIBJPEG) WX_ARG_SYS_WITH(libtiff, [ --with-libtiff use libtiff (TIFF file format)], wxUSE_LIBTIFF) +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 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 @@ -752,13 +893,19 @@ WX_ARG_ENABLE(shared, [ --enable-shared create shared library code WX_ARG_ENABLE(optimise, [ --enable-optimise create optimised code], wxUSE_OPTIMISE) WX_ARG_ENABLE(debug, [ --enable-debug same as debug_flag and debug_info], wxUSE_DEBUG) WX_ARG_ENABLE(stl, [ --enable-stl use STL for containers], wxUSE_STL) +if test "$USE_OS2" = "1"; then + DEFAULT_wxUSE_OMF=no + WX_ARG_ENABLE(omf, [ --enable-omf use OMF object format], wxUSE_OMF) +fi if test "$wxUSE_DEBUG" = "yes"; then DEFAULT_wxUSE_DEBUG_FLAG=yes DEFAULT_wxUSE_DEBUG_INFO=yes + BUILD=debug elif test "$wxUSE_DEBUG" = "no"; then DEFAULT_wxUSE_DEBUG_FLAG=no DEFAULT_wxUSE_DEBUG_INFO=no + BUILD=release fi WX_ARG_ENABLE(debug_flag, [ --enable-debug_flag set __WXDEBUG__ flag (recommended for developers!)], wxUSE_DEBUG_FLAG) @@ -771,16 +918,12 @@ 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(compat20, [ --enable-compat20 enable wxWindows 2.0 compatibility], WXWIN_COMPATIBILITY_2) -WX_ARG_ENABLE(compat22, [ --enable-compat22 enable wxWindows 2.2 compatibility], WXWIN_COMPATIBILITY_2_2) -WX_ARG_ENABLE(compat24, [ --disable-compat24 disable wxWindows 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) -AC_ARG_ENABLE(rpath, [ --enable-rpath=DIR output the rpath flag from wx-config], [wxRPATH_DIR="$enableval"]) - -if test "$wxRPATH_DIR" != "" -a "$wxRPATH_DIR" != "disable"; then - WXCONFIG_RPATH="-Wl,-rpath -Wl,$wxRPATH_DIR" -fi +WX_ARG_ENABLE(rpath, [ --disable-rpath disable use of rpath for uninstalled builds], wxUSE_RPATH) dnl --------------------------------------------------------------------------- @@ -795,46 +938,53 @@ WX_ARG_ENABLE(ftp, [ --enable-ftp use wxFTP (requires wxPr WX_ARG_ENABLE(http, [ --enable-http use wxHTTP (requires wxProtocol], wxUSE_PROTOCOL_HTTP) WX_ARG_ENABLE(fileproto, [ --enable-fileproto use wxFileProto class (requires wxProtocol], wxUSE_PROTOCOL_FILE) WX_ARG_ENABLE(sockets, [ --enable-sockets use socket/network classes], wxUSE_SOCKETS) -WX_ARG_ENABLE(ole, [ --enable-ole use OLE classes], wxUSE_OLE) +WX_ARG_ENABLE(ole, [ --enable-ole use OLE classes (Win32 only)], wxUSE_OLE) WX_ARG_ENABLE(dataobj, [ --enable-dataobj use data object classes], wxUSE_DATAOBJ) WX_ARG_ENABLE(ipc, [ --enable-ipc use interprocess communication (wxSocket etc.)], wxUSE_IPC) +dnl please keep the settings below in alphabetical order +WX_ARG_ENABLE(apple_ieee, [ --enable-apple_ieee use the Apple IEEE codec], wxUSE_APPLE_IEEE) +WX_ARG_ENABLE(arcstream, [ --enable-arcstream use wxArchive streams], wxUSE_ARCHIVE_STREAMS) +WX_ARG_ENABLE(backtrace, [ --enable-backtrace use wxStackWalker class for getting backtraces], wxUSE_STACKWALKER) +WX_ARG_ENABLE(catch_segvs, [ --enable-catch_segvs catch signals in wxApp::OnFatalException (Unix only)], wxUSE_ON_FATAL_EXCEPTION) WX_ARG_ENABLE(cmdline, [ --enable-cmdline use wxCmdLineParser class], wxUSE_CMDLINE_PARSER) WX_ARG_ENABLE(datetime, [ --enable-datetime use wxDateTime class], wxUSE_DATETIME) -WX_ARG_ENABLE(stopwatch, [ --enable-stopwatch use wxStopWatch class], wxUSE_STOPWATCH) +WX_ARG_ENABLE(debugreport, [ --enable-debugreport use wxDebugReport class], wxUSE_DEBUGREPORT) WX_ARG_ENABLE(dialupman, [ --enable-dialupman use dialup network classes], wxUSE_DIALUP_MANAGER) -WX_ARG_ENABLE(apple_ieee, [ --enable-apple_ieee use the Apple IEEE codec], wxUSE_APPLE_IEEE) -WX_ARG_ENABLE(timer, [ --enable-timer use wxTimer class], wxUSE_TIMER) -WX_ARG_ENABLE(wave, [ --enable-wave use wxWave class], wxUSE_WAVE) -WX_ARG_ENABLE(fraction, [ --enable-fraction use wxFraction class], wxUSE_FRACTION) WX_ARG_ENABLE(dynlib, [ --enable-dynlib use wxLibrary class for DLL loading], wxUSE_DYNLIB_CLASS) WX_ARG_ENABLE(dynamicloader, [ --enable-dynamicloader use (new) wxDynamicLibrary class], wxUSE_DYNAMIC_LOADER) -WX_ARG_ENABLE(longlong, [ --enable-longlong use wxLongLong class], wxUSE_LONGLONG) +WX_ARG_ENABLE(exceptions, [ --enable-exceptions build exception-safe library], wxUSE_EXCEPTIONS) +WX_ARG_ENABLE(ffile, [ --enable-ffile use wxFFile class], wxUSE_FFILE) +WX_ARG_ENABLE(file, [ --enable-file use wxFile class], wxUSE_FILE) +WX_ARG_ENABLE(filesystem, [ --enable-filesystem use virtual file systems classes], wxUSE_FILESYSTEM) +WX_ARG_ENABLE(fontmap, [ --enable-fontmap use font encodings conversion classes], wxUSE_FONTMAP) +WX_ARG_ENABLE(fs_inet, [ --enable-fs_inet use virtual HTTP/FTP filesystems], wxUSE_FS_INET) +WX_ARG_ENABLE(fs_zip, [ --enable-fs_zip use virtual ZIP filesystems], wxUSE_FS_ZIP) WX_ARG_ENABLE(geometry, [ --enable-geometry use geometry class], wxUSE_GEOMETRY) WX_ARG_ENABLE(log, [ --enable-log use logging system], wxUSE_LOG) +WX_ARG_ENABLE(longlong, [ --enable-longlong use wxLongLong class], wxUSE_LONGLONG) +WX_ARG_ENABLE(mimetype, [ --enable-mimetype use wxMimeTypesManager], wxUSE_MIMETYPE) +WX_ARG_ENABLE(mslu, [ --enable-mslu use MS Layer for Unicode on Windows 9x (Win32 only)], wxUSE_UNICODE_MSLU) +WX_ARG_ENABLE(snglinst, [ --enable-snglinst use wxSingleInstanceChecker class], wxUSE_SNGLINST_CHECKER) +WX_ARG_ENABLE(std_iostreams, [ --enable-std_iostreams use standard C++ stream classes], wxUSE_STD_IOSTREAM) +WX_ARG_ENABLE(std_string, [ --enable-std_string use standard C++ string classes], wxUSE_STD_STRING) +WX_ARG_ENABLE(stdpaths, [ --enable-stdpaths use wxStandardPaths class], wxUSE_STDPATHS) +WX_ARG_ENABLE(stopwatch, [ --enable-stopwatch use wxStopWatch class], wxUSE_STOPWATCH) WX_ARG_ENABLE(streams, [ --enable-streams use wxStream etc classes], wxUSE_STREAMS) -WX_ARG_ENABLE(file, [ --enable-file use wxFile classes], wxUSE_FILE) -WX_ARG_ENABLE(ffile, [ --enable-ffile use wxFFile classes], wxUSE_FFILE) +WX_ARG_ENABLE(system_options,[ --enable-sysoptions use wxSystemOptions], wxUSE_SYSTEM_OPTIONS) WX_ARG_ENABLE(textbuf, [ --enable-textbuf use wxTextBuffer class], wxUSE_TEXTBUFFER) WX_ARG_ENABLE(textfile, [ --enable-textfile use wxTextFile class], wxUSE_TEXTFILE) -WX_ARG_ENABLE(fontmap, [ --enable-fontmap use font encodings conversion classes], wxUSE_FONTMAP) +WX_ARG_ENABLE(timer, [ --enable-timer use wxTimer class], wxUSE_TIMER) WX_ARG_ENABLE(unicode, [ --enable-unicode compile wxString with Unicode support], wxUSE_UNICODE) -WX_ARG_ENABLE(mslu, [ --enable-mslu use MS Layer for Unicode on Windows 9x (win32 only)], wxUSE_UNICODE_MSLU) -WX_ARG_ENABLE(wxprintfv, [ --enable-wxprintfv use wxWindows implementation of vprintf()], wxUSE_EXPERIMENTAL_PRINTF) -WX_ARG_ENABLE(std_iostreams, [ --enable-std_iostreams use standard C++ stream classes], wxUSE_STD_IOSTREAM) -WX_ARG_ENABLE(filesystem, [ --enable-filesystem use virtual file systems classes], wxUSE_FILESYSTEM) -WX_ARG_ENABLE(fs_inet, [ --enable-fs_inet use virtual HTTP/FTP filesystems], wxUSE_FS_INET) -WX_ARG_ENABLE(fs_zip, [ --enable-fs_zip use virtual ZIP filesystems], wxUSE_FS_ZIP) -WX_ARG_ENABLE(zipstream, [ --enable-zipstream use wxZipInputStream], wxUSE_ZIPSTREAM) - -WX_ARG_ENABLE(catch_segvs, [ --enable-catch_segvs catch signals and pass them to wxApp::OnFatalException], wxUSE_ON_FATAL_EXCEPTION) -WX_ARG_ENABLE(snglinst, [ --enable-snglinst use wxSingleInstanceChecker class], wxUSE_SNGLINST_CHECKER) - -WX_ARG_ENABLE(mimetype, [ --enable-mimetype use wxMimeTypesManager], wxUSE_MIMETYPE) -WX_ARG_ENABLE(system_options,[ --enable-sysoptions use wxSystemOptions], wxUSE_SYSTEM_OPTIONS) +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(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) @@ -858,12 +1008,18 @@ WX_ARG_ENABLE(help, [ --enable-help use help subsystem], wxUSE WX_ARG_ENABLE(mshtmlhelp, [ --enable-mshtmlhelp use MS HTML Help (win32)], wxUSE_MS_HTML_HELP) 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_ARCHITECTURE) +WX_ARG_ENABLE(mdi, [ --enable-mdi use multiple document interface architecture], wxUSE_MDI) +WX_ARG_ENABLE(mdidoc, [ --enable-mdidoc use docview architecture with MDI], wxUSE_MDI_ARCHITECTURE) WX_ARG_ENABLE(loggui, [ --enable-loggui use standard GUI logger], wxUSE_LOGGUI) 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 @@ -902,17 +1058,30 @@ 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=no + DEFAULT_wxUSE_CALCTRL=yes DEFAULT_wxUSE_CARET=yes DEFAULT_wxUSE_COMBOBOX=yes DEFAULT_wxUSE_CHECKBOX=yes 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 DEFAULT_wxUSE_LISTCTRL=yes DEFAULT_wxUSE_NOTEBOOK=yes @@ -932,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 @@ -947,9 +1118,21 @@ elif test "$wxUSE_CONTROLS" = "no"; then DEFAULT_wxUSE_CHECKBOX=no 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 DEFAULT_wxUSE_LISTCTRL=no DEFAULT_wxUSE_NOTEBOOK=no @@ -969,43 +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 -## FIXME: This is a blatant hack -if test "x$wxUSE_COCOA" != "x" -a "$wxUSE_COCOA" != "0" ; then - wxUSE_PRINTING_ARCHITECTURE=no - wxUSE_CLIPBOARD=no - wxUSE_DRAG_AND_DROP=no - wxUSE_DATAOBJ=no - # Generic notebook requires tab dialog - DEFAULT_wxUSE_TABDIALOG=yes - DEFAULT_wxUSE_TOOLBAR_NATIVE=no - DEFAULT_wxUSE_SCROLLBAR=no - DEFAULT_wxUSE_TOOLTIPS=no - DEFAULT_wxUSE_DRAGIMAGE=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) @@ -1019,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) @@ -1034,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) @@ -1056,13 +1242,18 @@ WX_ARG_ENABLE(menus, [ --enable-menus use wxMenu/wxMenuBar/wxMen WX_ARG_ENABLE(miniframe, [ --enable-miniframe use wxMiniFrame class], wxUSE_MINIFRAME) WX_ARG_ENABLE(tooltips, [ --enable-tooltips use wxToolTip class], wxUSE_TOOLTIPS) WX_ARG_ENABLE(splines, [ --enable-splines use spline drawing code], wxUSE_SPLINES) +WX_ARG_ENABLE(mousewheel, [ --enable-mousewheel use mousewheel], wxUSE_MOUSEWHEEL) 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 (Linux only)], wxUSE_JOYSTICK) -WX_ARG_ENABLE(metafile, [ --enable-metafiles use wxMetaFile (Windows only)], wxUSE_METAFILE) +WX_ARG_ENABLE(joystick, [ --enable-joystick use wxJoystick], wxUSE_JOYSTICK) +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 --------------------------------------------------------------------------- @@ -1078,31 +1269,25 @@ WX_ARG_ENABLE(ico_cur, [ --enable-icocur use Windows ICO and CUR fo fi +dnl --------------------------------------------------------------------------- +dnl flavour support +dnl --------------------------------------------------------------------------- + +dnl Should this be --enable? I flip-flopped a couple of times and this seems +dnl in the spirit if not the letter, we have gtk-prefix and the like in this group. +dnl It doesn't actually change anything but the output file names. +AC_ARG_WITH(flavour, [ --with-flavour=NAME specify a name to identify this build], [WX_FLAVOUR="$withval"]) + dnl --------------------------------------------------------------------------- dnl some win32 settings dnl --------------------------------------------------------------------------- -WX_ARG_ENABLE(official_build, [ --enable-official_build official build of wxWindows (win32 DLL only)], wxUSE_OFFICIAL_BUILD) +WX_ARG_ENABLE(official_build, [ --enable-official_build official build of wxWidgets (win32 DLL only)], wxUSE_OFFICIAL_BUILD) AC_ARG_ENABLE(vendor, [ --enable-vendor=VENDOR vendor name (win32 DLL only)], [VENDOR="$enableval"]) if test "x$VENDOR" = "x"; then VENDOR="custom" fi -dnl General settings (needed for GUI and non-GUI compilations alike). -dnl Path separator; ':' for unix, ';' for OS/2 -dnl Stem for flex output; lexyy for OS/2, lex.yy otherwise -case "${host}" in - *-pc-os2_emx | *-pc-os2-emx ) - PATH_IFS=';' -dnl Really ought to text for this as meanwhile there are flex versions using -dnl lex.yy as well due to FAT support being more and more dropped... - LEX_STEM="lexyy" - ;; - *) - PATH_IFS=':' - LEX_STEM="lex.yy" - ;; -esac dnl for GUI only @@ -1119,8 +1304,10 @@ if test "$wxUSE_WINE" = "yes"; then DEFAULT_DEFAULT_wxUSE_GTK=0 DEFAULT_DEFAULT_wxUSE_MOTIF=0 DEFAULT_DEFAULT_wxUSE_MSW=1 + wxUSE_SHARED=no fi + if test "$wxUSE_GUI" = "yes"; then if test "$USE_BEOS" = 1; then @@ -1128,11 +1315,19 @@ if test "$wxUSE_GUI" = "yes"; then fi if test "$TOOLKIT_GIVEN" = 1; then - dnl convert "yes" to 1 and "no" to 0 + dnl convert "yes", "any" or a number to 1 and "no" to 0 for toolkit in `echo $ALL_TOOLKITS`; do var=wxUSE_$toolkit eval "value=\$${var}" - eval "$var=`echo \$value | sed -e "s/yes/1/" -e "s/no/0/"`" + if test "x$value" = "xno"; then + eval "$var=0" + elif test "x$value" != "x"; then + eval "$var=1" + fi + + if test "x$value" != "x" -a "x$value" != "xyes" -a "x$value" != "xno"; then + eval "wx${toolkit}_VERSION=$value" + fi done else dnl try to guess the most apropriate toolkit for this platform @@ -1141,6 +1336,11 @@ if test "$wxUSE_GUI" = "yes"; then var=DEFAULT_DEFAULT_wxUSE_$toolkit else var=DEFAULT_wxUSE_$toolkit + + eval "version=\$DEFAULT_wx${toolkit}_VERSION" + if test "x$version" != "x"; then + eval "wx${toolkit}_VERSION=$version" + fi fi eval "wxUSE_$toolkit=\$${var}" done @@ -1149,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. @@ -1168,6 +1368,13 @@ if test "$wxUSE_GUI" = "yes"; then AC_MSG_ERROR(Please specify at most one toolkit (maybe some are cached in configarg.cache?)) esac + # to be removed when --disable-gtk2 isn't needed + if test "x$wxUSE_GTK2" = "xyes"; then + wxGTK_VERSION=2 + elif test "x$wxUSE_GTK2" = "xno"; then + wxGTK_VERSION=1 + fi + dnl cache the wxUSE_ values too for toolkit in `echo $ALL_TOOLKITS`; do var=wxUSE_$toolkit @@ -1177,9 +1384,13 @@ if test "$wxUSE_GUI" = "yes"; then eval "cache=\$${cache_var}" if test "$cache" = 1; then echo "$var=$value" >> ${wx_arg_cache_file} + eval "version=\$wx${toolkit}_VERSION" + if test "x$version" != "x"; then + echo "wx${toolkit}_VERSION=$version" >> ${wx_arg_cache_file} + fi fi if test "$value" = 1; then - toolkit_echo=`echo $toolkit | tr [[A-Z]] [[a-z]]` + toolkit_echo=`echo $toolkit | tr "[[A-Z]]" "[[a-z]]"` AC_MSG_RESULT($toolkit_echo) fi fi @@ -1203,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 @@ -1220,7 +1432,7 @@ 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 dnl NB: The two tests bellow are *NOT* mutually exclusive! They should only @@ -1253,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"; 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 - LD=$host_alias-ld - NM=$host_alias-nm - STRIP=$host_alias-strip - 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 @@ -1281,14 +1475,17 @@ dnl this magic incantation is needed to prevent AC_PROG_CC from setting the dnl default CFLAGS (something like "-g -O2") -- we don't need this as we add dnl -g and -O flags ourselves below CFLAGS=${CFLAGS:=} -AC_PROG_CC +AC_BAKEFILE_PROG_CC 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 @@ -1298,9 +1495,7 @@ dnl defines CXXFLAGS dnl dnl see CFLAGS line above CXXFLAGS=${CXXFLAGS:=} -AC_PROG_CXX - -AC_LANG_RESTORE +AC_BAKEFILE_PROG_CXX dnl ranlib command dnl defines RANLIB with the appropriate command @@ -1308,7 +1503,10 @@ AC_PROG_RANLIB dnl ar command dnl defines AR with the appropriate command -AC_CHECK_PROG(AR, ar, ar, ar) +AC_CHECK_TOOL(AR, ar) +if test "x$AR" = "x" ; then + AC_MSG_ERROR([ar is needed to build wxWidgets]) +fi dnl install checks dnl defines INSTALL with the appropriate command @@ -1325,23 +1523,13 @@ case ${INSTALL} in INSTALL=`pwd`/${INSTALL} ;; esac -dnl HP-UX install doesn't handle the "-d" switch so don't use it there -case ${host} in - *-hp-hpux* ) - INSTALL_DIR="mkdir" - ;; - - *) INSTALL_DIR="$INSTALL -d" - ;; -esac - 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" ;; @@ -1350,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, @@ -1413,27 +1618,70 @@ you are trying to compile. fi dnl make without VPATH fi dnl not GNU make -dnl YACC checks -dnl defines YACC with the appropriate command -AC_PROG_YACC - -dnl LEX checks -dnl defines LEX with the appropriate command -dnl defines LEXLIB with the appropriate library -AC_PROG_LEX - dnl needed for making link to setup.h AC_PROG_LN_S -dnl --------------------------------------------------------------------------- -dnl When we are using gcc on OS/2, we want to be either using resources (PM) -dnl or a more complete POSIX emulation for Motif/GTK+/X11 -dnl --------------------------------------------------------------------------- -dnl (OS/2-only piece) + +dnl ------------------------------------------------------------------------ +dnl Platform specific tests +dnl ------------------------------------------------------------------------ + +dnl xlC needs -qunique under AIX so that one source file can be +dnl compiled to multiple object files and safely linked together. +if test "x$XLCXX" = "xyes" -a "x$USE_AIX" = "x1"; then + CXXFLAGS="-qunique $CXXFLAGS" +fi + +dnl This case is for PowerPC OS X vs. everything else +case "${host}" in + powerpc-*-darwin* ) + AC_MSG_CHECKING([if __POWERPC__ is already defined]) + AC_TRY_COMPILE([],[#ifndef __POWERPC__ + choke me for lack of PowerPC +#endif +], + [AC_MSG_RESULT([yes])], + [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 +],[], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_MSG_CHECKING([if __CF_USE_FRAMEWORK_INCLUDES__ is required]) + AC_TRY_COMPILE([#define __CF_USE_FRAMEWORK_INCLUDES__ +#include + ],[], + [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="-D__CF_USE_FRAMEWORK_INCLUDES__ $CPPFLAGS"], + [AC_MSG_FAILURE([no. CoreFoundation not available.])] + ) + ] + ) + ;; +esac + +dnl This case is for OS/2 vs. everything else case "${host}" in *-pc-os2_emx | *-pc-os2-emx ) - dnl Explicitly link -lstdcpp, since we are using "gcc" not "g++"/"c++". - LIBS="$LIBS -lstdcpp" + dnl --------------------------------------------------------------------- + dnl When we are using gcc on OS/2, we want to be either using resources + dnl (PM) or a more complete POSIX emulation for Motif/GTK+/X11. + dnl Moreover we need to link explicitly against either stdcpp.a or + dnl stdcxx.a (depending on compiler version), since we are using "gcc", + 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). @@ -1442,36 +1690,110 @@ case "${host}" in dnl Include resources for the "native" port (wxPM). RESPROGRAMOBJ="\${top_srcdir}/include/wx/os2/wx.res" fi + dnl Check for the gcc version (and thereby for the C runtime library). + dnl wx_cv_gccversion = EMX2 -> Standard EMX environment + dnl wx_cv_gccversion = EMX3 -> EMX with gcc-3.0.3 or gcc-3.2.1 + dnl wx_cv_gccversion = Innotek5 -> gcc-3.2.2 with Innotek libc5 + 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. + [ + #include + + int main() + { + FILE *f=fopen("conftestval", "w"); + if (!f) exit(1); + fprintf(f, + #if (__GNUC__ < 3) + "EMX2" + #elif (__GNUC__==3) && ((__GNUC_MINOR__ < 2) || ((__GNUC_MINOR__==2) && (__GNUC_PATCHLEVEL__<2))) + "EMX3" + #elif (__GNUC__==3) && (__GNUC_MINOR__==2) && (__GNUC_PATCHLEVEL__==2) + "Innotek5" + #else + "Innotek6" + #endif + ); + exit(0); + } + ], + 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 -lgcc" + LDFLAGS="$LDFLAGS -Zsysv-signals" + else + LIBS="$LIBS -lstdc++" + fi + fi + if test "$wxUSE_SHARED" = "yes" -a "$wxUSE_OMF" = "no"; then + AC_MSG_WARN([Building DLLs requires OMF mode, enabled]) + wxUSE_OMF=yes + enable_omf=yes + fi + dnl (end of OS/2-only piece) + ;; + *) + dnl --------------------------------------------------------------------- + dnl look for strcasecmp() in string.h and then strings.h if it's not + dnl there. Don't do this on OS/2, where "stricmp" is the function to be + dnl used. + dnl --------------------------------------------------------------------- + dnl (non-OS/2-only piece) + + AC_CACHE_CHECK([for strcasecmp() in string.h], ac_cv_string_strcasecmp, [ + AC_TRY_LINK([ + #include + ], + [ + strcasecmp("foo", "bar"); + ], + ac_cv_string_strcasecmp=yes, + ac_cv_string_strcasecmp=no + ) + ]) + + if test x"$ac_cv_string_strcasecmp" = "xyes"; then + AC_DEFINE(HAVE_STRCASECMP_IN_STRING_H) + else + AC_CACHE_CHECK([for strcasecmp() in strings.h], ac_cv_strings_strcasecmp, [ + AC_TRY_LINK([ + #include + ], + [ + strcasecmp("foo", "bar"); + ], + ac_cv_strings_strcasecmp=yes, + ac_cv_strings_strcasecmp=no + ) + ]) + + if test x"$ac_cv_strings_strcasecmp" = "xyes"; then + AC_DEFINE(HAVE_STRCASECMP_IN_STRINGS_H) + else + AC_MSG_ERROR([No case-insensitive string comparison function found.]) + fi + fi + + dnl (end of non-OS/2-only piece) ;; esac -dnl (end of OS/2-only piece) dnl ------------------------------------------------------------------------ dnl Check for headers dnl ------------------------------------------------------------------------ -dnl test for strings.h needed under AIX, but do not check for it wxMac as -dnl it exists but is only a simple redirection to string.h and it is in -dnl conflict with Strings.h in FlatCarbon headers -dnl -dnl Autoconf 2.5 tends to check for strings.h on its own, so avoiding the -dnl test (as the current configure script does) is not possible. Instead, -dnl you must remind autoconf that strings.h is NOT valid. The autoconf -dnl test succeeds because there is a strings.h file that simply includes -dnl string.h. Unfortunately, there is also a strings.h as part of the -dnl FlatCarbon headers. -- David Elliott -if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1; then - AC_CACHE_CHECK([for strings.h], ac_cv_header_strings_h, - [ac_cv_header_strings_h=no]) - if test "$ac_cv_header_strings_h" = "no"; then - AC_MSG_RESULT([forced no into cache]) - else - AC_MSG_WARN([strings.h is not compatible with Mac OS X]) - fi -fi -dnl defines HAVE_STRINGS_H -AC_CHECK_HEADERS(strings.h) - dnl defines HAVE_STDLIB_H AC_CHECK_HEADERS(stdlib.h) dnl defines HAVE_MALLOC_H @@ -1490,27 +1812,25 @@ 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) case "${host}" in *-pc-os2_emx | *-pc-os2-emx ) - dnl Explicitly link -lintl if langinfo.h is available. - if test $ac_cv_header_langinfo_h = "yes"; then + dnl Explicitly link -lintl if langinfo.h is available + dnl and intl not yet included in libc + if test $ac_cv_header_langinfo_h = "yes" \ + -a \( "$wx_cv_gccversion" = "EMX2" \ + -o "$wx_cv_gccversion" = "EMX3" \ + -o "$wx_cv_gccversion" = "Innotek5" \); then LIBS="$LIBS -lintl" fi ;; esac -if test "$wxUSE_GUI" = "yes"; then - if test "$wxUSE_UNIX" = "yes"; then - dnl defines HAVE_X11_XKBLIB_H - AC_CHECK_HEADERS(X11/XKBlib.h) - 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 --------------------------------------------------------------------------- @@ -1530,6 +1850,7 @@ AC_CHECK_SIZEOF(short, 2) AC_CHECK_SIZEOF(void *, 4) AC_CHECK_SIZEOF(int, 4) AC_CHECK_SIZEOF(long, 4) +AC_CHECK_SIZEOF(size_t, 4) case "${host}" in arm-*-linux* ) @@ -1539,58 +1860,127 @@ 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 ;; * ) AC_CHECK_SIZEOF(long long, 0) esac -dnl we have to do it ourselves because SGI/Irix's stdio.h does not include -dnl wchar_t and AC_CHECK_SIZEOF only includes stdio.h -dnl Mac OS X does not provide wchar.h and wchar_t is defined by stdlib.h (GD) -AC_CACHE_CHECK([size of wchar_t], wx_cv_sizeof_wchar_t, -[ - AC_TRY_RUN( - [ - /* DJGPP only has fake wchar_t: */ - #ifdef __DJGPP__ - # error "fake wchar_t" - #endif - #ifdef HAVE_WCHAR_H - # ifdef __CYGWIN__ - # include - # endif - # include - #endif - #ifdef HAVE_STDLIB_H - # include - #endif - #include - int main() +dnl SGI/Irix's stdio.h does not include wchar_t. Mac OS X does not provide +dnl wchar.h and wchar_t is defined by stdlib.h (GD) +AC_CHECK_SIZEOF(wchar_t, 0, + [ + /* DJGPP's wchar_t is now a keyword in C++ (still not C though) */ + #if defined(__DJGPP__) && !( (__GNUC_MINOR__ >= 8 && __GNUC__ == 2 ) || __GNUC__ >= 3 ) + # error "fake wchar_t" + #endif + #ifdef HAVE_WCHAR_H + # ifdef __CYGWIN__ + # include + # endif + # include + #endif + #ifdef HAVE_STDLIB_H + # include + #endif + #include + ] +) +if test "$ac_cv_sizeof_wchar_t" != "0"; then + wxUSE_WCHAR_T=yes +else + wxUSE_WCHAR_T=no +fi + +dnl checks needed to define wxVaCopy +AC_CACHE_CHECK([for va_copy], + wx_cv_func_va_copy, + [ + AC_LINK_IFELSE([ + #include + void foo(char *f, ...) { - FILE *f=fopen("conftestval", "w"); - if (!f) exit(1); - fprintf(f, "%i", sizeof(wchar_t)); - exit(0); + va_list ap1, ap2; + va_start(ap1, f); + va_copy(ap2, ap1); + va_end(ap2); + va_end(ap1); } - ], - wx_cv_sizeof_wchar_t=`cat conftestval`, - wx_cv_sizeof_wchar_t=0, + int main() + { + foo("hi", 17); + return 0; + }], + wx_cv_func_va_copy=yes, + wx_cv_func_va_copy=no + ) + ] +) + +if test $wx_cv_func_va_copy = "yes"; then + AC_DEFINE(HAVE_VA_COPY) +else + dnl try to understand how can we copy va_lists + AC_CACHE_CHECK([if va_list can be copied by value], + wx_cv_type_va_list_lvalue, [ - case "${host}" in - *-pc-msdosdjgpp ) - wx_cv_sizeof_wchar_t=0 - ;; - * ) - wx_cv_sizeof_wchar_t=4 - ;; - esac + AC_RUN_IFELSE([ + #include + int foo(char *f, ...) + { + va_list ap1, ap2; + va_start(ap1, f); + ap2 = ap1; + if ( va_arg(ap1, int) != 17 || va_arg(ap2, int) != 17 ) + return 1; + va_end(ap2); + va_end(ap1); + return 0; + } + int main() + { + return foo("hi", 17); + }], + wx_cv_type_va_list_lvalue=yes, + wx_cv_type_va_list_lvalue=no, + dnl assume most common case for cross-compiling... + wx_cv_type_va_list_lvalue=yes + ) ] ) -]) -AC_DEFINE_UNQUOTED(SIZEOF_WCHAR_T, $wx_cv_sizeof_wchar_t) + if test $wx_cv_type_va_list_lvalue != "yes"; then + dnl we suppose that the only thing which can't be copied like this + dnl are arrays... only experience will show whether this is really true + AC_DEFINE(VA_LIST_IS_ARRAY) + 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 @@ -1602,11 +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 + 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) @@ -1623,11 +2045,128 @@ WX_CPP_EXPLICIT dnl check whether C++ compiler supports C++ casts AC_CXX_CONST_CAST +AC_CXX_REINTERPRET_CAST +AC_CXX_STATIC_CAST +dnl we don't use HAVE_DYNAMIC_CAST anywhere right now... +dnl AC_CXX_DYNAMIC_CAST -dnl check various STL features -if test "$wxUSE_STL" = "yes"; then - AC_LANG_PUSH(C++) +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 + if test "$wxUSE_UNICODE" = "yes"; then + std_string="std::wstring" + char_type="wchar_t" + else + std_string="std::string" + char_type="char" + fi + + dnl check if declares std::wstring + AC_MSG_CHECKING([for $std_string in ]) + AC_TRY_COMPILE([#include ], + [$std_string foo;], + [AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_STD_WSTRING)], + [AC_MSG_RESULT(no) + AC_MSG_CHECKING([if std::basic_string<$char_type> works]) + AC_TRY_COMPILE([ + #ifdef HAVE_WCHAR_H + # ifdef __CYGWIN__ + # include + # endif + # include + #endif + #ifdef HAVE_STDLIB_H + # include + #endif + #include + #include + ], + [std::basic_string<$char_type> foo; + const $char_type* dummy = foo.c_str();], + [AC_MSG_RESULT(yes)], + [AC_MSG_RESULT([no]) + if test "$wxUSE_STL" = "yes"; then + AC_MSG_ERROR([Can't use --enable-stl without $std_string or std::basic_string<$char_type>]) + elif grep wxUSE_STD_STRING $wx_arg_cache_file >/dev/null; then + AC_MSG_ERROR([Can't use --enable-std_string without $std_string or std::basic_string<$char_type>]) + else + AC_MSG_WARN([No $std_string or std::basic_string<$char_type>, switching to --disable-std_string]) + wxUSE_STD_STRING=no + fi + ] + ) + ]) +fi + +if test "$wxUSE_STD_IOSTREAM" = "yes"; then + AC_CHECK_TYPES([std::istream, std::ostream],, + [wxUSE_STD_IOSTREAM=no], + [#include ]) + + if test "$wxUSE_STD_IOSTREAM" != "yes"; then + if grep wxUSE_STD_IOSTREAM $wx_arg_cache_file >/dev/null; then + AC_MSG_ERROR([Can't use --enable-std_iostreams without std::istream and std::ostream]) + else + AC_MSG_WARN([No std::iostreams, switching to --disable-std_iostreams]) + fi + fi +fi +if test "$wxUSE_STL" = "yes"; then dnl check for basic STL functionality AC_MSG_CHECKING([for basic STL functionality]) AC_TRY_COMPILE([#include @@ -1637,21 +2176,13 @@ 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])], [AC_MSG_RESULT([no]) AC_MSG_ERROR([Basic STL functionality missing])]) - dnl check if declares std::wstring - AC_MSG_CHECKING([for std::wstring in ]) - AC_TRY_COMPILE([#include ], - [std::wstring foo;], - [AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_STD_WSTRING)], - [AC_MSG_RESULT(no)]) - dnl check for compliant std::string::compare AC_MSG_CHECKING([for compliant std::string::compare]) AC_TRY_COMPILE([#include ], @@ -1666,7 +2197,30 @@ if test "$wxUSE_STL" = "yes"; then AC_DEFINE(HAVE_STD_STRING_COMPARE)], [AC_MSG_RESULT(no)]) - AC_LANG_POP + dnl check for hash_map and hash_set headers + AC_CHECK_HEADER([hash_map], + [AC_MSG_CHECKING([for hash_map and hash_set]) + AC_TRY_COMPILE([#include + #include ], + [std::hash_map, std::equal_to > test1; + std::hash_set, std::equal_to > test2;], + [AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_HASH_MAP) + AC_DEFINE(HAVE_STD_HASH_MAP)], + [AC_MSG_RESULT(no)]) + ]) + + AC_CHECK_HEADER([ext/hash_map], + [AC_MSG_CHECKING([for hash_map and hash_set]) + AC_TRY_COMPILE([#include + #include ], + [__gnu_cxx::hash_map, std::equal_to > test1; + __gnu_cxx::hash_set, std::equal_to > test2;], + [AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_EXT_HASH_MAP) + AC_DEFINE(HAVE_GNU_CXX_HASH_MAP)], + [AC_MSG_RESULT(no)]) + ]) fi dnl --------------------------------------------------------------------------- @@ -1680,18 +2234,16 @@ dnl headers are included instead of the "fixed" (ANSI-fied) gcc ones. dnl dnl Also try to put all directories which may contain X11R6 before those which dnl may contain X11R5/4 - we want to use R6 on machines which have both! +dnl +dnl In the same vein. Motif 2.1 should be tried before Motif 1.2 for the +dnl systems which have both (AIX 4.x does) SEARCH_INCLUDE="\ /usr/local/include \ \ - /usr/Motif-1.2/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/Motif1.2/include \ /usr/dt/include \ /usr/openwin/include \ \ @@ -1719,33 +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/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" -SEARCH_LIB="`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 @@ -1763,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 ], [ @@ -1793,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 @@ -1817,14 +2482,18 @@ dnl ------------------------------------------------------------------------ dnl Check for regex libraries dnl ------------------------------------------------------------------------ -REGEX_INCLUDE= 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 + fi + 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 @@ -1836,19 +2505,16 @@ if test "$wxUSE_REGEX" != "no"; then else dnl we are using the system library wxUSE_REGEX=sys + dnl only the built-in supports advanced REs + AC_DEFINE(WX_NO_REGEX_ADVANCED) fi fi - - if test "$wxUSE_REGEX" = "builtin" ; then - REGEX_INCLUDE="-I\${top_srcdir}/src/regex" - fi fi dnl ------------------------------------------------------------------------ dnl Check for zlib compression library dnl ------------------------------------------------------------------------ -ZLIB_INCLUDE= ZLIB_LINK= if test "$wxUSE_ZLIB" != "no" ; then AC_DEFINE(wxUSE_ZLIB) @@ -1916,17 +2582,12 @@ if test "$wxUSE_ZLIB" != "no" ; then wxUSE_ZLIB=sys fi fi - - if test "$wxUSE_ZLIB" = "builtin" ; then - ZLIB_INCLUDE="-I\${top_srcdir}/src/zlib" - fi fi dnl ------------------------------------------------------------------------ dnl Check for png library dnl ------------------------------------------------------------------------ -PNG_INCLUDE= PNG_LINK= if test "$wxUSE_LIBPNG" != "no" ; then AC_DEFINE(wxUSE_LIBPNG) @@ -1974,7 +2635,7 @@ if test "$wxUSE_LIBPNG" != "no" ; then AC_CHECK_HEADER(png.h) if test "$ac_cv_header_png_h" = "yes"; then - AC_CHECK_LIB(png, png_check_sig, PNG_LINK=" -lpng", , [-lz -lm]) + AC_CHECK_LIB(png, png_check_sig, PNG_LINK=" -lpng -lz", , [-lz -lm]) fi if test "x$PNG_LINK" = "x" ; then @@ -1991,10 +2652,6 @@ if test "$wxUSE_LIBPNG" != "no" ; then fi fi - if test "$wxUSE_LIBPNG" = "builtin" ; then - PNG_INCLUDE="-I\${top_srcdir}/src/png" - fi - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS png" fi @@ -2002,7 +2659,6 @@ dnl ------------------------------------------------------------------------ dnl Check for jpeg library dnl ------------------------------------------------------------------------ -JPEG_INCLUDE= JPEG_LINK= if test "$wxUSE_LIBJPEG" != "no" ; then AC_DEFINE(wxUSE_LIBJPEG) @@ -2051,17 +2707,12 @@ if test "$wxUSE_LIBJPEG" != "no" ; then fi fi fi - - if test "$wxUSE_LIBJPEG" = "builtin" ; then - JPEG_INCLUDE="-I\${top_srcdir}/src/jpeg" - fi fi dnl ------------------------------------------------------------------------ dnl Check for tiff library dnl ------------------------------------------------------------------------ -TIFF_INCLUDE= TIFF_LINK= TIFF_PREREQ_LINKS=-lm if test "$wxUSE_LIBTIFF" != "no" ; then @@ -2077,10 +2728,12 @@ if test "$wxUSE_LIBTIFF" != "no" ; then TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $ZLIB_LINK" fi AC_CHECK_HEADER(tiffio.h, - AC_CHECK_LIB(tiff, TIFFError, - TIFF_LINK=" -ltiff", - , - $TIFF_PREREQ_LINKS) + [ + AC_CHECK_LIB(tiff, TIFFError, + TIFF_LINK=" -ltiff", + , + $TIFF_PREREQ_LINKS) + ] ) if test "x$TIFF_LINK" = "x" ; then @@ -2095,35 +2748,39 @@ if test "$wxUSE_LIBTIFF" != "no" ; then wxUSE_LIBTIFF=sys fi fi - - if test "$wxUSE_LIBTIFF" = "builtin" ; then - TIFF_INCLUDE="-I\${top_srcdir}/src/tiff" - fi fi dnl ------------------------------------------------------------------------ dnl Check for expat libraries dnl ------------------------------------------------------------------------ +if test "$wxUSE_WCHAR_T" != "yes"; then + if test "$wxUSE_EXPAT" != "no"; then + AC_MSG_WARN([wxWidgets requires wchar_t to use expat, disabling]) + wxUSE_EXPAT=no + fi + if test "$wxUSE_XML" != "no"; then + AC_MSG_WARN([wxWidgets requires wchar_t to use xml, disabling]) + wxUSE_XML=no + fi +fi + if test "$wxUSE_EXPAT" != "no"; then - wxUSE_XML=1 + 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 @@ -2149,6 +2806,26 @@ if test "$wxUSE_EXPAT" != "no"; then fi +dnl ------------------------------------------------------------------------ +dnl Check for libmspack +dnl ------------------------------------------------------------------------ + +if test "$wxUSE_LIBMSPACK" != "no"; then + AC_CHECK_HEADER([mspack.h], [found_mspack_h=1]) + if test "x$found_mspack_h" = "x1"; then + AC_CHECK_LIB(mspack, mspack_create_chm_decompressor, + MSPACK_LINK=" -lmspack") + fi + if test "x$MSPACK_LINK" = "x" ; then + wxUSE_LIBMSPACK=no + fi +fi + +if test "$wxUSE_LIBMSPACK" != "no"; then + AC_DEFINE(wxUSE_LIBMSPACK) +fi + + dnl ---------------------------------------------------------------- dnl search for toolkit (widget sets) dnl ---------------------------------------------------------------- @@ -2181,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 @@ -2194,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 @@ -2209,13 +2900,38 @@ if test "$wxUSE_GUI" = "yes"; then WXGTK12= WXGTK127= WXGTK20= + WXGPE= + + if test "$wxUSE_COCOA" = 1 ; then + if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes"; then + AC_MSG_WARN([Printing not supported under wxCocoa yet, disabled]) + wxUSE_PRINTING_ARCHITECTURE=no + fi + if test "$wxUSE_DRAG_AND_DROP" = "yes"; then + AC_MSG_WARN([Drag and Drop not supported under wxCocoa yet, disabled]) + wxUSE_DRAG_AND_DROP=no + fi + if test "$wxUSE_DRAGIMAGE" = "yes"; then + AC_MSG_WARN([Drag Image and DandD not supported under wxCocoa yet, disabled]) + wxUSE_DRAGIMAGE=no + fi + fi if test "$wxUSE_MSW" = 1 ; then TOOLKIT=MSW GUIDIST=MSW_DIST + + dnl -mwindows causes a heap of other default gui libs to be linked in. + case "${host}" in + *-*-mingw32* ) + WXCONFIG_LDFLAGS_GUI="$LDFLAGS -Wl,--subsystem,windows -mwindows" + esac 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 @@ -2233,16 +2949,44 @@ if test "$wxUSE_GUI" = "yes"; then GTK_MODULES=gthread fi - dnl note that if we fail to find GTK2 we abort and don't fall - dnl back to GTK1.x + dnl detect GTK2 wx_cv_lib_gtk= - if test "x$wxUSE_GTK2" = "xyes"; 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) - else - AM_PATH_GTK(1.2.7, wx_cv_lib_gtk=1.2.7, , $GTK_MODULES) - if test -z "$wx_cv_lib_gtk"; then - AM_PATH_GTK(1.2.3, wx_cv_lib_gtk=1.2.3, , $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 + if test -z "$wx_cv_lib_gtk"; then + if test "x$wxGTK_VERSION" = "x1" -o "x$wxGTK_VERSION" = "xany" ; then + AM_PATH_GTK(1.2.7, wx_cv_lib_gtk=1.2.7, , $GTK_MODULES) + + if test -z "$wx_cv_lib_gtk"; then + AM_PATH_GTK(1.2.3, wx_cv_lib_gtk=1.2.3, , $GTK_MODULES) + fi fi fi @@ -2253,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 ] ) @@ -2274,34 +3018,85 @@ if test "$wxUSE_GUI" = "yes"; then 1.2.3) WXGTK12=1 ;; *) AC_MSG_ERROR([ -Please check that gtk-config is in path, the directory -where GTK+ libraries are installed (returned by -'gtk-config --libs' command) is in LD_LIBRARY_PATH or -equivalent variable and GTK+ is version 1.2.3 or above. +The development files for GTK+ were not found. For GTK+ 2, please +ensure that pkg-config is in the path and that gtk+-2.0.pc is +installed. For GTK+ 1.2 please check that gtk-config is in the path, +and that the version is 1.2.3 or above. Also check that the +libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config +--libs' are in the LD_LIBRARY_PATH or equivalent. ]) ;; esac if test "$WXGTK20" = 1; then - if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then - 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" - ] - ) + save_CFLAGS="$CFLAGS" + save_LIBS="$LIBS" + CFLAGS="$wx_cv_cflags_gtk $CFLAGS" + LIBS="$LIBS $wx_cv_libs_gtk" + + 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_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 + ], + [ + #if !GTK_CHECK_VERSION(2,6,0) + Not GTK+ 2.6 + #endif + ], + [ + AC_DEFINE(__WXGTK26__) + AC_DEFINE(__WXGTK24__) + AC_MSG_RESULT([yes]) + ac_wxgtk26=1 + ], + [ + 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([ + #include + ], + [ + #if !GTK_CHECK_VERSION(2,4,0) + Not GTK+ 2.4 + #endif + ], + [ + AC_DEFINE(__WXGTK24__) + AC_MSG_RESULT([yes]) + ], + [ + AC_MSG_RESULT([no]) + ]) fi + + CFLAGS="$save_CFLAGS" + LIBS="$save_LIBS" else if test "$wxUSE_UNICODE" = "yes"; then 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 @@ -2315,8 +3110,31 @@ equivalent variable and GTK+ is version 1.2.3 or above. 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) + WX_PATH_FIND_LIBRARIES($SEARCH_LIB,gpewidget) + if test "$ac_find_libraries" != "" ; then + WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY) + dnl -lgpewidget must be before all GTK libs and + dnl we guess its path from the prefix + GUI_TK_LIBRARY="-L${prefix}/lib -lgpewidget $GUI_TK_LIBRARY" + WXGPE=1 + AC_MSG_RESULT([found in $ac_find_libraries]) + else + AC_MSG_RESULT(not found) + fi + + dnl AC_MSG_CHECKING(for gpe library) + dnl WX_PATH_FIND_LIBRARIES($SEARCH_LIB,gpe) + 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 in $ac_find_libraries) + dnl else + dnl AC_MSG_RESULT(not found) + dnl fi + fi fi if test "$wxUSE_MGL" = 1; then @@ -2330,13 +3148,16 @@ equivalent variable and GTK+ is version 1.2.3 or above. AC_MSG_CHECKING(for libmgl location) dnl Find MGL library that we want - dnl FIXME_MGL - test for MGL variants for freebsd etc. + dnl FIXME_MGL - test for MGL variants for freebsd etc.; + dnl and for non-x86 versions case "${host}" in *-*-linux* ) + dnl glibc.so, glibc are for older versions of MGL, + dnl x86/a, x86/so are used by >= 5.0 R11 if test "x$wxUSE_SHARED" = xyes ; then - mgl_os_candidates="linux/gcc/glibc.so linux/gcc/glibc" + mgl_os_candidates="linux/gcc/x86/so linux/gcc/x86/a linux/gcc/glibc.so linux/gcc/glibc" else - mgl_os_candidates="linux/gcc/glibc linux/gcc/glibc.so" + mgl_os_candidates="linux/gcc/x86/a linux/gcc/x86/so linux/gcc/glibc linux/gcc/glibc.so" fi ;; *-pc-msdosdjgpp ) @@ -2384,6 +3205,24 @@ equivalent variable and GTK+ is version 1.2.3 or above. 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 @@ -2411,20 +3250,28 @@ equivalent variable and GTK+ is version 1.2.3 or above. TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXMSW__ -D__WIN95__ -D__WIN32__ -DMWIN -DMICROWIN_NOCONTROLS -DMICROWIN_TODO=1" fi - if test "$wxUSE_X11" = 1; then - dnl use standard macros to check for X headers/libs, this brings support - dnl for the standard configure options --x-includes and --x-libraries + dnl common part of X11 and Motif port checks + if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1; then + dnl use standard macros to check for X headers/libs, this brings + dnl support for the standard configure options --x-includes, + dnl --x-libraries and --no-x 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 - GUI_TK_LIBRARY="$X_LIBS" - TOOLKIT_INCLUDE="$X_CFLAGS" + dnl for some reason AC_PATH_XTRA seems to add -INONE and -LNONE (and + dnl also sometimes -RNONE) to X_CFLAGS and X_LIBS respectively, filter + dnl this junk out + GUI_TK_LIBRARY=`echo $X_LIBS | sed 's/ -LNONE//' | sed 's/ -RNONE//'` + TOOLKIT_INCLUDE=`echo $X_CFLAGS | sed 's/ -INONE//'` AFMINSTALL=afminstall COMPILED_X_PROGRAM=0 + fi + + if test "$wxUSE_X11" = 1; then if test "$wxUSE_NANOX" = "yes"; then AC_MSG_CHECKING(for MicroWindows/NanoX distribution) if test "x$MICROWIN" = x ; then @@ -2436,73 +3283,45 @@ equivalent variable and GTK+ is version 1.2.3 or above. fi fi - xpm_link= - AC_MSG_CHECKING(for Xpm library) - WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm) - 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" - xpm_link=" -lXpm" - AC_DEFINE(wxHAVE_LIB_XPM) - AC_MSG_RESULT(found at $ac_find_libraries) - else - AC_TRY_COMPILE( + if test "$wxUSE_UNICODE" = "yes"; then + PKG_PROG_PKG_CONFIG() + + PKG_CHECK_MODULES(PANGOX, pangox, [ - #include + CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS" + GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOX_LIBS" ], [ - int version; - version = XpmLibraryVersion(); + 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" ], [ - xpm_link=" -lXpm" - AC_DEFINE(wxHAVE_LIB_XPM) - AC_MSG_RESULT(found in default search path) - COMPILED_X_PROGRAM=0 + 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_RESULT(no) - AC_MSG_WARN(library will be compiled without support for images in XPM format) + AC_MSG_WARN([pangoxft library not found, library will be compiled without anti-aliasing support]) ] ) - fi - - AC_CHECK_LIB([Xext], [XShapeQueryExtension], - [ - GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXext" - wxHAVE_XEXT_LIB=1 - ], - [], [$GUI_TK_LIBRARY -lX11]) - - 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, - [ - 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_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" @@ -2512,30 +3331,18 @@ equivalent variable and GTK+ is version 1.2.3 or above. TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__NANOX__ -DMWPIXEL_FORMAT=MWPF_TRUECOLOR0888 -DHAVE_FILEIO -DHAVE_BMP_SUPPORT=1 -DHAVE_GIF_SUPPORT=1 -DHAVE_PNM_SUPPORT=1 -DHAVE_XPM_SUPPORT=1 -DUNIX=1 -DUSE_EXPOSURE -DSCREEN_HEIGHT=480 -DSCREEN_WIDTH=640 -DSCREEN_DEPTH=4 -DX11=1" GUI_TK_LIBRARY="$GUI_TK_LIBRARY \$(MICROWIN)/src/lib/libnano-X.a" else - GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lX11$xpm_link" + GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lX11" fi - TOOLKIT_VPATH="\${top_srcdir}/src/x11" TOOLKIT=X11 GUIDIST=X11_DIST fi if test "$wxUSE_MOTIF" = 1; then - dnl use standard macros to check for X headers/libs, this brings support - dnl for the standard configure options --x-includes and --x-libraries - AC_PATH_XTRA - - if test "$no_x" = "yes"; then - AC_MSG_ERROR(X11 not found, please use --x-includes and/or --x-libraries options) + if test "$wxUSE_UNICODE" = "yes"; then + AC_MSG_ERROR([Unicode configuration not supported with Motif]) fi - dnl for some reason AC_PATH_XTRA seems to add -INONE and -LNONE to - dnl X_LIBS and X_CFLAGS respectively -- what for?? - GUI_TK_LIBRARY=`echo $X_LIBS | sed 's/ -LNONE//'` - TOOLKIT_INCLUDE=`echo $X_CFLAGS | sed 's/ -INONE//'` - AFMINSTALL=afminstall - COMPILED_X_PROGRAM=0 - AC_MSG_CHECKING(for Motif/Lesstif headers) WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, Xm/Xm.h) if test "$ac_find_includes" != "" ; then @@ -2543,6 +3350,9 @@ equivalent variable and GTK+ is version 1.2.3 or above. 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 @@ -2557,83 +3367,51 @@ equivalent variable and GTK+ is version 1.2.3 or above. ], [ 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) - xpm_link= - AC_MSG_CHECKING(for Xpm library) - WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm) - if test "$ac_find_libraries" != "" ; then - WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY) + WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY) GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link" - - xpm_link=" -lXpm" - AC_DEFINE(wxHAVE_LIB_XPM) - AC_MSG_RESULT(found at $ac_find_libraries) else - save_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS $TOOLKIT_INCLUDE" + 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_COMPILE( + AC_TRY_LINK( [ - #include + #include ], [ int version; - version = XpmLibraryVersion(); + version = xmUseVersion; ], [ - xpm_link=" -lXpm" - AC_DEFINE(wxHAVE_LIB_XPM) AC_MSG_RESULT(found in default search path) - COMPILED_X_PROGRAM=0 + COMPILED_X_PROGRAM=1 ], [ AC_MSG_RESULT(no) - AC_MSG_WARN(library will be compiled without support for images in XPM format) + AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm) ] ) - CFLAGS=$save_CFLAGS + CXXFLAGS=$save_CXXFLAGS + LIBS="$save_LIBS" fi AC_MSG_CHECKING([if we need -lXp and/or -lSM -lICE]) @@ -2642,12 +3420,12 @@ equivalent variable and GTK+ is version 1.2.3 or above. libs_found=0 for libp in "" " -lXp"; do if test "$libs_found" = "0"; then - for libsm_ice in " -lSM -lICE"; do + for libsm_ice in "" " -lSM -lICE"; do if test "$libs_found" = "0"; then save_LIBS="$LIBS" - LIBS="$GUI_TK_LIBRARY -lXm${xpm_link} ${libp} -lXmu -lXext -lXt${libsm_ice} -lX11" - save_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS $TOOLKIT_INCLUDE" + LIBS="$GUI_TK_LIBRARY -lXm ${libp} -lXmu -lXext -lXt${libsm_ice} -lX11" + save_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS" AC_TRY_LINK( [ @@ -2670,7 +3448,7 @@ equivalent variable and GTK+ is version 1.2.3 or above. ) LIBS="$save_LIBS" - CFLAGS=$save_CFLAGS + CXXFLAGS=$save_CXXFLAGS fi done fi @@ -2681,135 +3459,201 @@ equivalent variable and GTK+ is version 1.2.3 or above. 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$xpm_link${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11" - TOOLKIT_VPATH="\${top_srcdir}/src/motif${PATH_IFS}\${top_srcdir}/src/motif/xmcombo${PATH_IFS}\${top_srcdir}/src/x11" + 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 - wxHAVE_XEXT_LIB=1 - fi - - if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1 && - test "$wxHAVE_XEXT_LIB" = 1; then - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $TOOLKIT_INCLUDE" - - AC_MSG_CHECKING([for X11/extensions/shape.h]) - AC_TRY_COMPILE([ - #include - #include - ], - [ - int dummy1, dummy2; - XShapeQueryExtension((Display*)NULL, - (int*)NULL, (int*)NULL); - ], - [ - AC_DEFINE(HAVE_XSHAPE) - AC_MSG_RESULT([found]) - ], - [ - AC_MSG_RESULT([not found]) - ]) - CFLAGS="$save_CFLAGS" fi - if test "$wxUSE_MAC" = 1; then - CPPFLAGS="$CPPFLAGS -fpascal-strings -I\${top_srcdir}/src/mac/morefilex -I/Developer/Headers/FlatCarbon" + dnl more tests common to X11 and Motif: + if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1; then + dnl test for external libxpm if we're configured to use it + if test "$wxUSE_LIBXPM" = "sys"; then + AC_MSG_CHECKING(for Xpm library) + WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm) + 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 in $ac_find_libraries) - TOOLKIT_VPATH="\${top_srcdir}/src/mac${PATH_IFS}\${top_srcdir}/src/mac/morefilex" - TOOLKIT=MAC - dnl we can't call this MAC_DIST or autoconf thinks its a macro - GUIDIST=MACX_DIST - dnl wxMac version of wxBase and wxCocoa or wxBase-only built on Darwin - dnl are different, so they need different names: - WXBASEPORT="_carbon" - fi + AC_CACHE_CHECK([for X11/xpm.h], + wx_cv_x11_xpm_h, + [ + save_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS" - if test "$wxUSE_COCOA" = 1; then - TOOLKIT_VPATH="\${top_srcdir}/src/cocoa" - TOOLKIT=COCOA - GUIDIST=COCOA_DIST - fi + AC_TRY_COMPILE( + [ + #include + ], + [ + int version; + version = XpmLibraryVersion(); + ], + wx_cv_x11_xpm_h=yes, + wx_cv_x11_xpm_h=no + ) - if test "$wxUSE_PM" = 1; then - TOOLKIT=PM - GUIDIST=GTK_DIST - AC_MSG_WARN([OS/2 threads are not yet supported... disabled]) - wxUSE_THREADS="no" - fi + CXXFLAGS=$save_CXXFLAGS + ] + ) - dnl the name of the directory where the files for this toolkit live - if test "$TOOLKIT" = "PM" ; then - TOOLKIT_DIR="os2" - else - TOOLKIT_DIR=`echo ${TOOLKIT} | tr "[[A-Z]]" "[[a-z]]"` - fi + if test $wx_cv_x11_xpm_h = "yes"; then + GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXpm" + AC_DEFINE(wxHAVE_LIB_XPM) + else + AC_MSG_WARN([built-in less efficient XPM decoder will be used]) + fi + fi - dnl misc other files depending on the port - PORT_FILES="\${top_srcdir}/src/\$(TOOLKITDIR)/files.lst" + fi - if test "$wxUSE_UNIVERSAL" = "yes"; then - ALL_OBJECTS="\$(GUI_LOWLEVEL_OBJS) \${UNIVOBJS}" + dnl XShapeQueryExtension checks: first the library, then prototype + AC_CHECK_LIB([Xext], [XShapeQueryExtension], + [ + GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXext" + wxHAVE_XEXT_LIB=1 + ], + [], [$GUI_TK_LIBRARY -lX11]) - dnl ALL_SOURCES and ALL_HEADERS shouldn't include really all sources - dnl and headers as some/most are not needed for wxUniv but I don't - dnl have time to add GUI_LOWLEVEL_SOURCES/HEADERS stuff now (TODO!) - ALL_SOURCES="\$(ALL_SOURCES) \${UNIV_SOURCES}" - ALL_HEADERS="\$(ALL_HEADERS) \${UNIV_HEADERS}" + if test "$wxHAVE_XEXT_LIB" = 1; then + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS" + + AC_MSG_CHECKING([for X11/extensions/shape.h]) + AC_TRY_COMPILE([ + #include + #include + ], + [ + int dummy1, dummy2; + XShapeQueryExtension((Display*)NULL, + (int*)NULL, (int*)NULL); + ], + [ + AC_DEFINE(HAVE_XSHAPE) + AC_MSG_RESULT([found]) + ], + [ + AC_MSG_RESULT([not found]) + ]) + CXXFLAGS="$save_CXXFLAGS" - PORT_FILES="${PORT_FILES} \${top_srcdir}/src/univ/files.lst" - if test "$wxUSE_X11" = 1; then - TOOLKIT_VPATH="\${top_srcdir}/src/${TOOLKIT_DIR}${PATH_IFS}\${top_srcdir}/src/univ${PATH_IFS}\${top_srcdir}/src/univ/themes" - else - TOOLKIT_VPATH="\${top_srcdir}/src/univ${PATH_IFS}\${top_srcdir}/src/univ/themes${PATH_IFS}\${top_srcdir}/src/${TOOLKIT_DIR}" fi - TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXUNIVERSAL__" - WIDGET_SET=univ - else - ALL_OBJECTS="\$(GUIOBJS)" - ALL_SOURCES="\$(ALL_SOURCES)" - ALL_HEADERS="\$(ALL_HEADERS)" fi - ALL_OBJECTS="${ALL_OBJECTS} \$(COMMONOBJS) \$(GENERICOBJS)" + if test "$wxUSE_MAC" = 1; then + AC_MSG_CHECKING([for compiler syntax to enable Pascal strings]) + if test "$GCC" = yes; then + AC_MSG_RESULT([gcc]) + CPPFLAGS_PASCAL="-fpascal-strings" + elif test "`echo $CXX | sed -e 's@.*/@@'`" = "xlC"; then + AC_MSG_RESULT([xlc]) + CPPFLAGS_PASCAL="-qmacpstr" + else + AC_MSG_RESULT([none]) + fi + + if test "x$wxUSE_UNIX" = "xyes"; then + 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_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -DTARGET_CARBON $CPPFLAGS" + fi - if test "$TOOLKIT" != "MSW" -a "$USE_DOS" != 1; then - ALL_OBJECTS="${ALL_OBJECTS} \$(UNIXOBJS)" + TOOLKIT=MAC + dnl we can't call this MAC_DIST or autoconf thinks its a macro + GUIDIST=MACX_DIST + dnl wxMac version of wxBase and wxCocoa or wxBase-only built on Darwin + dnl are different, so they need different names: + WXBASEPORT="_carbon" fi - if test "$wxUSE_HTML" = "yes"; then - ALL_OBJECTS="${ALL_OBJECTS} \$(HTMLOBJS)" + if test "$wxUSE_COCOA" = 1; then + TOOLKIT=COCOA + GUIDIST=COCOA_DIST fi - if test "$wxUSE_LIBJPEG" = "builtin" ; then - ALL_OBJECTS="${ALL_OBJECTS} \$(JPEGOBJS)" + if test "$wxUSE_PM" = 1; then + TOOLKIT=PM + GUIDIST=PM_DIST + AC_CACHE_CHECK([for type SPBCDATA], + wx_cv_spbcdata, + [ + AC_TRY_COMPILE( + [ + #define INCL_PM + #include + ], + [ + SPBCDATA test; + ], + wx_cv_spbcdata=yes, + wx_cv_spbcdata=no + ) + ] + ) + + if test $wx_cv_spbcdata = "yes"; then + AC_DEFINE(HAVE_SPBCDATA) + fi fi - if test "$wxUSE_LIBTIFF" = "builtin" ; then - ALL_OBJECTS="${ALL_OBJECTS} \$(TIFFOBJS)" + + dnl the name of the directory where the files for this toolkit live + if test "$TOOLKIT" = "PM" ; then + TOOLKIT_DIR="os2" + else + TOOLKIT_DIR=`echo ${TOOLKIT} | tr "[[A-Z]]" "[[a-z]]"` fi - if test "$wxUSE_LIBPNG" = "builtin" ; then - ALL_OBJECTS="${ALL_OBJECTS} \$(PNGOBJS)" + + if test "$wxUSE_UNIVERSAL" = "yes"; then + TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXUNIVERSAL__" + WIDGET_SET=univ fi dnl distribute samples/demos/utils with GUI versions @@ -2824,22 +3668,11 @@ else dnl the sources, their dependenices and the headers if test "$USE_WIN32" = 1 ; then - ALL_OBJECTS="\${BASE_OBJS} \${BASE_MSW_OBJS}" - TOOLKIT_VPATH="\${top_srcdir}/src/msw" - dnl yes, the toolkit for wxBase on win32 is actually MSW dnl wxBase on unix does not need a 'TOOLKIT' defined. TOOLKIT="MSW" - else - ALL_OBJECTS="\${BASE_OBJS} \${BASE_UNIX_OBJS}" - TOOLKIT_VPATH="\${top_srcdir}/src/unix" fi - ALL_SOURCES="\$(ALL_SOURCES)" - ALL_HEADERS="\$(ALL_HEADERS)" - - PORT_FILES="\${top_srcdir}/src/files.lst" - dnl distribute only wxBase sources/headers GUIDIST="BASE_DIST" DISTDIR="wxBase" @@ -2849,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 @@ -2857,43 +3704,124 @@ dnl ---------------------------------------------------------------- IODBC_C_SRC="" -dnl ODBC is handled seperately for MSW +dnl ODBC is handled separately for MSW if test "$TOOLKIT" != "MSW" ; then - if test "$wxUSE_ODBC" != "no" ; then - AC_DEFINE(wxUSE_ODBC) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db" - - dnl is this still necessary in 2.5? - WXODBCFLAG="-D_IODBC_" - + if test "$wxUSE_ODBC" = "sys" -o "$wxUSE_ODBC" = "yes" ; then + dnl This is not ideal we really ough to use the unixodbc-config + dnl or iodbc-config if they exist. - if test "$wxUSE_ODBC" = "sys" ; then - dnl This is not ideal we really ough to use the unixodbc-config - dnl or iodbc-config if they exist. - - AC_CHECK_HEADER(sql.h) - AC_SEARCH_LIBS(SQLAllocEnv,iodbc unixodbc odbc , , [ - wxUSE_ODBC=builtin; - AC_MSG_WARN( [ can't find system Odbc library falling back to builtin ]) - ] ) + AC_CHECK_HEADER([sql.h], [found_sql_h=1]) + if test "x$found_sql_h" = "x1" ; then + AC_CHECK_LIB(iodbc, SQLAllocEnv, ODBC_LINK=" -liodbc", + [ + AC_CHECK_LIB(unixodbc, SQLAllocEnv, ODBC_LINK=" -lunixodbc", + [ + AC_CHECK_LIB(odbc, SQLAllocEnv, ODBC_LINK=" -lodbc") + ]) + ]) fi - dnl Not "no" either... - if test "$wxUSE_ODBC" != "sys" ; then - ALL_OBJECTS="${ALL_OBJECTS} \$(IODBCOBJS)" + 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]) + else + AC_MSG_WARN([system ODBC library not found, will use built-in instead]) + wxUSE_ODBC=builtin + fi + else + dnl we are using the system library + wxUSE_ODBC=sys fi + fi + if test "$wxUSE_ODBC" = "builtin" ; then + AC_DEFINE(wxUSE_BUILTIN_IODBC) fi - fi -if test "$wxUSE_REGEX" = "builtin" ; then - ALL_OBJECTS="${ALL_OBJECTS} \$(REGEXOBJS)" +if test "$wxUSE_ODBC" != "no" ; then + AC_DEFINE(wxUSE_ODBC) + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db" + + dnl is this still necessary? + WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_IODBC_" fi -if test "$wxUSE_ZLIB" = "builtin" ; then - ALL_OBJECTS="${ALL_OBJECTS} \$(ZLIBOBJS)" + +dnl --------------------------------------------------------------------------- +dnl wxDisplay Sanity checks +dnl --------------------------------------------------------------------------- + +if test "$wxUSE_DISPLAY" = "yes"; then +dnl --------------------------------------------------------------------------- +dnl Xinerama (for unix ) - Brian Victor +dnl --------------------------------------------------------------------------- + if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1; then + AC_MSG_CHECKING([for Xinerama]) + WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],Xinerama) + 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 -lXinerama" + AC_MSG_RESULT([yes]) + + AC_MSG_CHECKING([for Xxf86vm extension]) + WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],Xxf86vm) + if test "$ac_find_libraries" != "" ; then + AC_MSG_RESULT([yes]) + AC_CHECK_HEADERS([X11/extensions/xf86vmode.h], + [ + GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXxf86vm" + ], + [], + [ + #if HAVE_X11_XLIB_H + #include + #endif + ]) + else + AC_MSG_RESULT([no]) + fi + + else + AC_MSG_RESULT([no]) + AC_MSG_WARN([Xinerama not found; disabling wxDisplay]) + wxUSE_DISPLAY="no" + fi + elif test "$wxUSE_MSW" = 1; then +dnl --------------------------------------------------------------------------- +dnl DirectDraw for MSW - optionally used by WxDisplay. +dnl --------------------------------------------------------------------------- + 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 --------------------------------------------------------------------------- @@ -2912,10 +3840,8 @@ if test "$wxUSE_OPENGL" = "yes"; then WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, GL/gl.h) if test "$ac_find_includes" != "" ; then AC_MSG_RESULT(found in $ac_find_includes) - set -x WX_INCLUDE_PATH_EXIST($ac_find_includes, $CPPFLAGS) - CPPFLAGS="$CPPFLAGS$ac_path_to_include" - set +x + CPPFLAGS="$ac_path_to_include $CPPFLAGS" fi AC_CHECK_HEADER(GL/gl.h, @@ -2925,6 +3851,8 @@ if test "$wxUSE_OPENGL" = "yes"; then AC_MSG_CHECKING([for -lGL]) WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GL) if test "$ac_find_libraries" != "" ; then + AC_MSG_RESULT([yes]) + WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS]) if test "$ac_path_to_link" != " -L/usr/lib" ; then LDFLAGS_GL="$ac_path_to_link" @@ -2933,6 +3861,7 @@ if test "$wxUSE_OPENGL" = "yes"; then dnl don't suppose that libGL and libGLU are always in the dnl same directory -- this is not true for some common dnl distributions + AC_MSG_CHECKING([for -lGLU]) WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GLU) if test "$ac_find_libraries" != "" ; then WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS]) @@ -2944,11 +3873,14 @@ if test "$wxUSE_OPENGL" = "yes"; then found_gl=1 OPENGL_LIBS="-lGL -lGLU" AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) fi + else + AC_MSG_RESULT([no]) fi - if "$found_gl" != 1; then - AC_MSG_RESULT([no]) + if test "$found_gl" != 1; then AC_MSG_CHECKING([for -lMesaGL]) WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],MesaGL) if test "$ac_find_libraries" != "" ; then @@ -2964,7 +3896,7 @@ if test "$wxUSE_OPENGL" = "yes"; then if test "x$OPENGL_LIBS" = "x"; then dnl it should be an error and not a warning because OpenGL is not on - dnl by default and so if it had been explicitely requested, we + dnl by default and so if it had been explicitly requested, we dnl shouldn't just fall back to compiling the library without it AC_MSG_ERROR(OpenGL libraries not available) fi @@ -2974,108 +3906,21 @@ if test "$wxUSE_OPENGL" = "yes"; then USE_OPENGL=1 AC_DEFINE(wxUSE_OPENGL) AC_DEFINE(wxUSE_GLCANVAS) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS opengl" + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS opengl opengl/cube opengl/penguin opengl/isosurf" fi fi -if test -z "$TOOLKIT_VPATH" ; then - TOOLKIT_VPATH="\${top_srcdir}/src/${TOOLKIT_DIR}" -fi dnl the symbol which allows conditional compilation for the given toolkit if test -n "$TOOLKIT" ; then TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WX${TOOLKIT}__" fi -UNICODE=0 -lib_unicode_suffix= -if test "$wxUSE_UNICODE" = "yes"; then - lib_unicode_suffix=u - UNICODE=1 -fi - -lib_debug_suffix= -BUILD=release -if test "$wxUSE_DEBUG_FLAG" = "yes"; then - lib_debug_suffix=d - BUILD=debug -fi - -WX_VERSION_TAG=`echo WX${lib_unicode_suffix}${lib_debug_suffix}_${WX_RELEASE} | tr "[[a-z]]" "[[A-Z]]"` - -TOOLCHAIN_NAME="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}-${WX_RELEASE}" -TOOLCHAIN_NAME_GL="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}_gl-${WX_RELEASE}" - -if test "$cross_compiling" = "yes"; then - TOOLCHAIN_NAME="${TOOLCHAIN_NAME}-${host_alias}" - TOOLCHAIN_NAME_GL="${TOOLCHAIN_NAME_GL}-${host_alias}" - HOST_SUFFIX="-${host_alias}" -fi - -dnl library link name -WX_LIBRARY="wx_${TOOLCHAIN_NAME}" -WX_LIBRARY_GL="wx_${TOOLCHAIN_NAME_GL}" -WX_LIBRARY_BASENAME_NOGUI="wx_base${WXBASEPORT}${lib_unicode_suffix}${lib_debug_suffix}" -WX_LIBRARY_BASENAME_GUI="wx_${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}" - -dnl the name of the shared library -WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${SO_SUFFIX}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}" -WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}" - -dnl the name of the links to the shared library -WX_LIBRARY_LINK1="lib${WX_LIBRARY}.${SO_SUFFIX}.${WX_CURRENT}" -WX_LIBRARY_LINK2="lib${WX_LIBRARY}.${SO_SUFFIX}" -WX_LIBRARY_LINK1_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}.${WX_CURRENT}" -WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}" - -case "${host}" in - *-*-cygwin* | *-*-mingw32* ) - WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${SO_SUFFIX}" - WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}" - ;; - - *-*-darwin* ) - dnl Under Mac OS X, the naming conventions for shared libraries - dnl are different: the number precedes the suffix. - - WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}.${SO_SUFFIX}" - WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY_GL}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}.${SO_SUFFIX}" - - WX_LIBRARY_LINK1="lib${WX_LIBRARY}.${WX_CURRENT}.${SO_SUFFIX}" - WX_LIBRARY_LINK2="lib${WX_LIBRARY}.${SO_SUFFIX}" - WX_LIBRARY_LINK1_GL="lib${WX_LIBRARY_GL}.${WX_CURRENT}.${SO_SUFFIX}" - WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}" - - dnl Under Mac OS X, we should build real frameworks instead of simple - dnl dynamic shared libraries (in order to embed the resources) - if test "$wxUSE_MAC" = 1; then - dnl base name of the resource file for wxMac must be the same - dnl as library installation base name (-install_name) - WX_RESOURCES_MACOSX_ASCII="lib${WX_LIBRARY}.${WX_CURRENT}.r" - WX_RESOURCES_MACOSX_DATA="lib${WX_LIBRARY}.${WX_CURRENT}.rsrc" - fi - ;; -esac - -dnl the name of the static library -WX_LIBRARY_NAME_STATIC="lib${WX_LIBRARY}.a" -WX_LIBRARY_NAME_STATIC_GL="lib${WX_LIBRARY_GL}.a" - -dnl define which libs wx-config should link. -WXCONFIG_LIBS="-l${WX_LIBRARY}" -WXCONFIG_LIBS_STATIC="lib${WX_LIBRARY}.a" - -if test "$wxUSE_OPENGL" = "yes"; then - WXCONFIG_LIBS_GL="-l${WX_LIBRARY_GL} ${OPENGL_LIBS}" - WXCONFIG_LIBS_STATIC_GL="lib${WX_LIBRARY_GL}.a ${OPENGL_LIBS}" -fi - dnl --- the marker for quick search, leave it here: SHARED_LIB_SETUP --- if test "$wxUSE_SHARED" = "yes"; then case "${host}" in - *-pc-os2_emx | *-pc-os2-emx | \ *-pc-msdosdjgpp ) dnl only static for now wxUSE_SHARED=no @@ -3084,9 +3929,7 @@ if test "$wxUSE_SHARED" = "yes"; then esac fi -SHARED=0 if test "$wxUSE_SHARED" = "yes"; then - SHARED=1 dnl use versioned symbols if available on the platform WX_VERSIONED_SYMBOLS([\$(top_builddir)version-script]) @@ -3094,13 +3937,14 @@ if test "$wxUSE_SHARED" = "yes"; then case "${host}" in *-*-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: @@ -3112,104 +3956,197 @@ if test "$wxUSE_SHARED" = "yes"; then [ AC_MSG_RESULT([yes]) SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib" - ], - [ + WXCONFIG_RPATH="-Wl,-rpath,\$libdir" + ],[ AC_MSG_RESULT([no]) AC_MSG_CHECKING([if the linker accepts -R]) LDFLAGS="$saveLdflags -Wl,-R,/" AC_TRY_LINK( [],[], [ - AC_MSG_RESULT([yes]) - SAMPLES_RPATH_FLAG="-Wl,-R,\$(top_builddir)lib"], - [ + AC_MSG_RESULT([yes]) + SAMPLES_RPATH_FLAG="-Wl,-R,\$(top_builddir)lib" + WXCONFIG_RPATH="-Wl,-R,\$libdir" + ],[ AC_MSG_RESULT([no]) - ]) + ]) ]) LDFLAGS="$saveLdflags" else - SHARED_LD="${CXX} -G -o" - PIC_FLAG="-KPIC" SAMPLES_RPATH_FLAG="-R\$(top_builddir)lib" + WXCONFIG_RPATH="-R\$libdir" + fi + ;; + + *-*-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) \$@" + cat <change-install-names +#!/bin/sh +libnames=\`cd \${1} ; ls -1 | grep '\.[[0-9]][[0-9]]*\.dylib\$'\` +inst_cmd="install_name_tool " +for i in \${libnames} ; do + inst_cmd="\${inst_cmd} -change \${2}/lib/\${i} \${1}/\${i}" +done +\${inst_cmd} \${3} +EOF + chmod +x change-install-names fi ;; + + *-*-cygwin* | *-*-mingw32* ) + 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 - dnl set target to shared if not explicitly chose static before - if test "x$WX_TARGET_LIBRARY" = "x"; then - WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_SHARED}" - WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_SHARED_GL}" + if test $wxUSE_RPATH = "no"; then + SAMPLES_RPATH_FLAG='' + SAMPLES_RPATH_POSTLINK='' + WXCONFIG_RPATH='' fi - dnl do not alter the LIBRARY_TYPE strings "so" and "a", they are magic - WX_TARGET_LIBRARY_TYPE="so" - INSTALL_LIBRARY='$(INSTALL_PROGRAM)' + SHARED=1 + +else + + config_linkage_component="-static" + SHARED=0 + fi -dnl do not 'else' this, it may be changed in the above conditional. -if test "$wxUSE_SHARED" = "no"; then - dnl give static wxBase and wxMSW build a working install target - if test "$wxUSE_GUI" = "no" -o "$USE_WIN32" = 1 ; then - dnl we're here because WX_ALL_INSTALLED is empty, but play safe anyway - WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall" - fi +UNICODE=0 +lib_unicode_suffix= +WX_CHARTYPE="ansi" +if test "$wxUSE_UNICODE" = "yes"; then + lib_unicode_suffix=u + WX_CHARTYPE="unicode" + UNICODE=1 +fi - if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then - WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall" - fi +lib_debug_suffix= +WX_DEBUGTYPE="release" +DEBUG_FLAG=0 +if test "$wxUSE_DEBUG_FLAG" = "yes"; then + lib_debug_suffix=d + WX_DEBUGTYPE="debug" + DEBUG_FLAG=1 +fi - if test "$wxUSE_OPENGL" = "yes"; then - WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall_gl" - WX_ALL="\$(build_libdir)/${WX_LIBRARY_NAME_STATIC} \$(build_libdir)/${WX_LIBRARY_NAME_STATIC_GL}" - else - WX_ALL="\$(build_libdir)/${WX_LIBRARY_NAME_STATIC}" - fi +WX_FLAVOUR=${WX_FLAVOUR:+-$WX_FLAVOUR} +WX_LIB_FLAVOUR=`echo $WX_FLAVOUR | tr '-' '_'` + +DEBUG_INFO=0 +if test "$wxUSE_DEBUG_INFO" = "yes"; then + DEBUG_INFO=1 +fi + +WX_VERSION_TAG=`echo WX${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}_${WX_RELEASE} | tr "[[a-z]]" "[[A-Z]]"` - WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}" - WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}" +TOOLCHAIN_NAME="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}-${WX_RELEASE}" - WX_TARGET_LIBRARY_TYPE="a" - INSTALL_LIBRARY='$(INSTALL_DATA)' +TOOLCHAIN_FULLNAME="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}-${WX_CHARTYPE}-${WX_DEBUGTYPE}${config_linkage_component}-${WX_RELEASE}${WX_FLAVOUR}" + +if test "$cross_compiling" = "yes"; then + HOST_SUFFIX="-$host_alias" + TOOLCHAIN_NAME="$TOOLCHAIN_NAME$HOST_SUFFIX" + TOOLCHAIN_FULLNAME="${host_alias}-$TOOLCHAIN_FULLNAME" +fi - dnl wx-config should assume the --static flag by default if we don't have - dnl any shared libs anyhow - STATIC_FLAG="yes" +dnl library link name +dnl These just save us from exporting lib_{unicode,debug,flavour}_suffix. +dnl If we ever need to do that, we won't need to keep these. +WX_LIBRARY_BASENAME_NOGUI="wx_base${WXBASEPORT}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}" +if test "${TOOLKIT_DIR}" = "os2"; then + WX_LIBRARY_BASENAME_GUI="wx_pm${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}" else - STATIC_FLAG="no" + WX_LIBRARY_BASENAME_GUI="wx_${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}" +fi + + + +if test "$wxUSE_COCOA" = 1; then + AC_LANG_SAVE + AC_WX_LANG_OBJECTIVEC +dnl Recent AppKit/NSEvent.h include parts of IOKit which eventually +dnl gets IOKit/graphics/IOGraphicsTypes.h included which typedefs +dnl Point but only if MacTypes.h was not included first. Of course, +dnl if MacTypes.h is included later then you're screwed when it +dnl tries to typedef Point. Defining __Point__ will cause IOGraphicsTypes.h +dnl to not typedef Point and thus fix the problem. + AC_MSG_CHECKING([if AppKit/NSEvent.h conflicts with CoreFoundation]) + AC_TRY_COMPILE([#include +#include + ],[], + [AC_MSG_RESULT([no])], + [AC_MSG_RESULT([yes]) + AC_MSG_CHECKING([if defining __Point__ will fix it]) + AC_TRY_COMPILE([#define __Point__ 1 +#include +#include + ],[], + [AC_MSG_RESULT([yes]) + AC_DEFINE(__Point__) + ], + [AC_MSG_FAILURE([no])] + )] + ) + AC_LANG_RESTORE fi -dnl default value is to (silently) do nothing in the makefile -MACRESCOMP="@#" -MACSETFILE="@#" -MACRESWXCONFIG="#" -if test "$wxUSE_MAC" = 1; then +if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1; then + dnl base name of the resource file for wxMac must be the same + dnl as library installation base name (-install_name) + WX_RESOURCES_MACOSX_ASCII="libwx_${TOOLCHAIN_NAME}.${wx_release_number}.r" + WX_RESOURCES_MACOSX_DATA="libwx_${TOOLCHAIN_NAME}.${wx_release_number}.rsrc" + dnl add the resources target for wxMac LIBWXMACRES="\$(top_builddir)lib/${WX_RESOURCES_MACOSX_ASCII}" - WX_ALL="${WX_ALL} ${LIBWXMACRES}" - WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall_res" - 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) - MACOSX_BUNDLE="bundle" + + MACSETFILE="\$(SETFILE)" + dnl resources are bundled both with shared library and applications dnl since the carb resource *must* be included in the application - MACRESCOMP="\$(RESCOMP) -d __DARWIN__ -t APPL Carbon.r ${LIBWXMACRES} -o" - MACSETFILE="\$(SETFILE)" - MACRESWXCONFIG="${RESCOMP} -d __DARWIN__ -t APPL Carbon.r \${exec_prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o" -elif test "$wxUSE_COCOA" = 1; then - AC_CHECK_PROG(RESCOMP, Rez, Rez, /Developer/Tools/Rez) - AC_CHECK_PROG(DEREZ, DeRez, DeRez, /Developer/Tools/DeRez) - AC_CHECK_PROG(SETFILE, SetFile, SetFile, /Developer/Tools/SetFile) - MACRESCOMP="echo -n | \$(RESCOMP) -d __DARWIN__ -t APPL ${LIBWXMACRES} -o" - MACSETFILE="\$(SETFILE)" - MACRESWXCONFIG="echo -n | ${RESCOMP} -d __DARWIN__ -t APPL \${exec_prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o" + if test "$wxUSE_MAC" = 1; then + POSTLINK_COMMAND="\$(REZ) -d __DARWIN__ -t APPL Carbon.r -o" + RESCOMP="$REZ" + WXCONFIG_RESFLAGS="-d __DARWIN__ -t APPL Carbon.r -o" + else + 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" + 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 + POSTLINK_COMMAND="@true" fi + fi + dnl --------------------------------------------------------------------------- dnl Checks for typedefs dnl --------------------------------------------------------------------------- @@ -3225,10 +4162,11 @@ AC_TYPE_SIZE_T dnl defines uid_t and gid_t if not already defined AC_TYPE_UID_T +dnl sets HAVE_SSIZE_T if ssize_t is defined +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, [ @@ -3275,8 +4213,6 @@ else fi fi -AC_LANG_RESTORE - dnl --------------------------------------------------------------------------- dnl Checks for structures dnl --------------------------------------------------------------------------- @@ -3309,7 +4245,7 @@ dnl Check for functions dnl --------------------------------------------------------------------------- dnl don't check for wchar_t functions if we haven't got wchar_t itself -if test "$wx_cv_sizeof_wchar_t" != "0"; then +if test "$wxUSE_WCHAR_T" = "yes"; then AC_DEFINE(wxUSE_WCHAR_T) dnl check for wcslen in all possible places @@ -3332,37 +4268,53 @@ if test "$wx_cv_sizeof_wchar_t" != "0"; then AC_DEFINE(HAVE_WCSLEN) 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 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 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 wxWindows fails +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; @@ -3377,26 +4329,199 @@ if test "$ac_cv_func_vsnprintf" = "yes"; then if test "$wx_cv_func_vsnprintf_decl" = "yes"; then AC_DEFINE(HAVE_VSNPRINTF_DECL) - fi -fi -if test "$wxUSE_UNICODE" = yes; then - dnl also look if we have wide char IO functions - AC_CHECK_FUNCS(fputwc wprintf vswprintf) + 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 + ) + ] + ) - dnl MinGW has a vswprintf with a different prototype, and - dnl a _vsnwprintf with the correct prototype, but AC_CHECK_FUNCS - dnl finds it even if it is not declared in some versions... - AC_MSG_CHECKING([for _vsnwprintf]) - AC_TRY_COMPILE([#include ], - [&_vsnwprintf;], - [AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE__VSNWPRINTF)], - [AC_MSG_RESULT([no])]); + if test "$wx_cv_func_broken_vsnprintf_decl" = "yes"; then + AC_DEFINE(HAVE_BROKEN_VSNPRINTF_DECL) + fi + fi fi -AC_LANG_RESTORE - +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) + + dnl MinGW has a vswprintf with a different prototype, and + dnl a _vsnwprintf with the correct prototype, but AC_CHECK_FUNCS + dnl finds it even if it is not declared in some versions... + AC_MSG_CHECKING([for _vsnwprintf]) + AC_TRY_COMPILE([#include ], + [&_vsnwprintf;], + [AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE__VSNWPRINTF)], + [AC_MSG_RESULT([no])]); +fi + +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 @@ -3404,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 @@ -3420,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 ], @@ -3438,12 +4557,58 @@ 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_CACHE_CHECK([for backtrace() in ], wx_cv_func_backtrace, + [ + AC_TRY_COMPILE([#include ], + [ + void *trace[1]; + char **messages; + + backtrace(trace, 1); + messages = backtrace_symbols(trace, 1); + ], + wx_cv_func_backtrace=yes, + wx_cv_func_backtrace=no + ) + ] + ) + + + if test "$wx_cv_func_backtrace" = "no"; then + AC_MSG_WARN([backtrace() is not available, wxStackWalker will not be available]) + wxUSE_STACKWALKER=no + else + AC_CACHE_CHECK([for __cxa_demangle() in ], wx_cv_func_cxa_demangle, + [ + AC_TRY_LINK([#include ], + [ + int rc; + __cxxabiv1::__cxa_demangle("foo", 0, 0, &rc); + ], + wx_cv_func_cxa_demangle=yes, + wx_cv_func_cxa_demangle=no + ) + ] + ) + + if test "$wx_cv_func_cxa_demangle" = "yes"; then + AC_DEFINE(HAVE_CXA_DEMANGLE) + fi + fi +fi + +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 + + dnl check for the function for temp files creation AC_CHECK_FUNCS(mkstemp mktemp, break) @@ -3453,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 ], [ @@ -3467,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 @@ -3502,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( [ @@ -3539,8 +4721,6 @@ else ) ) - AC_LANG_RESTORE - if test "$wx_cv_type_statvfs_t" != "unknown"; then AC_DEFINE(HAVE_STATVFS) fi @@ -3613,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) @@ -3630,12 +4803,16 @@ AC_CHECK_FUNCS(inet_addr, [ AC_CHECK_LIB(nsl, inet_addr, INET_LINK="nsl", - AC_CHECK_LIB(resolv, inet_addr, - INET_LINK="resolv", - AC_CHECK_LIB(socket, inet_addr, - INET_LINK="socket" + [ + AC_CHECK_LIB(resolv, inet_addr, + INET_LINK="resolv", + [ + AC_CHECK_LIB(socket, inet_addr, + INET_LINK="socket" + ) + ] ) - ) + ] ) ] ) @@ -3661,13 +4838,27 @@ dnl Checks specific to contrib libs (MMedia) dnl ------------------------------------------ dnl Check for ESD: -ESD_LINK= -AC_CHECK_HEADER([esd.h], [ - AC_CHECK_LIB(esd, esd_close, [ - ESD_LINK="-lesd" +EXTRALIBS_ESD= +AC_CHECK_LIB(esd, esd_close, [ + AC_CHECK_HEADERS([esd.h], [ + EXTRALIBS_ESD="-lesd" ]) ]) - +AC_SUBST(EXTRALIBS_ESD) + +dnl check for known CD-ROM interface +AC_MSG_CHECKING([for known CD-ROM interface]) +AC_TRY_COMPILE([#ifdef __linux__ + #include + #else + /* For Solaris */ + #include + #endif + ], + [struct cdrom_tocentry entry, old_entry;], + [AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE_KNOWN_CDROM_INTERFACE)], + [AC_MSG_RESULT([no])]) dnl =========================================================================== dnl Now we have all the info we need - use it! @@ -3677,23 +4868,23 @@ dnl flush the cache AC_CACHE_SAVE dnl --------------------------------------------------------------------------- -dnl thread support for Unix (for Win32 see past the next matching "else") +dnl thread support for Unix (for Win32 and OS/2 see past +dnl the next matching "else") dnl --------------------------------------------------------------------------- dnl under MSW (except mingw32) we always have thread support -CPP_MT_FLAG= -if test "$TOOLKIT" != "MSW"; then +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 @@ -3741,11 +4932,14 @@ if test "$TOOLKIT" != "MSW"; 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 ;; @@ -3781,7 +4975,7 @@ if test "$TOOLKIT" != "MSW"; then -*) AC_MSG_CHECKING([whether pthreads work with $flag]) - THREADS_CFLAGS="$flag" + THREADS_CXXFLAGS="$flag" ;; *) @@ -3791,16 +4985,16 @@ if test "$TOOLKIT" != "MSW"; 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 @@ -3808,7 +5002,7 @@ if test "$TOOLKIT" != "MSW"; then fi THREADS_LINK="" - THREADS_CFLAGS="" + THREADS_CXXFLAGS="" done if test "x$THREADS_OK" != "xyes"; then @@ -3817,7 +5011,7 @@ if test "$TOOLKIT" != "MSW"; 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]) @@ -3849,14 +5043,11 @@ if test "$TOOLKIT" != "MSW"; 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 @@ -3864,6 +5055,28 @@ if test "$TOOLKIT" != "MSW"; 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, @@ -3909,22 +5122,8 @@ if test "$TOOLKIT" != "MSW"; then AC_DEFINE(HAVE_PTHREAD_CANCEL), AC_MSG_WARN([wxThread::Kill() will not work properly])) - AC_CACHE_CHECK([for pthread_cleanup_push/pop], wx_cv_func_pthread_cleanup_push, - [ - AC_TRY_COMPILE([#include ], - [ - pthread_cleanup_push(NULL, NULL); - pthread_cleanup_pop(0); - ], [ - wx_cv_func_pthread_cleanup_push=yes - ], [ - wx_cv_func_pthread_cleanup_push=no - ]) - ]) - - if test "$wx_cv_func_pthread_cleanup_push" = "yes"; then - AC_DEFINE(HAVE_THREAD_CLEANUP_FUNCTIONS) - fi + AC_CHECK_FUNC(pthread_attr_setstacksize, + AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE)) dnl mutexattr_t initialization is done in quite different ways on different dnl platforms, so check for a few things: @@ -3941,16 +5140,31 @@ if test "$TOOLKIT" != "MSW"; 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], @@ -3984,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 @@ -3995,18 +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 ) + 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) @@ -4014,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) @@ -4038,24 +5292,33 @@ if test "$WXGTK127" = 1 ; then AC_DEFINE_UNQUOTED(__WXGTK127__,$WXGTK127) fi -WXDEBUG= +if test "$WXGPE" = 1 ; then + AC_DEFINE_UNQUOTED(__WXGPE__,$WXGPE) +fi +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 - WXDEBUG="-ggdb" + if test "$GCC" = yes; then + 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 @@ -4067,25 +5330,24 @@ if test "$wxUSE_MEM_TRACING" = "yes" ; then fi if test "$wxUSE_DMALLOC" = "yes" ; then - DMALLOC_LIBS="-ldmalloc" + 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 @@ -4101,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 @@ -4135,20 +5403,14 @@ dnl --------------------------------------------------------------------------- dnl compatibility level dnl --------------------------------------------------------------------------- -if test "$WXWIN_COMPATIBILITY_2" = "yes"; then - AC_DEFINE(WXWIN_COMPATIBILITY_2) - - WXWIN_COMPATIBILITY_2_2="yes" -fi - -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 --------------------------------------------------------------------------- @@ -4156,21 +5418,19 @@ dnl the library may be built without GUI classes at all dnl --------------------------------------------------------------------------- if test "$wxUSE_GUI" = "yes"; then - AC_DEFINE(wxUSE_GUI) - - dnl the things we always pull in the GUI version of the library: - dnl 1. basic things like wxApp, wxWindow, wxControl, wxFrame, wxDialog (the - dnl library really can't be built without those) - dnl 2. basic controls: wxButton, wxStaticText, wxTextCtrl (these are used in - dnl almost any program and the first 2 are needed to show a message box - dnl which want to be always able to do) - dnl 3. GDI stuff: icon, cursors and all that. Although it would be very nice - dnl to compile without them (if the app doesn't do any drawing, it doesn't - dnl need the dcs, pens, brushes, ...), this just can't be done now - dnl 4. menu stuff: wxMenu, wxMenuBar, wxMenuItem - dnl 5. misc stuff: timers, settings, message box -else - AC_DEFINE(wxUSE_NOGUI) + AC_DEFINE(wxUSE_GUI) + + dnl the things we always pull in the GUI version of the library: + dnl 1. basic things like wxApp, wxWindow, wxControl, wxFrame, wxDialog (the + dnl library really can't be built without those) + dnl 2. basic controls: wxButton, wxStaticText, wxTextCtrl (these are used in + dnl almost any program and the first 2 are needed to show a message box + dnl which want to be always able to do) + dnl 3. GDI stuff: icon, cursors and all that. Although it would be very nice + dnl to compile without them (if the app doesn't do any drawing, it doesn't + dnl need the dcs, pens, brushes, ...), this just can't be done now + dnl 4. menu stuff: wxMenu, wxMenuBar, wxMenuItem + dnl 5. misc stuff: timers, settings, message box fi dnl --------------------------------------------------------------------------- @@ -4181,29 +5441,246 @@ if test "$wxUSE_UNIX" = "yes"; then AC_DEFINE(wxUSE_UNIX) fi -dnl --------------------------------------------------------------------------- -dnl Register non-GUI class options for makefiles and setup.h -dnl --------------------------------------------------------------------------- - -if test "$wxUSE_STL" = "yes"; then - AC_DEFINE(wxUSE_STL) -fi - -if test "$wxUSE_APPLE_IEEE" = "yes"; then - AC_DEFINE(wxUSE_APPLE_IEEE) -fi +dnl ------------------------------------------------------------------------ +dnl DLL support +dnl ------------------------------------------------------------------------ -if test "$wxUSE_TIMER" = "yes"; then - AC_DEFINE(wxUSE_TIMER) -fi +dnl under MSW we always have LoadLibrary/GetProcAddress +if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then -if test "$wxUSE_WAVE" = "yes"; then - AC_DEFINE(wxUSE_WAVE) -fi + HAVE_DL_FUNCS=0 + HAVE_SHL_FUNCS=0 + if test "$wxUSE_DYNAMIC_LOADER" = "yes" -o "$wxUSE_DYNLIB_CLASS" = "yes" ; then + if test "$USE_DARWIN" = 1; then + dnl dlopen/dlerror is implemented in dynlib.cpp for Darwin/Mac OS X + HAVE_DL_FUNCS=1 + elif test "$USE_DOS" = 1; then + HAVE_DL_FUNCS=0 + else + dnl the test is a bit complicated because we check for dlopen() both with + dnl and without -ldl and we also try to find shl_load() if there is no + dnl dlopen() on this system + AC_CHECK_FUNCS(dlopen, + [ + AC_DEFINE(HAVE_DLOPEN) + HAVE_DL_FUNCS=1 + ], + [ + AC_CHECK_LIB(dl, dlopen, + [ + AC_DEFINE(HAVE_DLOPEN) + HAVE_DL_FUNCS=1 + DL_LINK=" -ldl$DL_LINK" + ], + [ + AC_CHECK_FUNCS(shl_load, + [ + AC_DEFINE(HAVE_SHL_LOAD) + HAVE_SHL_FUNCS=1 + ], + [ + AC_CHECK_LIB(shl_load, dld, + [ + HAVE_SHL_FUNCS=1 + DL_LINK=" -ldld$DL_LINK" + ]) + ]) + ]) + ]) -if test "$wxUSE_CMDLINE_PARSER" = "yes"; then - AC_DEFINE(wxUSE_CMDLINE_PARSER) -fi + dnl check also for dlerror() + if test "$HAVE_DL_FUNCS" = 1; then + AC_CHECK_FUNCS(dlerror, + AC_DEFINE(HAVE_DLERROR), + [ + AC_CHECK_LIB(dl, dlerror, AC_DEFINE(HAVE_DLERROR)) + ] + ) + fi + fi + + if test "$HAVE_DL_FUNCS" = 0; then + if test "$HAVE_SHL_FUNCS" = 0; then + if test "$USE_UNIX" = 1 -o "$USE_DOS" = 1; then + AC_MSG_WARN([Missing dynamic loading support, several features will be disabled]) + wxUSE_DYNAMIC_LOADER=no + wxUSE_DYNLIB_CLASS=no + else + AC_MSG_WARN([Assuming wxLibrary class works on this platform]) + fi + fi + fi + fi +fi + +if test "$wxUSE_DYNAMIC_LOADER" = "yes" ; then + AC_DEFINE(wxUSE_DYNAMIC_LOADER) +fi +if test "$wxUSE_DYNLIB_CLASS" = "yes" ; then + AC_DEFINE(wxUSE_DYNLIB_CLASS) +fi + + +dnl --------------------------------------------------------------------------- +dnl Verify consistency of plugins/monolithic/shared settings: +dnl --------------------------------------------------------------------------- + +if test "$wxUSE_PLUGINS" = "yes" ; then + if test "$wxUSE_SHARED" = "no" ; then + AC_MSG_WARN([plugins supported only in shared build, disabling]) + wxUSE_PLUGINS=no + fi + if test "$wxUSE_MONOLITHIC" = "yes" ; then + AC_MSG_WARN([plugins not supported monolithic build, disabling]) + wxUSE_PLUGINS=no + fi + if test "$wxUSE_DYNLIB_CLASS" = "no" ; then + AC_MSG_WARN([plugins require wxDynamicLibrary, disabling]) + wxUSE_PLUGINS=no + fi + if test "$wxUSE_PLUGINS" = "yes" ; then + AC_DEFINE(wxUSE_PLUGINS) + fi +fi + +dnl --------------------------------------------------------------------------- +dnl Register non-GUI class options for makefiles and setup.h +dnl --------------------------------------------------------------------------- + +if test "$wxUSE_STL" = "yes"; then + AC_DEFINE(wxUSE_STL) +fi + +if test "$wxUSE_APPLE_IEEE" = "yes"; then + AC_DEFINE(wxUSE_APPLE_IEEE) +fi + +if test "$wxUSE_TIMER" = "yes"; then + AC_DEFINE(wxUSE_TIMER) +fi + +dnl Unix implementation needs additional checks because audio support +dnl comes in many favours: +if test "$USE_UNIX" = "1" ; then + 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 + if test "$USE_UNIX" = "1" ; then + if test "$wxUSE_LIBSDL" != "no"; then + AM_PATH_SDL([1.2.0], + [ + EXTRALIBS_SDL="$SDL_LIBS" + CXXFLAGS="$SDL_CFLAGS $CXXFLAGS" + AC_DEFINE(wxUSE_LIBSDL) + ], + [wxUSE_LIBSDL="no"]) + if test "$wxUSE_LIBSDL" = "yes" -a "$wxUSE_PLUGINS" = "yes" ; then + WITH_PLUGIN_SDL=1 + fi + fi + fi + + AC_DEFINE(wxUSE_SOUND) + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sound" +fi + +if test "$WXGTK20" = 1; then + if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then + if test "$wxUSE_LIBGNOMEPRINT" = "yes" ; then + + PKG_CHECK_MODULES(LIBGNOMEPRINTUI, + [libgnomeprintui-2.2 >= 2.8], + [ +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([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) +fi if test "$wxUSE_STOPWATCH" = "yes"; then AC_DEFINE(wxUSE_STOPWATCH) @@ -4229,12 +5706,43 @@ if test "$wxUSE_FS_ZIP" = "yes"; then AC_DEFINE(wxUSE_FS_ZIP) fi +if test "$wxUSE_ARCHIVE_STREAMS" = "yes"; then + AC_DEFINE(wxUSE_ARCHIVE_STREAMS) +fi + if test "$wxUSE_ZIPSTREAM" = "yes"; then - AC_DEFINE(wxUSE_ZIPSTREAM) + if test "$wxUSE_ARCHIVE_STREAMS" != "yes"; then + AC_MSG_WARN(wxZip requires wxArchive... disabled) + elif test "$wxUSE_ZLIB" = "no"; then + AC_MSG_WARN(wxZip requires wxZlib... disabled) + else + AC_DEFINE(wxUSE_ZIPSTREAM) + fi fi if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then - AC_DEFINE(wxUSE_ON_FATAL_EXCEPTION) + if test "$USE_UNIX" != 1; then + AC_MSG_WARN([Catching fatal exceptions not currently supported on this system, wxApp::OnFatalException will not be called]) + wxUSE_ON_FATAL_EXCEPTION=no + else + AC_DEFINE(wxUSE_ON_FATAL_EXCEPTION) + fi +fi + +if test "$wxUSE_STACKWALKER" = "yes"; then + AC_DEFINE(wxUSE_STACKWALKER) +fi + +if test "$wxUSE_DEBUGREPORT" = "yes"; then + if test "$USE_UNIX" != "1" -a "$USE_WIN32" != "1"; then + AC_MSG_WARN([Creating debug reports not currently supported on this system, disabled]) + wxUSE_DEBUGREPORT=no + else + AC_DEFINE(wxUSE_DEBUGREPORT) + if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS debugrpt" + fi + fi fi if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then @@ -4249,6 +5757,14 @@ if test "$wxUSE_STD_IOSTREAM" = "yes"; then AC_DEFINE(wxUSE_STD_IOSTREAM) fi +if test "$wxUSE_STD_STRING" = "yes"; then + AC_DEFINE(wxUSE_STD_STRING) +fi + +if test "$wxUSE_STDPATHS" = "yes"; then + AC_DEFINE(wxUSE_STDPATHS) +fi + if test "$wxUSE_TEXTBUFFER" = "yes"; then AC_DEFINE(wxUSE_TEXTBUFFER) fi @@ -4266,6 +5782,7 @@ if test "$wxUSE_CONFIG" = "yes" ; then AC_MSG_WARN(wxConfig requires wxTextFile... disabled) else AC_DEFINE(wxUSE_CONFIG) + AC_DEFINE(wxUSE_CONFIG_NATIVE) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS config" fi fi @@ -4294,6 +5811,9 @@ if test "$wxUSE_LOG" = "yes"; then if test "$wxUSE_LOGDIALOG" = "yes"; then AC_DEFINE(wxUSE_LOG_DIALOG) fi + + dnl the keyboard sample requires wxUSE_LOG + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS keyboard" fi if test "$wxUSE_LONGLONG" = "yes"; then @@ -4304,22 +5824,42 @@ if test "$wxUSE_GEOMETRY" = "yes"; then AC_DEFINE(wxUSE_GEOMETRY) fi -if test "$wxUSE_DIALUP_MANAGER" = "yes" ; then - AC_DEFINE(wxUSE_DIALUP_MANAGER) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dialup" -fi - 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 @@ -4415,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 @@ -4444,7 +5981,6 @@ if test "$wxUSE_DATETIME" = "yes"; then ] ) ) - AC_LANG_RESTORE ]) if test "$wx_cv_func_gettimeofday_has_2_args" != "yes"; then @@ -4465,10 +6001,6 @@ if test "$wxUSE_SOCKETS" = "yes"; then AC_MSG_WARN([wxSocket not yet supported under MGL... disabled]) wxUSE_SOCKETS="no" fi - if test "$wxUSE_COCOA" = "1"; then - AC_MSG_WARN([wxSocket not yet supported under Cocoa... disabled]) - wxUSE_SOCKETS="no" - fi fi if test "$wxUSE_SOCKETS" = "yes"; then @@ -4476,15 +6008,17 @@ if test "$wxUSE_SOCKETS" = "yes"; then if test "$TOOLKIT" != "MSW"; then dnl under Solaris and OS/2, socket functions live in -lsocket AC_CHECK_FUNC(socket,, - AC_CHECK_LIB(socket, socket, - if test "$INET_LINK" != " -lsocket"; then - INET_LINK="$INET_LINK -lsocket" - fi, - [ - AC_MSG_WARN([socket library not found - sockets will be disabled]) - wxUSE_SOCKETS=no - ] - ) + [ + AC_CHECK_LIB(socket, socket, + if test "$INET_LINK" != " -lsocket"; then + INET_LINK="$INET_LINK -lsocket" + fi, + [ + AC_MSG_WARN([socket library not found - sockets will be disabled]) + wxUSE_SOCKETS=no + ] + ) + ] ) fi fi @@ -4495,6 +6029,9 @@ if test "$wxUSE_SOCKETS" = "yes" ; then dnl like mingw does.. -- RL if test "$TOOLKIT" != "MSW"; then dnl determine the type of third argument for getsockname + 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_CACHE_CHECK([what is the type of the third argument of getsockname], wx_cv_type_getsockname3, [ @@ -4515,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( @@ -4544,7 +6081,7 @@ if test "$wxUSE_SOCKETS" = "yes" ; then ) ) - CFLAGS="$CFLAGS_OLD" + CXXFLAGS="$CXXFLAGS_OLD" ] ) ]) @@ -4553,7 +6090,68 @@ 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], + wx_cv_type_getsockopt5, + [ + AC_TRY_COMPILE( + [ + #include + #include + ], + [ + socklen_t len; + getsockopt(0, 0, 0, 0, &len); + ], + wx_cv_type_getsockopt5=socklen_t, + [ + dnl the compiler will compile the version with size_t + dnl even if the real type of the last parameter is int + dnl but it should give at least a warning about + 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) + CXXFLAGS_OLD="$CXXFLAGS" + if test "$GCC" = yes ; then + CXXFLAGS="-Werror $CXXFLAGS" + fi + + AC_TRY_COMPILE( + [ + #include + #include + ], + [ + size_t len; + getsockopt(0, 0, 0, 0, &len); + ], + wx_cv_type_getsockopt5=size_t, + AC_TRY_COMPILE( + [ + #include + #include + ], + [ + int len; + getsockopt(0, 0, 0, 0, &len); + ], + wx_cv_type_getsockopt5=int, + wx_cv_type_getsockopt5=unknown + ) + ) + + CXXFLAGS="$CXXFLAGS_OLD" + ] + ) + ]) + + if test "$wx_cv_type_getsockopt5" = "unknown"; then + wxUSE_SOCKETS=no + AC_MSG_WARN([Couldn't find socklen_t synonym for this system]) + else + AC_DEFINE_UNQUOTED(SOCKOPTLEN_T, $wx_cv_type_getsockopt5) fi fi fi @@ -4584,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 @@ -4599,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 @@ -4607,131 +6209,60 @@ dnl --------------------------------------------------------------------------- dnl Joystick support dnl --------------------------------------------------------------------------- -if test "$wxUSE_GUI" = "yes"; then - - if test "$TOOLKIT" = "MAC" -o "$TOOLKIT" = "COCOA"; then - AC_MSG_WARN([Joystick not yet supported under Mac OS X... disabled]) - wxUSE_JOYSTICK=no - fi - if test "$TOOLKIT" = "MOTIF"; then - AC_MSG_WARN([Joystick not yet supported under Motif... disabled]) - wxUSE_JOYSTICK=no - fi - if test "$TOOLKIT" = "X11"; then - AC_MSG_WARN([Joystick not yet supported under X11... disabled]) - wxUSE_JOYSTICK=no - fi +if test "$wxUSE_GUI" = "yes" -a "$wxUSE_JOYSTICK" = "yes"; then + wxUSE_JOYSTICK=no dnl under MSW we always have joystick support - if test "$TOOLKIT" != "MSW"; then - if test "$wxUSE_JOYSTICK" = "yes"; then - dnl joystick support is only for Linux 2.1.x or greater - AC_CHECK_HEADERS(linux/joystick.h) - if test "$ac_cv_header_linux_joystick_h" != "yes"; then - wxUSE_JOYSTICK=no - AC_MSG_WARN(Joystick not supported by this system... disabled) - fi + if test "$TOOLKIT" = "MSW"; then + wxUSE_JOYSTICK=yes + + dnl mac only available on darwin + elif test "$TOOLKIT" = "MAC" -o "$TOOLKIT" = "COCOA"; 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_TRY_COMPILE( [ #include ], + [ IOHIDQueueInterface *qi = NULL; + IOHIDCallbackFunction cb = NULL; + qi->setEventCallout(NULL, cb, NULL, NULL); ], + [ wxUSE_JOYSTICK=yes ] + ) + AC_MSG_RESULT($wxUSE_JOYSTICK) fi + + dnl joystick support is only for Linux 2.1.x or greater + else + AC_CHECK_HEADERS(linux/joystick.h, wxUSE_JOYSTICK=yes) fi if test "$wxUSE_JOYSTICK" = "yes"; then AC_DEFINE(wxUSE_JOYSTICK) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest" + else + AC_MSG_WARN(Joystick not supported by this system... disabled) fi fi -dnl ------------------------------------------------------------------------ -dnl DLL support -dnl ------------------------------------------------------------------------ -dnl under MSW we always have LoadLibrary/GetProcAddress -if test "$TOOLKIT" != "MSW"; then +dnl --------------------------------------------------------------------------- +dnl String stuff +dnl --------------------------------------------------------------------------- - HAVE_DL_FUNCS=0 - HAVE_SHL_FUNCS=0 - if test "$wxUSE_DYNAMIC_LOADER" = "yes" -o "$wxUSE_DYNLIB_CLASS" = "yes" ; then - if test "$USE_DARWIN" = 1; then - dnl dlopen/dlerror is implemented in dynlib.cpp for Darwin/Mac OS X - HAVE_DL_FUNCS=1 - else - dnl the test is a bit complicated because we check for dlopen() both with - dnl and without -ldl and we also try to find shl_load() if there is no - dnl dlopen() on this system - AC_CHECK_FUNCS(dlopen, +if test "$wxUSE_FONTMAP" = "yes" ; then + AC_DEFINE(wxUSE_FONTMAP) +fi + +if test "$wxUSE_UNICODE" = "yes" ; then + AC_DEFINE(wxUSE_UNICODE) + + if test "$USE_WIN32" != 1; then + wxUSE_UNICODE_MSLU=no + fi + + if test "$USE_WIN32" = 1 -a "$wxUSE_UNICODE_MSLU" = "yes"; then + AC_CHECK_LIB(unicows,main, [ - AC_DEFINE(HAVE_DLOPEN) - HAVE_DL_FUNCS=1 - ], - [ - AC_CHECK_LIB(dl, dlopen, - [ - AC_DEFINE(HAVE_DLOPEN) - HAVE_DL_FUNCS=1 - DL_LINK=" -ldl$DL_LINK" - ], - [ - AC_CHECK_FUNCS(shl_load, - [ - AC_DEFINE(HAVE_SHL_LOAD) - HAVE_SHL_FUNCS=1 - ], - [ - AC_CHECK_LIB(shl_load, dld, - [ - HAVE_SHL_FUNCS=1 - DL_LINK=" -ldld$DL_LINK" - ]) - ]) - ]) - ]) - - dnl check also for dlerror() - if test "$HAVE_DL_FUNCS" = 1; then - AC_CHECK_FUNCS(dlerror, - AC_DEFINE(HAVE_DLERROR), - AC_CHECK_LIB(dl, dlerror, AC_DEFINE(HAVE_DLERROR))) - fi - fi - - if test "$HAVE_DL_FUNCS" = 0; then - if test "$HAVE_SHL_FUNCS" = 0; then - if test "$USE_UNIX" = 1; then - AC_MSG_WARN([Missing dynamic loading support, several features will be disabled]) - wxUSE_DYNAMIC_LOADER=no - wxUSE_DYNLIB_CLASS=no - else - AC_MSG_WARN([Assuming wxLibrary class works on this platform]) - fi - fi - fi - fi -fi - -if test "$wxUSE_DYNAMIC_LOADER" = "yes" ; then - AC_DEFINE(wxUSE_DYNAMIC_LOADER) -elif test "$wxUSE_DYNLIB_CLASS" = "yes" ; then - AC_DEFINE(wxUSE_DYNLIB_CLASS) -fi - -dnl --------------------------------------------------------------------------- -dnl String stuff -dnl --------------------------------------------------------------------------- - -if test "$wxUSE_FONTMAP" = "yes" ; then - AC_DEFINE(wxUSE_FONTMAP) -fi - -if test "$wxUSE_UNICODE" = "yes" ; then - AC_DEFINE(wxUSE_UNICODE) - - if test "$wxUSE_MSW" != 1; then - wxUSE_UNICODE_MSLU=no - fi - - if test "$wxUSE_MSW" = 1 -a "$wxUSE_UNICODE_MSLU" = "yes"; then - AC_CHECK_LIB(unicows,main, - [ - AC_DEFINE(wxUSE_UNICODE_MSLU) + AC_DEFINE(wxUSE_UNICODE_MSLU) ], [ AC_MSG_WARN([Compiler doesn't support MSLU (libunicows.a), disabled. @@ -4766,9 +6297,13 @@ if test "$wxUSE_CONSTRAINTS" = "yes"; then SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS layout" fi -if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then - AC_DEFINE(wxUSE_MDI_ARCHITECTURE) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi" +if test "$wxUSE_MDI" = "yes"; then + AC_DEFINE(wxUSE_MDI) + + if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then + AC_DEFINE(wxUSE_MDI_ARCHITECTURE) + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi" + fi fi if test "$wxUSE_DOC_VIEW_ARCHITECTURE" = "yes" ; then @@ -4812,13 +6347,24 @@ 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 --------------------------------------------------------------------------- dnl check for ole headers and disable a few features requiring it if not dnl present (earlier versions of mingw32 don't have ole2.h) -if test "$wxUSE_MSW" = 1 -a \( "$wxUSE_DATAOBJ" = "yes" \ +if test "$USE_WIN32" = 1 -a \( "$wxUSE_DATAOBJ" = "yes" \ -o "$wxUSE_CLIPBOARD" = "yes" \ -o "$wxUSE_OLE" = "yes" \ -o "$wxUSE_DRAG_AND_DROP" = "yes" \) ; then @@ -4826,25 +6372,26 @@ if test "$wxUSE_MSW" = 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 - ALL_OBJECTS="$ALL_OBJECTS \$(OLEOBJS)" + WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fvtable-thunks"]) LIBS=" -lrpcrt4 -loleaut32 -lole32 -luuid$LIBS" - AC_DEFINE(wxUSE_OLE) - + 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 dnl for OLE clipboard and dnd - AC_DEFINE(wxUSE_DATAOBJ) + if test "$wxUSE_DATAOBJ" = "yes" ; then + AC_DEFINE(wxUSE_DATAOBJ) + fi else AC_MSG_WARN([Some features disabled because OLE headers not found]) @@ -4863,11 +6410,28 @@ if test "$wxUSE_MSW" = 1 -a \( "$wxUSE_DATAOBJ" = "yes" \ fi if test "$wxUSE_IPC" = "yes"; then - if test "$wxUSE_SOCKETS" != "yes"; then - AC_MSG_WARN(wxWindows IPC classes require sockets... disabled) + if test "$wxUSE_SOCKETS" != "yes" -a "$USE_WIN32" != 1; then + AC_MSG_WARN(wxWidgets IPC classes require sockets... disabled) + wxUSE_IPC=no fi - AC_DEFINE(wxUSE_IPC) + if test "$wxUSE_IPC" = "yes"; then + AC_DEFINE(wxUSE_IPC) + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS ipc" + 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 @@ -4878,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 @@ -4909,15 +6470,22 @@ if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then if test "$wxUSE_DRAG_AND_DROP" = "yes"; then AC_DEFINE(wxUSE_DRAG_AND_DROP) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd" fi fi +if test "$wxUSE_DRAG_AND_DROP" = "yes" -o "$wxUSE_CLIPBOARD" = "yes"; then + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd" +fi + if test "$wxUSE_SPLINES" = "yes" ; then AC_DEFINE(wxUSE_SPLINES) fi +if test "$wxUSE_MOUSEWHEEL" = "yes" ; then + AC_DEFINE(wxUSE_MOUSEWHEEL) +fi + dnl --------------------------------------------------------------------------- dnl GUI controls dnl --------------------------------------------------------------------------- @@ -4932,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 @@ -4959,11 +6533,21 @@ 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 fi +if test "$wxUSE_CHOICEBOOK" = "yes"; then + AC_DEFINE(wxUSE_CHOICEBOOK) + USES_CONTROLS=1 +fi + if test "$wxUSE_CHECKBOX" = "yes"; then AC_DEFINE(wxUSE_CHECKBOX) USES_CONTROLS=1 @@ -4975,9 +6559,38 @@ 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" + 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 @@ -4991,13 +6604,35 @@ 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 +if test "$wxUSE_LISTBOOK" = "yes"; then + AC_DEFINE(wxUSE_LISTBOOK) + USES_CONTROLS=1 +fi + if test "$wxUSE_LISTBOX" = "yes"; then AC_DEFINE(wxUSE_LISTBOX) USES_CONTROLS=1 + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS listbox" fi if test "$wxUSE_LISTCTRL" = "yes"; then @@ -5016,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 @@ -5084,15 +6725,16 @@ if test "$wxUSE_STATLINE" = "yes"; then fi if test "$wxUSE_STATUSBAR" = "yes"; then + dnl this will get undefined in wx/chkconf.h if it's not supported + AC_DEFINE(wxUSE_NATIVE_STATUSBAR) AC_DEFINE(wxUSE_STATUSBAR) USES_CONTROLS=1 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS statbar" fi -if test "$wxUSE_TABDIALOG" = "yes"; then +if test "$wxUSE_TAB_DIALOG" = "yes"; then AC_DEFINE(wxUSE_TAB_DIALOG) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS tab" fi if test "$wxUSE_TEXTCTRL" = "yes"; then @@ -5102,14 +6744,10 @@ if test "$wxUSE_TEXTCTRL" = "yes"; then fi if test "$wxUSE_TOGGLEBTN" = "yes"; then - if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then + if test "$wxUSE_COCOA" = 1 ; 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) @@ -5117,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" @@ -5152,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) @@ -5166,20 +6805,26 @@ if test "$wxUSE_POPUPWIN" = "yes"; then if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then AC_MSG_WARN([Popup window not yet supported under Mac OS X... disabled]) else - if test "$wxUSE_MOTIF" = 1; then - AC_MSG_WARN([wxPopupWindow not yet supported under Motif... disabled]) + if test "$wxUSE_PM" = 1; then + AC_MSG_WARN([wxPopupWindow not yet supported under PM... disabled]) else - if test "$wxUSE_PM" = 1; then - AC_MSG_WARN([wxPopupWindow not yet supported under PM... disabled]) - else - AC_DEFINE(wxUSE_POPUPWIN) + AC_DEFINE(wxUSE_POPUPWIN) + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS popup" - USES_CONTROLS=1 - fi + USES_CONTROLS=1 fi fi fi +if test "$wxUSE_DIALUP_MANAGER" = "yes"; then + if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then + AC_MSG_WARN([Dialup manager not yet supported under Mac OS X... disabled]) + else + AC_DEFINE(wxUSE_DIALUP_MANAGER) + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dialup" + fi +fi + if test "$wxUSE_TIPWINDOW" = "yes"; then if test "$wxUSE_PM" = 1; then AC_MSG_WARN([wxTipWindow not yet supported under PM... disabled]) @@ -5196,19 +6841,78 @@ dnl --------------------------------------------------------------------------- dnl misc options dnl --------------------------------------------------------------------------- -dnl if test "$wxUSE_TREELAYOUT" = "yes"; then -dnl AC_DEFINE(wxUSE_TREELAYOUT) -dnl SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS treelay" -dnl fi +dnl please keep the settings below in alphabetical order +if test "$wxUSE_ACCESSIBILITY" = "yes"; then + AC_DEFINE(wxUSE_ACCESSIBILITY) + 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" fi -if test "$wxUSE_ACCESSIBILITY" = "yes"; then - AC_DEFINE(wxUSE_ACCESSIBILITY) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS access" +if test "$wxUSE_EXCEPTIONS" = "yes"; then + if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then + AC_MSG_WARN([--enable-exceptions can't be used with --enable-no_exceptions]) + else + AC_DEFINE(wxUSE_EXCEPTIONS) + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS except" + fi +fi + +USE_HTML=0 +if test "$wxUSE_HTML" = "yes"; then + AC_DEFINE(wxUSE_HTML) + USE_HTML=1 + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html html/about html/help html/helpview html/printing html/test html/virtual html/widget html/zip htlbox" + if test "$wxUSE_MAC" = 1; then + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html/htmlctrl" + fi +fi +if test "$wxUSE_WEBKIT" = "yes"; then + if test "$wxUSE_MAC" = 1 -a "$USE_DARWIN" = 1; then + old_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="-x objective-c++ $CPPFLAGS" + AC_CHECK_HEADER([WebKit/HIWebView.h], + [ + AC_DEFINE(wxUSE_WEBKIT) + WEBKIT_LINK="-framework WebKit" + ], + [ + AC_MSG_WARN([WebKit headers not found; disabling wxWebKit]) + wxUSE_WEBKIT=no + ], + [#include ]) + CPPFLAGS="$old_CPPFLAGS" + elif test "$wxUSE_COCOA" = 1; then + AC_DEFINE(wxUSE_WEBKIT) + else + wxUSE_WEBKIT=no + fi +fi + +USE_XRC=0 +if test "$wxUSE_XRC" = "yes"; then + if test "$wxUSE_XML" != "yes"; then + AC_MSG_WARN([XML library not built, XRC resources disabled]) + wxUSE_XRC=no + else + AC_DEFINE(wxUSE_XRC) + USE_XRC=1 + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS xrc" + 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 @@ -5224,26 +6928,20 @@ if test "$wxUSE_MIMETYPE" = "yes"; then AC_DEFINE(wxUSE_MIMETYPE) fi -if test "$wxUSE_SYSTEM_OPTIONS" = "yes"; then - AC_DEFINE(wxUSE_SYSTEM_OPTIONS) -if test "$TOOLKIT" = "MSW"; then - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS taskbar" -fi - -fi - if test "$wxUSE_MINIFRAME" = "yes"; then AC_DEFINE(wxUSE_MINIFRAME) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS minifram" fi -USE_HTML=0 -if test "$wxUSE_HTML" = "yes"; then - AC_DEFINE(wxUSE_HTML) - USE_HTML=1 - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html html/about html/help html/helpview html/printing html/test html/virtual html/widget html/zip htlbox" +if test "$wxUSE_SYSTEM_OPTIONS" = "yes"; then + AC_DEFINE(wxUSE_SYSTEM_OPTIONS) + if test "$TOOLKIT" = "MSW" -o "$TOOLKIT" = "GTK" -o "$TOOLKIT" = "X11" -o \ + "$TOOLKIT" = "MOTIF" -o "$TOOLKIT" = "COCOA"; then + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS taskbar" + fi fi + if test "$wxUSE_VALIDATORS" = "yes"; then AC_DEFINE(wxUSE_VALIDATORS) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS validate" @@ -5253,43 +6951,58 @@ if test "$wxUSE_PALETTE" = "yes" ; then AC_DEFINE(wxUSE_PALETTE) fi -if test "$wxUSE_IMAGE" = "yes" ; then - AC_DEFINE(wxUSE_IMAGE) +if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_MSLU" = "yes" ; then + dnl Must be done this late because -lunicows must be before all the other libs + LIBS=" -lunicows $LIBS" fi -if test "$wxUSE_GIF" = "yes" ; then - AC_DEFINE(wxUSE_GIF) +USE_RICHTEXT=0 +if test "$wxUSE_RICHTEXT" = "yes"; then + AC_DEFINE(wxUSE_RICHTEXT) + USE_RICHTEXT=1 + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS richtext" fi -if test "$wxUSE_PCX" = "yes" ; then - AC_DEFINE(wxUSE_PCX) -fi +dnl --------------------------------------------------------------------------- +dnl wxImage options +dnl --------------------------------------------------------------------------- -if test "$wxUSE_IFF" = "yes" ; then - AC_DEFINE(wxUSE_IFF) -fi +if test "$wxUSE_IMAGE" = "yes" ; then + AC_DEFINE(wxUSE_IMAGE) -if test "$wxUSE_PNM" = "yes" ; then - AC_DEFINE(wxUSE_PNM) -fi + if test "$wxUSE_GIF" = "yes" ; then + AC_DEFINE(wxUSE_GIF) + fi -if test "$wxUSE_XPM" = "yes" ; then - AC_DEFINE(wxUSE_XPM) -fi + if test "$wxUSE_PCX" = "yes" ; then + AC_DEFINE(wxUSE_PCX) + fi -if test "$wxUSE_ICO_CUR" = "yes" ; then - AC_DEFINE(wxUSE_ICO_CUR) -fi + if test "$wxUSE_IFF" = "yes" ; then + AC_DEFINE(wxUSE_IFF) + fi -if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_MSLU" = "yes" ; then - dnl Must be done this late because -lunicows must be before all the other libs - LIBS=" -lunicows $LIBS" + if test "$wxUSE_PNM" = "yes" ; then + AC_DEFINE(wxUSE_PNM) + fi + + if test "$wxUSE_XPM" = "yes" ; then + AC_DEFINE(wxUSE_XPM) + fi + + if test "$wxUSE_ICO_CUR" = "yes" ; then + AC_DEFINE(wxUSE_ICO_CUR) + fi fi dnl --------------------------------------------------------------------------- -dnl common dialog +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 @@ -5336,6 +7049,7 @@ fi if test "$wxUSE_SPLASH" = "yes"; then AC_DEFINE(wxUSE_SPLASH) + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splash" fi if test "$wxUSE_STARTUP_TIPS" = "yes"; then @@ -5356,7 +7070,110 @@ if test "$wxUSE_WIZARDDLG" = "yes"; then fi dnl --------------------------------------------------------------------------- -dnl get the string with OS info - used by wxGetOsDescription() +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 ----------------------------------------------------------------------- + if test "$wxUSE_GTK" = 1; then + wxUSE_GSTREAMER="no" + + dnl ------------------------------------------------------------------- + dnl Test for at least 0.8 gstreamer module from pkg-config + dnl Even totem doesn't accept 0.9 evidently. + dnl + dnl So, we first check to see if 0.10 if available - if not we + dnl try the older 0.8 version + dnl ------------------------------------------------------------------- + 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 + 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) + else + USE_MEDIA=0 + fi + fi + + if test $USE_MEDIA = 1; then + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mediaplayer" + AC_DEFINE(wxUSE_MEDIACTRL) + fi +fi + +dnl --------------------------------------------------------------------------- +dnl get the string with OS info - used by wxGetOsDescription() on MacOS X dnl --------------------------------------------------------------------------- if test "$cross_compiling" = "yes"; then @@ -5382,170 +7199,242 @@ fi AC_DEFINE_UNQUOTED(wxINSTALL_PREFIX, "$wxPREFIX") -dnl define the variables used in wx-config -top_builddir_wxconfig=`pwd` dnl --------------------------------------------------------------------------- -dnl Output the makefiles and such from the results found above +dnl define variables with all built libraries for wx-config dnl --------------------------------------------------------------------------- -dnl all additional libraries (except wxWindows itself) we link with - -dnl note that we always link with -lm except for Mac OS X -dnl extended.c uses floor() and is always linked in +CORE_BASE_LIBS="net base" +CORE_GUI_LIBS="adv core" -if test "$wxUSE_MAC" = 1 ; then - LDFLAGS="$LDFLAGS -framework Carbon -framework System" +if test "$wxUSE_XML" = "yes" ; then + CORE_BASE_LIBS="xml $CORE_BASE_LIBS" fi -if test "$wxUSE_COCOA" = 1 ; then - LDFLAGS="$LDFLAGS -framework Cocoa -framework System" +if test "$wxUSE_ODBC" != "no" ; then + CORE_BASE_LIBS="odbc $CORE_BASE_LIBS" + CORE_GUI_LIBS="dbgrid $CORE_GUI_LIBS" +fi +if test "$wxUSE_HTML" = "yes" ; then + CORE_GUI_LIBS="html $CORE_GUI_LIBS" +fi +if test "$wxUSE_DEBUGREPORT" = "yes" ; then + CORE_GUI_LIBS="qa $CORE_GUI_LIBS" +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 -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 ] +if test "$wxUSE_GUI" != "yes"; then + CORE_GUI_LIBS="" +fi -LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK $LIBS" +AC_SUBST(CORE_BASE_LIBS) +AC_SUBST(CORE_GUI_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) +dnl --------------------------------------------------------------------------- +dnl Output the makefiles and such from the results found above +dnl --------------------------------------------------------------------------- + +dnl no more tests from here +AC_LANG_POP + +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 + if test "$USE_DARWIN" = 1; then + LDFLAGS="$LDFLAGS -framework QuickTime" + else + LDFLAGS="$LDFLAGS -lQuickTimeLib" + fi + fi + if test "$USE_DARWIN" = 1; then + LDFLAGS="$LDFLAGS -framework IOKit -framework Carbon -framework Cocoa -framework System" else - AC_MSG_RESULT(no) - # not sure we should warn the user, crash, etc. + LDFLAGS="$LDFLAGS -lCarbonLib" + fi +fi +if test "$wxUSE_COCOA" = 1 ; then + LDFLAGS="$LDFLAGS -framework IOKit -framework Cocoa" + if test "$wxUSE_MEDIACTRL" = "yes"; then + LDFLAGS="$LDFLAGS -framework QuickTime" fi fi +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 + +LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK $LIBS" if test "$wxUSE_GUI" = "yes"; then dnl TODO add checks that these samples will really compile (i.e. all the dnl library features they need are present) - dnl TODO some samples are never built so far: - dnl ipc, mfc, nativdlg, oleauto, ownerdrw - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS artprov controls dialogs \ - drawing dynamic erase event exec font image \ - minimal propsize rotate shaped widgets" + dnl TODO some samples are never built so far: mfc (requires VC++) + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS artprov controls dialogs drawing \ + dynamic erase event exec font image minimal mobile \ + mobile/wxedit mobile/styles propsize render \ + rotate shaped vscroll widgets" if test "$wxUSE_MONOLITHIC" != "yes"; then SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS console" fi + if test "$TOOLKIT" = "MSW"; then + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS regtest" + if test "$wxUSE_UNIVERSAL" != "yes"; then + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS ownerdrw nativdlg" + fi + fi + if test "$TOOLKIT" = "PM" -a "$wxUSE_UNIVERSAL" != "yes"; then + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS ownerdrw" + fi else SAMPLES_SUBDIRS="console" fi -dnl all -I options we must pass to the compiler +dnl C/C++ compiler options used to compile wxWidgets dnl -dnl note that the order is somewhat important, in particular the ZLIB_INCLUDE -dnl and other stuff for the built in libraries should come first to avoid -dnl including the system headers with the same name (it is particularly -dnl important for zlib because XFree 4.2.0 has its own, horribly old and -dnl incompatible, zlib.h) and the wxWindows headers should come first anyhow -INCLUDES="-I\${top_builddir}lib/wx/include/${TOOLCHAIN_NAME} \ --I\${top_srcdir}/include \ -$REGEX_INCLUDE $ZLIB_INCLUDE $PNG_INCLUDE $JPEG_INCLUDE $TIFF_INCLUDE \ -$TOOLKIT_INCLUDE" - -dnl C/C++ compiler options used to compile wxWindows -if test "$GXX" = yes ; then +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" - dnl should enable this one day... - dnl CXXWARNINGS="-Wall -Werror" + CXXWARNINGS="-Wall -Wundef -Wno-ctor-dtor-privacy" fi -EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE" -dnl remove the extra white space from the cc/c++/ld options -CPPFLAGS=`echo $WXDEBUG_DEFINE $INCLUDES $CPPFLAGS | sed 's/ \\+/ /g'` -CFLAGS=`echo $CODE_GEN_FLAGS $EXTRA_CFLAGS $CFLAGS $CXXWARNINGS | sed 's/ \\+/ /g'` -CXXFLAGS=`echo $CODE_GEN_FLAGS $CODE_GEN_FLAGS_CXX $EXTRA_CFLAGS $CXXFLAGS $CXXWARNINGS | sed 's/ \+/ /g'` - +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` -LIBS=`echo $LIBS | sed 's/ \+/ /g'` + +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): +CPPFLAGS=`echo $WXCONFIG_CPPFLAGS \ + -I\\${top_builddir}lib/wx/include/${TOOLCHAIN_FULLNAME} \ + -I\\${top_srcdir}/include $TOOLKIT_INCLUDE \ + $CPPFLAGS ` + +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` + + +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, + dnl but must use local not system on OS 9. + dnl The following should make all -I paths usable for <> includes + dnl while first checking in real system paths. With 8.3 using + dnl -gccincludes it will actually check local paths before system + dnl even for <> which is totally wrong. + + dnl Note that because this absolutely needs to be before any -I + dnl that we have to tack it on to the end of the compiler commandline. + CC="$CC -cwd source -I-" + CXX="$CXX -cwd source -I-" +fi + + +LIBS=`echo $LIBS` EXTRALIBS="$LDFLAGS $LDFLAGS_VERSIONING $LIBS $DMALLOC_LIBS" 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 | sed 's/ \+/ /g'` + 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 - wxconfig_3rdparty="$wxconfig_3rdparty regex" + wxconfig_3rdparty="regex${lib_unicode_suffix} $wxconfig_3rdparty" fi if test "$wxUSE_EXPAT" = "builtin" ; then - wxconfig_3rdparty="$wxconfig_3rdparty expat" + wxconfig_3rdparty="expat $wxconfig_3rdparty" fi if test "$wxUSE_ODBC" = "builtin" ; then - wxconfig_3rdparty="$wxconfig_3rdparty odbc" + wxconfig_3rdparty="odbc $wxconfig_3rdparty" fi if test "$wxUSE_LIBTIFF" = "builtin" ; then - wxconfig_3rdparty="$wxconfig_3rdparty tiff" + wxconfig_3rdparty="tiff $wxconfig_3rdparty" fi if test "$wxUSE_LIBJPEG" = "builtin" ; then - wxconfig_3rdparty="$wxconfig_3rdparty jpeg" + wxconfig_3rdparty="jpeg $wxconfig_3rdparty" fi if test "$wxUSE_LIBPNG" = "builtin" ; then - wxconfig_3rdparty="$wxconfig_3rdparty png" + wxconfig_3rdparty="png $wxconfig_3rdparty" fi if test "$wxUSE_ZLIB" = "builtin" ; then - wxconfig_3rdparty="$wxconfig_3rdparty zlib" + wxconfig_3rdparty="zlib $wxconfig_3rdparty" fi for i in $wxconfig_3rdparty ; do - WXCONFIG_EXTRALIBS="$WXCONFIG_EXTRALIBS -lwx${i}${lib_debug_suffix}${HOST_SUFFIX}" + 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 @@ -5564,6 +7453,24 @@ else MONOLITHIC=0 fi +if test $wxUSE_PLUGINS = "yes" ; then + USE_PLUGINS=1 +else + USE_PLUGINS=0 +fi + +if test $wxUSE_ODBC != "no" ; then + USE_ODBC=1 +else + USE_ODBC=0 +fi + +if test "$wxUSE_DEBUGREPORT" = "yes" ; then + USE_QA=1 +else + USE_QA=0 +fi + if test $wxUSE_OFFICIAL_BUILD = "yes" ; then OFFICIAL_BUILD=1 else @@ -5572,26 +7479,160 @@ fi AC_SUBST(VENDOR) AC_SUBST(OFFICIAL_BUILD) +AC_SUBST(WX_FLAVOUR) +AC_SUBST(WX_LIB_FLAVOUR) AC_SUBST(WXUNIV) AC_SUBST(MONOLITHIC) +AC_SUBST(USE_PLUGINS) AC_SUBST(LIBS) AC_SUBST(EXTRALIBS) AC_SUBST(EXTRALIBS_XML) +AC_SUBST(EXTRALIBS_HTML) +AC_SUBST(EXTRALIBS_ODBC) AC_SUBST(EXTRALIBS_GUI) 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(SHARED) -TOOLKIT_LOWERCASE=`echo $TOOLKIT | tr [[A-Z]] [[a-z]]` +AC_SUBST(DEBUG_INFO) +AC_SUBST(DEBUG_FLAG) +TOOLKIT_LOWERCASE=`echo $TOOLKIT | tr "[[A-Z]]" "[[a-z]]"` AC_SUBST(TOOLKIT_LOWERCASE) AC_SUBST(TOOLKIT_VERSION) AC_SUBST(SAMPLES_RPATH_FLAG) +AC_SUBST(SAMPLES_RPATH_POSTLINK) AC_SUBST(HOST_SUFFIX) +AC_SUBST(CPPUNIT_CFLAGS) +AC_SUBST(CPPUNIT_LIBS) -AC_BAKEFILE +case "$TOOLKIT" in + GTK) + TOOLKIT_DESC="GTK+" + if test "$WXGTK20" = 1; then + 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_DESC="base only" + ;; +esac +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)]) + +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 + + dnl We get the shared build linker from bakefile, since it + dnl moved all the logic for this out of this file and into + dnl its own macro. But it can't decide on whether to return + dnl us $(VAR), ${VAR}, or the present expansion of VAR. + dnl So normalise and expand everything here now, because its + dnl not going to change inside wx-config anyway. + sanitised_bakefile_mess=`echo "$SHARED_LD_CXX" | tr -d '()'` + EXE_LINKER=`eval echo "$sanitised_bakefile_mess"` + + dnl Need addtional flag on OS/2, so override bakefiles value + dnl (there currently is no suitable variable to which the + dnl missing flags could be added, AFAICS. SN, 18.12.2004. ) + case "${host}" in + *-pc-os2_emx | *-pc-os2-emx ) + SHARED_LD_CC="`pwd`/dllar.sh -name-mangler-script ./dllnames.sh -libf INITINSTANCE -libf TERMINSTANCE -o" + SHARED_LD_CXX="`pwd`/dllar.sh -name-mangler-script ./dllnames.sh -libf INITINSTANCE -libf TERMINSTANCE -o" + cp -p ${srcdir}/src/os2/dllnames.sh . + cp -p ${srcdir}/src/os2/dllar.sh . + ;; + esac +else + + dnl No bakefile support for static builds, but this should be ok for most. + EXE_LINKER="$CXX -o" + +fi +if test "$wxUSE_OMF" = "yes"; then + case "${host}" in + *-pc-os2_emx | *-pc-os2-emx ) + LDFLAGS="$LDFLAGS -Zlinker /EXEPACK" + LDFLAGS_GUI="-Zlinker /PMTYPE:PM" + WXCONFIG_LDFLAGS_GUI="-Zlinker /PMTYPE:PM" + ;; + 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 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 @@ -5603,44 +7644,15 @@ dnl tr ' ' '\n' introduces DOS-like line breaks, whereas tr '\n' ' ' dnl only removes the Unix-like part of the introduced line break. SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq | tr '\n' ' '| tr -d '\r'`" -dnl makefile variables -AC_SUBST(LEX_STEM) -AC_SUBST(PATH_IFS) +dnl subtle bakefile goop. +dnl Used in wx-config now too, as its STATIC_FLAG with different makeup. +dnl I wish we would have called it something less likely to clash with +dnl things though. +AC_SUBST(SHARED) dnl global options -AC_SUBST(WX_MAJOR_VERSION_NUMBER) -AC_SUBST(WX_MINOR_VERSION_NUMBER) -AC_SUBST(WX_RELEASE_NUMBER) -AC_SUBST(WX_LIBRARY_NAME_STATIC) -AC_SUBST(WX_LIBRARY_NAME_SHARED) AC_SUBST(WX_LIBRARY_BASENAME_NOGUI) AC_SUBST(WX_LIBRARY_BASENAME_GUI) -AC_SUBST(WX_LIBRARY_IMPORTLIB) -AC_SUBST(WX_TARGET_LIBRARY) -AC_SUBST(WX_LIBRARY_LINK1) -AC_SUBST(WX_LIBRARY_LINK2) -AC_SUBST(PROGRAM_EXT) - -dnl global gl options -AC_SUBST(WX_LIBRARY_NAME_STATIC_GL) -AC_SUBST(WX_LIBRARY_NAME_SHARED_GL) -AC_SUBST(WX_TARGET_LIBRARY_GL) -AC_SUBST(WX_LIBRARY_LINK1_GL) -AC_SUBST(WX_LIBRARY_LINK2_GL) - -dnl are we supposed to create the links? -AC_SUBST(WX_ALL) -AC_SUBST(WX_ALL_INSTALLED) - -AC_SUBST(SHARED_LD) -AC_SUBST(PIC_FLAG) - -AC_SUBST(WX_TARGET_LIBRARY_TYPE) - -AC_SUBST(STATIC_FLAG) - -dnl debugging options -AC_SUBST(WXDEBUG_DEFINE) dnl toolkit options AC_SUBST(USE_GUI) @@ -5648,34 +7660,41 @@ AC_SUBST(AFMINSTALL) AC_SUBST(WIN32INSTALL) AC_SUBST(TOOLKIT) AC_SUBST(TOOLKIT_DIR) -AC_SUBST(TOOLKIT_VPATH) AC_SUBST(TOOLCHAIN_NAME) -AC_SUBST(TOOLCHAIN_DEFS) -AC_SUBST(TOOLCHAIN_DLL_DEFS) +AC_SUBST(TOOLCHAIN_FULLNAME) dnl wx-config options -AC_SUBST(top_builddir_wxconfig) AC_SUBST(host_alias) AC_SUBST(cross_compiling) -AC_SUBST(WXCONFIG_EXTRALIBS) +AC_SUBST(WIDGET_SET) +AC_SUBST(WX_RELEASE) +AC_SUBST(WX_VERSION) +AC_SUBST(WX_SUBVERSION) +AC_SUBST(WX_CHARTYPE) +AC_SUBST(WX_DEBUGTYPE) + +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_LIBS_GL) -AC_SUBST(WXCONFIG_LIBS_STATIC) -AC_SUBST(WXCONFIG_LIBS_STATIC_GL) -AC_SUBST(WXCONFIG_INCLUDE) AC_SUBST(WXCONFIG_RPATH) -AC_SUBST(WX_LARGEFILE_FLAGS) -AC_SUBST(CODE_GEN_FLAGS) -AC_SUBST(CODE_GEN_FLAGS_CXX) - -dnl the list of files to compile/install -AC_SUBST(ALL_OBJECTS) -AC_SUBST(ALL_HEADERS) -AC_SUBST(ALL_SOURCES) +AC_SUBST(WXCONFIG_LDFLAGS_GUI) +AC_SUBST(WXCONFIG_RESFLAGS) +AC_SUBST(EXE_LINKER) dnl distribution vars AC_SUBST(GUIDIST) -AC_SUBST(PORT_FILES) AC_SUBST(DISTDIR) dnl additional subdirectories where we will build @@ -5684,14 +7703,14 @@ AC_SUBST(SAMPLES_SUBDIRS) dnl additional libraries and linker settings AC_SUBST(LDFLAGS) AC_SUBST(LDFLAGS_GL) -AC_SUBST(LDFLAGS_VERSIONING) -AC_SUBST(LDFLAGS_EXE) AC_SUBST(OPENGL_LIBS) AC_SUBST(DMALLOC_LIBS) 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) @@ -5699,24 +7718,13 @@ AC_SUBST(WX_RESOURCES_MACOSX_DATA) dnl additional for Mac OS X AC_SUBST(DEREZ) -AC_SUBST(MACOSX_BUNDLE) AC_SUBST(LIBWXMACRES) -AC_SUBST(MACRESCOMP) +AC_SUBST(POSTLINK_COMMAND) AC_SUBST(MACSETFILE) -AC_SUBST(MACRESWXCONFIG) dnl other tools AC_SUBST(GCC) AC_SUBST(DLLTOOL) -AC_SUBST(AS) -AC_SUBST(NM) -AC_SUBST(LD) -AC_SUBST(MAKEINFO) -AC_SUBST(INSTALL_LIBRARY) -AC_SUBST(INSTALL_DIR) - -dnl contrib tests results: -AC_SUBST(ESD_LINK) dnl MAKE_SET will be replaced with "MAKE=..." or nothing if make sets MAKE @@ -5724,63 +7732,52 @@ dnl itself (this macro is required if SUBDIRS variable is used in Makefile.am dnl - and we do use it) AC_PROG_MAKE_SET -dnl move setup.h back if available -if test -f lib/wx/include/${TOOLCHAIN_NAME}/wx/setup.h; then - mv -f lib/wx/include/${TOOLCHAIN_NAME}/wx/setup.h setup.h + +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_HEADERS([setup.h]) +AC_CONFIG_FILES([ lib/wx/config/${TOOLCHAIN_FULLNAME}:wx-config.in ], + [ chmod +x lib/wx/config/${TOOLCHAIN_FULLNAME} ], + [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ]) -dnl create each of the files in the space separated list from the file.in -dnl (the original file name may be overriden by appending another name after a -dnl colon) -AC_CONFIG_FILES([ - wx-config - version-script - Makefile - ]) +AC_CONFIG_FILES([ lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}:wx-config-inplace.in ], + [ chmod +x lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} ], + [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ]) -AC_CONFIG_COMMANDS([default], - [ - dnl This test is required to make the following idempotent. - dnl Otherwise running config.status or rerunning configure - dnl would stomp the wx-config link or try to move it onto - dnl itself. - dnl Use -h instead of -L to test for link (GD) - dnl -h is documented as obsolete under Mac OS X but works - dnl -L is obsolete under Solaris8 - if test ! -h wx-config; then - chmod +x wx-config - mv wx-config wx${TOOLCHAIN_NAME}-config - ${LN_S} wx${TOOLCHAIN_NAME}-config wx-config - fi +AC_CONFIG_FILES([ version-script Makefile ]) - if test ! -d lib; then - mkdir lib - fi - if test ! -d lib/wx; then - mkdir lib/wx - fi - if test ! -d lib/wx/include; then - mkdir lib/wx/include - fi - if test ! -d lib/wx/include/${TOOLCHAIN_NAME}; then - mkdir lib/wx/include/${TOOLCHAIN_NAME} - fi - if test ! -d lib/wx/include/${TOOLCHAIN_NAME}/wx; then - mkdir lib/wx/include/${TOOLCHAIN_NAME}/wx - fi - if test -f setup.h; then - mv -f setup.h lib/wx/include/${TOOLCHAIN_NAME}/wx/setup.h - fi - ], - [ - TOOLCHAIN_NAME="${TOOLCHAIN_NAME}" - LN_S="${LN_S}" - ] - ) +AC_CONFIG_COMMANDS([wx-config], + [ rm -f wx-config + ${LN_S} lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} wx-config + ], + [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" + LN_S="${LN_S}" + ]) +dnl This would give us us build dir that in every significant way +dnl resembles an installed wx in prefix=$builddir. It is troublesome +dnl though in this form because AC_CONFIG_LINKS will fail for directories +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" @@ -5788,6 +7785,8 @@ else dnl we build wxBase only dnl there are no wxBase programs in contrib nor demos SUBDIRS="samples utils" fi +dnl Add tests to the list of subdirs if cppunit 1.8.0+ is detected +AM_PATH_CPPUNIT(1.8.0, [SUBDIRS="$SUBDIRS tests"]) for subdir in `echo $SUBDIRS`; do if test -d ${srcdir}/${subdir} ; then @@ -5795,23 +7794,37 @@ for subdir in `echo $SUBDIRS`; do if test ${subdir} = "samples"; then dnl only take those samples which compile in the current dnl configuration and which exist + makefiles="samples/Makefile.in $makefiles" for sample in `echo $SAMPLES_SUBDIRS`; do if test -d $srcdir/samples/$sample; then makefiles="samples/$sample/Makefile.in $makefiles" fi done - else dnl assume that everything compiles for utils &c - makefiles=`(cd $srcdir ; find $subdir -name Makefile.in)` + else + dnl assume that everything compiles for utils &c + dnl any that shouldn't be built can be added to + dnl DISABLED_UTILS, DISABLED_CONTRIB or DISABLED_DEMOS + disabled_var=DISABLED_`echo $subdir | tr [[a-z]] [[A-Z]]`; + eval "disabled=\$$disabled_var" + disabled=/`echo X $disabled | sed 's@ @/|/@g'`/ + makefiles=`(cd $srcdir ; find $subdir -name Makefile.in) | egrep -v "$disabled"` fi else dnl we build wxBase only dnl don't take all samples/utils, just those which build with dnl wxBase if test ${subdir} = "samples"; then - makefiles="samples/console/Makefile.in" - else dnl utils - makefiles="utils/HelpGen/Makefile.in \ - utils/HelpGen/src/Makefile.in \ - utils/makegen/Makefile.in" + makefiles="samples/Makefile.in samples/console/Makefile.in" + elif test ${subdir} = "utils"; then + makefiles="" + for util in HelpGen tex2rtf ; do + if test -d $srcdir/utils/$util ; then + makefiles="utils/$util/Makefile.in \ + utils/$util/src/Makefile.in \ + $makefiles" + fi + done + else dnl assume that everything compiles for tests + makefiles=`(cd $srcdir ; find $subdir -name Makefile.in)` fi fi @@ -5821,34 +7834,38 @@ for subdir in `echo $SUBDIRS`; do done fi done - +fi dnl wxWITH_SUBDIRS AC_OUTPUT -dnl report on what we decided to do +dnl report how we have been configured echo -echo "Configured wxWindows ${WX_VERSION} for \`${host}'" +echo "Configured wxWidgets ${WX_VERSION} for \`${host}'" echo "" -echo " Which GUI toolkit should wxWindows use? ${TOOLKIT:-base only}" -echo " Should wxWindows be compiled into single library? ${wxUSE_MONOLITHIC:-yes}" +echo " Which GUI toolkit should wxWidgets use? ${TOOLKIT_DESC}" +echo " Should wxWidgets be compiled into single library? ${wxUSE_MONOLITHIC:-yes}" -echo " Should wxWindows be compiled in debug mode? ${wxUSE_DEBUG:-no}" -echo " Should wxWindows be linked as a shared library? ${wxUSE_SHARED:-no}" -echo " Should wxWindows be compiled in Unicode mode? ${wxUSE_UNICODE:-no}" +echo " Should wxWidgets be compiled in debug mode? ${wxUSE_DEBUG:-no}" +echo " Should wxWidgets be linked as a shared library? ${wxUSE_SHARED:-no}" +echo " Should wxWidgets be compiled in Unicode mode? ${wxUSE_UNICODE:-no}" -echo " What level of wxWindows compatibility should be enabled?" -echo " wxWindows 2.0 ${WXWIN_COMPATIBILITY_2:-no}" -echo " wxWindows 2.2 ${WXWIN_COMPATIBILITY_2_2:-no}" -echo " wxWindows 2.4 ${WXWIN_COMPATIBILITY_2_4:-yes}" +echo " What level of wxWidgets compatibility should be enabled?" +echo " wxWidgets 2.4 ${WXWIN_COMPATIBILITY_2_4:-no}" +echo " wxWidgets 2.6 ${WXWIN_COMPATIBILITY_2_6:-yes}" -echo " Which libraries should wxWindows use?" +echo " Which libraries should wxWidgets use?" echo " jpeg ${wxUSE_LIBJPEG-none}" echo " png ${wxUSE_LIBPNG-none}" echo " regex ${wxUSE_REGEX}" echo " tiff ${wxUSE_LIBTIFF-none}" +if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1; then +echo " xpm ${wxUSE_LIBXPM-none}" +fi echo " zlib ${wxUSE_ZLIB}" echo " odbc ${wxUSE_ODBC}" echo " expat ${wxUSE_EXPAT}" +echo " libmspack ${wxUSE_LIBMSPACK}" +echo " sdl ${wxUSE_LIBSDL}" echo ""