X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/38b4a946f3b7a09d6b2c17d150c3e92a032c7d73..42c60e749f84bae32b372d1aedfc9fef74036aee:/configure.in diff --git a/configure.in b/configure.in index 4c80050b52..896396cfaa 100644 --- a/configure.in +++ b/configure.in @@ -299,8 +299,8 @@ case "${host}" in DEFAULT_STD_FLAG=no ;; - powerpc-*-darwin* ) - dnl PowerPC Darwin based distributions (including Mac OS X) + *-*-darwin* ) + dnl Darwin based distributions (including Mac OS X) USE_BSD=1 USE_DARWIN=1 SO_SUFFIX=dylib @@ -1440,7 +1440,7 @@ case "${host}" in dnl The other BSD's should probably go in here too, since this is dnl to workaround a strange static lib BSDism. dnl Mac OS X install seems to ignore -p option... - powerpc-*-darwin* ) + *-*-darwin* ) INSTALL_PROGRAM="cp -fp" INSTALL_DATA="cp -fp" ;; @@ -1526,7 +1526,7 @@ if test "x$XLCXX" = "xyes" -a "x$USE_AIX" = "x1"; then fi -dnl This case is for OS X vs. everything else +dnl This case is for PowerPC OS X vs. everything else case "${host}" in powerpc-*-darwin* ) AC_MSG_CHECKING([if __POWERPC__ is already defined]) @@ -1538,6 +1538,12 @@ case "${host}" in [AC_MSG_RESULT([no]) AC_DEFINE(__POWERPC__) ]) + ;; +esac + +dnl This case is for OS X vs. everything else +case "${host}" in + *-*-darwin* ) AC_MSG_CHECKING([if CoreFoundation/CFBase.h is usable]) AC_TRY_COMPILE([#include ],[], @@ -1718,19 +1724,6 @@ case "${host}" in ;; esac -if test "$wxUSE_GUI" = "yes"; then - if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_PM" != 1; then - dnl defines HAVE_X11_XKBLIB_H - AC_CHECK_HEADERS(X11/Xlib.h) - AC_CHECK_HEADERS([X11/XKBlib.h], [], [], - [ - #if HAVE_X11_XLIB_H - #include - #endif - ]) - fi -fi - dnl --------------------------------------------------------------------------- dnl Checks for compiler characteristics dnl --------------------------------------------------------------------------- @@ -1866,6 +1859,37 @@ dnl problems if test "x$wx_largefile" = "xyes"; then if test "x$ac_cv_sys_file_offset_bits" = "x64"; then WX_LARGEFILE_FLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGE_FILES" + + dnl We get "Large Files (ILP32) not supported in strict ANSI mode." + dnl #error from HP standard headers unless __STDC_EXT__ is defined. + dnl The compiler should define it automatically, but some old g++ + dnl versions don't define it, so test and add it if necessary. AFAIK + dnl the problem only affects the C++ compiler so it is added to + dnl CXXFLAGS only. + if test "$USE_HPUX" = 1 -a "$GXX" = "yes"; then + AC_CACHE_CHECK( + [if -D__STDC_EXT__ is required], + wx_cv_STDC_EXT_required, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE( + [], + [ + #ifndef __STDC_EXT__ + choke me + #endif + ], + wx_cv_STDC_EXT_required=no, + wx_cv_STDC_EXT_required=yes + ) + AC_LANG_RESTORE + ] + ) + if test "x$wx_cv_STDC_EXT_required" = "xyes"; then + CXXFLAGS="$CXXFLAGS -D__STDC_EXT__" + fi + fi else WX_LARGEFILE_FLAGS="-D_LARGE_FILES" fi @@ -1896,6 +1920,12 @@ AC_CXX_STATIC_CAST dnl we don't use HAVE_DYNAMIC_CAST anywhere right now... dnl AC_CXX_DYNAMIC_CAST +dnl With Sun CC, temporaries have block scope by default. This flag is needed +dnl to get the expression scope behaviour that conforms to the standard. +if test "x$SUNCXX" = xyes; then + CXXFLAGS="$CXXFLAGS -features=tmplife" +fi + dnl check for std::string or std::wstring if test "$wxUSE_STD_STRING" = "yes" -o "$wxUSE_STL" = "yes"; then AC_LANG_PUSH(C++) @@ -2082,6 +2112,8 @@ SEARCH_INCLUDE="\ /usr/x386/include \ /usr/XFree86/include/X11 \ \ + /usr/pkg/include \ + \ X:/XFree86/include \ X:/XFree86/include/X11 \ \ @@ -2166,7 +2198,7 @@ if test "$USE_LINUX" = 1 -o "$USE_GNU" = 1; then AC_TRY_COMPILE([#include ], [ #if (__GLIBC__ < 2) || (__GLIBC_MINOR__ < 1) - #error not glibc2.1 + not glibc 2.1 #endif ], [ @@ -2697,7 +2729,7 @@ if test "$wxUSE_GUI" = "yes"; then dnl we need to cache GTK_CFLAGS and GTK_LIBS for the dnl subsequent runs wx_cv_cflags_gtk=$GTK_CFLAGS - wx_cv_libs_gtk=$GTK_LIBS + wx_cv_libs_gtk=`echo $GTK_LIBS | sed -e 's/ -l[[^ ]]*cairo[[^ ]]*//g'` fi ] ) @@ -2734,8 +2766,6 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config CFLAGS="$CFLAGS $wx_cv_cflags_gtk" LIBS="$LIBS $wx_cv_libs_gtk" - AC_CHECK_FUNCS([pango_font_family_is_monospace]) - dnl gtk_icon_size_lookup is not available in the GTK+ headers dnl that have shipped with some versions of Sun's JDS. Not using dnl AC_CHECK_FUNCS here since it only checks the function exists @@ -2762,7 +2792,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config ], [ #if !GTK_CHECK_VERSION(2,4,0) - #error "Not GTK+ 2.4" + Not GTK+ 2.4 #endif ], [ @@ -3019,6 +3049,9 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE) TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE$ac_path_to_include" else + save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $TOOLKIT_INCLUDE" + AC_TRY_COMPILE( [ #include @@ -3033,9 +3066,11 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config ], [ AC_MSG_RESULT(no) - AC_MSG_ERROR(please set CFLAGS to contain the location of Xm/Xm.h) + AC_MSG_ERROR(please set CPPFLAGS to contain the location of Xm/Xm.h) ] ) + + CFLAGS=$save_CFLAGS fi if test "$COMPILED_X_PROGRAM" = 0; then @@ -3128,7 +3163,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config ], [ #if XmVersion < 2000 - #error "Not Motif 2" + Not Motif 2 #endif ], [ @@ -3146,7 +3181,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config ], [ #if !defined(LesstifVersion) || LesstifVersion <= 0 - #error "Not Lesstif" + Not Lesstif #endif ], [ @@ -3336,6 +3371,20 @@ dnl --------------------------------------------------------------------------- dnl Optional libraries included when system library is not used dnl --------------------------------------------------------------------------- +dnl do this after test for X11 above so that we have a chance of finding Xlib.h +if test "$wxUSE_GUI" = "yes"; then + if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_PM" != 1; then + dnl defines HAVE_X11_XKBLIB_H + AC_CHECK_HEADERS(X11/Xlib.h) + AC_CHECK_HEADERS([X11/XKBlib.h], [], [], + [ + #if HAVE_X11_XLIB_H + #include + #endif + ]) + fi +fi + dnl ---------------------------------------------------------------- dnl iODBC support @@ -3598,7 +3647,7 @@ if test "$wxUSE_SHARED" = "yes"; then fi ;; - powerpc-*-darwin* ) + *-*-darwin* ) install_name_tool=`which install_name_tool` if test "$install_name_tool" -a -x "$install_name_tool"; then SAMPLES_RPATH_POSTLINK="\$(top_builddir)change-install-names \$(LIBDIRNAME) \$(prefix) \$@" @@ -3887,14 +3936,21 @@ if test "$wxUSE_WCHAR_T" = "yes"; then AC_DEFINE(HAVE_WCSLEN) fi - dnl on HP-UX aCC and g++ need this define to find mbstrtowcs() &c - if test "$USE_HPUX" = 1; then + dnl On HP-UX aCC need this define to find mbstrtowcs() &c + dnl Can't be used for g++ since the mbstate_t in wchar.h can conflict + dnl with g++'s in (unless -D_INCLUDE__STDC_A1_SOURCE is in the + dnl flags when g++ is configured, it will declare it's own). + if test "$USE_HPUX" = 1 -a "$GCC" != "yes"; then CPPFLAGS="$CPPFLAGS -D_INCLUDE__STDC_A1_SOURCE " fi - dnl try to use wcsrtombs instead of wcstombs which is buggy in old GNU - dnl libc versions if possible - AC_CHECK_FUNCS(wcsrtombs) + dnl Try to use wcsrtombs instead of wcstombs which is buggy in old GNU + dnl libc versions if possible. AC_CHECK_FUNCS only checks it's in the + dnl library, not the header, so do a header check for mbstate_t first. + AC_CHECK_TYPES([mbstate_t], + [AC_CHECK_FUNCS(wcsrtombs)], + [], + [#include ]) else AC_MSG_WARN([Wide character support is unavailable]) fi @@ -3907,50 +3963,41 @@ 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 the trouble here is that on some systems (e.g HP-UX 10) 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 wxWidgets fails dnl dnl so we first check if the function is in the library -AC_CHECK_FUNCS(vsnprintf) +AC_CHECK_FUNCS(snprintf 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, [ + dnl our troubles are not over: HP-UX 11 prototypes vsnprintf() as + dnl taking "char *" and not "const char *" while Metrowerks does + dnl provide a correct vsnprintf declaration but in C++ mode it's + dnl always in std namespace and so we have to bring it in scope AC_TRY_COMPILE( [ #include #include + #ifdef __MSL__ + #if __MSL__ >= 0x6000 + namespace std {} + using namespace std; + #endif + #endif ], [ char *buf; va_list ap; - vsnprintf(buf, 10u, "%s", ap); + const char *fmt = "%s"; + vsnprintf(buf, 10u, fmt, ap); ], wx_cv_func_vsnprintf_decl=yes, - [ - dnl Metrowerks does provide a vsnprintf declaration - dnl but in C++ mode it's always in std namespace. - dnl FIXME: Do we have any UNIX C++ compilers that would - dnl fail this test if using namespace std; was - dnl simply always included? - AC_TRY_COMPILE( - [ - #include - #include - using namespace std; - ], - [ - char *buf; - va_list ap; - vsnprintf(buf, 10u, "%s", ap); - ], - wx_cv_func_vsnprintf_decl=yes, - wx_cv_func_vsnprintf_decl=no - ) - ] + wx_cv_func_vsnprintf_decl=no ) ] ) @@ -3960,6 +4007,38 @@ if test "$ac_cv_func_vsnprintf" = "yes"; then fi fi +dnl the same as above but for snprintf() now: it's not present in at least AIX +dnl 4.2 headers +if test "$ac_cv_func_snprintf" = "yes"; then + AC_CACHE_CHECK([for snprintf declaration], wx_cv_func_snprintf_decl, + [ + AC_TRY_COMPILE( + [ + #include + #include + #ifdef __MSL__ + #if __MSL__ >= 0x6000 + namespace std {} + using namespace std; + #endif + #endif + ], + [ + char *buf; + const char *fmt = "%s"; + snprintf(buf, 10u, fmt, "wx"); + ], + wx_cv_func_snprintf_decl=yes, + wx_cv_func_snprintf_decl=no + ) + ] + ) + + if test "$wx_cv_func_snprintf_decl" = "yes"; then + AC_DEFINE(HAVE_SNPRINTF_DECL) + 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) @@ -4093,10 +4172,10 @@ AC_CACHE_CHECK(for statfs, wx_cv_func_statfs, AC_TRY_COMPILE( [ #if defined(__BSD__) - #include - #include + #include + #include #else - #include + #include #endif ], [ @@ -4107,16 +4186,39 @@ AC_CACHE_CHECK(for statfs, wx_cv_func_statfs, l += fs.f_blocks; l += fs.f_bavail; ], - [ - wx_cv_func_statfs=yes - ], - [ - wx_cv_func_statfs=no - ] + wx_cv_func_statfs=yes, + wx_cv_func_statfs=no ) ) if test "$wx_cv_func_statfs" = "yes"; then + dnl check whether we have its dcelaration too: some systems (AIX 4) lack it + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_CACHE_CHECK(for statfs declaration, wx_cv_func_statfs_decl, + AC_TRY_COMPILE( + [ + #if defined(__BSD__) + #include + #include + #else + #include + #endif + ], + [ + struct statfs fs; + statfs("", &fs); + ], + wx_cv_func_statfs_decl=yes, + wx_cv_func_statfs_decl=no + ) + ) + AC_LANG_RESTORE + + if test "$wx_cv_func_statfs_decl" = "yes"; then + AC_DEFINE(HAVE_STATFS_DECL) + fi + wx_cv_type_statvfs_t="struct statfs" AC_DEFINE(HAVE_STATFS) else @@ -4400,10 +4502,14 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then THREAD_OPTS="pthreads" ;; *-hp-hpux* ) - dnl HP-UX aCC only gives a warning, not an error about - dnl -pthread but it doesn't work and we have to use -lpthread - dnl there - if test "x$GCC" != "xyes"; then + if test "x$GCC" = "xyes"; then + dnl g++ versions before 3.3.2 don't support -pthread. + $CXX -dumpspecs | grep 'pthread:' >/dev/null || + THREAD_OPTS="" + else + dnl HP-UX aCC only gives a warning, not an error about + dnl -pthread but it doesn't work and we have to use + dnl -lpthread there THREAD_OPTS="" fi ;; @@ -4972,8 +5078,41 @@ 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"]) + 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_TRY_LINK([ + #include + ], + [ + ioctl(0, SNDCTL_DSP_SYNC, 0); + ], + ac_cv_header_sys_soundcard=yes, + [ + saveLibs="$LIBS" + LIBS="$saveLibs -lossaudio" + AC_TRY_LINK([ + #include + ], + [ + ioctl(0, SNDCTL_DSP_SYNC, 0); + ], + ac_cv_header_sys_soundcard=yes, + [ + LIBS="$saveLibs" + ac_cv_header_sys_soundcard=no + ] + ) + ] + ) + ]) + + if test "$ac_cv_header_sys_soundcard" = "yes"; then + AC_DEFINE(HAVE_SYS_SOUNDCARD_H) + else + DISABLED_CONTRIB="$DISABLED_CONTRIB mmedia" + fi fi WITH_PLUGIN_SDL=0 if test "$wxUSE_SOUND" = "yes"; then @@ -5409,7 +5548,7 @@ if test "$wxUSE_SOCKETS" = "yes" ; then wxUSE_SOCKETS=no AC_MSG_WARN([Couldn't find socklen_t synonym for this system]) else - AC_DEFINE_UNQUOTED(SOCKLEN_T, $wx_cv_type_getsockname3) + AC_DEFINE_UNQUOTED(WX_SOCKLEN_T, $wx_cv_type_getsockname3) fi dnl Do this again for getsockopt as it may be different AC_CACHE_CHECK([what is the type of the fifth argument of getsockopt], @@ -5665,6 +5804,17 @@ if test "$wxUSE_PROLOGIO" = "yes" -o "$wxUSE_RESOURCES" = "yes"; then AC_MSG_ERROR([wxExpr and old-style resources are now available in contrib only]) fi +dnl --------------------------------------------------------------------------- +dnl wxMetafile availability +dnl --------------------------------------------------------------------------- + +if test "$wxUSE_METAFILE" = "yes"; then + if test "$wxUSE_MSW" != 1 -a "$wxUSE_MAC" != 1 -a "$wxUSE_PM" != 1; then + AC_MSG_WARN([wxMetafile is not available on this system... disabled]) + wxUSE_METAFILE=no + fi +fi + dnl --------------------------------------------------------------------------- dnl IPC: IPC, Drag'n'Drop, Clipboard, ... dnl --------------------------------------------------------------------------- @@ -6802,14 +6952,14 @@ else AC_MSG_CHECKING([if this GCC version is >= 4.0 and needs -DNO_GCC_PRAGMA]) AC_TRY_COMPILE([], [#if (__GNUC__ < 4) - #error "Not GCC 4.0 or greater" + Not GCC 4.0 or greater #endif ], [GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA" AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]) case "${host}" in - powerpc-*-darwin* ) + *-*-darwin* ) dnl Some Apple's GCC version are broken and can't handle the dnl pragmas: GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA" @@ -6827,7 +6977,7 @@ else AC_MSG_CHECKING([if this MinGW version needs -DNO_GCC_PRAGMA]) AC_TRY_COMPILE([], [#if !(__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)) - #error "Not GCC 3.2 or greater" + Not GCC 3.2 or greater #endif ], [GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA" @@ -6843,7 +6993,7 @@ else AC_MSG_CHECKING([if this gcc version needs -DNO_GCC_PRAGMA]) AC_TRY_COMPILE([], [#if !(__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)) - #error "Not GCC 3.2 or greater" + Not GCC 3.2 or greater #endif ], [GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA"