]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
wxFTP::Close() shouldn't hide base wxSocket function
[wxWidgets.git] / configure.in
index e0bb5bba35aad2bc94077241b71520af6a479fd1..3046126bef9f268f6b504884429b74d29984b88b 100644 (file)
@@ -51,6 +51,7 @@ dnl
 #include <gtk/gtk.h>
 #include <gtk/gtkfeatures.h>
 #include <stdio.h>
+#include <stdlib.h>
 
 int
 main ()
@@ -288,6 +289,52 @@ AC_DEFUN(WX_ARG_CACHE_FLUSH,
           mv ${wx_arg_cache_file}.tmp ${wx_arg_cache_file}
         ])
 
+dnl this macro checks for a three-valued command line --with argument:
+dnl   possible arguments are 'yes', 'no', or 'sys'
+dnl usage: WX_ARG_SYS_WITH(option, helpmessage, variable-name)
+AC_DEFUN(WX_ARG_SYS_WITH,
+        [
+          AC_MSG_CHECKING("for --with-$1")
+          no_cache=0
+          AC_ARG_WITH($1, $2,
+                      [
+                        if test "$withval" = yes; then
+                          ac_cv_use_$1='$3=yes'
+                        elif test "$withval" = no; then
+                          ac_cv_use_$1='$3=no'
+                        elif test "$withval" = sys; then
+                          ac_cv_use_$1='$3=sys'
+                        else
+                          AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no or sys])
+                        fi
+                      ],
+                      [
+                        LINE=`grep "$3" ${wx_arg_cache_file}`
+                        if test "x$LINE" != x ; then
+                          eval "DEFAULT_$LINE"
+                        else
+                          no_cache=1
+                        fi
+
+                        ac_cv_use_$1='$3='$DEFAULT_$3
+                      ])
+
+          eval "$ac_cv_use_$1"
+          if test "$no_cache" != 1; then
+            echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
+          fi
+
+          if test "$$3" = yes; then
+            AC_MSG_RESULT(yes)
+          elif test "$$3" = no; then
+            AC_MSG_RESULT(no)
+          elif test "$$3" = sys; then
+            AC_MSG_RESULT(system version)
+          else
+            AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no or sys])
+          fi
+        ])
+
 dnl this macro checks for a command line argument and caches the result
 dnl usage: WX_ARG_WITH(option, helpmessage, variable-name)
 AC_DEFUN(WX_ARG_WITH,
@@ -395,6 +442,7 @@ dnl ---------------------------------------------------------------------------
 dnl the file passed to AC_INIT should be specific to our package
 AC_INIT(wx-config.in)
 
+dnl sets build, host, target variables and the same with _alias
 AC_CANONICAL_SYSTEM
 
 dnl When making releases do:
@@ -652,7 +700,9 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_LIBJPEG=no
   DEFAULT_wxUSE_LIBTIFF=no
   DEFAULT_wxUSE_ODBC=no
+  DEFAULT_wxUSE_OPENGL=no
 
+  DEFAULT_wxUSE_ON_FATAL_EXCEPTION=no
   DEFAULT_wxUSE_STD_IOSTREAM=no
   DEFAULT_wxUSE_FILE=no
   DEFAULT_wxUSE_TEXTFILE=no
@@ -697,6 +747,7 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_PROGRESSDLG=no
   DEFAULT_wxUSE_MINIFRAME=no
   DEFAULT_wxUSE_HTML=no
+  DEFAULT_wxUSE_FILESYSTEM=no
   DEFAULT_wxUSE_FS_INET=no
   DEFAULT_wxUSE_FS_ZIP=no
   DEFAULT_wxUSE_BUSYINFO=no
@@ -770,7 +821,9 @@ else
   DEFAULT_wxUSE_LIBJPEG=yes
   DEFAULT_wxUSE_LIBTIFF=yes
   DEFAULT_wxUSE_ODBC=no
+  DEFAULT_wxUSE_OPENGL=no
 
+  DEFAULT_wxUSE_ON_FATAL_EXCEPTION=yes
   DEFAULT_wxUSE_STD_IOSTREAM=no
   DEFAULT_wxUSE_FILE=yes
   DEFAULT_wxUSE_TEXTFILE=yes
@@ -815,6 +868,7 @@ else
   DEFAULT_wxUSE_PROGRESSDLG=yes
   DEFAULT_wxUSE_MINIFRAME=yes
   DEFAULT_wxUSE_HTML=yes
+  DEFAULT_wxUSE_FILESYSTEM=yes
   DEFAULT_wxUSE_FS_INET=yes
   DEFAULT_wxUSE_FS_ZIP=yes
   DEFAULT_wxUSE_BUSYINFO=yes
@@ -905,16 +959,16 @@ AC_ARG_WITH(gtk-prefix,    [  --with-gtk-prefix=PFX   Prefix where GTK is instal
 AC_ARG_WITH(gtk-exec-prefix, [  --with-gtk-exec-prefix=PFX  Exec prefix where GTK is installed],
             gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
 
-WX_ARG_WITH(libpng,        [  --with-libpng           use libpng (PNG image format)], wxUSE_LIBPNG)
-WX_ARG_WITH(libjpeg,       [  --with-libjpeg          use libjpeg (JPEG file format)], wxUSE_LIBJPEG)
-WX_ARG_WITH(libtiff,       [  --with-libtiff          use libtiff (TIFF file format)], wxUSE_LIBTIFF)
+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_WITH(opengl,        [  --with-opengl           use OpenGL (or Mesa)], wxUSE_OPENGL)
 
 fi
 dnl for GUI only
 
 WX_ARG_WITH(dmalloc,       [  --with-dmalloc          use dmalloc library (www.letters.com/dmalloc)], wxUSE_DMALLOC)
-WX_ARG_WITH(zlib,          [  --with-zlib             use zlib for LZW compression], wxUSE_ZLIB)
+WX_ARG_SYS_WITH(zlib,      [  --with-zlib             use zlib for LZW compression], wxUSE_ZLIB)
 WX_ARG_WITH(odbc,          [  --with-odbc             use the IODBC and wxODBC classes], wxUSE_ODBC)
 
 dnl ====================
@@ -956,15 +1010,11 @@ dnl ---------------------------------------------------------------------------
 WX_ARG_ENABLE(intl,          [  --enable-intl           use internationalization system], wxUSE_INTL)
 WX_ARG_ENABLE(config,        [  --enable-config         use wxConfig (and derived) classes], wxUSE_CONFIG)
 
-dnl can't use sockets without GUI so far
-if test "$wxUSE_GUI" = "yes"; then
 WX_ARG_ENABLE(sockets,       [  --enable-sockets        use socket/network classes], wxUSE_SOCKETS)
-else
-wxUSE_SOCKETS=no
-fi
 
-WX_ARG_ENABLE(dialupman,     [  --enable-dialupman      use dialup network classes], wxUSE_DIALUP_MANAGER)
 WX_ARG_ENABLE(ipc,           [  --enable-ipc            use interprocess communication (wxSocket etc.)], wxUSE_IPC)
+
+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(timedate,      [  --enable-timedate       use date/time classes], wxUSE_TIMEDATE)
 WX_ARG_ENABLE(wave,          [  --enable-wave           use wxWave class], wxUSE_WAVE)
@@ -980,10 +1030,13 @@ WX_ARG_ENABLE(wcsrtombs,     [  --enable-wcsrtombs      use wcsrtombs instead of
 WX_ARG_ENABLE(wxprintfv,     [  --enable-wxprintfv      use wxWindows implementation of vprintf()], wxUSE_EXPERIMENTAL_PRINTF)
 WX_ARG_ENABLE(joystick,      [  --enable-joystick       compile in joystick support (Linux only)], wxUSE_JOYSTICK)
 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)
+
 dnl ---------------------------------------------------------------------------
 dnl "big" options (i.e. those which change a lot of things throughout the library)
 dnl ---------------------------------------------------------------------------
@@ -1260,17 +1313,16 @@ 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 eval "test $host != $build"; then
-  if eval "test $host_alias != NONE"; then
+if test "$build" != "$host" ; 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
-  fi
 fi
 
 dnl C-compiler checks
@@ -1485,7 +1537,8 @@ WXWINE=
 
 if test "$wxUSE_CYGWIN" = 1 || test "$wxUSE_MINGW" = 1 ; then
     if test "$cross_compiling" = "yes" ; then
-        AC_MSG_WARN(Cross compiling --- skipping windows.h check)
+        dnl mingw32 will find them even if they're not in one of standard paths
+        AC_MSG_WARN(skipping windows.h check for cross-compilation)
     else
         AC_MSG_CHECKING(for Windows headers)
         WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, windows.h)
@@ -1503,6 +1556,11 @@ if test "$wxUSE_CYGWIN" = 1 || test "$wxUSE_MINGW" = 1 ; then
     dnl --- This will bloat the executable, but it'll work for now...
     LIBS="$LIBS -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lctl3d32 -lcrtdll -ladvapi32 -lwsock32"
 
+       dnl add extra odbc libs if we have compiled in odbc
+       if test "$wxUSE_ODBC" = "yes" ; then
+               LIBS="$LIBS -lodbc32 -lole32 -loleaut32"
+       fi
+       
     dnl -mwindows is needed to avoid that spawning of a console window
     if test "$wxUSE_MINGW" = 1; then
         LDFLAGS="$LDFLAGS -mwindows"
@@ -1516,6 +1574,18 @@ if test "$wxUSE_CYGWIN" = 1 || test "$wxUSE_MINGW" = 1 ; then
     GENERICOBJS="\$(MSW_GENERICOBJS)"
     UNIXOBJS=
     GUIDIST=MSW_DIST
+
+    dnl we should calculate these
+    RCINCSWITCH="--include-dir"
+    RCDEFSWITCH="--define"
+    RCPREPROCESSOR="--preprocessor \"\$(CC) -c -E -xc-header -DRC_INVOKED\""
+    RCINPUTSWITCH="-i"
+    RCOUTPUTSWITCH="-o"
+    RESFLAGS="$RCPREPROCESSOR $RCINCSWITCH \$(top_srcdir)/include $RCINCSWITCH \$(top_srcdir)/\$(program_dir) $RCDEFSWITCH __WIN32__ $RCDEFSWITCH __WIN95__ $RCDEFSWITCH __GNUWIN32__"
+
+    dnl set optinal RES_PROGRAM_OPT to RES_PROGRAM
+    RESPROGRAM="\$(RES_PROGRAM)"
+
 fi
 
 if test "$wxUSE_GTK" = 1; then
@@ -1837,7 +1907,7 @@ fi
     WX_LIBRARY="wx_${TOOLKIT_DIR}"
 
     dnl the sources, their dependenices and the headers
-    ALL_OBJECTS="\$(GUIOBJS) \$(COMMONOBJS) \$(GENERICOBJS) \$(UNIXOBJS) \$(HTMLOBJS)"
+    ALL_OBJECTS="\$(GUIOBJS) \$(COMMONOBJS) \$(GENERICOBJS) \$(UNIXOBJS) \$(HTMLOBJS) \$(OGLOBJS)"
 
     dnl ODBC objects are Unix only
     if test "$TOOLKIT" != "MSW"; then
@@ -1858,7 +1928,7 @@ fi
     if test "$wxUSE_ZLIB" = "yes" ; then
         ALL_OBJECTS="${ALL_OBJECTS} \$(ZLIBOBJS)"
     fi
-    ALL_DEPFILES="\$(GUIDEPS) \$(COMMONDEPS) \$(GENERICDEPS) \$(UNIXDEPS) \$(HTMLDEPS)"
+    ALL_DEPFILES="\$(GUIDEPS) \$(COMMONDEPS) \$(GENERICDEPS) \$(UNIXDEPS) \$(HTMLDEPS) \$(OGLDEPS)"
 
     PORT_FILES="src/\$(TOOLKITDIR)/files.lst"
     RPM_FILES="src/\$(TOOLKITDIR)/rpmfiles.lst"
@@ -1868,10 +1938,11 @@ fi
     GUIDIST="${GUIDIST} SAMPLES_DIST DEMOS_DIST UTILS_DIST MISC_DIST"
     DISTDIR="wx\$(TOOLKIT)"
 else
-    dnl leave all TOOLKIT_XXX vars empty
-
     USE_GUI=0
 
+    TOOLKIT_DIR="base"
+    TOOLKIT_DEF="-D__WXBASE__"
+
     dnl the sources, their dependenices and the headers
     ALL_OBJECTS="\$(BASE_OBJS) \${BASE_UNIX_OBJS}"
     ALL_DEPFILES="\${BASE_DEPS} \${BASE_UNIX_DEPS}"
@@ -1890,17 +1961,23 @@ fi
 
 dnl the name of the (libtool) library
 WX_LIBRARY_NAME="lib${WX_LIBRARY}.la"
+WX_LIBRARY_NAME_GL="lib${WX_LIBRARY}_gl.la"
 
 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 the name of the shared library
 WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}-${WX_RELEASE}.so.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
+WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.so.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
 
 dnl the name of the links to the shared library
 WX_LIBRARY_LINK1="lib${WX_LIBRARY}-${WX_RELEASE}.so.${WX_CURRENT}"
 WX_LIBRARY_LINK2="lib${WX_LIBRARY}-${WX_RELEASE}.so"
 WX_LIBRARY_LINK3="lib${WX_LIBRARY}.so"
+WX_LIBRARY_LINK1_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.so.${WX_CURRENT}"
+WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.so"
+WX_LIBRARY_LINK3_GL="lib${WX_LIBRARY}_gl.so"
 
 dnl shared library settings
 SHARED_LD=
@@ -1922,17 +1999,28 @@ if test "$wxUSE_SHARED" = "yes"; then
             PIC_FLAG="+Z"
         fi
         WX_LIBRARY_NAME_SHARED="libwx_${TOOLKIT_DIR}.sl"
-        WX_ALL=${WX_LIBRARY_NAME_SHARED}
+        WX_LIBRARY_NAME_SHARED_GL="libwx_${TOOLKIT_DIR}_gl.sl"
+        if test "$wxUSE_OPENGL" = "yes"; then
+            WX_ALL="${WX_LIBRARY_NAME_SHARED} ${WX_LIBRARY_NAME_SHARED_GL}"
+        else
+            WX_ALL="${WX_LIBRARY_NAME_SHARED}"
+        fi
       ;;
 
       dnl in fact, these settings are for any platform using gcc
       *-*-linux* )
         SHARED_LD="${CC} -shared -o"
         PIC_FLAG="-fPIC"
-        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
-        WX_ALL="CREATE_LINKS"
         if test "$wxUSE_BURNT_NAME" = "yes" ; then
-            BURNT_LIBRARY_NAME="-Wl,-soname -Wl,${WX_LIBRARY_NAME_SHARED}"
+            BURNT_LIBRARY_NAME="-Wl,-soname,${WX_LIBRARY_LINK1}"
+            BURNT_LIBRARY_NAME_GL="-Wl,-soname,${WX_LIBRARY_LINK1_GL}"
+        fi
+        if test "$wxUSE_OPENGL" = "yes"; then
+            WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
+            WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
+        else
+            WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
+            WX_ALL="CREATE_LINKS"
         fi
       ;;
       *-*-irix5* | *-*-irix6* )
@@ -1942,8 +2030,13 @@ if test "$wxUSE_SHARED" = "yes"; then
         else
            SHARED_LD="${CXX} -shared -o"
         fi
-        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
-        WX_ALL="CREATE_LINKS"
+        if test "$wxUSE_OPENGL" = "yes"; then
+            WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
+            WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
+        else
+            WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
+            WX_ALL="CREATE_LINKS"
+        fi
       ;;
       *-*-solaris2* )
         if test "$GCC" = yes ; then
