]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
Updates from Eli
[wxWidgets.git] / configure.in
index c062c92a7031e8cfce97efb81405aa9c2da4a68e..0e4f13f2b1882fb0f95c79843fac130fe7e1fc4e 100644 (file)
@@ -191,7 +191,7 @@ case "${host}" in
     AC_DEFINE(__BSD__)
     DEFAULT_DEFAULT_wxUSE_GTK=1
   ;;
-  *-*-openbsd*)
+  *-*-openbsd*|*-*-mirbsd*)
     USE_BSD=1
     USE_OPENBSD=1
     AC_DEFINE(__OPENBSD__)
@@ -338,7 +338,8 @@ case "${host}" in
   ;;
 
   *)
-    AC_MSG_ERROR(unknown system type ${host}.)
+    AC_MSG_WARN([*** System type ${host} is unknown, assuming generic Unix and continuing nevertheless.])
+    AC_MSG_WARN([*** Please report the build results to wx-dev@lists.wxwidgets.org.])
 esac
 
 dnl ---------------------------------------------------------------------------
@@ -424,6 +425,7 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_SOUND=no
   DEFAULT_wxUSE_MEDIACTRL=no
   DEFAULT_wxUSE_GSTREAMER8=no
+  DEFAULT_wxUSE_PRINTF_POS_PARAMS=no
   DEFAULT_wxUSE_INTL=no
   DEFAULT_wxUSE_CONFIG=no
   DEFAULT_wxUSE_FONTMAP=no
@@ -636,6 +638,7 @@ else
   DEFAULT_wxUSE_SOUND=yes
   DEFAULT_wxUSE_MEDIACTRL=no
   DEFAULT_wxUSE_GSTREAMER8=no
+  DEFAULT_wxUSE_PRINTF_POS_PARAMS=no
   DEFAULT_wxUSE_INTL=yes
   DEFAULT_wxUSE_CONFIG=yes
   DEFAULT_wxUSE_FONTMAP=yes
@@ -782,7 +785,7 @@ else
   DEFAULT_wxUSE_PLUGINS=no
   DEFAULT_wxUSE_OFFICIAL_BUILD=no
 
-  dnl Appliable only when --with-gtk was used:
+  dnl Applicable only when --with-gtk was used:
   DEFAULT_wxUSE_GTK2=yes
 fi
 
