]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
define a special PTR version of LIST macros which should be used if you want operator->()
[wxWidgets.git] / configure.in
index 61069b7e6117840fd5dd2d1d9b6ecea20fc12d8b..481276ab83e16e80024d73b0558e1dd03554590c 100644 (file)
@@ -330,13 +330,13 @@ dnl usage
 DEBUG_CONFIGURE=0
 if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_UNIVERSAL=no
+  DEFAULT_wxUSE_STL=no
 
   DEFAULT_wxUSE_NANOX=no
 
   DEFAULT_wxUSE_THREADS=yes
 
   DEFAULT_wxUSE_SHARED=yes
-  DEFAULT_wxUSE_SONAME=no
   DEFAULT_wxUSE_OPTIMISE=no
   DEFAULT_wxUSE_PROFILE=no
   DEFAULT_wxUSE_NO_DEPS=no
@@ -349,7 +349,6 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_MEM_TRACING=no
   DEFAULT_wxUSE_DEBUG_CONTEXT=no
   DEFAULT_wxUSE_DMALLOC=no
-  DEFAULT_wxUSE_PRECOMP=no
   DEFAULT_wxUSE_APPLE_IEEE=no
 
   DEFAULT_wxUSE_LOG=yes
@@ -501,15 +500,17 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_XPM=no
   DEFAULT_wxUSE_ICO_CUR=no
   DEFAULT_wxUSE_ACCESSIBILITY=no
+  
+  DEFAULT_wxUSE_MONOLITHIC=yes
 else
   DEFAULT_wxUSE_UNIVERSAL=no
+  DEFAULT_wxUSE_STL=no
 
   DEFAULT_wxUSE_NANOX=no
 
   DEFAULT_wxUSE_THREADS=yes
 
   DEFAULT_wxUSE_SHARED=yes
-  DEFAULT_wxUSE_SONAME=no
   DEFAULT_wxUSE_OPTIMISE=yes
   DEFAULT_wxUSE_PROFILE=no
   DEFAULT_wxUSE_NO_DEPS=no
@@ -522,7 +523,6 @@ else
   DEFAULT_wxUSE_MEM_TRACING=no
   DEFAULT_wxUSE_DEBUG_CONTEXT=no
   DEFAULT_wxUSE_DMALLOC=no
-  DEFAULT_wxUSE_PRECOMP=no
   DEFAULT_wxUSE_APPLE_IEEE=yes
 
   DEFAULT_wxUSE_LOG=yes
@@ -673,6 +673,8 @@ else
   DEFAULT_wxUSE_XPM=yes
   DEFAULT_wxUSE_ICO_CUR=yes
   DEFAULT_wxUSE_ACCESSIBILITY=no
+  
+  DEFAULT_wxUSE_MONOLITHIC=yes
 fi
 
 dnl WX_ARG_WITH should be used to select whether an external package will be
@@ -703,6 +705,7 @@ 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)
 
 if test "$wxUSE_GUI" = "yes"; then
 
@@ -739,12 +742,9 @@ dnl compile options
 dnl ---------------------------------------------------------------------------
 
 WX_ARG_ENABLE(shared,      [  --enable-shared         create shared library code], wxUSE_SHARED)
-WX_ARG_ENABLE(soname,      [  --enable-soname         set the DT_SONAME field in ELF shared libraries], wxUSE_SONAME)
 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)
-
-dnl allow the precompiled header option to be disabled under Mac OS X/Darwin
-WX_ARG_ENABLE(precomp,     [  --enable-precomp        enable use of precompiled headers (Mac OS X/Darwin)], wxUSE_PRECOMP)
+WX_ARG_ENABLE(stl,         [  --enable-stl            use STL for containers], wxUSE_STL)
 
 if test "$wxUSE_DEBUG" = "yes"; then
   DEFAULT_wxUSE_DEBUG_FLAG=yes
@@ -972,31 +972,15 @@ fi
 ## FIXME: This is a blatant hack
 if test "x$wxUSE_COCOA" != "x" -a "$wxUSE_COCOA" != "0" ; then
   wxUSE_PRINTING_ARCHITECTURE=no
-  wxUSE_HELP=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_GAUGE=no
   DEFAULT_wxUSE_SCROLLBAR=no
-  DEFAULT_wxUSE_COMBOBOX=no
-  DEFAULT_wxUSE_CALCTRL=no
-  DEFAULT_wxUSE_SPINBTN=no
-  DEFAULT_wxUSE_SPINCTRL=no
   DEFAULT_wxUSE_TOOLTIPS=no
   DEFAULT_wxUSE_DRAGIMAGE=no