@@ -1953,8 +2046,13 @@ if test "$wxUSE_SHARED" = "yes"; then
             SHARED_LD="${CXX} -G -o"
             PIC_FLAG="-KPIC"
         fi
-        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
-        WX_ALL="CREATE_LINKS"
+        if test "$wxUSE_OPENGL" = "yes"; then
+            WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
+            WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
+        else
+            WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
+            WX_ALL="CREATE_LINKS"
+        fi
       ;;
       *-*-sunos4* )
         SHARED_LD="${CC} -shared -o"
@@ -1993,11 +2091,13 @@ if test "$wxUSE_SHARED" = "yes"; then
       *-*-cygwin32* )
         dnl only static for now
         WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}"
+        WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}"
         WX_ALL="${WX_LIBRARY_NAME_STATIC}"
       ;;
       *-*-mingw32* )
         dnl only static for now
         WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}"
+        WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}"
         WX_ALL="${WX_LIBRARY_NAME_STATIC}"
       ;;
       *-pc-os2_emx )
@@ -2020,11 +2120,16 @@ if test "$wxUSE_SHARED" = "yes"; then
     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}"
     fi
+    dnl do not alter the LIBRARY_TYPE strings "so" and "a", they are magic
+    WX_TARGET_LIBRARY_TYPE="so"
 else
     dnl set target to static
     WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}"
