]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
Override PLATFORM_WIN32 setting if using Wine on Linux/Unix
[wxWidgets.git] / configure.in
index 93133cdf154fcc01d7566497441f7cc7eaf0a6e4..9e16b4e80aa2b6cb0237c333fb7b68a582c86b12 100644 (file)
@@ -57,7 +57,7 @@ dnl   libwx_$(TOOLKIT)-$(WX_RELEASE).so.$(WX_CURRENT).$(WX_REVISION).$(WX_AGE)
 wx_major_version_number=2
 wx_minor_version_number=6
 wx_release_number=0
-wx_subrelease_number=0
+wx_subrelease_number=1
 
 WX_RELEASE=$wx_major_version_number.$wx_minor_version_number
 WX_VERSION=$WX_RELEASE.$wx_release_number
@@ -146,6 +146,8 @@ 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"
 dnl and also define the shared library flags below - search for
@@ -277,6 +279,7 @@ case "${host}" in
     PROGRAM_EXT=".exe"
     RESCOMP=windres
     DEFAULT_DEFAULT_wxUSE_MSW=1
+    DEFAULT_STD_FLAG=no
   ;;
 
   *-pc-msdosdjgpp )
@@ -285,8 +288,6 @@ 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 )
@@ -320,6 +321,7 @@ case "${host}" in
     done
     export PATH="$ac_TEMP_PATH"
     unset ac_TEMP_PATH
+    DEFAULT_STD_FLAG=no
   ;;
 
   powerpc-*-darwin* )
@@ -331,6 +333,7 @@ case "${host}" in
     AC_DEFINE(__DARWIN__)
     AC_DEFINE(TARGET_CARBON)
     DEFAULT_DEFAULT_wxUSE_MAC=1
+    DEFAULT_STD_FLAG=no
   ;;
   powerpc-apple-macos* )
     dnl Classic Mac OS (< X)
@@ -342,6 +345,7 @@ case "${host}" in
     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* )
@@ -609,16 +613,16 @@ else
   DEFAULT_wxUSE_LIBXPM=yes
   DEFAULT_wxUSE_LIBMSPACK=yes
   DEFAULT_wxUSE_LIBSDL=no
-  DEFAULT_wxUSE_LIBGNOMEPRINT=yes
+  DEFAULT_wxUSE_LIBGNOMEPRINT=no
   DEFAULT_wxUSE_ODBC=no