-  DEFAULT_wxUSE_FINDREPLDLG=no
-  DEFAULT_wxUSE_FONTDLG=no
-  DEFAULT_wxUSE_GRID=no
-  DEFAULT_wxUSE_NUMBERDLG=no
-  DEFAULT_wxUSE_PROGRESSDLG=no
-  DEFAULT_wxUSE_SASH=no
-  DEFAULT_wxUSE_SPLITTER=no
-  DEFAULT_wxUSE_WIZARDDLG=no
-  DEFAULT_wxUSE_SPLITTER=no
-  DEFAULT_wxUSE_STARTUP_TIPS=no
 fi
 
 WX_ARG_ENABLE(accel,       [  --enable-accel          use accelerators], wxUSE_ACCEL)
@@ -1184,7 +1168,11 @@ if test "$wxUSE_GUI" = "yes"; then
       fi
     done
 else
-    AC_MSG_RESULT(base ($host_alias hosted) only)
+    if test "x$host_alias" != "x"; then
+        AC_MSG_RESULT(base ($host_alias hosted) only)
+    else
+        AC_MSG_RESULT(base only)
+    fi
 fi
 
 dnl ---------------------------------------------------------------------------
@@ -2071,32 +2059,9 @@ if test "$USE_WIN32" = 1 ; then
         AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
     ])
 
-    dnl check if can use _WIN32_IE macro
-    AC_CACHE_CHECK([if w32api has good enough MSIE support], wx_cv_w32api_win32_ie,
-    [
-      AC_TRY_COMPILE([#include <w32api.h>],
-                     [
-                       #define wxCHECK_W32API_VERSION( major, minor ) \
-                       ( defined( __W32API_MAJOR_VERSION ) && defined( __W32API_MINOR_VERSION ) \
-                       && ( ( __W32API_MAJOR_VERSION > (major) ) \
-                       || ( __W32API_MAJOR_VERSION == (major) && __W32API_MINOR_VERSION >= (minor))))
-
-                       #if !wxCHECK_W32API_VERSION(1,1)
-                       #error You need w32api 1.1 or newer
-                       #endif
-                     ], [
-                        wx_cv_w32api_win32_ie=yes
-                     ], [
-                        wx_cv_w32api_win32_ie=no
-                     ])
-    ])
-    if test "$wx_cv_w32api_win32_ie" = "yes" ; then
-        CPPFLAGS="$CPPFLAGS -D_WIN32_IE=0x400"
-    fi
-
     dnl --- FIXME: This is still a somewhat random list of libs,
     dnl ---        some of them should probably be included conditionally.
-    LIBS="$LIBS -lwinspool -lwinmm -lshell32 -lcomctl32 -lctl3d32 -ladvapi32 -lwsock32"
+    LIBS="$LIBS -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32"
 
     if test "$wxUSE_ACCESSIBILITY" = "yes" ; then
         LIBS="$LIBS -loleacc"
@@ -2105,7 +2070,7 @@ if test "$USE_WIN32" = 1 ; then
     case "${host}" in
         *-*-cygwin* )
             dnl Cygwin doesn't include these by default
-            LIBS="$LIBS -lkernel32 -luser32 -lgdi32 -lcomdlg32"
+            LIBS="$LIBS -lkernel32 -luser32"
             TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WIN95__"
     esac
 
@@ -2126,16 +2091,6 @@ if test "$USE_WIN32" = 1 ; then
     WIN32INSTALL=win32install
 fi
 
-if test "$USE_DARWIN" = 1; then
-    dnl Mac OS X/Darwin GCC uses precompiled headers by default
-    dnl this can cause problems both when compiling wxMac and wxBase
-    if test "$wxUSE_PRECOMP" = "yes"; then
-        CPPFLAGS="$CPPFLAGS -cpp-precomp"
-    else
-        CPPFLAGS="$CPPFLAGS -no-cpp-precomp"
-    fi
-fi
-
 if test "$wxUSE_GUI" = "yes"; then
     USE_GUI=1
 
@@ -2148,10 +2103,6 @@ if test "$wxUSE_GUI" = "yes"; then
     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.
-        dnl All platforms need this, except maybe cygwin
-        LDFLAGS="$LDFLAGS -Wl,--subsystem,windows -mwindows"
     fi
 
     if test "$wxUSE_GTK" = 1; then