@@ -895,7 +898,7 @@ WX_ARG_ENABLE(no_rtti,       [  --enable-no_rtti        create code without RTTI
 WX_ARG_ENABLE(no_exceptions, [  --enable-no_exceptions  create code without C++ exceptions handling], wxUSE_NO_EXCEPTIONS)
 WX_ARG_ENABLE(permissive,    [  --enable-permissive     compile code disregarding strict ANSI], wxUSE_PERMISSIVE)
 WX_ARG_ENABLE(no_deps,       [  --enable-no_deps        create code without dependency information], wxUSE_NO_DEPS)
-WX_ARG_ENABLE(universal_binary, [  --enable-universal_binary create Mac PowerPC and Intel Universal binary (not yet working)], wxUSE_UNIVERSAL_BINARY)
+WX_ARG_ENABLE_PARAM(universal_binary, [[  --enable-universal_binary[=SDK] create Mac PowerPC and Intel Universal binary (not yet working)]], wxUSE_UNIVERSAL_BINARY)
 
 WX_ARG_ENABLE(compat24,      [  --enable-compat24       enable wxWidgets 2.4 compatibility], WXWIN_COMPATIBILITY_2_4, enable)
 WX_ARG_ENABLE(compat26,      [  --disable-compat26      disable wxWidgets 2.6 compatibility], WXWIN_COMPATIBILITY_2_6, disable)
@@ -957,7 +960,7 @@ WX_ARG_ENABLE(unicode,       [  --enable-unicode        compile wxString with Un
 WX_ARG_ENABLE(sound,         [  --enable-sound          use wxSound class], wxUSE_SOUND)
 WX_ARG_ENABLE(mediactrl,     [  --enable-mediactrl      use wxMediaCtrl class], wxUSE_MEDIACTRL)
 WX_ARG_ENABLE(gstreamer8,     [  --enable-gstreamer8      force GStreamer 0.8 instead of 0.10 with the wxMediaCtrl class on unix], wxUSE_GSTREAMER8)
-WX_ARG_ENABLE(wxprintfv,     [  --enable-wxprintfv      use wxWidgets implementation of vprintf()], wxUSE_EXPERIMENTAL_PRINTF)
+WX_ARG_ENABLE(printfposparam,[  --enable-printfposparam use wxVsnprintf() which supports positional parameters], wxUSE_PRINTF_POS_PARAMS)
 WX_ARG_ENABLE(zipstream,     [  --enable-zipstream      use wxZip streams], wxUSE_ZIPSTREAM)
 
 WX_ARG_ENABLE(url,           [  --enable-url            use wxURL class], wxUSE_URL)
@@ -1798,6 +1801,11 @@ case "${host}" in
   ;;
 esac
 
+dnl POSIX needs this for select(), but old systems don't have it
+if test "$USE_UNIX" = 1 ; then
+    AC_CHECK_HEADERS([sys/select.h])
+fi
+
 dnl ---------------------------------------------------------------------------
 dnl Checks for compiler characteristics
 dnl ---------------------------------------------------------------------------
@@ -4320,8 +4328,41 @@ if test "$ac_cv_func_snprintf" = "yes"; then
             AC_DEFINE(HAVE_BROKEN_SNPRINTF_DECL)
         fi
     fi
+
+    if test "$wxUSE_PRINTF_POS_PARAMS" = "yes"; then
+
+        dnl check if snprintf() has support for positional arguments
+        dnl NB: if snprintf() has positional support we can safely suppose that also
+        dnl     other *printf() functions support them as they all belong to the same
+        dnl     family and they all fallback to the same implementation
+        AC_CACHE_CHECK([if snprintf supports positional arguments], wx_cv_func_snprintf_pos_params,
+            [
+                AC_TRY_RUN(
+                    [
+                        #include <stdio.h>
+
+                        int main (void)
+                        {
+                            char buffer[128];
+                            snprintf (buffer, 128, "%2\$d %3\$d %1\$d", 1, 2, 3);
+                            if (strcmp ("2 3 1", buffer) == 0)
+                                exit (0);
+                            exit (1);
+                        }
+                    ],
+                    wx_cv_func_snprintf_pos_params=no,
+                    wx_cv_func_snprintf_pos_params=yes
+                )
+            ]
+        )
+
+        if test "$wx_cv_func_snprintf_pos_params" = "yes"; then
+            AC_DEFINE(HAVE_UNIX98_PRINTF)
+        fi
+    fi
 fi
 
+
 if test "$wxUSE_UNICODE" = yes; then
     dnl also look if we have wide char IO functions
     AC_CHECK_FUNCS(wputc wputchar putws fputws wprintf vswprintf)
@@ -4345,6 +4386,11 @@ if test "$wxUSE_FILE" = "yes"; then
     AC_CHECK_FUNCS(fsync)
 fi
 
+AC_CHECK_FUNCS(round)
+if test "$ac_cv_func_round" = yes; then
+    AC_CHECK_DECLS(round,,,[#include <math.h>])
+fi
+
 
 dnl the following tests are for Unix(like) systems only
 if test "$TOOLKIT" != "MSW"; then
@@ -5387,22 +5433,24 @@ if test "$USE_UNIX" = "1" ; then
     dnl it's not enough to check for just the header because OSS under NetBSD
     dnl redefines ioctl as oss_ioctrl inside it and so we also need to test
     dnl whether we need -lossaudio at link-time
-    AC_CACHE_CHECK([for ioctl() in sys/soundcard.h], ac_cv_header_sys_soundcard, [
+    AC_CACHE_CHECK([for SNDCTL_DSP_SPEED in sys/soundcard.h], ac_cv_header_sys_soundcard, [
         AC_TRY_LINK([
+                #include <sys/ioctl.h>
                 #include <sys/soundcard.h>
             ],
             [
-                ioctl(0, SNDCTL_DSP_SYNC, 0);
+                ioctl(0, SNDCTL_DSP_SPEED, 0);
             ],
             ac_cv_header_sys_soundcard=yes,
             [
                 saveLibs="$LIBS"
                 LIBS="$saveLibs -lossaudio"
                 AC_TRY_LINK([
+                        #include <sys/ioctl.h>
                         #include <sys/soundcard.h>
                     ],
                     [
-                        ioctl(0, SNDCTL_DSP_SYNC, 0);
+                        ioctl(0, SNDCTL_DSP_SPEED, 0);
                     ],
                     ac_cv_header_sys_soundcard=yes,
                     [
@@ -5648,6 +5696,11 @@ if test "$wxUSE_STREAMS" = "yes" ; then
   AC_DEFINE(wxUSE_STREAMS)
 fi
 
+if test "$wxUSE_PRINTF_POS_PARAMS" = "yes"; then
+  AC_DEFINE(wxUSE_PRINTF_POS_PARAMS)
+fi
+
+
 dnl ---------------------------------------------------------------------------
 dnl time/date functions
 dnl ---------------------------------------------------------------------------
@@ -6875,11 +6928,13 @@ dnl ---------------------------------------------------------------------------
 USE_MEDIA=0
 
 if test "$wxUSE_MEDIACTRL" = "yes"; then
+    USE_MEDIA=1
+
     dnl -----------------------------------------------------------------------
     dnl GStreamer
     dnl -----------------------------------------------------------------------
     if test "$wxUSE_GTK" = 1; then
-        wxUSE_GSTREAMER="yes"
+        wxUSE_GSTREAMER="no"
 
         dnl -------------------------------------------------------------------
         dnl Test for at least 0.8 gstreamer module from pkg-config
@@ -6890,51 +6945,60 @@ if test "$wxUSE_MEDIACTRL" = "yes"; then
         dnl -------------------------------------------------------------------
         GST_VERSION_MAJOR=0
         GST_VERSION_MINOR=10
-        GST_VERSION_RELEASE=0
-        GSTREAMER_REQ=$GST_VERSION_MAJOR.$GST_VERSION_MINOR.$GST_VERSION_RELEASE
-        GST_MAJORMINOR=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
+        GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
 
         if test "$wxUSE_GSTREAMER8" = "no"; then
-            PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR
-                               gstreamer-plugins-base-$GST_MAJORMINOR
-                               gconf-2.0,
-        [
-                    CPPFLAGS="$GST_CFLAGS $CPPFLAGS"
-                    LIBS="$LIBS $GST_LIBS -lgstinterfaces-$GST_MAJORMINOR"
-        ],
-        [
+            PKG_CHECK_MODULES(GST,
+                [gstreamer-$GST_VERSION gstreamer-plugins-base-$GST_VERSION gconf-2.0],
+                [
+                    wxUSE_GSTREAMER="yes"
+                    GST_LIBS="$GST_LIBS -lgstinterfaces-$GST_VERSION"
+                ],
+                [
+                    AC_MSG_WARN([GStreamer 0.10 not available, falling back to 0.8])
                     GST_VERSION_MINOR=8
-        ])
-            else
+                ]
+            )
+        else
+            dnl check only for 0.8
             GST_VERSION_MINOR=8
         fi
 
-        GSTREAMER_REQ=$GST_VERSION_MAJOR.$GST_VERSION_MINOR.$GST_VERSION_RELEASE
-        GST_MAJORMINOR=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
-
-        if test x$GST_VERSION_MINOR = x8; then
-            PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR
-                gstreamer-interfaces-$GST_MAJORMINOR
-                gstreamer-gconf-$GST_MAJORMINOR,
-                        [
-                    CPPFLAGS="$GST_CFLAGS $CPPFLAGS"
-                    LIBS="$LIBS $GST_LIBS"
-                        ],
+        if test $GST_VERSION_MINOR = "8"; then
+            GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
+            PKG_CHECK_MODULES(GST,
+                [gstreamer-$GST_VERSION gstreamer-interfaces-$GST_VERSION gstreamer-gconf-$GST_VERSION],
+                wxUSE_GSTREAMER="yes",
                 [
-                    AC_MSG_WARN([Proper GStreamer .8/.10 installation not found])
-            wxUSE_GSTREAMER="no"
+                    AC_MSG_WARN([GStreamer 0.8/0.10 not available.])
                 ])
         fi
 
 
         if test "$wxUSE_GSTREAMER" = "yes"; then
+            dnl system gstreamer package is compiled with Sun CC and outputs
+            dnl CC-specific "-mt" in its flags, remove it for gcc compilation
+            case "${host}" in
+                *-*-solaris2* )
+                    if "$GCC" = yes; then
+                        GST_CFLAGS=`echo $GST_CFLAGS | sed 's/-mt//'`
+                        GST_LIBS=`echo $GST_LIBS | sed 's/-mt//'`
+                    fi
+            esac
+
+            CPPFLAGS="$GST_CFLAGS $CPPFLAGS"
+            LIBS="$GST_LIBS $LIBS"
+
             AC_DEFINE(wxUSE_GSTREAMER)
-            AC_MSG_RESULT([GStreamer detection successful])
+        else
+            USE_MEDIA=0
         fi
     fi
-    USE_MEDIA=1
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mediaplayer"
-    AC_DEFINE(wxUSE_MEDIACTRL)
+
+    if test $USE_MEDIA = 1; then
+        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mediaplayer"
+        AC_DEFINE(wxUSE_MEDIACTRL)
+    fi
 fi
 
 dnl ---------------------------------------------------------------------------
@@ -7266,14 +7330,31 @@ AC_SUBST(CPPUNIT_LIBS)
 
 case "$TOOLKIT" in
     GTK)
-        TOOLKIT_USER="GTK+"
+        TOOLKIT_DESC="GTK+"
         if test "$WXGTK20" = 1; then
-            TOOLKIT_USER="$TOOLKIT_USER 2"
+            TOOLKIT_DESC="$TOOLKIT_DESC 2"
+            if test "$wxUSE_LIBGNOMEPRINT" = "yes" ; then
+                TOOLKIT_EXTRA="$TOOLKIT_EXTRA gnomeprint";
+            fi
+            if test "$wxUSE_LIBGNOMEVFS" = "yes" ; then
+                TOOLKIT_EXTRA="$TOOLKIT_EXTRA gnomevfs"
+            fi
+            if test "$wxUSE_LIBHILDON" = "yes"; then
+                TOOLKIT_EXTRA="$TOOLKIT_EXTRA hildon"
+            fi
+
+            if test "$TOOLKIT_EXTRA" != ""; then
+                TOOLKIT_DESC="$TOOLKIT_DESC with support for `echo $TOOLKIT_EXTRA | tr -s ' '`"
+            fi
         fi
         ;;
 
+    ?*)
+        TOOLKIT_DESC=$TOOLKIT_LOWERCASE
+        ;;
+
     *)
-        TOOLKIT_USER=$TOOLKIT_LOWERCASE
+        TOOLKIT_DESC="base only"
         ;;
 esac
 
@@ -7287,15 +7368,24 @@ dnl Note we don't do this earlier because adding these cpp/ld flags could
 dnl cause configure tests to fail.
 dnl ---------------------------------------------------------------------------
 if test "$wxUSE_MAC" = 1 ; then
-    if test "$wxUSE_UNIVERSAL_BINARY" = "yes" ; then
-        CXXFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 $CXXFLAGS"
-        CFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 $CFLAGS"
-        LDFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 $LDFLAGS"
+    if test "x$wxUSE_UNIVERSAL_BINARY" != xno ; then
+        dnl --enable-universal_binary uses a default SDK (currently 10.4u)
+        dnl --enable-universal_binary=SDK names a path to an SDK
+        if test "x$wxUSE_UNIVERSAL_BINARY" == xyes; then
+            OSX_UNIV_OPTS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk"
+        else 
+            dnl '' would mean universal with no SDK, which may be the case if
+            dnl the compiler uses a sysroot by default
+            OSX_UNIV_OPTS=${wxUSE_UNIVERSAL_BINARY:+"-isysroot '$wxUSE_UNIVERSAL_BINARY'"}
+        fi
+        OSX_UNIV_OPTS="$OSX_UNIV_OPTS -arch ppc -arch i386"
+        CXXFLAGS="$OSX_UNIV_OPTS $CXXFLAGS"
+        CFLAGS="$OSX_UNIV_OPTS $CFLAGS"
+        LDFLAGS="$OSX_UNIV_OPTS $LDFLAGS"
         bk_use_pch=no
     fi
     # TODO: where do we add "-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk" for libtool (static builds only)?
     #       The makefile currently uses AR and RANLIB, which libtool apparently supercedes.
-    # TODO: how can we avoid a hardwired reference to the SDK, above? (Someone used -lSystemStubs to avoid it)
 fi
 
 AC_BAKEFILE([m4_include(autoconf_inc.m4)])
@@ -7307,7 +7397,7 @@ dnl The next version of Bakefile will have the correct fix for this
 dnl at which time, this hack can be removed.
 
 if test "$wxUSE_MAC" = 1 ; then
-    if test "$wxUSE_UNIVERSAL_BINARY" = "yes" ; then
+    if test "x$wxUSE_UNIVERSAL_BINARY" != "xno" ; then
         sed "s/DEPSMODE=gcc/DEPSMODE=none/" < bk-deps > temp
         mv temp bk-deps
         chmod +x bk-deps
@@ -7570,7 +7660,7 @@ dnl report how we have been configured
 echo
 echo "Configured wxWidgets ${WX_VERSION} for \`${host}'"
 echo ""
-echo "  Which GUI toolkit should wxWidgets use?                 ${TOOLKIT_USER:-base only}"
+echo "  Which GUI toolkit should wxWidgets use?                 ${TOOLKIT_DESC}"
 echo "  Should wxWidgets be compiled into single library?       ${wxUSE_MONOLITHIC:-yes}"
 
 echo "  Should wxWidgets be compiled in debug mode?             ${wxUSE_DEBUG:-no}"
@@ -7594,9 +7684,6 @@ echo "                                       odbc               ${wxUSE_ODBC}"
 echo "                                       expat              ${wxUSE_EXPAT}"
 echo "                                       libmspack          ${wxUSE_LIBMSPACK}"
 echo "                                       sdl                ${wxUSE_LIBSDL}"
-echo "                                       gnomeprint         ${wxUSE_LIBGNOMEPRINT-none}"
-echo "                                       gnomevfs           ${wxUSE_LIBGNOMEVFS-none}"
-echo "                                       hildon             ${wxUSE_LIBHILDON-none}"
 
 echo ""