-  DEFAULT_wxUSE_OPENGL=yes
+  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=yes
-  DEFAULT_wxUSE_STD_STRING=yes
+  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
@@ -1791,8 +1795,8 @@ 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 only has fake wchar_t: */
-        #ifdef __DJGPP__
+        /* 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
@@ -1807,6 +1811,11 @@ AC_CHECK_SIZEOF(wchar_t, 0,
         #include <stdio.h>
     ]
 )
+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],
@@ -1913,19 +1922,26 @@ 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_UNICODE" = "yes" -a \
-        \( "$wxUSE_STD_STRING" = "yes" -o "$wxUSE_STL" = "yes" \); then
+dnl check for std::string or std::wstring
+if test "$wxUSE_STD_STRING" = "yes" -o "$wxUSE_STL" = "yes"; then
     AC_LANG_PUSH(C++)
 
+    if test "$wxUSE_UNICODE" = "yes"; then
+        std_string="std::wstring"
+        char_type="wchar_t"
+    else
+        std_string="std::string"
+        char_type="char"
+    fi
+
     dnl check if <string> declares std::wstring
-    AC_MSG_CHECKING([for std::wstring in <string>])
+    AC_MSG_CHECKING([for $std_string in <string>])
     AC_TRY_COMPILE([#include <string>],
-                   [std::wstring foo;],
+                   [$std_string foo;],
                    [AC_MSG_RESULT(yes)
                     AC_DEFINE(HAVE_STD_WSTRING)],
                    [AC_MSG_RESULT(no)
-                    AC_MSG_CHECKING([if std::basic_string<wchar_t> works])
+                    AC_MSG_CHECKING([if std::basic_string<$char_type> works])
                     AC_TRY_COMPILE([
                         #ifdef HAVE_WCHAR_H
                         #  ifdef __CYGWIN__
@@ -1939,17 +1955,43 @@ if test "$wxUSE_UNICODE" = "yes" -a \
                         #include <stdio.h>
                         #include <string>
                         ],
-                        [std::basic_string<wchar_t> foo;
-                         const wchar_t* dummy = foo.c_str();],
+                        [std::basic_string<$char_type> foo;
+                         const $char_type* dummy = foo.c_str();],
                         [AC_MSG_RESULT(yes)],
                         [AC_MSG_RESULT([no])
-                         AC_MSG_ERROR([Can't compile without unicode string class])]
+                         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
+                        ]
                     )
                     ])
 
     AC_LANG_POP
 fi
 
+if test "$wxUSE_STD_IOSTREAM" = "yes"; then
+    AC_LANG_PUSH(C++)
+
+    AC_CHECK_TYPES([std::istream, std::ostream],,
+                   [wxUSE_STD_IOSTREAM=no],
+                   [#include <iostream>])
+
+    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
+    
+    AC_LANG_POP
+fi
+
 if test "$wxUSE_STL" = "yes"; then
     AC_LANG_PUSH(C++)
 
@@ -2441,6 +2483,17 @@ 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=yes
     AC_DEFINE(wxUSE_EXPAT)
@@ -3633,11 +3686,11 @@ if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1; then
     dnl resources are bundled both with shared library and applications
     dnl since the carb resource *must* be included in the application
     if test "$wxUSE_MAC" = 1; then
-        MACRESCOMP="\$(RESCOMP) -d __DARWIN__ -t APPL Carbon.r ${LIBWXMACRES} -o"
+        MACRESCOMP="\$(RESCOMP) -d __DARWIN__ -t APPL Carbon.r -o"
 
         dnl this command is used to implement `wx-config --rezflags` and it is
         dnl eval'd there so escape any metacharacters inside
-        MACRESWXCONFIG="${RESCOMP} -d __DARWIN__ -t APPL Carbon.r \\\${exec_prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o"
+        MACRESWXCONFIG="${RESCOMP} -d __DARWIN__ -t APPL Carbon.r -o"
     else
         MACRESCOMP="echo -n | \$(RESCOMP) -d __DARWIN__ -t APPL ${LIBWXMACRES} -o"
         MACRESWXCONFIG="echo -n \\\| ${RESCOMP} -d __DARWIN__ -t APPL \\\${exec_prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o"
@@ -3758,7 +3811,7 @@ dnl Check for functions
 dnl ---------------------------------------------------------------------------
 
 dnl don't check for wchar_t functions if we haven't got wchar_t itself
-if test "$ac_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
@@ -4745,6 +4798,8 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; 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
@@ -4790,7 +4845,7 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
 
         if test "$HAVE_DL_FUNCS" = 0; then
             if test "$HAVE_SHL_FUNCS" = 0; then
-              if test "$USE_UNIX" = 1; 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
@@ -4848,13 +4903,15 @@ 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
+    AC_CHECK_HEADERS([sys/soundcard.h],,
+                     [DISABLED_CONTRIB="$DISABLED_CONTRIB mmedia"])
+fi
 WITH_PLUGIN_SDL=0
 if test "$wxUSE_SOUND" = "yes"; then
-  dnl Unix implementation needs additional checks because audio support
-  dnl comes in many favours:
   if test "$USE_UNIX" = "1" ; then
-    AC_CHECK_HEADERS([sys/soundcard.h])
-
     if test "$wxUSE_LIBSDL" != "no"; then
       AM_PATH_SDL([1.2.0],
                   [
@@ -4950,7 +5007,9 @@ if test "$wxUSE_DEBUGREPORT" = "yes"; then
         wxUSE_DEBUGREPORT=no
     else
         AC_DEFINE(wxUSE_DEBUGREPORT)
-        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS debugrpt"
+        if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
+            SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS debugrpt"
+        fi
     fi
 fi
 
@@ -6845,8 +6904,14 @@ for subdir in `echo $SUBDIRS`; do
                         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