@@ -2226,7 +2177,7 @@ equivalent variable and GTK+ is version 1.2.3 or above.
                 PKG_CHECK_MODULES(PANGOFT2, pangoft2,
                     [
                         CXXFLAGS="$CXXFLAGS $PANGOFT2_CFLAGS"
-                        LIBS="$LIBS $PANGOFT2_LIBS"
+                        GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS"
                     ],
                     [
                         AC_MSG_WARN([pangoft2 library not found, library will be compiled without printing support])
@@ -2248,7 +2199,7 @@ equivalent variable and GTK+ is version 1.2.3 or above.
         fi
 
         TOOLKIT_INCLUDE="$wx_cv_cflags_gtk"
-        GUI_TK_LIBRARY="$wx_cv_libs_gtk"
+        GUI_TK_LIBRARY="$wx_cv_libs_gtk $GUI_TK_LIBRARY"
 
         AFMINSTALL=afminstall
         TOOLKIT=GTK
@@ -2417,7 +2368,7 @@ equivalent variable and GTK+ is version 1.2.3 or above.
                 PKG_CHECK_MODULES(PANGOX, pangox,
                     [
                         CXXFLAGS="$CXXFLAGS $PANGOX_CFLAGS"
-                        LIBS="$LIBS $PANGOX_LIBS"
+                        GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOX_LIBS"
                     ],
                     [
                         AC_MSG_ERROR([pangox library not found, library cannot be compiled in Unicode mode])
@@ -2426,7 +2377,7 @@ equivalent variable and GTK+ is version 1.2.3 or above.
                 PKG_CHECK_MODULES(PANGOFT2, pangoft2,
                     [
                         CXXFLAGS="$CXXFLAGS $PANGOFT2_CFLAGS"
-                        LIBS="$LIBS $PANGOFT2_LIBS"
+                        GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS"
                     ],
                     [
                         AC_MSG_WARN([pangoft2 library not found, library will be compiled without printing support])
@@ -2436,7 +2387,7 @@ equivalent variable and GTK+ is version 1.2.3 or above.
                 PKG_CHECK_MODULES(PANGOXFT, pangoxft,
                     [
                         CXXFLAGS="$CXXFLAGS $PANGOXFT_CFLAGS"
-                        LIBS="$LIBS $PANGOXFT_LIBS"
+                        GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOXFT_LIBS"
                     ],
                     [
                         AC_MSG_WARN([pangoxft library not found, library will be compiled without anti-aliasing support])
@@ -2834,6 +2785,7 @@ dnl ---------------------------------------------------------------------------
 dnl OpenGL libraries
 dnl ---------------------------------------------------------------------------
 
+USE_OPENGL=0
 if test "$wxUSE_OPENGL" = "yes"; then
     if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = "1"; then
         OPENGL_LIBS="-framework OpenGL -framework AGL"
@@ -2906,6 +2858,7 @@ if test "$wxUSE_OPENGL" = "yes"; then
     fi
 
     if test "$wxUSE_OPENGL" = "yes"; then
+        USE_OPENGL=1
         AC_DEFINE(wxUSE_OPENGL)
         AC_DEFINE(wxUSE_GLCANVAS)
         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS opengl"
@@ -2943,6 +2896,7 @@ TOOLCHAIN_NAME_GL="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_su
 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
@@ -2962,22 +2916,8 @@ WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}"
 
 case "${host}" in
     *-*-cygwin* | *-*-mingw32* )
-
-        dnl If we are cross compiling we want to use the 'full' unix type name for the
-        dnl lib, but for a native install use the windows style naming convention.
-        dnl (excepting again that we strip the ELF style version numbers off it).
-
-        dnl FIXME: is this GL stuff actually even used for wxMSW?  should it be??
-
-        if test "$cross_compiling" != "yes" -a "$TOOLKIT_DIR" = "msw"; then
-            WX_LIBRARY="wxmsw${WX_MSW_VERSION}${lib_unicode_suffix}${lib_debug_suffix}"
-            WX_LIBRARY_GL="wxmsw_gl${WX_MSW_VERSION}${lib_unicode_suffix}${lib_debug_suffix}"
-            WX_LIBRARY_NAME_SHARED="${WX_LIBRARY}.${SO_SUFFIX}"
-            WX_LIBRARY_NAME_SHARED_GL="${WX_LIBRARY_GL}.${SO_SUFFIX}"
-        else
-            WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${SO_SUFFIX}"
-            WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}"
-        fi
+        WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${SO_SUFFIX}"
+        WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}"
         ;;
 
     *-*-darwin* )
@@ -3034,76 +2974,11 @@ SHARED=0
 if test "$wxUSE_SHARED" = "yes"; then
     SHARED=1
 
-    dnl install targets
-    if test "$wxUSE_OPENGL" = "yes"; then
-        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
-        WX_ALL="\$(build_libdir)/${WX_LIBRARY_LINK1} \$(build_libdir)/${WX_LIBRARY_LINK1_GL}"
-    else
-        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
-        WX_ALL="\$(build_libdir)/${WX_LIBRARY_LINK1}"
-    fi
-
-    dnl the extra compiler flags needed for compilation of shared library
-    if test "$GCC" = "yes"; then
-        dnl the switch for gcc is the same under all platforms
-        PIC_FLAG="-fPIC"
-    fi
-
-
     dnl use versioned symbols if available on the platform
     WX_VERSIONED_SYMBOLS([\$(top_builddir)version-script])
 
-    dnl the command to use for creating the shared library
-    SHARED_LD="${CXX} -shared -o"
-
     case "${host}" in
-      *-hp-hpux* )
-        dnl default settings are good for gcc but not for the native HP-UX
-        if test "$GCC" = "yes"; then
-            dnl -o flag must be after PIC flag
-            SHARED_LD="${CXX} -shared ${PIC_FLAG} -o"
-        else
-            dnl no idea why it wants it, but it does
-            LDFLAGS="$LDFLAGS -L/usr/lib"
-
-            SHARED_LD="${CXX} -b -o"
-            PIC_FLAG="+Z"
-        fi
-
-        dnl install shared libs without symlinks
-        if test "$wxUSE_OPENGL" = "yes"; then
-            WX_ALL_INSTALLED="preinstall_gl"
-            WX_ALL="\$(build_libdir)/${WX_LIBRARY_NAME_SHARED} \$(build_libdir)/${WX_LIBRARY_NAME_SHARED_GL}"
-        else
-            WX_ALL="\$(build_libdir)/${WX_LIBRARY_NAME_SHARED}"
-        fi
-      ;;
-
       *-*-linux* | *-*-gnu* )
-        if test "$GCC" != "yes"; then
-            AC_CACHE_CHECK([for Intel compiler], wx_cv_prog_icc,
-            [
-                AC_TRY_COMPILE([],
-                    [
-                        #ifndef __INTEL_COMPILER
-                        #error Not icc
-                        #endif
-                    ],
-                    wx_cv_prog_icc=yes,
-                    wx_cv_prog_icc=no
-                )
-            ])
-            if test "$wx_cv_prog_icc" = "yes"; then
-                PIC_FLAG="-KPIC"
-            fi
-        fi
-
-        if test "$wxUSE_SONAME" = "yes" ; then
-            SONAME_FLAGS="-Wl,-soname,${WX_LIBRARY_LINK1}"
-            SONAME_FLAGS_GL="-Wl,-soname,${WX_LIBRARY_LINK1_GL}"
-            dnl substitute this in makelib.env for the contrib libs
-            WX_TARGET_LIBRARY_SONAME="-Wl,-soname,\$(TARGETLIB_LINK1)"
-        fi
         SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib"
       ;;
 
@@ -3141,83 +3016,9 @@ if test "$wxUSE_SHARED" = "yes"; then
         else
             SHARED_LD="${CXX} -G -o"
             PIC_FLAG="-KPIC"
-            SONAME_FLAGS="-h ${WX_LIBRARY_NAME_SHARED}"
-            SONAME_FLAGS_GL="-h ${WX_LIBRARY_NAME_SHARED_GL}"
             SAMPLES_RPATH_FLAG="-R\$(top_builddir)lib"
         fi
       ;;
-
-      *-*-darwin* )
-        dnl For Unix to MacOS X porting instructions, see:
-        dnl http://fink.sourceforge.net/doc/porting/porting.html
-        TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -DWXMAKINGDLL"
-        CFLAGS="$CFLAGS -fno-common"
-        CXXFLAGS="$CXXFLAGS -fno-common"
-        dnl wxWindows must be fully binded (lazy binding breaks RTTI classinfo)
-        dnl this can be done either with the exe linker flag -Wl,-bind_at_load
-        dnl or with a double stage link in order to create a single module
-        dnl "-init _wxWindowsDylibInit" not useful with lazy linking solved
-        SHARED_LD="\${top_srcdir}/distrib/mac/shared-ld-sh -undefined suppress -flat_namespace -o"
-        PIC_FLAG="-dynamic -fPIC"
-        dnl library installation base name and wxMac resources file base name
-        dnl must be identical in order for the resource file to be found at
-        dnl run time in src/mac/app.cpp
-        SONAME_FLAGS="-compatibility_version ${WX_RELEASE} -current_version ${WX_VERSION} -install_name \$(libdir)/${WX_LIBRARY_LINK1}"
-        SONAME_FLAGS_GL="-compatibility_version ${WX_RELEASE} -current_version ${WX_VERSION} -install_name \$(libdir)/${WX_LIBRARY_LINK1_GL}"
-      ;;
-
-      *-*-aix* )
-        dnl default settings are ok for gcc
-        if test "$GCC" != "yes"; then
-            dnl the abs path below used to be hardcoded here so I guess it must
-            dnl be some sort of standard location under AIX?
-            AC_CHECK_PROG(AIX_CXX_LD, makeC++SharedLib,
-                          makeC++SharedLib, /usr/lpp/xlC/bin/makeC++SharedLib)
-
-            SHARED_LD="$(AIX_CXX_LD) -p 0 -o"
-        fi
-      ;;
-
-      *-*-cygwin* | *-*-mingw32* )
-        WX_LIBRARY_IMPORTLIB="${WX_LIBRARY_NAME_SHARED}.a"
-
-        SHARED_LD="${CXX} -shared -Wl,--out-implib,lib/${WX_LIBRARY_IMPORTLIB} -o"
-        TOOLCHAIN_DLL_DEFS="${TOOLCHAIN_DLL_DEFS} -DWXUSINGDLL=1"
-
-        PIC_FLAG="-UWXUSINGDLL -DWXMAKINGDLL=1 -D_DLL=1 -D_WINDLL=1"
-
-        dnl Don't build seperate GL library
-        WX_ALL="\$(build_libdir)/${WX_LIBRARY_NAME_SHARED}"
-        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
-
-        if test "$wxUSE_OPENGL" = "yes"; then
-            LIBS="${LIBS} ${OPENGL_LIBS}"
-        fi
-      ;;
-
-      *-*-beos* )
-        dnl can't use gcc under BeOS for shared library creation because it
-        dnl complains about missing 'main'
-        SHARED_LD="${LD} -shared -o"
-      ;;
-
-      *-*-irix* )
-        dnl default settings are ok for gcc
-        if test "$GCC" != "yes"; then
-            PIC_FLAG="-KPIC"
-        fi
-      ;;
-
-      *-*-freebsd* | *-*-openbsd* | *-*-netbsd* | \
-      *-*-sunos4* | \
-      *-*-osf* | \
-      *-*-dgux5* | \
-      *-*-sysv5* )
-        dnl defaults are ok
-      ;;
-
-      *)
-        AC_MSG_ERROR(unknown system type $host.)
     esac
 
     dnl set target to shared if not explicitly chose static before
