]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
use wxART_MISSING_IMAGE in wxHTML
[wxWidgets.git] / configure.in
index 85cf1fb72ab325c88fb78ead71696e400fc3899b..2fa40996fbd01ab991578a1f21e34445695d1028 100644 (file)
@@ -99,7 +99,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="GTK MAC MGL MICROWIN MOTIF MSW PM WINE X11"
+ALL_TOOLKITS="GTK MAC MGL MICROWIN MOTIF MSW PM X11"
 
 dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones
 dnl     which are either yes or no
@@ -110,7 +110,6 @@ DEFAULT_wxUSE_MICROWIN=0
 DEFAULT_wxUSE_MOTIF=0
 DEFAULT_wxUSE_MSW=0
 DEFAULT_wxUSE_PM=0
-DEFAULT_wxUSE_WINE=0
 DEFAULT_wxUSE_X11=0
 
 dnl these are the values which are really default for the given platform -
@@ -123,7 +122,6 @@ DEFAULT_DEFAULT_wxUSE_MICROWIN=0
 DEFAULT_DEFAULT_wxUSE_MOTIF=0
 DEFAULT_DEFAULT_wxUSE_MSW=0
 DEFAULT_DEFAULT_wxUSE_PM=0
-DEFAULT_DEFAULT_wxUSE_WINE=0
 DEFAULT_DEFAULT_wxUSE_X11=0
 
 PROGRAM_EXT=
@@ -686,7 +684,7 @@ WX_ARG_ENABLE(universal,   [  --enable-universal      use wxWindows GUI controls
 AC_ARG_WITH(gtk,           [  --with-gtk              use GTK+], [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(wine,          [  --with-wine             use WINE], [wxUSE_WINE="$withval" CACHE_WINE=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])
@@ -741,7 +739,8 @@ WX_ARG_ENABLE(permissive,    [  --enable-permissive     compile code disregardin
 WX_ARG_ENABLE(no_deps,       [  --enable-no_deps        create code without dependency information], wxUSE_NO_DEPS)
 
 WX_ARG_ENABLE(compat20,      [  --enable-compat20       enable wxWindows 2.0 compatibility], WXWIN_COMPATIBILITY_2)
-WX_ARG_ENABLE(compat22,      [  --disable-compat22      disable wxWindows 2.2 compatibility], WXWIN_COMPATIBILITY_2_2, disable)
+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)
 
 AC_ARG_ENABLE(rpath,         [  --enable-rpath=DIR      output the rpath flag from wx-config], [wxRPATH_DIR="$enableval"])
 
@@ -1064,6 +1063,13 @@ dnl we have a default one
 
 AC_MSG_CHECKING(for toolkit)
 
+# In Wine, we need to default to MSW, not GTK or MOTIF
+if test "$wxUSE_WINE" = "yes"; then
+    DEFAULT_DEFAULT_wxUSE_GTK=0
+    DEFAULT_DEFAULT_wxUSE_MOTIF=0
+    DEFAULT_DEFAULT_wxUSE_MSW=1
+fi
+
 if test "$wxUSE_GUI" = "yes"; then
 
     if test "$USE_BEOS" = 1; then
@@ -1092,7 +1098,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_GTK:-0} + ${wxUSE_MOTIF:-0} + ${wxUSE_MAC:-0}  \
-                  + ${wxUSE_WINE:-0} + ${wxUSE_MSW:-0} + ${wxUSE_MGL:-0} + ${wxUSE_MICROWIN:-0} + ${wxUSE_X11:-0}`
+                  + ${wxUSE_MSW:-0} + ${wxUSE_MGL:-0} + ${wxUSE_MICROWIN:-0} + ${wxUSE_X11:-0}`
 
     dnl Allow wxUSE_PM only for OS/2 with EMX.
     case "${host}" in
@@ -1150,6 +1156,17 @@ case "${host}" in
   ;;
 esac
 
+dnl ---------------------------------------------------------------------------
+dnl Wine is a virtual platform, we need to patch things up a bit
+dnl ---------------------------------------------------------------------------
+if test "$wxUSE_WINE" = "yes"; then
+    wants_win32=1
+    dnl FIXME: we should do a better job of testing for these
+    CC=winegcc
+    CXX=wineg++
+    RESCOMP=wrc
+fi
+
 dnl NB: The two tests bellow are *NOT* mutually exclusive! They should only
 dnl     take effect on Cygwin/Mingw and not other platforms.
 if test "$wants_win32" = 1 ; then
@@ -1735,10 +1752,13 @@ if test "$wxUSE_ZLIB" != "no" ; then
                     ],
                     ac_cv_header_zlib_h=`cat conftestval`,
                     ac_cv_header_zlib_h=no,
-                    dnl cross-compiling: test if we have any zlib.h
-                    AC_CHECK_HEADER(zlib.h)
+                    dnl cross-compiling: don't have an answer, try later
+                    unset ac_cv_header_zlib_h
                 )
             )
+            dnl If the test above did not come up with a value (e.g. cross
+            dnl compiling) then this should give a definitive answer
+            AC_CHECK_HEADER(zlib.h)
 
             system_zlib_h_ok=$ac_cv_header_zlib_h
         fi
@@ -1810,10 +1830,11 @@ if test "$wxUSE_LIBPNG" != "no" ; then
                     ],
                     ac_cv_header_png_h=`cat conftestval`,
                     ac_cv_header_png_h=no,