+    WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}"
     WX_ALL="${WX_LIBRARY_NAME_STATIC}"
+    WX_TARGET_LIBRARY_TYPE="a"
 fi
 
 dnl ------------------------------------------------------------------------
@@ -2043,8 +2148,10 @@ dnl defines HAVE_FNMATCH_H
 AC_CHECK_HEADERS(fnmatch.h)
 
 if test "$wxUSE_GUI" = "yes"; then
-    dnl defines HAVE_X11_XKBLIB_H
-    AC_CHECK_HEADERS(X11/XKBlib.h)
+    if test "$wxUSE_UNIX" = "yes"; then
+        dnl defines HAVE_X11_XKBLIB_H
+        AC_CHECK_HEADERS(X11/XKBlib.h)
+    fi
 fi
 
 dnl ---------------------------------------------------------------------------
@@ -2077,7 +2184,6 @@ AC_CACHE_CHECK([for pw_gecos in struct passwd], wx_cv_struct_pw_gecos,
              ],
              [
                 wx_cv_struct_pw_gecos=yes
-                AC_DEFINE(HAVE_PW_GECOS)
              ],
              [
                 wx_cv_struct_pw_gecos=no
@@ -2086,6 +2192,10 @@ AC_CACHE_CHECK([for pw_gecos in struct passwd], wx_cv_struct_pw_gecos,
     ]
 )
 