@@ -4172,12 +3973,6 @@ if test "$GCC" = "yes" ; then
     if test "$wxUSE_PERMISSIVE" = "yes" ; then
         CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fpermissive"
     fi
-    if test "$USE_WIN32" = 1 ; then
-        # I'm not even really sure what this was ever added to solve,
-        # but someone added it for mingw native builds, so I guess
-        # they had a reason, right??
-        CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fno-pcc-struct-return"
-    fi
 
     dnl Ian Brown <ian.brown@printsoft.de> reports that versions of gcc before
     dnl 3.0 overflow the table of contents on rs6000 as they create an entry
@@ -4276,6 +4071,10 @@ 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
@@ -4312,10 +4111,6 @@ if test "$wxUSE_FILESYSTEM" = "yes"; then
   AC_DEFINE(wxUSE_FILESYSTEM)
 fi
 
-if test "$wxUSE_FS_INET" = "yes"; then
-  AC_DEFINE(wxUSE_FS_INET)
-fi
-
 if test "$wxUSE_FS_ZIP" = "yes"; then
   AC_DEFINE(wxUSE_FS_ZIP)
 fi
@@ -4550,12 +4345,16 @@ dnl ------------------------------------------------------------------------
 dnl wxSocket
 dnl ------------------------------------------------------------------------
 