-                    dnl cross-compiling: test if we have any png.h
-                    AC_CHECK_HEADER(png.h)
+                    dnl cross-compiling: test (later) if we have any png.h
+                    unset ac_cv_header_png_h
                 )
             )
+            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])
@@ -2033,12 +2054,8 @@ if test "$wxUSE_GUI" = "yes"; then
         GUIDIST=MSW_DIST
 
         dnl -mwindows causes a heap of other default gui libs to be linked in.
-        dnl FIXME: If cygwin needs this, please push it above, if not, please
-        dnl        remove this comment :-)
-        case "${host}" in
-            *-*-mingw32* )
-                LDFLAGS="$LDFLAGS -Wl,--subsystem,windows -mwindows"
-        esac
+        dnl All platforms need this, except maybe cygwin
+        LDFLAGS="$LDFLAGS -Wl,--subsystem,windows -mwindows"
     fi
 
     if test "$wxUSE_GTK" = 1; then
@@ -2323,44 +2340,6 @@ equivalent variable and GTK+ is version 1.2.3 or above.
         GUIDIST=X11_DIST
     fi
 
-    if test "$wxUSE_WINE" = 1; then
-        AC_CHECK_HEADER(windows.h, [],
-        [
-            AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
-        ])
-
-        xpm_link=
-        AC_MSG_CHECKING(for Xpm library)
-        WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
-        if test "$ac_find_libraries" != "" ; then
-            GUI_TK_LIBRARY="-L$ac_find_libraries"
-            xpm_link=" -lXpm"
-            AC_DEFINE(wxHAVE_LIB_XPM)
-            AC_MSG_RESULT(found at $ac_find_libraries)
-        else
-            AC_MSG_RESULT(no)
-            AC_MSG_WARN(library will be compiled without support for images in XPM format)
-        fi
-
-        mesa_link=
-        AC_MSG_CHECKING(for Mesa library)
-        WX_PATH_FIND_LIBRARIES($SEARCH_LIB,MesaGL)
-        if test "$ac_find_libraries" != "" ; then
-            GUI_TK_LIBRARY="$GUI_TK_LIBRARY -L$ac_find_libraries"
-            mesa_link=" -lMesaGL"
-            AC_MSG_RESULT(found at $ac_find_libraries)
-        else
-            mesa_link=""
-            AC_MSG_RESULT(no)
-            AC_MSG_WARN(library will be compiled without Mesa support)
-        fi
-
-        GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lwine$mesa_link$xpm_link -lXxf86dga -lXxf86vm -lSM -lICE -lXext -lXmu -lX11 -lncurses"
-        TOOLKIT=MSW
-        GUIDIST=MSW_DIST
-        TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WINE__"
-    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
@@ -2781,9 +2760,10 @@ case "${host}" in
         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 the name of the resources file for wxMac
-            WX_RESOURCES_MACOSX_ASCII="lib${WX_LIBRARY}.r"
-            WX_RESOURCES_MACOSX_DATA="lib${WX_LIBRARY}.rsrc"
+            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
@@ -2914,6 +2894,9 @@ if test "$wxUSE_SHARED" = "yes"; then
         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}"
       ;;
@@ -3168,11 +3151,44 @@ 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 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
+dnl so we first check if the function is in the library
 AC_CHECK_FUNCS(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,
+        [
+            AC_TRY_COMPILE(
+                [
+                    #include <stdio.h>
+                    #include <stdarg.h>
+                ],
+                [
+                    char *buf;
+                    va_list ap;
+                    vsnprintf(buf, 10u, "%s", ap);
+                ],
+                wx_cv_func_vsnprintf_decl=yes,
+                wx_cv_func_vsnprintf_decl=no
+            )
+        ]
+    )
+
+    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 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...
@@ -3266,37 +3282,85 @@ AC_CACHE_CHECK(for statfs, wx_cv_func_statfs,
 )
 
 if test "$wx_cv_func_statfs" = "yes"; then