+if test "$wx_cv_struct_pw_gecos" = "yes"; then
+    AC_DEFINE(HAVE_PW_GECOS)
+fi
+
 dnl ---------------------------------------------------------------------------
 dnl Checks for compiler characteristics
 dnl ---------------------------------------------------------------------------
@@ -2184,6 +2294,16 @@ AC_LANG_RESTORE
 dnl under MSW we always have Sleep()
 if test "$TOOLKIT" != "MSW"; then
 
+dnl check for POSIX signals if we need them
+if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
+    AC_CHECK_FUNCS(sigaction)
+
+    if test "$ac_cv_func_sigaction" = "no"; then
+        AC_MSG_WARN([No POSIX signal functions on this system, wxApp::OnFatalException will not be called])
+        wxUSE_ON_FATAL_EXCEPTION=no
+    fi
+fi
+
 dnl check for vfork() (even if it's the same as fork() in modern Unices)
 AC_CHECK_FUNCS(vfork)
 
@@ -2221,9 +2341,15 @@ fi
 dnl check for uname (POSIX) and gethostname (BSD)
 AC_CHECK_FUNCS(uname gethostname, break)
 
-dnl check for MT-safe version of strtok
+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
+
 dnl check for inet_addr and inet_aton (these may live either in libc, or in
 dnl libnsl or libresolv)
 INET_LINK=
@@ -2499,43 +2625,89 @@ dnl Optional libraries
 dnl ---------------------------------------------------------------------------
 
 ZLIB_INCLUDE=
-if test "$wxUSE_ZLIB" = "yes" ; then
+if test "$wxUSE_ZLIB" = "yes" -o "$wxUSE_ZLIB" = "sys" ; then
   AC_DEFINE(wxUSE_ZLIB)
-  ZLIB_INCLUDE="-I\${top_srcdir}/src/zlib"
+  if test "$wxUSE_ZLIB" = "yes" ; then
+    ZLIB_INCLUDE="-I\${top_srcdir}/src/zlib"
+  else
+    ZLIB_LINK=
+    AC_CHECK_HEADER(zlib.h, AC_CHECK_LIB(z, deflate, ZLIB_LINK="-lz"))
+    if test "x$ZLIB_LINK" = "x" ; then
+        AC_MSG_ERROR(system zlib compression library not found! Use --with-zlib=yes to use built-in zlib)
+    fi
+  fi
 fi
 
 PNG_INCLUDE=
-if test "$wxUSE_LIBPNG" = "yes" ; then
+if test "$wxUSE_LIBPNG" = "yes" -o "$wxUSE_LIBPNG" = "sys" ; then
   AC_DEFINE(wxUSE_LIBPNG)
-  PNG_INCLUDE="-I\${top_srcdir}/src/png"
+  dnl for the check below to have a chance to succeed, we must already have
+  dnl libz somewhere
+  if test "$wxUSE_LIBPNG" = "sys" -a "$wxUSE_ZLIB" != "sys" ; then
+    AC_MSG_WARN([--with-libpng=sys doesn't work without --with-zlib=sys, will compile the built-in libpng instead])
+    wxUSE_LIBPNG=yes
+  fi
+
+  if test "$wxUSE_LIBPNG" = "yes" ; then
+    PNG_INCLUDE="-I\${top_srcdir}/src/png"
+  else
+    PNG_LINK=
+    AC_CHECK_HEADER(png.h,
+                    AC_CHECK_LIB(png, png_check_sig,
+                                 PNG_LINK="-lpng",
+                                 ,
+                                 [-lz -lm])
+                   )
+    if test "x$PNG_LINK" = "x" ; then
+        AC_MSG_ERROR(system png library not found! Use --with-libpng=yes to use the built-in libpng)
+    fi
+  fi
+
   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS png"
 fi
 
 JPEG_INCLUDE=
-if test "$wxUSE_LIBJPEG" = "yes" ; then
+if test "$wxUSE_LIBJPEG" = "yes" -o "$wxUSE_LIBJPEG" = "sys" ; then
   AC_DEFINE(wxUSE_LIBJPEG)
-  JPEG_INCLUDE="-I\${top_srcdir}/src/jpeg"
+  if test "$wxUSE_LIBJPEG" = "yes" ; then
+    JPEG_INCLUDE="-I\${top_srcdir}/src/jpeg"
+  else
+    JPEG_LINK=
+    AC_CHECK_HEADER(jpeglib.h, AC_CHECK_LIB(jpeg, jpeg_read_header, JPEG_LINK="-ljpeg"))
+    if test "x$JPEG_LINK" = "x" ; then
+        AC_MSG_ERROR(system jpeg library not found! Use --with-libjpeg=yes to use the built-in one)
+    fi
+  fi
 fi
 
 TIFF_INCLUDE=
-if test "$wxUSE_LIBTIFF" = "yes" ; then
+if test "$wxUSE_LIBTIFF" = "yes" -o "$wxUSE_LIBTIFF" = "sys" ; then
   AC_DEFINE(wxUSE_LIBTIFF)
-  TIFF_INCLUDE="-I\${top_srcdir}/src/tiff"
+  if test "$wxUSE_LIBTIFF" = "yes" ; then  
+    TIFF_INCLUDE="-I\${top_srcdir}/src/tiff"
+  else
+    TIFF_LINK=
+    AC_CHECK_HEADER(tiffio.h, AC_CHECK_LIB(tiff, TIFFError,
+                                           TIFF_LINK="-ltiff",
+                                           ,
+                                           -lm))
+    if test "x$TIFF_LINK" = "x" ; then
+        AC_MSG_ERROR(system tiff library not found! Use --with-libtiff=yes to use the built-in one)
+    fi
+  fi
 fi
 
 if test "$wxUSE_OPENGL" = "yes"; then
   AC_CHECK_HEADER(GL/gl.h, [
-    AC_CHECK_LIB(GL, glInitNames, [
+    AC_DEFINE(wxUSE_OPENGL)
+    AC_DEFINE(wxUSE_GLCANVAS)
+    AC_CHECK_LIB(GL, glFlush, [
       OPENGL_LINK="-lGL"
-      AC_DEFINE(wxUSE_OPENGL)
-      UTILS_SUBDIRS="$UTILS_SUBDIRS glcanvas/src"
     ],[
-        AC_CHECK_LIB(MesaGL, glInitNames, [
+        AC_CHECK_LIB(MesaGL, glFlush, [
         OPENGL_LINK="-lMesaGL"
-        AC_DEFINE(wxUSE_OPENGL)
-        UTILS_SUBDIRS="$UTILS_SUBDIRS glcanvas/src"
-      ],wxUSE_OPENGL=0)
-     ],wxUSE_OPENGL=0)
+      ],)
+     ],)
     ],wxUSE_OPENGL=0)
 fi
 
@@ -2585,6 +2757,10 @@ if test "$wxUSE_FILE" = "yes"; then
   AC_DEFINE(wxUSE_FILE)
 fi
 
+if test "$wxUSE_FILESYSTEM" = "yes"; then
+  AC_DEFINE(wxUSE_FILESYSTEM)
+fi
+
 if test "$wxUSE_FS_INET" = "yes"; then
   AC_DEFINE(wxUSE_FS_INET)
 fi
@@ -2597,6 +2773,10 @@ if test "$wxUSE_ZIPSTREAM" = "yes"; then
   AC_DEFINE(wxUSE_ZIPSTREAM)
 fi
 
+if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
+  AC_DEFINE(wxUSE_ON_FATAL_EXCEPTION)
+fi
+
 if test "$wxUSE_BUSYINFO" = "yes"; then
   AC_DEFINE(wxUSE_BUSYINFO)
 fi
@@ -3054,6 +3234,10 @@ dnl IPC: IPC, Drag'n'Drop, Clipboard, ...
 dnl ---------------------------------------------------------------------------
 
 if test "$wxUSE_IPC" = "yes"; then
+    if test "$wxUSE_SOCKETS" != "yes"; then
+        AC_MSG_WARN(wxWindows IPC classes require sockets, disabled)
+    fi
+
     AC_DEFINE(wxUSE_IPC)
 fi
 
@@ -3346,20 +3530,27 @@ dnl ---------------------------------------------------------------------------
 dnl get the string with OS info - used by wxGetOsDescription()
 dnl ---------------------------------------------------------------------------
 
-OSINFO=`uname -s -r -m`
-OSINFO="\"$OSINFO\""
+if test "$cross_compiling" = "yes"; then
+    dnl Use best guess from host as we can't use uname when cross compiling
+    OSINFO="\"$host\""
+else
+    dnl attualy work out OS version
+    OSINFO=`uname -s -r -m`
+    OSINFO="\"$OSINFO\""
+fi
+
 AC_DEFINE_UNQUOTED(WXWIN_OS_DESCRIPTION, $OSINFO)
 
 dnl ---------------------------------------------------------------------------
 dnl Output the makefiles and such from the results found above
 dnl ---------------------------------------------------------------------------
 
-GUILIBS="$GUI_TK_LIBRARY $OPENGL_LINK $LIBPNG_LINK $ZLIB_LINK $TOOLKIT_LINK"
+GUILIBS="$GUI_TK_LIBRARY $OPENGL_LINK $TOOLKIT_LINK"
 
 dnl all additional libraries (except wxWindows itself) we link with
-EXTRA_LIBS="$LIBS $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK"
+EXTRA_LIBS="$LIBS $ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK"
 if test "$wxUSE_GUI" = "yes"; then
-    EXTRA_LIBS="$EXTRA_LIBS $GUILIBS"
+    EXTRA_LIBS="$EXTRA_LIBS $GUILIBS $PNG_LINK $JPEG_LINK $TIFF_LINK"
 fi
 
 dnl all the libraries needed to link wxWindows programs when using the
@@ -3389,8 +3580,8 @@ if test "$wxUSE_GUI" = "yes"; then
 
     dnl TODO some samples are never built so far:
     dnl      ipc, mfc, nativdlg, oleauto, ownerdrw, proplist
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS controls dialogs drawing dynamic \
-                     font fractal image minimal richedit"
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS controls dialogs dragimag drawing dynamic \
+                     font fractal image menu minimal richedit"
 
     dnl this is needed to be able to find AFM files
     CPPFLAGS="$CPPFLAGS \$(EXTRADEFS) \$(APPEXTRADEFS)"
@@ -3426,6 +3617,16 @@ AC_SUBST(WX_LIBRARY_LINK2)
 AC_SUBST(WX_LIBRARY_LINK3)
 AC_SUBST(PROGRAM_EXT)
 
+dnl global gl options
+AC_SUBST(WX_LIBRARY_NAME_GL)
+AC_SUBST(WX_LIBRARY_NAME_STATIC_GL)
+AC_SUBST(WX_LIBRARY_NAME_SHARED_GL)
+AC_SUBST(WX_LIBRARY_GL)
+AC_SUBST(WX_TARGET_LIBRARY_GL)
+AC_SUBST(WX_LIBRARY_LINK1_GL)
+AC_SUBST(WX_LIBRARY_LINK2_GL)
+AC_SUBST(WX_LIBRARY_LINK3_GL)
+
 dnl are we supposed to create the links?
 AC_SUBST(WX_ALL)
 AC_SUBST(WX_ALL_INSTALLED)
@@ -3435,6 +3636,8 @@ AC_SUBST(PIC_FLAG)
 AC_SUBST(DEP_INFO_FLAGS)
 AC_SUBST(CODE_GEN_FLAGS)
 AC_SUBST(BURNT_LIBRARY_NAME)
+AC_SUBST(BURNT_LIBRARY_NAME_GL)
+AC_SUBST(WX_TARGET_LIBRARY_TYPE)
 
 dnl debugging options
 AC_SUBST(WXDEBUG_DEFINE)
@@ -3483,6 +3686,21 @@ AC_SUBST(EXTRADEFS)
 AC_SUBST(LIBS)
 AC_SUBST(LD_LIBS)
 
+dnl additional resurces settings
+AC_SUBST(RCINPUTSWITCH)
+AC_SUBST(RCOUTPUTSWITCH)
+AC_SUBST(RESPROGRAM)
+AC_SUBST(RESCOMP)
+AC_SUBST(RESFLAGS)
+
+dnl These seam to be missing
+AC_SUBST(DLLTOOL)
+AC_SUBST(AS)
+AC_SUBST(NM)
+AC_SUBST(LD)
+AC_SUBST(MAKEINFO)
+
+
 dnl MAKE_SET will be replaced with "MAKE=..." or nothing if make sets MAKE
 dnl itself (this is macro is required if SUBDIRS variable is used in Makefile.am
 dnl - and we do use it)
@@ -3503,25 +3721,14 @@ AC_CONFIG_HEADER(setup.h:setup.h.in)
 
 dnl some more GUI only things
 if test "$wxUSE_GUI" = "yes"; then
-    AC_CACHE_CHECK([glcanvas subdirectory to use], wx_cv_path_glcanvas,
-    [
-        dnl Duh! glcanvas/$(TOOLKIT_DIR) doesn't work for msw because some
-        dnl genius called it "win"
-        if test "${TOOLKIT_DIR}" = "msw" ; then
-          wx_cv_path_glcanvas="win"
-        else
-          wx_cv_path_glcanvas="${TOOLKIT_DIR}"
-        fi
-    ])
-
-    dnl It's needed in glcanvas/Makefile.in so we even have to subst this hack!
-    GL_TOOLKIT_DIR=$wx_cv_path_glcanvas
-    AC_SUBST(GL_TOOLKIT_DIR)
-
-    dnl another hack: we need to pass SAMPLES_SUBDIRS to the configure in
+    dnl we need to pass SAMPLES_SUBDIRS (and some other) to the configure in
     dnl samples and the only way to do it is, again, use the cache
     wx_cv_path_samplesubdirs=$SAMPLES_SUBDIRS
-    AC_CONFIG_SUBDIRS(demos samples utils)
+    wx_cv_path_ifs=$PATH_IFS
+    wx_cv_program_ext=$PROGRAM_EXT
+    wx_cv_target_library=$WX_TARGET_LIBRARY
+    wx_cv_target_libtype=$WX_TARGET_LIBRARY_TYPE
+    AC_CONFIG_SUBDIRS(demos samples utils contrib)
 fi
 dnl from wxUSE_GUI
 
@@ -3537,6 +3744,8 @@ AC_OUTPUT([
           ],
           [
             chmod +x wx-config
+            mv wx-config wx${TOOLKIT_DIR}-config
+            ${LN_S} wx${TOOLKIT_DIR}-config wx-config
             
             dnl the debian installer wants setup.h to be in the lib subdir
             dnl so we *copy* it there
@@ -3559,9 +3768,9 @@ AC_OUTPUT([
             if test -f setup.h; then
                 cp -f setup.h lib/wx/include/wx/${TOOLKIT_DIR}/setup.h
             fi
-            
+
             dnl *move* setup.h to its final place
-            
+
             if test ! -d include; then
               mkdir include
             fi
@@ -3578,6 +3787,7 @@ AC_OUTPUT([
           ],
           [
             TOOLKIT_DIR="${TOOLKIT_DIR}"
+            LN_S="${LN_S}"
           ]
          )