-dnl VZ: the GUI hooks wxSocket needs are not implemented yet in wxMGL
+dnl VZ: the GUI hooks wxSocket needs are not implemented yet in some toolkits
 if test "$wxUSE_SOCKETS" = "yes"; then
     if test "$wxUSE_MGL" = "1"; 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
@@ -4650,6 +4449,46 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sockets"
 fi
 
+if test "$wxUSE_PROTOCOL" = "yes"; then
+    if test "$wxUSE_SOCKETS" != "yes"; then
+        AC_MSG_WARN(Protocol classes require sockets... disabled)
+        wxUSE_PROTOCOL=no
+    fi
+fi
+
+if test "$wxUSE_PROTOCOL" = "yes"; then
+    AC_DEFINE(wxUSE_PROTOCOL)
+
+    if test "$wxUSE_PROTOCOL_HTTP" = "yes"; then
+        AC_DEFINE(wxUSE_PROTOCOL_HTTP)
+    fi
+    if test "$wxUSE_PROTOCOL_FTP" = "yes"; then
+        AC_DEFINE(wxUSE_PROTOCOL_FTP)
+    fi
+    if test "$wxUSE_PROTOCOL_FILE" = "yes"; then
+        AC_DEFINE(wxUSE_PROTOCOL_FILE)
+    fi
+else
+    if test "$wxUSE_FS_INET" = "yes"; then
+        AC_MSG_WARN([HTTP filesystem require protocol classes... disabled])   
+        wxUSE_FS_INET="no"
+    fi
+fi
+
+if test "$wxUSE_URL" = "yes"; then
+    if test "$wxUSE_PROTOCOL" != "yes"; then
+        AC_MSG_WARN(wxURL class requires wxProtocol... disabled)
+        wxUSE_URL=no
+    fi
+    if test "$wxUSE_URL" = "yes"; then
+        AC_DEFINE(wxUSE_URL)
+    fi
+fi
+
+if test "$wxUSE_FS_INET" = "yes"; then
+  AC_DEFINE(wxUSE_FS_INET)
+fi
+
 dnl ---------------------------------------------------------------------------
 dnl Joystick support
 dnl ---------------------------------------------------------------------------