+    wx_cv_type_statvfs_t="struct statfs"
     AC_DEFINE(HAVE_STATFS)
 else
     AC_CACHE_CHECK(for statvfs, wx_cv_func_statvfs,
         AC_TRY_COMPILE(
             [
-                 #include <sys/statvfs.h>
-            ],
-            [
-                 long l;
-                 struct statvfs fs;
-                 statvfs("/", &fs);
-                 l = fs.f_bsize;
-                 l += fs.f_blocks;
-                 l += fs.f_bavail;
+                #include <stddef.h>
+                #include <sys/statvfs.h>
             ],
             [
-                 wx_cv_func_statvfs=yes
+                statvfs("/", NULL);
             ],
-            [
-                 wx_cv_func_statvfs=no
-            ]
+            wx_cv_func_statvfs=yes,
+            wx_cv_func_statvfs=no
         )
     )
 
     if test "$wx_cv_func_statvfs" = "yes"; then
-        AC_DEFINE(HAVE_STATVFS)
+        dnl we also have to check whether we should use statvfs_t (works under
+        dnl Solaris 8, doesn't work under Solaris 7) or "struct statvfs" (vice
+        dnl versa) as the argument for statvfs in 64 bit off_t mode (in 32 bit
+        dnl mode both work fine)
+        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(
+                [
+                    #include <sys/statvfs.h>
+                ],
+                [
+                    long l;
+                    statvfs_t fs;
+                    statvfs("/", &fs);
+                    l = fs.f_bsize;
+                    l += fs.f_blocks;
+                    l += fs.f_bavail;
+                ],
+                wx_cv_type_statvfs_t=statvfs_t,
+                [
+                    AC_TRY_COMPILE(
+                        [
+                            #include <sys/statvfs.h>
+                        ],
+                        [
+                            long l;
+                            struct statvfs fs;
+                            statvfs("/", &fs);
+                            l = fs.f_bsize;
+                            l += fs.f_blocks;
+                            l += fs.f_bavail;
+                        ],
+                        wx_cv_type_statvfs_t="struct statvfs",
+                        wx_cv_type_statvfs_t="unknown"
+                    )
+                ]
+            )
+        )
+
+        AC_LANG_RESTORE
+
+        if test "$wx_cv_type_statvfs_t" != "unknown"; then
+            AC_DEFINE(HAVE_STATVFS)
+        fi
     else
