X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/479c790cb75afda30bcce42b5debb9e3f9a58ca6..c5dc89a1b196864c87b26e96f2cc68e784b77d8e:/configure.in diff --git a/configure.in b/configure.in index 02c5e1788d..18be81f7f9 100644 --- a/configure.in +++ b/configure.in @@ -17,7 +17,7 @@ dnl --------------------------------------------------------------------------- dnl initialization dnl --------------------------------------------------------------------------- -AC_INIT([wxWidgets], [2.7.1], [wx-dev@lists.wxwidgets.org]) +AC_INIT([wxWidgets], [2.9.0], [wx-dev@lists.wxwidgets.org]) dnl the file passed to AC_CONFIG_SRCDIR should be specific to our package AC_CONFIG_SRCDIR([wx-config.in]) @@ -33,9 +33,9 @@ dnl dnl wx_release_number += 1 wx_major_version_number=2 -wx_minor_version_number=7 -wx_release_number=1 -wx_subrelease_number=1 +wx_minor_version_number=9 +wx_release_number=0 +wx_subrelease_number=0 WX_RELEASE=$wx_major_version_number.$wx_minor_version_number WX_VERSION=$WX_RELEASE.$wx_release_number @@ -44,6 +44,11 @@ WX_SUBVERSION=$WX_VERSION.$wx_subrelease_number WX_MSW_VERSION=$wx_major_version_number$wx_minor_version_number$wx_release_number +dnl Autoconf-2.60 changed the meaning of top_builddir variable, so we have +dnl to use our own replacement that will work with both 2.5x and 2.60+: +wx_top_builddir="`pwd`" +AC_SUBST(wx_top_builddir) + dnl ------------------------------------------------------------------------ dnl Check platform (host system) @@ -264,7 +269,6 @@ case "${host}" in SO_SUFFIX=dll PROGRAM_EXT=".exe" DEFAULT_DEFAULT_wxUSE_MSW=1 - DEFAULT_STD_FLAG=no ;; *-pc-msdosdjgpp ) @@ -374,6 +378,7 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_OPTIMISE=no DEFAULT_wxUSE_PROFILE=no DEFAULT_wxUSE_NO_DEPS=no + DEFAULT_wxUSE_VARARG_MACROS=no DEFAULT_wxUSE_NO_RTTI=no DEFAULT_wxUSE_NO_EXCEPTIONS=no DEFAULT_wxUSE_UNIVERSAL_BINARY=no @@ -504,9 +509,11 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_FILESYSTEM=no DEFAULT_wxUSE_FS_INET=no DEFAULT_wxUSE_FS_ZIP=no + DEFAULT_wxUSE_FS_ARCHIVE=no DEFAULT_wxUSE_BUSYINFO=no DEFAULT_wxUSE_ARCHIVE_STREAMS=no DEFAULT_wxUSE_ZIPSTREAM=no + DEFAULT_wxUSE_TARSTREAM=no DEFAULT_wxUSE_VALIDATORS=no DEFAULT_wxUSE_ACCEL=no @@ -520,6 +527,7 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_CHECKLST=no DEFAULT_wxUSE_CHOICE=no DEFAULT_wxUSE_CHOICEBOOK=no + DEFAULT_wxUSE_COLLPANE=no DEFAULT_wxUSE_COLOURPICKERCTRL=no DEFAULT_wxUSE_COMBOBOX=no DEFAULT_wxUSE_COMBOCTRL=no @@ -544,6 +552,7 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_RADIOBTN=no DEFAULT_wxUSE_SASH=no DEFAULT_wxUSE_SCROLLBAR=no + DEFAULT_wxUSE_SEARCHCTRL=no DEFAULT_wxUSE_SLIDER=no DEFAULT_wxUSE_SPINBTN=no DEFAULT_wxUSE_SPINCTRL=no @@ -572,6 +581,7 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_IMAGE=no DEFAULT_wxUSE_GIF=no DEFAULT_wxUSE_PCX=no + DEFAULT_wxUSE_TGA=no DEFAULT_wxUSE_PNM=no DEFAULT_wxUSE_IFF=no DEFAULT_wxUSE_XPM=no @@ -593,6 +603,7 @@ else DEFAULT_wxUSE_OPTIMISE=yes DEFAULT_wxUSE_PROFILE=no DEFAULT_wxUSE_NO_DEPS=no + DEFAULT_wxUSE_VARARG_MACROS=yes DEFAULT_wxUSE_NO_RTTI=no DEFAULT_wxUSE_NO_EXCEPTIONS=no DEFAULT_wxUSE_UNIVERSAL_BINARY=no @@ -624,7 +635,7 @@ else DEFAULT_wxUSE_LIBXPM=yes DEFAULT_wxUSE_LIBMSPACK=yes DEFAULT_wxUSE_LIBSDL=no - DEFAULT_wxUSE_LIBGNOMEPRINT=no + DEFAULT_wxUSE_LIBGNOMEPRINT=yes DEFAULT_wxUSE_LIBGNOMEVFS=no DEFAULT_wxUSE_LIBHILDON=no DEFAULT_wxUSE_ODBC=no @@ -722,9 +733,11 @@ else DEFAULT_wxUSE_FILESYSTEM=yes DEFAULT_wxUSE_FS_INET=yes DEFAULT_wxUSE_FS_ZIP=yes + DEFAULT_wxUSE_FS_ARCHIVE=yes DEFAULT_wxUSE_BUSYINFO=yes DEFAULT_wxUSE_ARCHIVE_STREAMS=yes DEFAULT_wxUSE_ZIPSTREAM=yes + DEFAULT_wxUSE_TARSTREAM=yes DEFAULT_wxUSE_VALIDATORS=yes DEFAULT_wxUSE_ACCEL=yes @@ -738,6 +751,7 @@ else DEFAULT_wxUSE_CHECKLST=yes DEFAULT_wxUSE_CHOICE=yes DEFAULT_wxUSE_CHOICEBOOK=yes + DEFAULT_wxUSE_COLLPANE=yes DEFAULT_wxUSE_COLOURPICKERCTRL=yes DEFAULT_wxUSE_COMBOBOX=yes DEFAULT_wxUSE_COMBOCTRL=yes @@ -762,6 +776,7 @@ else DEFAULT_wxUSE_RADIOBTN=yes DEFAULT_wxUSE_SASH=yes DEFAULT_wxUSE_SCROLLBAR=yes + DEFAULT_wxUSE_SEARCHCTRL=yes DEFAULT_wxUSE_SLIDER=yes DEFAULT_wxUSE_SPINBTN=yes DEFAULT_wxUSE_SPINCTRL=yes @@ -790,7 +805,8 @@ else DEFAULT_wxUSE_IMAGE=yes DEFAULT_wxUSE_GIF=yes DEFAULT_wxUSE_PCX=yes - DEFAULT_wxUSE_IFF=no + DEFAULT_wxUSE_TGA=yes + DEFAULT_wxUSE_IFF=no dnl why is this set to "no"? DEFAULT_wxUSE_PNM=yes DEFAULT_wxUSE_XPM=yes DEFAULT_wxUSE_ICO_CUR=yes @@ -918,6 +934,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(vararg_macros, [ --disable-vararg_macros don't use vararg macros, even if they are supported], wxUSE_VARARG_MACROS) 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) @@ -959,8 +976,9 @@ WX_ARG_ENABLE(ffile, [ --enable-ffile use wxFFile class], wxUS WX_ARG_ENABLE(file, [ --enable-file use wxFile class], wxUSE_FILE) WX_ARG_ENABLE(filesystem, [ --enable-filesystem use virtual file systems classes], wxUSE_FILESYSTEM) WX_ARG_ENABLE(fontmap, [ --enable-fontmap use font encodings conversion classes], wxUSE_FONTMAP) +WX_ARG_ENABLE(fs_archive, [ --enable-fs_archive use virtual archive filesystems], wxUSE_FS_ARCHIVE) 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(fs_zip, [ --enable-fs_zip now replaced by fs_archive], wxUSE_FS_ZIP) WX_ARG_ENABLE(geometry, [ --enable-geometry use geometry class], wxUSE_GEOMETRY) WX_ARG_ENABLE(log, [ --enable-log use logging system], wxUSE_LOG) WX_ARG_ENABLE(longlong, [ --enable-longlong use wxLongLong class], wxUSE_LONGLONG) @@ -973,6 +991,7 @@ WX_ARG_ENABLE(stdpaths, [ --enable-stdpaths use wxStandardPaths clas WX_ARG_ENABLE(stopwatch, [ --enable-stopwatch use wxStopWatch class], wxUSE_STOPWATCH) WX_ARG_ENABLE(streams, [ --enable-streams use wxStream etc classes], wxUSE_STREAMS) WX_ARG_ENABLE(system_options,[ --enable-sysoptions use wxSystemOptions], wxUSE_SYSTEM_OPTIONS) +WX_ARG_ENABLE(tarstream, [ --enable-tarstream use wxTar streams], wxUSE_TARSTREAM) WX_ARG_ENABLE(textbuf, [ --enable-textbuf use wxTextBuffer class], wxUSE_TEXTBUFFER) WX_ARG_ENABLE(textfile, [ --enable-textfile use wxTextFile class], wxUSE_TEXTFILE) WX_ARG_ENABLE(timer, [ --enable-timer use wxTimer class], wxUSE_TIMER) @@ -1018,7 +1037,7 @@ WX_ARG_ENABLE(loggui, [ --enable-loggui use standard GUI logger], WX_ARG_ENABLE(logwin, [ --enable-logwin use wxLogWindow], wxUSE_LOGWINDOW) WX_ARG_ENABLE(logdialog, [ --enable-logdialog use wxLogDialog], wxUSE_LOGDIALOG) WX_ARG_ENABLE(webkit, [ --enable-webkit use wxWebKitCtrl (Mac)], wxUSE_WEBKIT) -WX_ARG_ENABLE(html, [ --enable-richtext use wxRichTextCtrl], wxUSE_RICHTEXT) +WX_ARG_ENABLE(richtext, [ --enable-richtext use wxRichTextCtrl], wxUSE_RICHTEXT) WX_ARG_ENABLE(graphics_ctx, [ --enable-graphics_ctx use graphics context 2D drawing API], wxUSE_GRAPHICS_CONTEXT) dnl --------------------------------------------------------------------------- @@ -1068,6 +1087,7 @@ if test "$wxUSE_CONTROLS" = "yes"; then DEFAULT_wxUSE_CHECKLISTBOX=yes DEFAULT_wxUSE_CHOICE=yes DEFAULT_wxUSE_CHOICEBOOK=yes + DEFAULT_wxUSE_COLLPANE=yes DEFAULT_wxUSE_COLOURPICKERCTRL=yes DEFAULT_wxUSE_COMBOBOX=yes DEFAULT_wxUSE_DATEPICKCTRL=yes @@ -1089,6 +1109,7 @@ if test "$wxUSE_CONTROLS" = "yes"; then DEFAULT_wxUSE_RADIOBTN=yes DEFAULT_wxUSE_SASH=yes DEFAULT_wxUSE_SCROLLBAR=yes + DEFAULT_wxUSE_SEARCHCTRL=yes DEFAULT_wxUSE_SLIDER=yes DEFAULT_wxUSE_SPINBTN=yes DEFAULT_wxUSE_SPINCTRL=yes @@ -1114,6 +1135,7 @@ elif test "$wxUSE_CONTROLS" = "no"; then DEFAULT_wxUSE_BUTTON=no DEFAULT_wxUSE_CALCTRL=no DEFAULT_wxUSE_CARET=no + DEFAULT_wxUSE_COLLPANE=no DEFAULT_wxUSE_COMBOBOX=no DEFAULT_wxUSE_CHECKBOX=no DEFAULT_wxUSE_CHECKLISTBOX=no @@ -1140,6 +1162,7 @@ elif test "$wxUSE_CONTROLS" = "no"; then DEFAULT_wxUSE_RADIOBTN=no DEFAULT_wxUSE_SASH=no DEFAULT_wxUSE_SCROLLBAR=no + DEFAULT_wxUSE_SEARCHCTRL=no DEFAULT_wxUSE_SLIDER=no DEFAULT_wxUSE_SPINBTN=no DEFAULT_wxUSE_SPINCTRL=no @@ -1171,6 +1194,7 @@ WX_ARG_ENABLE(checkbox, [ --enable-checkbox use wxCheckBox class], wxU WX_ARG_ENABLE(checklst, [ --enable-checklst use wxCheckListBox (listbox with checkboxes) class], wxUSE_CHECKLST) WX_ARG_ENABLE(choice, [ --enable-choice use wxChoice class], wxUSE_CHOICE) WX_ARG_ENABLE(choicebook, [ --enable-choicebook use wxChoicebook class], wxUSE_CHOICEBOOK) +WX_ARG_ENABLE(collpane, [ --enable-collpane use wxCollapsiblePane class], wxUSE_COLLPANE) WX_ARG_ENABLE(colourpicker,[ --enable-colourpicker use wxColourPickerCtrl class], wxUSE_COLOURPICKERCTRL) WX_ARG_ENABLE(combobox, [ --enable-combobox use wxComboBox class], wxUSE_COMBOBOX) WX_ARG_ENABLE(comboctrl, [ --enable-comboctrl use wxComboCtrl class], wxUSE_COMBOCTRL) @@ -1182,7 +1206,7 @@ WX_ARG_ENABLE(filepicker, [ --enable-filepicker use wxFilePickerCtrl class WX_ARG_ENABLE(fontpicker, [ --enable-fontpicker use wxFontPickerCtrl class], wxUSE_FONTPICKERCTRL) WX_ARG_ENABLE(gauge, [ --enable-gauge use wxGauge class], wxUSE_GAUGE) WX_ARG_ENABLE(grid, [ --enable-grid use wxGrid class], wxUSE_GRID) -WX_ARG_ENABLE(dataviewctrl,[ --enable-dataviewctrl, use wxDataViewCtrl class], wxUSE_DATAVIEWCTRL) +WX_ARG_ENABLE(dataviewctrl,[ --enable-dataviewctrl use wxDataViewCtrl class], wxUSE_DATAVIEWCTRL) WX_ARG_ENABLE(hyperlink, [ --enable-hyperlink use wxHyperlinkCtrl class], wxUSE_HYPERLINKCTRL) WX_ARG_ENABLE(imaglist, [ --enable-imaglist use wxImageList class], wxUSE_IMAGLIST) WX_ARG_ENABLE(listbook, [ --enable-listbook use wxListbook class], wxUSE_LISTBOOK) @@ -1194,6 +1218,7 @@ WX_ARG_ENABLE(radiobox, [ --enable-radiobox use wxRadioBox class], wxU WX_ARG_ENABLE(radiobtn, [ --enable-radiobtn use wxRadioButton class], wxUSE_RADIOBTN) WX_ARG_ENABLE(sash, [ --enable-sash use wxSashWindow class], wxUSE_SASH) WX_ARG_ENABLE(scrollbar, [ --enable-scrollbar use wxScrollBar class and scrollable windows], wxUSE_SCROLLBAR) +WX_ARG_ENABLE(searchctrl, [ --enable-searchctrl use wxSearchCtrl class], wxUSE_SEARCHCTRL) WX_ARG_ENABLE(slider, [ --enable-slider use wxSlider class], wxUSE_SLIDER) WX_ARG_ENABLE(spinbtn, [ --enable-spinbtn use wxSpinButton class], wxUSE_SPINBTN) WX_ARG_ENABLE(spinctrl, [ --enable-spinctrl use wxSpinCtrl class], wxUSE_SPINCTRL) @@ -1262,6 +1287,7 @@ WX_ARG_ENABLE(palette, [ --enable-palette use wxPalette class], wxUS WX_ARG_ENABLE(image, [ --enable-image use wxImage class], wxUSE_IMAGE) WX_ARG_ENABLE(gif, [ --enable-gif use gif images (GIF file format)], wxUSE_GIF) WX_ARG_ENABLE(pcx, [ --enable-pcx use pcx images (PCX file format)], wxUSE_PCX) +WX_ARG_ENABLE(tga, [ --enable-tga use tga images (TGA file format)], wxUSE_TGA) WX_ARG_ENABLE(iff, [ --enable-iff use iff images (IFF file format)], wxUSE_IFF) WX_ARG_ENABLE(pnm, [ --enable-pnm use pnm images (PNM file format)], wxUSE_PNM) WX_ARG_ENABLE(xpm, [ --enable-xpm use xpm images (XPM file format)], wxUSE_XPM) @@ -1305,6 +1331,8 @@ if test "$wxUSE_WINE" = "yes"; then DEFAULT_DEFAULT_wxUSE_MOTIF=0 DEFAULT_DEFAULT_wxUSE_MSW=1 wxUSE_SHARED=no + CC=${CC:-winegcc} + CXX=${CXX:-wineg++} fi @@ -1403,61 +1431,6 @@ else fi fi -dnl --------------------------------------------------------------------------- -dnl When we are using Cygwin with Motif/GTK+, we want it to appear like -dnl 'just' a POSIX platform, so the Win32 API must not be available -dnl --------------------------------------------------------------------------- -dnl (Windows-only piece) -wants_win32=0 -doesnt_want_win32=0 -case "${host}" in - *-*-cygwin*) - if test "$wxUSE_MSW" = 1 ; then - wants_win32=1 - BAKEFILE_FORCE_PLATFORM=win32 - else - doesnt_want_win32=1 - fi - ;; - *-*-mingw*) - wants_win32=1 - ;; -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++ - LDFLAGS_GUI="-mwindows" -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 - USE_UNIX=0 - USE_WIN32=1 - AC_DEFINE(__WIN32__) - AC_DEFINE(__WIN95__) - AC_DEFINE(__WINDOWS__) - AC_DEFINE(__GNUWIN32__) - AC_DEFINE(STRICT) - AC_DEFINE(WINVER, 0x0400) -fi -if test "$doesnt_want_win32" = 1 ; then - USE_UNIX=1 - USE_WIN32=0 -fi -dnl (end of Windows-only piece) - -if test "$USE_UNIX" = 1 ; then - wxUSE_UNIX=yes - AC_DEFINE(__UNIX__) -fi - dnl --------------------------------------------------------------------------- dnl Checks for programs dnl --------------------------------------------------------------------------- @@ -1481,12 +1454,6 @@ dnl is -traditional needed for correct compilations dnl adds -traditional for gcc if needed AC_PROG_GCC_TRADITIONAL -dnl do all checks from now on using the C++ compiler: this saves us a lot of -dnl problems with various functions which may be available in libc but not -dnl declared in the header and various pointer conversions which compile with -dnl the C compiler but not in C++ -AC_LANG_PUSH(C++) - dnl C++-compiler checks dnl defines CXX with the compiler to use dnl defines GXX with yes if using gxx @@ -1503,9 +1470,13 @@ AC_PROG_RANLIB dnl ar command dnl defines AR with the appropriate command -AC_CHECK_TOOL(AR, ar) -if test "x$AR" = "x" ; then - AC_MSG_ERROR([ar is needed to build wxWidgets]) +dnl +dnl For Sun CC AC_BAKEFILE below sets AR to the compiler itself. +if test "x$SUNCXX" != xyes; then + AC_CHECK_TOOL(AR, ar) + if test "x$AR" = "x" ; then + AC_MSG_ERROR([ar is needed to build wxWidgets]) + fi fi dnl install checks @@ -1562,7 +1533,7 @@ dnl does make support "-include" (only GNU make does AFAIK)? AC_CACHE_CHECK([if make is GNU make], wx_cv_prog_makeisgnu, [ if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null | - egrep -s GNU > /dev/null); then + $EGREP -s GNU > /dev/null); then wx_cv_prog_makeisgnu="yes" else wx_cv_prog_makeisgnu="no" @@ -1670,6 +1641,74 @@ case "${host}" in ;; esac +dnl Determine whether we want to use Cygwin as Windows or POSIX platform: the +dnl latter makes more sense for wxGTK/Motif/X11 ports +wants_win32=0 +doesnt_want_win32=0 +case "${host}" in + *-*-cygwin*) + if test "$wxUSE_MSW" = 1 ; then + wants_win32=1 + else + dnl when we use cygwin compiler with -mno-cygwin option it uses mingw32 + dnl headers and libraries, so it's Windows-like in this case + AC_CACHE_CHECK([if -mno-cygwin is in effect], wx_cv_nocygwin, + [ + AC_TRY_COMPILE( + [], + [ + #ifdef __MINGW32__ + choke me + #endif + ], + wx_cv_nocygwin=no, + wx_cv_nocygwin=yes + ) + ] + ) + + if test "$wx_cv_nocygwin" = "yes"; then + wants_win32=1 + else + doesnt_want_win32=1 + fi + fi + if test "$wants_win32" = 1 ; then + BAKEFILE_FORCE_PLATFORM=win32 + fi + ;; + *-*-mingw*) + wants_win32=1 + ;; +esac + +if test "$wxUSE_WINE" = "yes"; then + wants_win32=1 + LDFLAGS_GUI="-mwindows" +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 + USE_UNIX=0 + USE_WIN32=1 + AC_DEFINE(__WIN32__) + AC_DEFINE(__WIN95__) + AC_DEFINE(__WINDOWS__) + AC_DEFINE(__GNUWIN32__) + AC_DEFINE(STRICT) +fi +if test "$doesnt_want_win32" = 1 ; then + USE_UNIX=1 + USE_WIN32=0 +fi +dnl (end of Windows-only piece) + +if test "$USE_UNIX" = 1 ; then + wxUSE_UNIX=yes + AC_DEFINE(__UNIX__) +fi + dnl This case is for OS/2 vs. everything else case "${host}" in *-pc-os2_emx | *-pc-os2-emx ) @@ -1681,7 +1720,6 @@ case "${host}" in dnl not "g++/c++". dnl --------------------------------------------------------------------- dnl (OS/2-only piece) - AC_LANG_PUSH(C) if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_GTK" = 1 -o "$wxUSE_X11" = 1; then dnl More complete Unix emulation for unix-like ports dnl by linking in POSIX/2's cExt (if available). @@ -1725,7 +1763,6 @@ case "${host}" in wx_cv_gccversion="EMX2" ) ]) - AC_LANG_POP if test "$wx_cv_gccversion" = "EMX2"; then LIBS="$LIBS -lstdcpp" LDFLAGS="$LDFLAGS -Zsysv-signals" @@ -1740,7 +1777,7 @@ case "${host}" in if test "$wxUSE_SHARED" = "yes" -a "$wxUSE_OMF" = "no"; then AC_MSG_WARN([Building DLLs requires OMF mode, enabled]) wxUSE_OMF=yes - enable_omf=yes + enable_omf=yes fi dnl (end of OS/2-only piece) ;; @@ -1794,27 +1831,13 @@ dnl ------------------------------------------------------------------------ dnl Check for headers dnl ------------------------------------------------------------------------ -dnl defines HAVE_STDLIB_H -AC_CHECK_HEADERS(stdlib.h) -dnl defines HAVE_MALLOC_H -AC_CHECK_HEADERS(malloc.h) -dnl defines HAVE_UNISTD_H -AC_CHECK_HEADERS(unistd.h) -dnl defines HAVE_WCHAR_H -AC_CHECK_HEADERS(wchar.h) +AC_CHECK_HEADERS(stdlib.h fnmatch.h langinfo.h malloc.h unistd.h wchar.h) dnl maybe wchar_t is in wcstr.h if we don't have wchar.h? if test "$ac_cv_header_wchar_h" != "yes"; then - dnl defines HAVE_WCSTR_H AC_CHECK_HEADERS(wcstr.h) fi -dnl defines HAVE_FNMATCH_H -AC_CHECK_HEADERS(fnmatch.h) - -dnl defines HAVE_LANGINFO_H (GNU libc locale parameters) -AC_CHECK_HEADERS(langinfo.h) - case "${host}" in *-pc-os2_emx | *-pc-os2-emx ) dnl Explicitly link -lintl if langinfo.h is available @@ -1957,11 +1980,19 @@ else fi fi +dnl don't check for vararg macros if they're explicitly disabled: this is +dnl useful if the user code using the library wants to limit itself to standard +dnl C++ only (e.g. is compiled with g++ -std=c++98) +if test "$wxUSE_VARARG_MACROS" = "yes"; then + dnl Check if variadic macros (C99 feature) are supported: AC_CACHE_CHECK( [whether the compiler supports variadic macros], [wx_cv_have_variadic_macros], [ + dnl C compiler might support variadic macros when C++ one doesn't + dnl (happens with gcc/g++ 2.95.4), so must use C++ one explicitly + AC_LANG_PUSH(C++) AC_COMPILE_IFELSE( AC_LANG_PROGRAM( [ @@ -1975,6 +2006,7 @@ AC_CACHE_CHECK( [wx_cv_have_variadic_macros=yes], [wx_cv_have_variadic_macros=no] ) + AC_LANG_POP() ] ) @@ -1982,6 +2014,8 @@ if test $wx_cv_have_variadic_macros = "yes"; then AC_DEFINE(HAVE_VARIADIC_MACROS) fi +fi dnl wxUSE_VARARG_MACROS == yes + dnl check for large file support AC_SYS_LARGEFILE @@ -2005,6 +2039,7 @@ if test "x$wx_largefile" = "xyes"; then [if -D__STDC_EXT__ is required], wx_cv_STDC_EXT_required, [ + AC_LANG_PUSH(C++) AC_TRY_COMPILE( [], [ @@ -2015,6 +2050,7 @@ if test "x$wx_largefile" = "xyes"; then wx_cv_STDC_EXT_required=no, wx_cv_STDC_EXT_required=yes ) + AC_LANG_POP() ] ) if test "x$wx_cv_STDC_EXT_required" = "xyes"; then @@ -2104,6 +2140,10 @@ if test "x$COMPAQCXX" = "xyes"; then CXXFLAGS="-w0 -msg_disable basclsnondto,unrimpret,intconlosbit" fi +dnl the next few tests are all for C++ features and so need to be done using +dnl C++ compiler +AC_LANG_PUSH(C++) + dnl check for std::string or std::wstring if test "$wxUSE_STD_STRING" = "yes" -o "$wxUSE_STL" = "yes"; then if test "$wxUSE_UNICODE" = "yes"; then @@ -2114,42 +2154,60 @@ if test "$wxUSE_STD_STRING" = "yes" -o "$wxUSE_STL" = "yes"; then char_type="char" fi - dnl check if declares std::wstring - AC_MSG_CHECKING([for $std_string in ]) - AC_TRY_COMPILE([#include ], - [$std_string foo;], - [AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_STD_WSTRING)], - [AC_MSG_RESULT(no) - AC_MSG_CHECKING([if std::basic_string<$char_type> works]) - AC_TRY_COMPILE([ - #ifdef HAVE_WCHAR_H - # ifdef __CYGWIN__ - # include - # endif - # include - #endif - #ifdef HAVE_STDLIB_H - # include - #endif - #include - #include - ], - [std::basic_string<$char_type> foo; - const $char_type* dummy = foo.c_str();], - [AC_MSG_RESULT(yes)], - [AC_MSG_RESULT([no]) - 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 - ] - ) - ]) + dnl check if declares std::[w]string + AC_CACHE_CHECK([for $std_string in ], + wx_cv_class_stdstring, + [ + AC_TRY_COMPILE([#include ], + [$std_string foo;], + wx_cv_class_stdstring=yes, + wx_cv_class_stdstring=no + ) + ] + ) + + if test "$wx_cv_class_stdstring" = yes; then + if test "$wxUSE_UNICODE" = "yes"; then + AC_DEFINE(HAVE_STD_WSTRING) + fi + dnl we don't need HAVE_STD_STRING, we just suppose it's available if + dnl wxUSE_STD_STRING==yes + else + AC_CACHE_CHECK([if std::basic_string<$char_type> works], + wx_cv_class_stdbasicstring, + [ + AC_TRY_COMPILE([ + #ifdef HAVE_WCHAR_H + # ifdef __CYGWIN__ + # include + # endif + # include + #endif + #ifdef HAVE_STDLIB_H + # include + #endif + #include + #include + ], + [std::basic_string<$char_type> foo; + const $char_type* dummy = foo.c_str();], + wx_cv_class_stdbasicstring=yes, + wx_cv_class_stdbasicstring=no + ) + ] + ) + + if test "$wx_cv_class_stdbasicstring" != yes; then + 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 + fi + fi fi if test "$wxUSE_STD_IOSTREAM" = "yes"; then @@ -2168,61 +2226,88 @@ fi if test "$wxUSE_STL" = "yes"; then dnl check for basic STL functionality - AC_MSG_CHECKING([for basic STL functionality]) - AC_TRY_COMPILE([#include - #include - #include - #include - #include ], - [std::vector moo; - std::list foo; - std::vector::iterator it = - std::find_if(moo.begin(), moo.end(), - std::bind2nd(std::less(), 3));], - [AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no]) - AC_MSG_ERROR([Basic STL functionality missing])]) + AC_CACHE_CHECK([for basic STL functionality], + wx_cv_lib_stl, + [AC_TRY_COMPILE([#include + #include + #include + #include + #include ], + [std::vector moo; + std::list foo; + std::vector::iterator it = + std::find_if(moo.begin(), moo.end(), + std::bind2nd(std::less(), 3));], + wx_cv_lib_stl=yes, + wx_cv_lib_stl=no + )] + ) + + if test "$wx_cv_lib_stl" != yes; then + AC_MSG_ERROR([Can't use --enable-stl as basic STL functionality is missing]) + fi dnl check for compliant std::string::compare - AC_MSG_CHECKING([for compliant std::string::compare]) - AC_TRY_COMPILE([#include ], - [std::string foo, bar; - foo.compare(bar); - foo.compare(1, 1, bar); - foo.compare(1, 1, bar, 1, 1); - foo.compare(""); - foo.compare(1, 1, ""); - foo.compare(1, 1, "", 2);], - [AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_STD_STRING_COMPARE)], - [AC_MSG_RESULT(no)]) + AC_CACHE_CHECK([for compliant std::string::compare], + wx_cv_func_stdstring_compare, + [AC_TRY_COMPILE([#include ], + [std::string foo, bar; + foo.compare(bar); + foo.compare(1, 1, bar); + foo.compare(1, 1, bar, 1, 1); + foo.compare(""); + foo.compare(1, 1, ""); + foo.compare(1, 1, "", 2);], + wx_cv_func_stdstring_compare=yes, + wx_cv_func_stdstring_compare=no + )] + ) + + if test "$wx_cv_func_stdstring_compare" = yes; then + AC_DEFINE(HAVE_STD_STRING_COMPARE) + fi dnl check for hash_map and hash_set headers AC_CHECK_HEADER([hash_map], - [AC_MSG_CHECKING([for hash_map and hash_set]) - AC_TRY_COMPILE([#include - #include ], - [std::hash_map, std::equal_to > test1; - std::hash_set, std::equal_to > test2;], - [AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_HASH_MAP) - AC_DEFINE(HAVE_STD_HASH_MAP)], - [AC_MSG_RESULT(no)]) - ]) + [AC_CACHE_CHECK([for standard hash_map and hash_set], + wx_cv_class_stdhashmapset, + [AC_TRY_COMPILE([#include + #include ], + [std::hash_map, std::equal_to > test1; + std::hash_set, std::equal_to > test2;], + wx_cv_class_stdhashmapset=yes, + wx_cv_class_stdhashmapset=no) + ] + )] + ) + + if test "$wx_cv_class_stdhashmapset" = yes; then + AC_DEFINE(HAVE_HASH_MAP) + AC_DEFINE(HAVE_STD_HASH_MAP) + fi AC_CHECK_HEADER([ext/hash_map], - [AC_MSG_CHECKING([for hash_map and hash_set]) - AC_TRY_COMPILE([#include - #include ], - [__gnu_cxx::hash_map, std::equal_to > test1; - __gnu_cxx::hash_set, std::equal_to > test2;], - [AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_EXT_HASH_MAP) - AC_DEFINE(HAVE_GNU_CXX_HASH_MAP)], - [AC_MSG_RESULT(no)]) - ]) + [AC_CACHE_CHECK([for GNU hash_map and hash_set], + wx_cv_class_gnuhashmapset, + [AC_TRY_COMPILE([#include + #include ], + [__gnu_cxx::hash_map, std::equal_to > test1; + __gnu_cxx::hash_set, std::equal_to > test2;], + wx_cv_class_gnuhashmapset=yes, + wx_cv_class_gnuhashmapset=no) + ] + )] + ) + + if test "$wx_cv_class_gnuhashmapset" = yes; then + AC_DEFINE(HAVE_EXT_HASH_MAP) + AC_DEFINE(HAVE_GNU_CXX_HASH_MAP) + fi fi +dnl pop C++ +AC_LANG_POP() + dnl --------------------------------------------------------------------------- dnl Define search path for includes and libraries: all headers and libs will be dnl looked for in all directories of this path @@ -2458,6 +2543,19 @@ else fi fi +dnl check for C99 string to long long conversion functions, assume that if we +dnl have the unsigned variants, then we have the signed ones as well +dnl +dnl at least under SGI these functions are only available in C99 code and not +dnl in C++ so do these tests using C++ compiler +AC_LANG_PUSH(C++) +if test "wxUSE_UNICODE" = "yes"; then + WX_CHECK_FUNCS(wcstoull) +else + WX_CHECK_FUNCS(strtoull) +fi +AC_LANG_POP() + dnl --------------------------------------------------------------------------- dnl Optional libraries dnl @@ -2704,6 +2802,30 @@ if test "$wxUSE_LIBJPEG" != "no" ; then else dnl we are using the system library wxUSE_LIBJPEG=sys + + if test "$wxUSE_MSW" = 1; then + dnl boolean is defined by the jpeg headers and also by the + dnl Windows headers of some compilers. This type has been + dnl renamed in the builtin, so it is only an issue when + dnl using an external jpeg lib on Windows. + AC_CHECK_TYPES( + [boolean], + [ + AC_CHECK_SIZEOF( + [boolean], + [], + [ + #undef HAVE_BOOLEAN + #include + #include + ]) + AC_DEFINE_UNQUOTED( + [wxHACK_BOOLEAN], + [wxInt`expr 8 \* $ac_cv_sizeof_boolean`]) + ], + [], + [#include ]) + fi fi fi fi @@ -2777,10 +2899,12 @@ if test "$wxUSE_EXPAT" != "no"; then AC_CACHE_CHECK([if expat.h is valid C++ header], wx_cv_expat_is_not_broken, [ + AC_LANG_PUSH(C++) AC_TRY_COMPILE([#include ],[], wx_cv_expat_is_not_broken=yes, wx_cv_expat_is_not_broken=no ) + AC_LANG_POP() ] ) if test "$wx_cv_expat_is_not_broken" = "yes" ; then @@ -2882,12 +3006,6 @@ if test "$USE_WIN32" = 1 ; then dnl install Win32-specific files in "make install" WIN32INSTALL=win32install - dnl the jpeg header jmorecfg.h delcares the type boolean, which conflicts - dnl on systems which declare it in the system headers. If HAVE_BOOLEAN is - dnl defined then jmorecfg.h doesn't declare it, so checking for it here - dnl solves the problem. - AC_CHECK_TYPES(boolean, [], [], [#include ]) - dnl pbt.h is missing on Wine at least AC_CHECK_HEADERS(pbt.h, [], [AC_DEFINE(NEED_PBT_H)]) fi @@ -2930,8 +3048,6 @@ if test "$wxUSE_GUI" = "yes"; then if test "$wxUSE_GTK" = 1; then dnl GTK+ test program must be compiled with C compiler - AC_LANG_PUSH(C) - AC_MSG_CHECKING([for GTK+ version]) gtk_version_cached=1 @@ -3093,14 +3209,12 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config dnl test for XIM support in libgdk AC_CHECK_LIB(gdk, gdk_im_open, AC_DEFINE(HAVE_XIM)) - fi - - AC_LANG_POP - dnl we need poll() in src/gtk/app.cpp (we know that Darwin doesn't - dnl have it but we do the check for the others) - if test "$USE_DARWIN" != 1; then - AC_CHECK_FUNCS(poll) + dnl we need poll() in src/gtk1/app.cpp (we know that Darwin doesn't + dnl have it but we do the check for the others) + if test "$USE_DARWIN" != 1; then + AC_CHECK_FUNCS(poll) + fi fi TOOLKIT_INCLUDE="$wx_cv_cflags_gtk" @@ -3209,7 +3323,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config PKG_PROG_PKG_CONFIG() PKG_CHECK_MODULES(DIRECTFB, - [directfb >= 0.9.22], + [directfb >= 0.9.23], [ wxUSE_UNIVERSAL="yes" TOOLKIT_INCLUDE="$DIRECTFB_CFLAGS" @@ -3288,6 +3402,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config PKG_CHECK_MODULES(PANGOX, pangox, [ + CFLAGS="$PANGOX_CFLAGS $CFLAGS" CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS" GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOX_LIBS" ], @@ -3297,6 +3412,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config ) PKG_CHECK_MODULES(PANGOFT2, pangoft2, [ + CFLAGS="$PANGOFT2_CFLAGS $CFLAGS" CXXFLAGS="$PANGOFT2_CFLAGS $CXXFLAGS" GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS" ], @@ -3308,6 +3424,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config PKG_CHECK_MODULES(PANGOXFT, pangoxft, [ AC_DEFINE(HAVE_PANGO_XFT) + CFLAGS="$PANGOXFT_CFLAGS $CFLAGS" CXXFLAGS="$PANGOXFT_CFLAGS $CXXFLAGS" GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOXFT_LIBS" ], @@ -3315,12 +3432,9 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config AC_MSG_WARN([pangoxft library not found, library will be compiled without anti-aliasing support]) ] ) - save_CXXFLAGS="$CXXFLAGS" save_LIBS="$LIBS" - CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS" LIBS="$LIBS $PANGOX_LIBS" AC_CHECK_FUNCS([pango_font_family_is_monospace]) - CXXFLAGS="$save_CXXFLAGS" LIBS="$save_LIBS" fi @@ -3350,8 +3464,8 @@ 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_CXXFLAGS=$CXXFLAGS - CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS" + save_CFLAGS=$CFLAGS + CFLAGS="$TOOLKIT_INCLUDE $CFLAGS" AC_TRY_COMPILE( [ @@ -3371,7 +3485,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config ] ) - CXXFLAGS=$save_CXXFLAGS + CFLAGS=$save_CFLAGS fi @@ -3387,8 +3501,8 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config dnl it might happen that we found headers in one of the standard dnl paths but the libs are elsewhere but still in default (linker) dnl path -- try to compile a test program to check for this - save_CXXFLAGS=$CXXFLAGS - CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS" + save_CFLAGS=$CFLAGS + CFLAGS="$TOOLKIT_INCLUDE $CFLAGS" save_LIBS="$LIBS" LIBS="$GUI_TK_LIBRARY -lXm -lXmu -lXext -lX11" @@ -3410,7 +3524,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config ] ) - CXXFLAGS=$save_CXXFLAGS + CFLAGS=$save_CFLAGS LIBS="$save_LIBS" fi @@ -3424,8 +3538,8 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config if test "$libs_found" = "0"; then save_LIBS="$LIBS" LIBS="$GUI_TK_LIBRARY -lXm ${libp} -lXmu -lXext -lXt${libsm_ice} -lX11" - save_CXXFLAGS=$CXXFLAGS - CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS" + save_CFLAGS=$CFLAGS + CFLAGS="$TOOLKIT_INCLUDE $CFLAGS" AC_TRY_LINK( [ @@ -3448,7 +3562,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config ) LIBS="$save_LIBS" - CXXFLAGS=$save_CXXFLAGS + CFLAGS=$save_CFLAGS fi done fi @@ -3463,8 +3577,8 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config dnl elsewhere AC_CHECK_LIB(Sgm, [SgCreateList], [libsgm_link=" -lSgm"]) - save_CXXFLAGS=$CXXFLAGS - CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS" + save_CFLAGS=$CFLAGS + CFLAGS="$TOOLKIT_INCLUDE $CFLAGS" AC_CACHE_CHECK([for Motif 2], wx_cv_lib_motif2, @@ -3503,7 +3617,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config AC_DEFINE(__WXLESSTIF__,0) fi - CXXFLAGS=$save_CXXFLAGS + CFLAGS=$save_CFLAGS GUI_TK_LIBRARY="$GUI_TK_LIBRARY${libsgm_link} -lXm${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11" TOOLKIT=MOTIF @@ -3524,8 +3638,8 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config AC_CACHE_CHECK([for X11/xpm.h], wx_cv_x11_xpm_h, [ - save_CXXFLAGS=$CXXFLAGS - CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS" + save_CFLAGS=$CFLAGS + CFLAGS="$TOOLKIT_INCLUDE $CFLAGS" AC_TRY_COMPILE( [ @@ -3539,7 +3653,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config wx_cv_x11_xpm_h=no ) - CXXFLAGS=$save_CXXFLAGS + CFLAGS=$save_CFLAGS ] ) @@ -3562,8 +3676,8 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config [], [$GUI_TK_LIBRARY -lX11]) if test "$wxHAVE_XEXT_LIB" = 1; then - save_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS" + save_CFLAGS="$CFLAGS" + CFLAGS="$TOOLKIT_INCLUDE $CFLAGS" AC_MSG_CHECKING([for X11/extensions/shape.h]) AC_TRY_COMPILE([ @@ -3582,7 +3696,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config [ AC_MSG_RESULT([not found]) ]) - CXXFLAGS="$save_CXXFLAGS" + CFLAGS="$save_CFLAGS" fi fi @@ -3828,30 +3942,34 @@ dnl --------------------------------------------------------------------------- USE_OPENGL=0 if test "$wxUSE_OPENGL" = "yes"; then - if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = "1"; then + if test "$wxUSE_MGL" = 1 -o "$wxUSE_DFB" = "1"; then + AC_MSG_WARN([wxGLCanvas not implemented for this port, library will be compiled without it.]) + wxUSE_OPENGL="no" + elif test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = "1"; then OPENGL_LIBS="-framework OpenGL -framework AGL" elif test "$wxUSE_MSW" = 1; then OPENGL_LIBS="-lopengl32 -lglu32" else - dnl David Elliott: Without this snippet AC_CHECK_HEADER fails to find - dnl GL/gl.h on Mac OS X where it is located in - dnl /usr/X11R6/include/GL/gl.h: - - WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, GL/gl.h) + dnl adjust CPPFLAGS to include GL/gl.h location if necessary + dnl (/opt/graphics/OpenGL is for HP-UX systems, bug 925307) + AC_MSG_CHECKING([for OpenGL headers]) + WX_PATH_FIND_INCLUDES([$SEARCH_INCLUDE /opt/graphics/OpenGL/include], GL/gl.h) if test "$ac_find_includes" != "" ; then AC_MSG_RESULT(found in $ac_find_includes) WX_INCLUDE_PATH_EXIST($ac_find_includes, $CPPFLAGS) CPPFLAGS="$ac_path_to_include $CPPFLAGS" + else + AC_MSG_RESULT([not found]) fi - AC_CHECK_HEADER(GL/gl.h, - [ + AC_CHECK_HEADER(GL/gl.h, [ + AC_CHECK_HEADER(GL/glu.h, [ found_gl=0 AC_MSG_CHECKING([for -lGL]) - WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GL) + WX_PATH_FIND_LIBRARIES([$SEARCH_LIB /opt/graphics/OpenGL/lib],GL) if test "$ac_find_libraries" != "" ; then - AC_MSG_RESULT([yes]) + AC_MSG_RESULT([found in $ac_find_libraries]) WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS]) if test "$ac_path_to_link" != " -L/usr/lib" ; then @@ -3893,6 +4011,7 @@ if test "$wxUSE_OPENGL" = "yes"; then fi fi ]) + ]) if test "x$OPENGL_LIBS" = "x"; then dnl it should be an error and not a warning because OpenGL is not on @@ -3932,11 +4051,11 @@ fi if test "$wxUSE_SHARED" = "yes"; then dnl use versioned symbols if available on the platform - WX_VERSIONED_SYMBOLS([\$(top_builddir)version-script]) + WX_VERSIONED_SYMBOLS([\$(wx_top_builddir)/version-script]) case "${host}" in *-*-linux* | *-*-gnu* ) - SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib" + SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(wx_top_builddir)/lib" WXCONFIG_RPATH="-Wl,-rpath,\$libdir" ;; @@ -3955,7 +4074,7 @@ if test "$wxUSE_SHARED" = "yes"; then [],[], [ AC_MSG_RESULT([yes]) - SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib" + SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(wx_top_builddir)/lib" WXCONFIG_RPATH="-Wl,-rpath,\$libdir" ],[ AC_MSG_RESULT([no]) @@ -3965,7 +4084,7 @@ if test "$wxUSE_SHARED" = "yes"; then [],[], [ AC_MSG_RESULT([yes]) - SAMPLES_RPATH_FLAG="-Wl,-R,\$(top_builddir)lib" + SAMPLES_RPATH_FLAG="-Wl,-R,\$(wx_top_builddir)/lib" WXCONFIG_RPATH="-Wl,-R,\$libdir" ],[ AC_MSG_RESULT([no]) @@ -3973,7 +4092,7 @@ if test "$wxUSE_SHARED" = "yes"; then ]) LDFLAGS="$saveLdflags" else - SAMPLES_RPATH_FLAG="-R\$(top_builddir)lib" + SAMPLES_RPATH_FLAG="-R\$(wx_top_builddir)/lib" WXCONFIG_RPATH="-R\$libdir" fi ;; @@ -3981,7 +4100,7 @@ if test "$wxUSE_SHARED" = "yes"; then *-*-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) \$@" + SAMPLES_RPATH_POSTLINK="\$(wx_top_builddir)/change-install-names \$(LIBDIRNAME) \$(prefix) \$@" cat <change-install-names #!/bin/sh libnames=\`cd \${1} ; ls -1 | grep '\.[[0-9]][[0-9]]*\.dylib\$'\` @@ -4002,7 +4121,7 @@ EOF ;; *-*-hpux* ) - SAMPLES_RPATH_FLAG="-Wl,+b,\$(top_builddir)lib" + SAMPLES_RPATH_FLAG="-Wl,+b,\$(wx_top_builddir)/lib" WXCONFIG_RPATH="-Wl,+b,\$libdir" ;; @@ -4110,7 +4229,7 @@ if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1; then WX_RESOURCES_MACOSX_DATA="libwx_${TOOLCHAIN_NAME}.${wx_release_number}.rsrc" dnl add the resources target for wxMac - LIBWXMACRES="\$(top_builddir)lib/${WX_RESOURCES_MACOSX_ASCII}" + LIBWXMACRES="\$(wx_top_builddir)/lib/${WX_RESOURCES_MACOSX_ASCII}" AC_CHECK_PROG(REZ, Rez, Rez, /Developer/Tools/Rez) AC_CHECK_PROG(DEREZ, DeRez, DeRez, /Developer/Tools/DeRez) @@ -4167,6 +4286,7 @@ AC_CHECK_TYPES(ssize_t) dnl check what exactly size_t is on this machine - this is necessary to avoid dnl ambiguous overloads in several places, notably wx/string.h and wx/array.h +AC_LANG_PUSH(C++) dnl tests below use overloaded functions and so need C++ AC_CACHE_CHECK([if size_t is unsigned int], wx_cv_size_t_is_uint, [ @@ -4213,6 +4333,8 @@ else fi fi +AC_LANG_POP() dnl C++ + dnl --------------------------------------------------------------------------- dnl Checks for structures dnl --------------------------------------------------------------------------- @@ -4295,6 +4417,8 @@ 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 +dnl +dnl FIXME: replace this mess with WX_CHECK_FUNCS() AC_CHECK_FUNCS(snprintf vsnprintf) if test "$ac_cv_func_vsnprintf" = "yes"; then @@ -4438,7 +4562,7 @@ if test "$ac_cv_func_snprintf" = "yes"; then int main (void) { char buffer[128]; - snprintf (buffer, 128, "%2\$d %3\$d %1\$d", 1, 2, 3); + snprintf (buffer, 128, "%2$d %3$d %1$d", 1, 2, 3); if (strcmp ("2 3 1", buffer) == 0) exit (0); exit (1); @@ -4496,8 +4620,21 @@ if test "$wxUSE_UNICODE" = yes; then fi fi - dnl also look if we have wide char IO functions - AC_CHECK_FUNCS(wputc wputchar putws fputws wprintf vswprintf) + dnl also look if we have wide char IO functions, notice that [f]putws are + dnl declared in special widec.h under Solaris + wchar_headers="#include +#include " + case "${host}" in + *-*-solaris2* ) + AC_CHECK_HEADERS(widec.h) + if test "$ac_cv_header_widec_h" = "yes"; then + wchar_headers="$wchar_headers +#include " + fi + esac + + WX_CHECK_FUNCS(wputc wputchar putws fputws wprintf vswprintf,,, + [$wchar_headers]) dnl MinGW has a vswprintf with a different prototype, and dnl a _vsnwprintf with the correct prototype, but AC_CHECK_FUNCS @@ -4511,18 +4648,14 @@ if test "$wxUSE_UNICODE" = yes; then fi if test "x$ac_cv_header_fnmatch_h" = "xyes"; then - AC_CHECK_FUNCS(fnmatch) + WX_CHECK_FUNCS(fnmatch,,,[#include ]) fi 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 ]) + WX_CHECK_FUNCS(fsync) fi +WX_CHECK_FUNCS(round,,,[#include ]) dnl the following tests are for Unix(like) systems only if test "$TOOLKIT" != "MSW"; then @@ -4544,6 +4677,8 @@ if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then AC_CACHE_CHECK([for sa_handler type], wx_cv_type_sa_handler, [ + dnl C compiler happily compiles the code even if there is type mismatch + AC_LANG_PUSH(C++) AC_TRY_COMPILE([#include ], [ extern void testSigHandler(int); @@ -4555,6 +4690,7 @@ if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then ], [ wx_cv_type_sa_handler=void ]) + AC_LANG_POP() ]) AC_DEFINE_UNQUOTED(wxTYPE_SA_HANDLER, $wx_cv_type_sa_handler) @@ -4565,6 +4701,7 @@ dnl backtrace() and backtrace_symbols() for wxStackWalker if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then AC_CACHE_CHECK([for backtrace() in ], wx_cv_func_backtrace, [ + AC_LANG_PUSH(C++) AC_TRY_COMPILE([#include ], [ void *trace[1]; @@ -4576,6 +4713,7 @@ if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then wx_cv_func_backtrace=yes, wx_cv_func_backtrace=no ) + AC_LANG_POP() ] ) @@ -4586,6 +4724,7 @@ if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then else AC_CACHE_CHECK([for __cxa_demangle() in ], wx_cv_func_cxa_demangle, [ + AC_LANG_PUSH(C++) AC_TRY_LINK([#include ], [ int rc; @@ -4594,6 +4733,7 @@ if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then wx_cv_func_cxa_demangle=yes, wx_cv_func_cxa_demangle=no ) + AC_LANG_POP() ] ) @@ -4640,6 +4780,7 @@ AC_CACHE_CHECK(for statfs, wx_cv_func_statfs, if test "$wx_cv_func_statfs" = "yes"; then dnl check whether we have its dcelaration too: some systems (AIX 4) lack it AC_CACHE_CHECK(for statfs declaration, wx_cv_func_statfs_decl, + AC_LANG_PUSH(C++) AC_TRY_COMPILE( [ #if defined(__BSD__) @@ -4656,6 +4797,7 @@ if test "$wx_cv_func_statfs" = "yes"; then wx_cv_func_statfs_decl=yes, wx_cv_func_statfs_decl=no ) + AC_LANG_POP() ) if test "$wx_cv_func_statfs_decl" = "yes"; then @@ -4688,6 +4830,7 @@ else 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_CACHE_CHECK(for statvfs argument type, wx_cv_type_statvfs_t, + AC_LANG_PUSH(C++) AC_TRY_COMPILE( [ #include @@ -4719,6 +4862,7 @@ else ) ] ) + AC_LANG_POP() ) if test "$wx_cv_type_statvfs_t" != "unknown"; then @@ -4780,9 +4924,8 @@ if test "$HAVE_SOME_SLEEP_FUNC" != 1; then POSIX4_LINK=" -lposix4" ], [ - AC_CHECK_FUNCS(usleep, - AC_DEFINE(HAVE_USLEEP), - AC_MSG_WARN([wxSleep() function will not work]) + WX_CHECK_FUNCS(usleep,, + AC_MSG_WARN([wxSleep() function will not work]) ) ] ) @@ -4791,7 +4934,10 @@ if test "$HAVE_SOME_SLEEP_FUNC" != 1; then fi dnl check for uname (POSIX) and gethostname (BSD) -AC_CHECK_FUNCS(uname gethostname, break) +WX_CHECK_FUNCS(uname,,,[#include ]) +if test "$wx_cv_func_uname" != yes; then + WX_CHECK_FUNCS(gethostname) +fi WX_CHECK_FUNCS(strtok_r, [], [], [#define _REENTRANT]) @@ -4829,7 +4975,10 @@ if test "x$INET_LINK" != "x"; then INET_LINK=" -l$INET_LINK" fi +WX_CHECK_FUNCS(fdopen) + fi + dnl if !MSW @@ -4877,14 +5026,14 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then dnl the code below: dnl - dnl defines THREADS_LINK and THREADS_CXXFLAGS which are the options + dnl defines THREADS_LINK and THREADS_CFLAGS which are the options dnl necessary to build the MT programs for the linker and compiler dnl respectively dnl dnl sets wxUSE_THREADS=1 if thread support is activated THREADS_LINK= - THREADS_CXXFLAGS= + THREADS_CFLAGS= if test "$wxUSE_THREADS" = "yes" ; then if test "$USE_BEOS" = 1; then @@ -4975,7 +5124,7 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then -*) AC_MSG_CHECKING([whether pthreads work with $flag]) - THREADS_CXXFLAGS="$flag" + THREADS_CFLAGS="$flag" ;; *) @@ -4985,16 +5134,16 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then esac save_LIBS="$LIBS" - save_CXXFLAGS="$CXXFLAGS" + save_CFLAGS="$CFLAGS" LIBS="$THREADS_LINK $LIBS" - CXXFLAGS="$THREADS_CXXFLAGS $CXXFLAGS" + CFLAGS="$THREADS_CFLAGS $CFLAGS" AC_TRY_LINK([#include ], [pthread_create(0,0,0,0);], THREADS_OK=yes) LIBS="$save_LIBS" - CXXFLAGS="$save_CXXFLAGS" + CFLAGS="$save_CFLAGS" AC_MSG_RESULT($THREADS_OK) if test "x$THREADS_OK" = "xyes"; then @@ -5002,7 +5151,7 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then fi THREADS_LINK="" - THREADS_CXXFLAGS="" + THREADS_CFLAGS="" done if test "x$THREADS_OK" != "xyes"; then @@ -5011,7 +5160,7 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then else dnl yes, these special compiler flags should be used with the dnl linker as well - LDFLAGS="$THREADS_CXXFLAGS $LDFLAGS" + LDFLAGS="$THREADS_CFLAGS $LDFLAGS" LIBS="$THREADS_LINK $LIBS" AC_MSG_CHECKING([if more special flags are required for pthreads]) @@ -5043,11 +5192,11 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then esac AC_MSG_RESULT(${flag}) if test "x$flag" != xno; then - THREADS_CXXFLAGS="$THREADS_CXXFLAGS $flag" + THREADS_CFLAGS="$THREADS_CFLAGS $flag" fi dnl don't add these options to CPPFLAGS as cpp might not know them - WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS $THREADS_CXXFLAGS" + WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS $THREADS_CFLAGS" fi fi @@ -5198,8 +5347,8 @@ else AC_CACHE_CHECK([if compiler supports -mthreads], wx_cv_cflags_mthread, [ - CXXFLAGS_OLD="$CXXFLAGS" - CXXFLAGS="-mthreads $CXXFLAGS" + CFLAGS_OLD="$CFLAGS" + CFLAGS="-mthreads $CFLAGS" AC_TRY_COMPILE([], [], wx_cv_cflags_mthread=yes, wx_cv_cflags_mthread=no @@ -5209,16 +5358,15 @@ else if test "$wx_cv_cflags_mthread" = "yes"; then dnl it does, use it - WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -mthreads" + WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -mthreads" LDFLAGS="$LDFLAGS -mthreads" else dnl it doesn't - CXXFLAGS="$CXXFLAGS_OLD" + CFLAGS="$CFLAGS_OLD" fi ;; *-pc-os2*emx ) WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -Zmt -D__ST_MT_ERRNO__" - WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -Zmt -D__ST_MT_ERRNO__" LDFLAGS="$LDFLAGS -Zmt" ;; esac @@ -5239,7 +5387,7 @@ dnl AC_CHECK_FUNC(getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO), [ dnl sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments AX_FUNC_WHICH_GETHOSTBYNAME_R if test "x$ac_cv_func_which_gethostbyname_r" = "xno" -o \ - "x$ac_cv_func_which_gethostbyname_r" = "xunknown" ; then + "x$ac_cv_func_which_gethostbyname_r" = "xunknown" ; then AC_CHECK_FUNC(gethostbyname, [ AC_DEFINE(HAVE_GETHOSTBYNAME) ]) fi dnl A similar test for getservbyname_r @@ -5248,7 +5396,7 @@ dnl AC_CHECK_FUNC(getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO), [ dnl doing the test already exists, so using it is easy enough. - SN AC_raf_FUNC_WHICH_GETSERVBYNAME_R if test "x$ac_cv_func_which_getservbyname_r" = "xno" -o \ - "x$ac_cv_func_which_getservbyname_r" = "xunknown" ; then + "x$ac_cv_func_which_getservbyname_r" = "xunknown" ; then AC_CHECK_FUNCS(getservbyname,[ AC_DEFINE(HAVE_GETSERVBYNAME) ]) fi dnl For gethostbyaddr_r, we currently do no separate test, instead, we @@ -5562,37 +5710,40 @@ fi dnl Unix implementation needs additional checks because audio support dnl comes in many favours: 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 SNDCTL_DSP_SPEED in sys/soundcard.h], ac_cv_header_sys_soundcard, [ - AC_TRY_LINK([ - #include - #include - ], - [ - ioctl(0, SNDCTL_DSP_SPEED, 0); - ], - ac_cv_header_sys_soundcard=yes, - [ - saveLibs="$LIBS" - LIBS="$saveLibs -lossaudio" - AC_TRY_LINK([ - #include - #include - ], - [ - ioctl(0, SNDCTL_DSP_SPEED, 0); - ], - ac_cv_header_sys_soundcard=yes, - [ - LIBS="$saveLibs" - ac_cv_header_sys_soundcard=no - ] - ) - ] - ) - ]) + dnl mmedia doesn't compile with wxMGL, remove this if this is ever fixed + if test "$wxUSE_MGL" != 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 SNDCTL_DSP_SPEED in sys/soundcard.h], ac_cv_header_sys_soundcard, [ + AC_TRY_LINK([ + #include + #include + ], + [ + ioctl(0, SNDCTL_DSP_SPEED, 0); + ], + ac_cv_header_sys_soundcard=yes, + [ + saveLibs="$LIBS" + LIBS="$saveLibs -lossaudio" + AC_TRY_LINK([ + #include + #include + ], + [ + ioctl(0, SNDCTL_DSP_SPEED, 0); + ], + ac_cv_header_sys_soundcard=yes, + [ + LIBS="$saveLibs" + ac_cv_header_sys_soundcard=no + ] + ) + ] + ) + ]) + fi if test "$ac_cv_header_sys_soundcard" = "yes"; then AC_DEFINE(HAVE_SYS_SOUNDCARD_H) @@ -5600,6 +5751,7 @@ if test "$USE_UNIX" = "1" ; then DISABLED_CONTRIB="$DISABLED_CONTRIB mmedia" fi fi + WITH_PLUGIN_SDL=0 if test "$wxUSE_SOUND" = "yes"; then if test "$USE_UNIX" = "1" ; then @@ -5607,6 +5759,7 @@ if test "$wxUSE_SOUND" = "yes"; then AM_PATH_SDL([1.2.0], [ EXTRALIBS_SDL="$SDL_LIBS" + CFLAGS="$SDL_CFLAGS $CFLAGS" CXXFLAGS="$SDL_CFLAGS $CXXFLAGS" AC_DEFINE(wxUSE_LIBSDL) ], @@ -5615,20 +5768,30 @@ if test "$wxUSE_SOUND" = "yes"; then WITH_PLUGIN_SDL=1 fi fi + else + dnl wxMGL doesn't support sound under DOS, only under Unix + if test "$wxUSE_MGL" = 1; then + AC_MSG_WARN([wxSound not supported in MGL under DOS... disabled]) + wxUSE_SOUND="no" + fi fi +fi +if test "$wxUSE_SOUND" = "yes"; then AC_DEFINE(wxUSE_SOUND) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sound" fi if test "$WXGTK20" = 1; then + PKG_PROG_PKG_CONFIG() + if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then if test "$wxUSE_LIBGNOMEPRINT" = "yes" ; then PKG_CHECK_MODULES(LIBGNOMEPRINTUI, [libgnomeprintui-2.2 >= 2.8], [ -dnl EXTRALIBS_GNOMEPRINT="$LIBGNOMEPRINTUI_LIBS" + CFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CFLAGS" CXXFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CXXFLAGS" AC_DEFINE(wxUSE_LIBGNOMEPRINT) ], @@ -5639,16 +5802,14 @@ dnl EXTRALIBS_GNOMEPRINT="$LIBGNOMEPRINTUI_LIBS" ) fi fi -fi -if test "$WXGTK20" = 1; then if test "$wxUSE_MIMETYPE" = "yes" ; then if test "$wxUSE_LIBGNOMEVFS" = "yes" ; then PKG_CHECK_MODULES(GNOMEVFS, [gnome-vfs-2.0 >= 2.0], [ -dnl EXTRALIBS_GNOMEVFS="$LIBGNOMEVFS_LIBS" + CFLAGS="$GNOMEVFS_CFLAGS $CFLAGS" CXXFLAGS="$GNOMEVFS_CFLAGS $CXXFLAGS" AC_DEFINE(wxUSE_LIBGNOMEVFS) ], @@ -5659,14 +5820,13 @@ dnl EXTRALIBS_GNOMEVFS="$LIBGNOMEVFS_LIBS" ) fi fi -fi -if test "$WXGTK20" = 1; then if test "$wxUSE_LIBHILDON" = "yes" ; then - PKG_CHECK_MODULES(HILDON, + PKG_CHECK_MODULES(HILDON, [hildon-lgpl >= 0.9], [ EXTRALIBS_HILDON="$HILDON_LIBS" + CFLAGS="$CFLAGS $HILDON_CFLAGS" CXXFLAGS="$CXXFLAGS $HILDON_CFLAGS" AC_DEFINE(wxUSE_LIBHILDON) ], @@ -5698,16 +5858,13 @@ if test "$wxUSE_FFILE" = "yes"; then AC_DEFINE(wxUSE_FFILE) fi -if test "$wxUSE_FILESYSTEM" = "yes"; then - AC_DEFINE(wxUSE_FILESYSTEM) -fi - -if test "$wxUSE_FS_ZIP" = "yes"; then - AC_DEFINE(wxUSE_FS_ZIP) -fi - if test "$wxUSE_ARCHIVE_STREAMS" = "yes"; then - AC_DEFINE(wxUSE_ARCHIVE_STREAMS) + if test "$wxUSE_STREAMS" != yes; then + AC_MSG_WARN(wxArchive requires wxStreams... disabled) + wxUSE_ARCHIVE_STREAMS=no + else + AC_DEFINE(wxUSE_ARCHIVE_STREAMS) + fi fi if test "$wxUSE_ZIPSTREAM" = "yes"; then @@ -5720,6 +5877,39 @@ if test "$wxUSE_ZIPSTREAM" = "yes"; then fi fi +if test "$wxUSE_TARSTREAM" = "yes"; then + if test "$wxUSE_ARCHIVE_STREAMS" != "yes"; then + AC_MSG_WARN(wxTar requires wxArchive... disabled) + else + AC_DEFINE(wxUSE_TARSTREAM) + fi +fi + +if test "$wxUSE_FILESYSTEM" = "yes"; then + if test "$wxUSE_STREAMS" != yes -o \( "$wxUSE_FILE" != yes -a "$wxUSE_FFILE" != yes \); then + AC_MSG_WARN(wxFileSystem requires wxStreams and wxFile or wxFFile... disabled) + wxUSE_FILESYSTEM=no + else + AC_DEFINE(wxUSE_FILESYSTEM) + fi +fi + +if test "$wxUSE_FS_ARCHIVE" = "yes"; then + if test "$wxUSE_FILESYSTEM" != yes -o "$wxUSE_ARCHIVE_STREAMS" != yes; then + AC_MSG_WARN(wxArchiveFSHandler requires wxArchive and wxFileSystem... disabled) + else + AC_DEFINE(wxUSE_FS_ARCHIVE) + fi +fi + +if test "$wxUSE_FS_ZIP" = "yes"; then + if test "$wxUSE_FS_ARCHIVE" != yes; then + AC_MSG_WARN(wxZipFSHandler requires wxArchiveFSHandler... disabled) + else + AC_DEFINE(wxUSE_FS_ZIP) + fi +fi + if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then if test "$USE_UNIX" != 1; then AC_MSG_WARN([Catching fatal exceptions not currently supported on this system, wxApp::OnFatalException will not be called]) @@ -5839,10 +6029,12 @@ dnl --------------------------------------------------------------------------- if test "$wxUSE_DATETIME" = "yes"; then dnl check for strptime and for its declaration as some systems lack it + dnl FIXME: use WX_CHECK_FUNCS instead AC_CHECK_FUNCS(strptime) if test "$ac_cv_func_strptime" = "yes"; then AC_CACHE_CHECK([for strptime declaration], wx_cv_func_strptime_decl, [ + AC_LANG_PUSH(C++) AC_TRY_COMPILE( [ #include @@ -5854,6 +6046,7 @@ if test "$wxUSE_DATETIME" = "yes"; then wx_cv_func_strptime_decl=yes, wx_cv_func_strptime_decl=no ) + AC_LANG_POP() ] ) fi @@ -5866,6 +6059,7 @@ if test "$wxUSE_DATETIME" = "yes"; then AC_CACHE_CHECK(for timezone variable in , wx_cv_var_timezone, [ + AC_LANG_PUSH(C++) AC_TRY_COMPILE( [ #include @@ -5911,6 +6105,7 @@ if test "$wxUSE_DATETIME" = "yes"; then ) ] ) + AC_LANG_POP() ] ) @@ -6035,6 +6230,7 @@ if test "$wxUSE_SOCKETS" = "yes" ; then AC_CACHE_CHECK([what is the type of the third argument of getsockname], wx_cv_type_getsockname3, [ + AC_LANG_PUSH(C++) AC_TRY_COMPILE( [ #include @@ -6052,9 +6248,9 @@ if test "$wxUSE_SOCKETS" = "yes" ; then dnl converting between incompatible pointer types, so dnl try to use it to get the correct behaviour at dnl least with gcc (otherwise we'd always use size_t) - CXXFLAGS_OLD="$CXXFLAGS" + CFLAGS_OLD="$CFLAGS" if test "$GCC" = yes ; then - CXXFLAGS="-Werror $CXXFLAGS" + CFLAGS="-Werror $CFLAGS" fi AC_TRY_COMPILE( @@ -6081,9 +6277,10 @@ if test "$wxUSE_SOCKETS" = "yes" ; then ) ) - CXXFLAGS="$CXXFLAGS_OLD" + CFLAGS="$CFLAGS_OLD" ] ) + AC_LANG_POP() ]) if test "$wx_cv_type_getsockname3" = "unknown"; then @@ -6107,17 +6304,12 @@ if test "$wxUSE_SOCKETS" = "yes" ; then ], wx_cv_type_getsockopt5=socklen_t, [ - dnl the compiler will compile the version with size_t - dnl even if the real type of the last parameter is int - dnl but it should give at least a warning about - dnl converting between incompatible pointer types, so - dnl try to use it to get the correct behaviour at - dnl least with gcc (otherwise we'd always use size_t) - CXXFLAGS_OLD="$CXXFLAGS" - if test "$GCC" = yes ; then - CXXFLAGS="-Werror $CXXFLAGS" - fi - + dnl Note that the rules for compatibility of pointers + dnl are somewhat different between C and C++, so code + dnl that fails in C++ may not even give a warning about + dnl converting between incompatible pointer types in C. + dnl So this test needs to be done in C++ mode. + AC_LANG_PUSH(C++) AC_TRY_COMPILE( [ #include @@ -6141,8 +6333,7 @@ if test "$wxUSE_SOCKETS" = "yes" ; then wx_cv_type_getsockopt5=unknown ) ) - - CXXFLAGS="$CXXFLAGS_OLD" + AC_LANG_POP() ] ) ]) @@ -6221,18 +6412,29 @@ if test "$wxUSE_GUI" = "yes" -a "$wxUSE_JOYSTICK" = "yes"; then if test "$USE_DARWIN" = 1; then dnl check for a bug in the headers, some have bad setEventCallout AC_MSG_CHECKING([headers have declarations needed for joystick support]) + AC_LANG_PUSH(C++) AC_TRY_COMPILE( [ #include ], [ IOHIDQueueInterface *qi = NULL; IOHIDCallbackFunction cb = NULL; qi->setEventCallout(NULL, cb, NULL, NULL); ], [ wxUSE_JOYSTICK=yes ] ) + AC_LANG_POP() AC_MSG_RESULT($wxUSE_JOYSTICK) fi dnl joystick support is only for Linux 2.1.x or greater else - AC_CHECK_HEADERS(linux/joystick.h, wxUSE_JOYSTICK=yes) + dnl wxJoystick not supported by wxMGL at all + if test "$wxUSE_MGL" != "1"; then + dnl notice the dummy includes argument: without it, AC_CHECK_HEADER + dnl checks only whether the header can be preprocessed, not that it + dnl can be compiled and in Linux 2.6.16 joystick.h is present but + dnl can't be compiled because of an error and with the default + dnl AC_CHECK_HEADER semantics we'd still detect it in this case and + dnl build would fail later + AC_CHECK_HEADER(linux/joystick.h, wxUSE_JOYSTICK=yes,,[#include ]) + fi fi if test "$wxUSE_JOYSTICK" = "yes"; then @@ -6383,7 +6585,7 @@ if test "$USE_WIN32" = 1 -a \( "$wxUSE_DATAOBJ" = "yes" \ if test "$wxUSE_OLE" = "yes" ; then AC_DEFINE(wxUSE_OLE) AC_DEFINE(wxUSE_OLE_AUTOMATION) - AC_DEFINE(wxUSE_OLE_ACTIVEX) + AC_DEFINE(wxUSE_ACTIVEX) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS oleauto" fi fi @@ -6422,8 +6624,8 @@ if test "$wxUSE_IPC" = "yes"; then fi if test "$wxUSE_DATAOBJ" = "yes"; then - if test "$wxUSE_MGL" = 1; then - AC_MSG_WARN([wxDataObject not yet supported under MGL... disabled]) + if test "$wxUSE_MGL" = 1 -o "$wxUSE_DFB" = 1; then + AC_MSG_WARN([wxDataObject not yet supported under $TOOLKIT... disabled]) wxUSE_DATAOBJ=no else AC_DEFINE(wxUSE_DATAOBJ) @@ -6435,8 +6637,8 @@ else fi if test "$wxUSE_CLIPBOARD" = "yes"; then - if test "$wxUSE_MGL" = 1; then - AC_MSG_WARN([Clipboard not yet supported under MGL... disabled]) + if test "$wxUSE_MGL" = 1 -o "$wxUSE_DFB" = 1; then + AC_MSG_WARN([Clipboard not yet supported under $TOOLKIT... disabled]) wxUSE_CLIPBOARD=no fi @@ -6453,18 +6655,9 @@ if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then fi fi - if test "$wxUSE_MOTIF" = 1; then - AC_MSG_WARN([Drag and drop not yet supported under Motif... disabled]) - wxUSE_DRAG_AND_DROP=no - fi - - if test "$wxUSE_X11" = 1; then - AC_MSG_WARN([Drag and drop not yet supported under X11... disabled]) - wxUSE_DRAG_AND_DROP=no - fi - - if test "$wxUSE_MGL" = 1; then - AC_MSG_WARN([Drag and drop not yet supported under MGL... disabled]) + if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_X11" = 1 -o "$wxUSE_MGL" = 1 -o \ + "$wxUSE_DFB" = 1; then + AC_MSG_WARN([Drag and drop not yet supported under $TOOLKIT... disabled]) wxUSE_DRAG_AND_DROP=no fi @@ -6528,6 +6721,12 @@ if test "$wxUSE_CARET" = "yes"; then SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS caret" fi +if test "$wxUSE_COLLPANE" = "yes"; then + AC_DEFINE(wxUSE_COLLPANE) + USES_CONTROLS=1 + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS collpane" +fi + if test "$wxUSE_COMBOBOX" = "yes"; then AC_DEFINE(wxUSE_COMBOBOX) USES_CONTROLS=1 @@ -6585,8 +6784,13 @@ if test "$wxUSE_FONTPICKERCTRL" = "yes"; then fi if test "$wxUSE_DISPLAY" = "yes"; then - AC_DEFINE(wxUSE_DISPLAY) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS display multimon" + if test "$wxUSE_DFB" = 1 -o "$wxUSE_MGL" = 1; then + AC_MSG_WARN([wxDisplay not yet supported under $TOOLKIT... disabled]) + wxUSE_DISPLAY=no + else + AC_DEFINE(wxUSE_DISPLAY) + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS display multimon" + fi fi if test "$wxUSE_DETECT_SM" = "yes"; then @@ -6684,6 +6888,11 @@ if test "$wxUSE_SCROLLBAR" = "yes"; then SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS scroll scrollsub" fi +if test "$wxUSE_SEARCHCTRL" = "yes"; then + AC_DEFINE(wxUSE_SEARCHCTRL) + USES_CONTROLS=1 +fi + if test "$wxUSE_SLIDER" = "yes"; then AC_DEFINE(wxUSE_SLIDER) USES_CONTROLS=1 @@ -6817,8 +7026,8 @@ if test "$wxUSE_POPUPWIN" = "yes"; then fi if test "$wxUSE_DIALUP_MANAGER" = "yes"; then - if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then - AC_MSG_WARN([Dialup manager not yet supported under Mac OS X... disabled]) + if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 -o "$wxUSE_MGL" = 1; then + AC_MSG_WARN([Dialup manager not supported on this platform... disabled]) else AC_DEFINE(wxUSE_DIALUP_MANAGER) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dialup" @@ -6887,7 +7096,10 @@ if test "$wxUSE_WEBKIT" = "yes"; then AC_MSG_WARN([WebKit headers not found; disabling wxWebKit]) wxUSE_WEBKIT=no ], - [#include ]) + [ + #include + #include + ]) CPPFLAGS="$old_CPPFLAGS" elif test "$wxUSE_COCOA" = 1; then AC_DEFINE(wxUSE_WEBKIT) @@ -6948,7 +7160,12 @@ if test "$wxUSE_VALIDATORS" = "yes"; then fi if test "$wxUSE_PALETTE" = "yes" ; then - AC_DEFINE(wxUSE_PALETTE) + if test "$wxUSE_DFB" = 1; then + AC_MSG_WARN([wxPalette not yet supported under DFB... disabled]) + wxUSE_PALETTE=no + else + AC_DEFINE(wxUSE_PALETTE) + fi fi if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_MSLU" = "yes" ; then @@ -6978,6 +7195,10 @@ if test "$wxUSE_IMAGE" = "yes" ; then AC_DEFINE(wxUSE_PCX) fi + if test "$wxUSE_TGA" = "yes" ; then + AC_DEFINE(wxUSE_TGA) + fi + if test "$wxUSE_IFF" = "yes" ; then AC_DEFINE(wxUSE_IFF) fi @@ -7079,15 +7300,11 @@ if test "$wxUSE_GRAPHICS_CONTEXT" = "yes"; then elif test "$wxUSE_GTK" != 1; then dnl for other builds we'll just wing it for now... AC_DEFINE(wxUSE_GRAPHICS_CONTEXT) - else + else dnl ...but let's check for cairo availability for wxGTK builds PKG_CHECK_MODULES(CAIRO, cairo, - [ - AC_DEFINE(wxUSE_GRAPHICS_CONTEXT) - ], - [ - AC_MSG_WARN([Cairo library not found, unable to set wxUSE_GRAPHICS_CONTEXT]) - ] + [AC_DEFINE(wxUSE_GRAPHICS_CONTEXT)], + [AC_MSG_WARN([Cairo library not found, unable to set wxUSE_GRAPHICS_CONTEXT])] ) fi fi @@ -7238,9 +7455,6 @@ dnl --------------------------------------------------------------------------- dnl Output the makefiles and such from the results found above dnl --------------------------------------------------------------------------- -dnl no more tests from here -AC_LANG_POP - dnl all additional libraries (except wxWidgets itself) we link with if test "$wxUSE_MAC" = 1 ; then @@ -7349,7 +7563,7 @@ dnl come first and the one with setup.h should be before $(top_srcdir)/include dnl in case the latter contains setup.h used by non-autoconf makefiles (e.g. dnl CodeWarrior): CPPFLAGS=`echo $WXCONFIG_CPPFLAGS \ - -I\\${top_builddir}lib/wx/include/${TOOLCHAIN_FULLNAME} \ + -I\\${wx_top_builddir}/lib/wx/include/${TOOLCHAIN_FULLNAME} \ -I\\${top_srcdir}/include $TOOLKIT_INCLUDE \ $CPPFLAGS ` @@ -7545,7 +7759,7 @@ if test "$wxUSE_WINE" = "yes"; then fi dnl --------------------------------------------------------------------------- -dnl Add Universal binary support +dnl Add Universal binary support dnl Note we don't do this earlier because adding these cpp/ld flags could dnl cause configure tests to fail. dnl --------------------------------------------------------------------------- @@ -7555,7 +7769,7 @@ if test "$wxUSE_MAC" = 1 ; then 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 + 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'"} @@ -7570,9 +7784,70 @@ if test "$wxUSE_MAC" = 1 ; then # The makefile currently uses AR and RANLIB, which libtool apparently supercedes. fi +dnl gcc 3.4 has a pch bug which truncates wide character constants in headers. +dnl Hopefully for a non-unicode build there aren't any wide constants in +dnl headers, but for a unicode build it's best to disable pch. +if test "$wxUSE_UNICODE" = yes -a "$GCC" = yes -a "$bk_use_pch" != no +then + AC_CACHE_CHECK( + [for gcc precompiled header bug], + [wx_cv_gcc_pch_bug], + [[ + echo '#include + const wchar_t test_var[] = L"awidetest";' > conftest.h + + echo '#include "conftest.h" + int main() + { + printf("%ls", test_var); + return 0; + }' > conftest.cpp + + wx_cv_gcc_pch_bug="pch not supported" + + if $CXX conftest.h >/dev/null 2>&1 + then + wx_cv_gcc_pch_bug= + + if $CXX -o conftest$PROGRAM_EXT conftest.cpp >/dev/null 2>&1 + then + if tr -dc '[a-z]' < conftest$PROGRAM_EXT | + grep awidetest >/dev/null + then + wx_cv_gcc_pch_bug=no + else + wx_cv_gcc_pch_bug=yes + fi + fi + fi + + rm -f conftest.h conftest.gch conftest.cpp conftest$PROGRAM_EXT + ]]) + + if test "$wx_cv_gcc_pch_bug" = yes; then + dnl make the default for pch 'no' + dnl further below check whether the user overrode and warn them + bk_use_pch=no + fi +fi + AC_BAKEFILE([m4_include(autoconf_inc.m4)]) -dnl HACK ALERT!! +dnl find out if the compiler supports PCH +dnl +dnl TODO: this should be in bakefile +if test $GCC_PCH = 1 +then + if test "$wx_cv_gcc_pch_bug" = yes; then + AC_MSG_WARN([*** Precompiled header support is broken on this compiler]) + AC_MSG_WARN([*** --enable-precomp-headers is not recommended]) + AC_MSG_WARN([*** see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13361]) + fi + + CPPFLAGS="-DWX_PRECOMP $CPPFLAGS" +fi + +dnl HACK ALERT!! dnl For now, we need to alter bk-deps not to generate deps dnl when we've configured a Universal binary build. dnl The next version of Bakefile will have the correct fix for this @@ -7604,8 +7879,8 @@ if test "$wxUSE_SHARED" = "yes"; then *-pc-os2_emx | *-pc-os2-emx ) SHARED_LD_CC="`pwd`/dllar.sh -name-mangler-script ./dllnames.sh -libf INITINSTANCE -libf TERMINSTANCE -o" SHARED_LD_CXX="`pwd`/dllar.sh -name-mangler-script ./dllnames.sh -libf INITINSTANCE -libf TERMINSTANCE -o" - cp -p ${srcdir}/src/os2/dllnames.sh . - cp -p ${srcdir}/src/os2/dllar.sh . + cp -p ${srcdir}/src/os2/dllnames.sh . + cp -p ${srcdir}/src/os2/dllar.sh . ;; esac else @@ -7624,13 +7899,6 @@ if test "$wxUSE_OMF" = "yes"; then esac fi -dnl find out if the compiler supports PCH -dnl -dnl TODO: this should be in bakefile -if test $GCC_PCH = 1 ; then - CPPFLAGS="-DWX_PRECOMP $CPPFLAGS" -fi - dnl TOOLCHAIN_DEFS should be used for both wx and client code WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS $TOOLCHAIN_DEFS" @@ -7760,7 +8028,10 @@ AC_CONFIG_FILES([ lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}:wx-config-inplace. [ chmod +x lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} ], [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ]) -AC_CONFIG_FILES([ version-script Makefile ]) +if test "$wx_cv_version_script" = "yes"; then + AC_CONFIG_FILES(version-script) +fi +AC_CONFIG_FILES(Makefile) AC_CONFIG_COMMANDS([wx-config], [ rm -f wx-config @@ -7788,6 +8059,10 @@ fi dnl Add tests to the list of subdirs if cppunit 1.8.0+ is detected AM_PATH_CPPUNIT(1.8.0, [SUBDIRS="$SUBDIRS tests"]) +if test "$USE_UNIX" != "1" -a "$USE_WIN32" != "1"; then + DISABLED_CONTRIB="$DISABLED_CONTRIB net" +fi + for subdir in `echo $SUBDIRS`; do if test -d ${srcdir}/${subdir} ; then if test "$wxUSE_GUI" = "yes"; then @@ -7807,7 +8082,7 @@ for subdir in `echo $SUBDIRS`; do 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"` + 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