@@ -4813,6 +4652,12 @@ if test "$wxUSE_CONSTRAINTS" = "yes"; then
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS layout"
 fi
 
+if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
+    if test "$wxUSE_COCOA" = "1"; then
+        AC_MSG_WARN([MDI not yet supported under Cocoa... disabled])
+    fi
+fi
+
 if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
 
 dnl     There is now experimental generic MDI support
@@ -5288,45 +5133,16 @@ fi
 
 fi
 
-if test "$wxUSE_PROTOCOL" = "yes"; then
-    if test "$wxUSE_SOCKETS" != "yes"; then
-        AC_MSG_WARN(Protocol classes require sockets... disabled)
-        wxUSE_PROTOCOL=no
-    fi
-
-    if test "$wxUSE_PROTOCOL" = "yes"; then
-        AC_DEFINE(wxUSE_PROTOCOL)
-
-        if test "$wxUSE_PROTOCOL_HTTP" = "yes"; then
-            AC_DEFINE(wxUSE_PROTOCOL_HTTP)
-        fi
-        if test "$wxUSE_PROTOCOL_FTP" = "yes"; then
-            AC_DEFINE(wxUSE_PROTOCOL_FTP)
-        fi
-        if test "$wxUSE_PROTOCOL_FILE" = "yes"; then
-            AC_DEFINE(wxUSE_PROTOCOL_FILE)
-        fi
-    fi
-fi
-
-if test "$wxUSE_URL" = "yes"; then
-    if test "$wxUSE_PROTOCOL" != "yes"; then
-        AC_MSG_WARN(wxURL class requires wxProtocol... disabled)
-        wxUSE_URL=no
-    fi
-    if test "$wxUSE_URL" = "yes"; then
-        AC_DEFINE(wxUSE_URL)
-    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)
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html htlbox"
+    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"
 fi
 
 if test "$wxUSE_VALIDATORS" = "yes"; then
@@ -5535,8 +5351,6 @@ fi
 
 if test "$wxUSE_GUI" = "yes"; then
 
-    LIBS="$GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK $LIBS"
-
     dnl TODO add checks that these samples will really compile (i.e. all the
     dnl      library features they need are present)
 
@@ -5545,6 +5359,10 @@ if test "$wxUSE_GUI" = "yes"; then
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS artprov controls dialogs \
                      drawing dynamic erase event exec font image \
                      minimal propsize rotate shaped widgets"
+
+    if test "$wxUSE_MONOLITHIC" != "yes"; then
+        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS console"
+    fi
 else
     SAMPLES_SUBDIRS="console"
 fi
@@ -5562,6 +5380,33 @@ INCLUDES="-I\${top_builddir}lib/wx/include/${TOOLCHAIN_NAME} \
 $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 CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
+    CXXWARNINGS="-Wall"
+    dnl should enable this one day...
+    dnl CXXWARNINGS="-Wall -Werror"
+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'`
+    
+
+LIBS=`echo $LIBS | sed 's/ \+/ /g'`
+EXTRALIBS="$LDFLAGS $LDFLAGS_VERSIONING $LIBS $DMALLOC_LIBS"
+if test "$wxUSE_GUI" = "yes"; then
+    EXTRALIBS_GUI=`echo $GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK | sed 's/ \+/ /g'`
+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=
@@ -5582,14 +5427,23 @@ AC_SUBST(wxUSE_LIBJPEG)
 AC_SUBST(wxUSE_LIBPNG)
 AC_SUBST(wxUSE_LIBTIFF)
 
-EXTRALIBS="$LDFLAGS $LDFLAGS_VERSIONING $LIBS $DMALLOC_LIBS"
+if test $wxUSE_MONOLITHIC = "yes" ; then
+    MONOLITHIC=1
+else
+    MONOLITHIC=0
+fi
 
-dnl FIXME -- must use configure option!
-MONOLITHIC=1
+dnl FIXME -- make configurable!
+VENDOR="custom"
+OFFICIAL_BUILD=0
+AC_SUBST(VENDOR)
+AC_SUBST(OFFICIAL_BUILD)
 
 AC_SUBST(WXUNIV)
 AC_SUBST(MONOLITHIC)
 AC_SUBST(EXTRALIBS)
+AC_SUBST(EXTRALIBS_GUI)
+AC_SUBST(EXTRALIBS_OPENGL)
 AC_SUBST(UNICODE)
 AC_SUBST(BUILD)
 AC_SUBST(SHARED)
@@ -5597,26 +5451,11 @@ TOOLKIT_LOWERCASE=`echo $TOOLKIT | tr [[A-Z]] [[a-z]]`
 AC_SUBST(TOOLKIT_LOWERCASE)
 AC_SUBST(TOOLKIT_VERSION)
 AC_SUBST(SAMPLES_RPATH_FLAG)
+AC_SUBST(HOST_SUFFIX)
 
 AC_BAKEFILE
 
-dnl C/C++ compiler options used to compile wxWindows
-if test "$GXX" = yes ; then
-    dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
-    CXXWARNINGS="-Wall"
-    dnl should enable this one day...
-    dnl CXXWARNINGS="-Wall -Werror"
-fi
-
-EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE"
-
-dnl remove the extra white space from the cc/c++/ld options
-CPPFLAGS=`echo $INCLUDES $CPPFLAGS | sed 's/ \\+/ /g'`
-CFLAGS=`echo $EXTRA_CFLAGS $CFLAGS $CXXWARNINGS | sed 's/ \\+/ /g'`
-CXXFLAGS=`echo $EXTRA_CFLAGS $CXXFLAGS $CXXWARNINGS | sed 's/ \+/ /g'`
-LIBS=`echo $LIBS | sed 's/ \+/ /g'`
 
-LDFLAGS="$LDFLAGS $PROFILE"
 
 dnl for convenience, sort the samples in alphabetical order
 dnl
@@ -5658,12 +5497,7 @@ AC_SUBST(WX_ALL_INSTALLED)
 
 AC_SUBST(SHARED_LD)
 AC_SUBST(PIC_FLAG)
-AC_SUBST(CODE_GEN_FLAGS)
-AC_SUBST(CODE_GEN_FLAGS_CXX)
 
-AC_SUBST(SONAME_FLAGS)
-AC_SUBST(SONAME_FLAGS_GL)
-AC_SUBST(WX_TARGET_LIBRARY_SONAME)
 AC_SUBST(WX_TARGET_LIBRARY_TYPE)
 
 AC_SUBST(STATIC_FLAG)
@@ -5693,6 +5527,8 @@ 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)
@@ -5807,172 +5643,46 @@ AC_CONFIG_COMMANDS([default],
          )
 
 