-        AC_MSG_WARN([wxGetDiskSpace() function won't work without statfs()])
+        dnl set it for the test below
+        wx_cv_type_statvfs_t="unknown"
     fi
 fi
 
+if test "$wx_cv_type_statvfs_t" != "unknown"; then
+    AC_DEFINE_UNQUOTED(WX_STATFS_T, $wx_cv_type_statvfs_t)
+else
+    AC_MSG_WARN([wxGetDiskSpace() function won't work without statfs()])
+fi
+
 dnl check for fcntl() or at least flock() needed by Unix implementation of
 dnl wxSingleInstanceChecker
 if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
@@ -3423,10 +3487,7 @@ if test "$TOOLKIT" != "MSW"; then
     THREADS_CFLAGS=
 
     if test "$wxUSE_THREADS" = "yes" ; then
-        if test "$wxUSE_WINE" = 1 ; then
-            AC_MSG_WARN([Threads are not supported under WINE... disabled])
-            wxUSE_THREADS="no"
-        elif test "$USE_BEOS" = 1; then
+        if test "$USE_BEOS" = 1; then
             AC_MSG_WARN([BeOS threads are not yet supported... disabled])
             wxUSE_THREADS="no"
         fi
@@ -3832,14 +3893,24 @@ else
     fi
 fi
 
+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" != "xno"; then
+if test "x$WXWIN_COMPATIBILITY_2_2" = "xyes"; then
     AC_DEFINE(WXWIN_COMPATIBILITY_2_2)
+
+    WXWIN_COMPATIBILITY_2_4="yes"
+fi
+
+if test "x$WXWIN_COMPATIBILITY_2_4" != "xno"; then
+    AC_DEFINE(WXWIN_COMPATIBILITY_2_4)
 fi
 
 dnl ---------------------------------------------------------------------------
@@ -4542,50 +4613,6 @@ if test "$wxUSE_MSW" = 1 -a \( "$wxUSE_DATAOBJ"       = "yes" \
     fi
 fi
 
-if test "$wxUSE_WINE" = 1 -a \( "$wxUSE_DATAOBJ"       = "yes" \
-                          -o "$wxUSE_CLIPBOARD"     = "yes" \
-                          -o "$wxUSE_OLE"     = "yes" \
-                          -o "$wxUSE_DRAG_AND_DROP" = "yes" \) ; then
-    AC_CHECK_HEADERS(ole2.h)
-
-    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 <windows.h>
-                            #include <ole2.h>],
-                           [],
-                           [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)"
-            LIBS=" -lwine_uuid$LIBS"
-            AC_DEFINE(wxUSE_OLE)
-
-        fi
-
-        dnl for OLE clipboard and dnd
-        AC_DEFINE(wxUSE_DATAOBJ)
-    else
-        AC_MSG_WARN([Some features disabled because OLE headers not found])
-
-        wxUSE_CLIPBOARD=no
-        wxUSE_DRAG_AND_DROP=no
-        wxUSE_DATAOBJ=no
-        wxUSE_OLE=no
-    fi
-
-    if test "$wxUSE_METAFILE" = "yes"; then
-        AC_DEFINE(wxUSE_METAFILE)
-
-        dnl this one should probably be made separately configurable
-        AC_DEFINE(wxUSE_ENH_METAFILE)
-    fi
-fi
-
 if test "$wxUSE_IPC" = "yes"; then
     if test "$wxUSE_SOCKETS" != "yes"; then
         AC_MSG_WARN(wxWindows IPC classes require sockets... disabled)
@@ -4805,12 +4832,8 @@ if test "$wxUSE_STATTEXT" = "yes"; then
 fi
 
 if test "$wxUSE_STATLINE" = "yes"; then
-    if test "$wxUSE_WINE" = 1 ; then
-        AC_MSG_WARN([wxStaticLine is not supported under WINE])
-    else
-        AC_DEFINE(wxUSE_STATLINE)
-        USES_CONTROLS=1
-    fi
+    AC_DEFINE(wxUSE_STATLINE)
+    USES_CONTROLS=1
 fi
 
 if test "$wxUSE_STATUSBAR" = "yes"; then
@@ -4874,14 +4897,10 @@ if test "$wxUSE_TOOLTIPS" = "yes"; then
     if test "$wxUSE_MOTIF" = 1; then
         AC_MSG_WARN([wxTooltip not supported yet under Motif... disabled])
     else
-        if test "$wxUSE_WINE" = 1; then
-            AC_MSG_WARN([wxTooltip not supported under WINE... disabled])
+        if test "$wxUSE_UNIVERSAL" = "yes"; then
+            AC_MSG_WARN([wxTooltip not supported yet in wxUniversal... disabled])
         else
-            if test "$wxUSE_UNIVERSAL" = "yes"; then
-                AC_MSG_WARN([wxTooltip not supported yet in wxUniversal... disabled])
-            else
-                AC_DEFINE(wxUSE_TOOLTIPS)
-            fi
+            AC_DEFINE(wxUSE_TOOLTIPS)
         fi
     fi
 fi
@@ -5140,6 +5159,9 @@ fi
 
 AC_DEFINE_UNQUOTED(wxINSTALL_PREFIX, "$wxPREFIX")
 
+dnl define the variables used in wx-config
+top_builddir=`pwd`
+
 dnl ---------------------------------------------------------------------------
 dnl Output the makefiles and such from the results found above
 dnl ---------------------------------------------------------------------------
@@ -5329,6 +5351,7 @@ AC_SUBST(TOOLCHAIN_DEFS)
 AC_SUBST(TOOLCHAIN_DLL_DEFS)
 
 dnl wx-config options
+AC_SUBST(top_builddir)
 AC_SUBST(host_alias)
 AC_SUBST(cross_compiling)
 AC_SUBST(WXCONFIG_LIBS)
@@ -5485,7 +5508,8 @@ echo "  Should wxWindows be compiled in Unicode mode?           ${wxUSE_UNICODE:
 
 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:-yes}"
+echo "                                       wxWindows 2.2      ${WXWIN_COMPATIBILITY_2_2:-no}"
+echo "                                       wxWindows 2.4      ${WXWIN_COMPATIBILITY_2_4:-yes}"
 
 echo "  Which libraries should wxWindows use?"
 echo "                                       jpeg               ${wxUSE_LIBJPEG-none}"