-dnl Configure samples if their sources are present:
-if test -d ${srcdir}/samples ; then
-    AC_CONFIG_FILES([
-        samples/Makefile
-        samples/access/Makefile
-        samples/artprov/Makefile
-        samples/caret/Makefile
-        samples/calendar/Makefile
-        samples/checklst/Makefile
-        samples/config/Makefile
-        samples/controls/Makefile
-        samples/console/Makefile
-        samples/db/Makefile
-        samples/dialogs/Makefile
-        samples/dialup/Makefile
-        samples/docview/Makefile
-        samples/docvwmdi/Makefile
-        samples/dnd/Makefile
-        samples/dragimag/Makefile
-        samples/drawing/Makefile
-        samples/dynamic/Makefile
-        samples/erase/Makefile
-        samples/event/Makefile
-        samples/exec/Makefile
-        samples/font/Makefile
-        samples/grid/Makefile
-        samples/help/Makefile
-        samples/image/Makefile
-        samples/internat/Makefile
-        samples/ipc/Makefile
-        samples/joytest/Makefile
-        samples/keyboard/Makefile
-        samples/layout/Makefile
-        samples/listctrl/Makefile
-        samples/mdi/Makefile
-        samples/menu/Makefile
-        samples/memcheck/Makefile
-        samples/minifram/Makefile
-        samples/minimal/Makefile
-        samples/mobile/Makefile
-        samples/mobile/wxedit/Makefile
-        samples/mobile/styles/Makefile
-        samples/multimon/Makefile
-        samples/notebook/Makefile
-        samples/oleauto/Makefile
-        samples/ownerdrw/Makefile
-        samples/png/Makefile
-        samples/printing/Makefile
-        samples/propsize/Makefile
-        samples/regtest/Makefile
-        samples/rotate/Makefile
-        samples/sashtest/Makefile
-        samples/shaped/Makefile
-        samples/scroll/Makefile
-        samples/scrollsub/Makefile
-        samples/sockets/Makefile
-        samples/splitter/Makefile
-        samples/statbar/Makefile
-        samples/taskbar/Makefile
-        samples/text/Makefile
-        samples/thread/Makefile
-        samples/toolbar/Makefile
-        samples/treectrl/Makefile
-        samples/typetest/Makefile
-        samples/validate/Makefile
-        samples/widgets/Makefile
-        samples/wizard/Makefile
-        samples/htlbox/Makefile
-        samples/html/Makefile
-        samples/html/about/Makefile
-        samples/html/help/Makefile
-        samples/html/printing/Makefile
-        samples/html/helpview/Makefile
-        samples/html/test/Makefile
-        samples/html/zip/Makefile
-        samples/html/virtual/Makefile
-        samples/html/widget/Makefile
-        samples/opengl/Makefile
-        samples/opengl/cube/Makefile
-        samples/opengl/penguin/Makefile
-        samples/opengl/isosurf/Makefile
-    ])
-fi
-
-dnl Configure demos if their sources are present:
-if test -d ${srcdir}/demos ; then
-    AC_CONFIG_FILES([
-        demos/Makefile
-        demos/bombs/Makefile
-        demos/dbbrowse/Makefile
-        demos/forty/Makefile
-        demos/fractal/Makefile
-        demos/life/Makefile
-        demos/poem/Makefile
-    ])
-fi
-
-dnl Configure utils if their sources are present:
-if test -d ${srcdir}/utils ; then
-    AC_CONFIG_FILES([
-        utils/Makefile
-        utils/makegen/Makefile
-        utils/HelpGen/Makefile
-        utils/HelpGen/src/Makefile
-        utils/tex2rtf/Makefile
-        utils/tex2rtf/src/Makefile
-        utils/hhp2cached/Makefile
-        utils/dialoged/Makefile
-        utils/dialoged/src/Makefile
-        utils/emulator/Makefile
-        utils/emulator/src/Makefile
-        utils/helpview/Makefile
-        utils/helpview/src/Makefile
-        utils/configtool/Makefile
-        utils/configtool/src/Makefile
-    ])
-fi
+dnl Configure samples, contrib etc. directories, but only if they are present:
+if test "$wxUSE_GUI" = "yes"; then
+    SUBDIRS="samples demos utils contrib"
+else dnl we build wxBase only
+    dnl there are no wxBase programs in contrib nor demos
+    SUBDIRS="samples utils"
+fi
+
+for subdir in `echo $SUBDIRS`; do
+    if test -d ${srcdir}/${subdir} ; then
+        if test "$wxUSE_GUI" = "yes"; then
+            if test ${subdir} = "samples"; then
+                dnl only take those samples which compile in the current
+                dnl configuration and which exist
+                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)`
+            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"
+            fi
+        fi
 
-dnl Configure contrib libs & samples if their sources are present:
-if test -d ${srcdir}/contrib ; then
-    AC_CONFIG_FILES([
-        contrib/src/Makefile
-        contrib/src/deprecated/Makefile
-        contrib/src/ogl/Makefile
-        contrib/src/mmedia/Makefile
-        contrib/src/stc/Makefile
-        contrib/src/svg/Makefile           
-        contrib/src/xrc/Makefile
-        contrib/src/gizmos/Makefile
-        contrib/src/plot/Makefile
-        contrib/src/applet/Makefile
-        contrib/src/fl/Makefile
-        contrib/src/net/Makefile
-        contrib/samples/Makefile
-        contrib/samples/deprecated/Makefile
-        contrib/samples/deprecated/proplist/Makefile
-        contrib/samples/deprecated/resource/Makefile
-        contrib/samples/deprecated/treelay/Makefile
-        contrib/samples/mmedia/Makefile
-        contrib/samples/ogl/Makefile
-        contrib/samples/ogl/ogledit/Makefile
-        contrib/samples/ogl/studio/Makefile
-        contrib/samples/stc/Makefile
-        contrib/samples/svg/Makefile
-        contrib/samples/gizmos/Makefile
-        contrib/samples/gizmos/editlbox/Makefile
-        contrib/samples/gizmos/dynsash/Makefile
-        contrib/samples/gizmos/dynsash_switch/Makefile
-        contrib/samples/gizmos/multicell/Makefile
-        contrib/samples/gizmos/splittree/Makefile
-        contrib/samples/gizmos/led/Makefile
-        contrib/samples/xrc/Makefile
-        contrib/samples/plot/Makefile
-        contrib/samples/applet/Makefile
-        contrib/samples/fl/Makefile
-        contrib/samples/fl/fl_demo1/Makefile
-        contrib/samples/fl/fl_demo2/Makefile
-        contrib/samples/fl/fl_sample1/Makefile
-        contrib/samples/fl/fl_sample2/Makefile
-        contrib/samples/fl/fl_sample3/Makefile
-        contrib/utils/Makefile
-        contrib/utils/wxrc/Makefile
-        contrib/utils/wxrcedit/Makefile
-        contrib/utils/convertrc/Makefile
-    ])
-fi
+        for mkin in $makefiles ; do
+            mk=`echo $mkin | sed 's/Makefile\.in/Makefile/g'`
+            AC_CONFIG_FILES([$mk])
+        done
+    fi
+done
 
 
 AC_OUTPUT
@@ -5982,6 +5692,7 @@ echo
 echo "Configured wxWindows ${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 "  Should wxWindows be compiled in debug mode?             ${wxUSE_DEBUG:-no}"
 echo "  Should wxWindows be linked as a shared library?         ${wxUSE_SHARED:-no}"