dnl initialization
dnl ---------------------------------------------------------------------------
-AC_INIT([wxWidgets], [2.7.1], [wx-dev@lists.wxwidgets.org])
+AC_INIT([wxWidgets], [2.8.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])
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=8
+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
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)
SO_SUFFIX=dll
PROGRAM_EXT=".exe"
DEFAULT_DEFAULT_wxUSE_MSW=1
- DEFAULT_STD_FLAG=no
;;
*-pc-msdosdjgpp )
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
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
DEFAULT_wxUSE_DATEPICKCTRL=no
DEFAULT_wxUSE_DISPLAY=no
+ DEFAULT_wxUSE_DETECT_SM=no
DEFAULT_wxUSE_DIRPICKERCTRL=no
DEFAULT_wxUSE_FILEPICKERCTRL=no
DEFAULT_wxUSE_FONTPICKERCTRL=no
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
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
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
DEFAULT_wxUSE_DATEPICKCTRL=yes
DEFAULT_wxUSE_DISPLAY=yes
+ DEFAULT_wxUSE_DETECT_SM=yes
DEFAULT_wxUSE_DIRPICKERCTRL=yes
DEFAULT_wxUSE_FILEPICKERCTRL=yes
DEFAULT_wxUSE_FONTPICKERCTRL=yes
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
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)
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)
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 ---------------------------------------------------------------------------
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
DEFAULT_wxUSE_DISPLAY=yes
+ DEFAULT_wxUSE_DETECT_SM=yes
DEFAULT_wxUSE_DIRPICKERCTRL=yes
DEFAULT_wxUSE_FILEPICKERCTRL=yes
DEFAULT_wxUSE_FONTPICKERCTRL=yes
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
DEFAULT_wxUSE_COMBOBOX=no
DEFAULT_wxUSE_DATEPICKCTRL=no
DEFAULT_wxUSE_DISPLAY=no
+ DEFAULT_wxUSE_DETECT_SM=no
DEFAULT_wxUSE_DIRPICKERCTRL=no
DEFAULT_wxUSE_FILEPICKERCTRL=no
DEFAULT_wxUSE_FONTPICKERCTRL=no
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)
WX_ARG_ENABLE(datepick, [ --enable-datepick use wxDatePickerCtrl class], wxUSE_DATEPICKCTRL)
WX_ARG_ENABLE(dirpicker, [ --enable-dirpicker use wxDirPickerCtrl class], wxUSE_DIRPICKERCTRL)
WX_ARG_ENABLE(display, [ --enable-display use wxDisplay class], wxUSE_DISPLAY)
+WX_ARG_ENABLE(detect_sm, [ --enable-detect_sm use code to detect X11 session manager], wxUSE_DETECT_SM)
WX_ARG_ENABLE(filepicker, [ --enable-filepicker use wxFilePickerCtrl class], wxUSE_FILEPICKERCTRL)
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(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)
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 ---------------------------------------------------------------------------
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
;;
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
+ 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)
+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 )
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).
wx_cv_gccversion="EMX2"
)
])
- AC_LANG_POP
if test "$wx_cv_gccversion" = "EMX2"; then
LIBS="$LIBS -lstdcpp"
LDFLAGS="$LDFLAGS -Zsysv-signals"
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)
;;
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
[if -D__STDC_EXT__ is required],
wx_cv_STDC_EXT_required,
[
+ AC_LANG_PUSH(C++)
AC_TRY_COMPILE(
[],
[
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
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
char_type="char"
fi
- dnl check if <string> declares std::wstring
- AC_MSG_CHECKING([for $std_string in <string>])
- AC_TRY_COMPILE([#include <string>],
- [$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 <stddef.h>
- # endif
- # include <wchar.h>
- #endif
- #ifdef HAVE_STDLIB_H
- # include <stdlib.h>
- #endif
- #include <stdio.h>
- #include <string>
- ],
- [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 <string> declares std::[w]string
+ AC_CACHE_CHECK([for $std_string in <string>],
+ wx_cv_class_stdstring,
+ [
+ AC_TRY_COMPILE([#include <string>],
+ [$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 <stddef.h>
+ # endif
+ # include <wchar.h>
+ #endif
+ #ifdef HAVE_STDLIB_H
+ # include <stdlib.h>
+ #endif
+ #include <stdio.h>
+ #include <string>
+ ],
+ [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
if test "$wxUSE_STL" = "yes"; then
dnl check for basic STL functionality
- AC_MSG_CHECKING([for basic STL functionality])
- AC_TRY_COMPILE([#include <string>
- #include <functional>
- #include <algorithm>
- #include <vector>
- #include <list>],
- [std::vector<int> moo;
- std::list<int> foo;
- std::vector<int>::iterator it =
- std::find_if(moo.begin(), moo.end(),
- std::bind2nd(std::less<int>(), 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 <string>
+ #include <functional>
+ #include <algorithm>
+ #include <vector>
+ #include <list>],
+ [std::vector<int> moo;
+ std::list<int> foo;
+ std::vector<int>::iterator it =
+ std::find_if(moo.begin(), moo.end(),
+ std::bind2nd(std::less<int>(), 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 <string>],
- [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 <string>],
+ [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 <hash_map>
- #include <hash_set>],
- [std::hash_map<double*, char*, std::hash<double*>, std::equal_to<double*> > test1;
- std::hash_set<char*, std::hash<char*>, std::equal_to<char*> > 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 <hash_map>
+ #include <hash_set>],
+ [std::hash_map<double*, char*, std::hash<double*>, std::equal_to<double*> > test1;
+ std::hash_set<char*, std::hash<char*>, std::equal_to<char*> > 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 <ext/hash_map>
- #include <ext/hash_set>],
- [__gnu_cxx::hash_map<double*, char*, __gnu_cxx::hash<double*>, std::equal_to<double*> > test1;
- __gnu_cxx::hash_set<char*, __gnu_cxx::hash<char*>, std::equal_to<char*> > 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 <ext/hash_map>
+ #include <ext/hash_set>],
+ [__gnu_cxx::hash_map<double*, char*, __gnu_cxx::hash<double*>, std::equal_to<double*> > test1;
+ __gnu_cxx::hash_set<char*, __gnu_cxx::hash<char*>, std::equal_to<char*> > 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
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
+if test "wxUSE_UNICODE" = "yes"; then
+ WX_CHECK_FUNCS(wcstoull)
+else
+ WX_CHECK_FUNCS(strtoull)
+fi
+
dnl ---------------------------------------------------------------------------
dnl Optional libraries
dnl
AC_CACHE_CHECK([if expat.h is valid C++ header],
wx_cv_expat_is_not_broken,
[
+ AC_LANG_PUSH(C++)
AC_TRY_COMPILE([#include <expat.h>],[],
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
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
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
fi
if test "$wxUSE_DFB" = 1; then
+ PKG_PROG_PKG_CONFIG()
+
PKG_CHECK_MODULES(DIRECTFB,
[directfb >= 0.9.22],
[
fi
if test "$wxUSE_UNICODE" = "yes"; then
- PKG_CHECK_MODULES(PANGOX, pangox,
- [
- CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS"
- GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOX_LIBS"
- ],
- [
- AC_MSG_ERROR([pangox library not found, library cannot be compiled in Unicode mode])
- ]
- )
- PKG_CHECK_MODULES(PANGOFT2, pangoft2,
- [
- CXXFLAGS="$PANGOFT2_CFLAGS $CXXFLAGS"
- GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS"
- ],
- [
- AC_MSG_WARN([pangoft2 library not found, library will be compiled without printing support])
- wxUSE_PRINTING_ARCHITECTURE="no"
- ]
- )
- PKG_CHECK_MODULES(PANGOXFT, pangoxft,
- [
- AC_DEFINE(HAVE_PANGO_XFT)
- CXXFLAGS="$PANGOXFT_CFLAGS $CXXFLAGS"
- GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOXFT_LIBS"
- ],
- [
- 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"
+ PKG_PROG_PKG_CONFIG()
+
+ PKG_CHECK_MODULES(PANGOX, pangox,
+ [
+ CFLAGS="$PANGOX_CFLAGS $CFLAGS"
+ CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS"
+ GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOX_LIBS"
+ ],
+ [
+ AC_MSG_ERROR([pangox library not found, library cannot be compiled in Unicode mode])
+ ]
+ )
+ PKG_CHECK_MODULES(PANGOFT2, pangoft2,
+ [
+ CFLAGS="$PANGOFT2_CFLAGS $CFLAGS"
+ CXXFLAGS="$PANGOFT2_CFLAGS $CXXFLAGS"
+ GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS"
+ ],
+ [
+ AC_MSG_WARN([pangoft2 library not found, library will be compiled without printing support])
+ wxUSE_PRINTING_ARCHITECTURE="no"
+ ]
+ )
+ 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"
+ ],
+ [
+ AC_MSG_WARN([pangoxft library not found, library will be compiled without anti-aliasing support])
+ ]
+ )
+ save_LIBS="$LIBS"
+ LIBS="$LIBS $PANGOX_LIBS"
+ AC_CHECK_FUNCS([pango_font_family_is_monospace])
+ LIBS="$save_LIBS"
fi
wxUSE_UNIVERSAL="yes"
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(
[
]
)
- CXXFLAGS=$save_CXXFLAGS
+ CFLAGS=$save_CFLAGS
fi
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"
]
)
- CXXFLAGS=$save_CXXFLAGS
+ CFLAGS=$save_CFLAGS
LIBS="$save_LIBS"
fi
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(
[
)
LIBS="$save_LIBS"
- CXXFLAGS=$save_CXXFLAGS
+ CFLAGS=$save_CFLAGS
fi
done
fi
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,
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
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(
[
wx_cv_x11_xpm_h=no
)
- CXXFLAGS=$save_CXXFLAGS
+ CFLAGS=$save_CFLAGS
]
)
[], [$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([
[
AC_MSG_RESULT([not found])
])
- CXXFLAGS="$save_CXXFLAGS"
+ CFLAGS="$save_CFLAGS"
fi
fi
fi
fi
+dnl ---------------------------------------------------------------------------
+dnl X11 session management
+dnl ---------------------------------------------------------------------------
+if test "$wxUSE_DETECT_SM" = "yes"; then
+ if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1; then
+ AC_MSG_CHECKING([for -lSM - X11 session management])
+ WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],SM)
+ if test "$ac_find_libraries" != "" ; then
+ WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
+ if test "$ac_path_to_link" != " -L/usr/lib" ; then
+ LDFLAGS="$LDFLAGS $ac_path_to_link"
+ fi
+ GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lSM"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ AC_MSG_WARN([libSM not found; disabling session management detection])
+ wxUSE_DETECT_SM="no"
+ fi
+ else
+ wxUSE_DETECT_SM="no"
+ fi
+fi
+
+
dnl ---------------------------------------------------------------------------
dnl OpenGL libraries
dnl ---------------------------------------------------------------------------
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
fi
fi
])
+ ])
if test "x$OPENGL_LIBS" = "x"; then
dnl it should be an error and not a warning because OpenGL is not on
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"
;;
[],[],
[
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])
[],[],
[
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])
])
LDFLAGS="$saveLdflags"
else
- SAMPLES_RPATH_FLAG="-R\$(top_builddir)lib"
+ SAMPLES_RPATH_FLAG="-R\$(wx_top_builddir)/lib"
WXCONFIG_RPATH="-R\$libdir"
fi
;;
*-*-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 <<EOF >change-install-names
#!/bin/sh
libnames=\`cd \${1} ; ls -1 | grep '\.[[0-9]][[0-9]]*\.dylib\$'\`
;;
*-*-hpux* )
- SAMPLES_RPATH_FLAG="-Wl,+b,\$(top_builddir)lib"
+ SAMPLES_RPATH_FLAG="-Wl,+b,\$(wx_top_builddir)/lib"
WXCONFIG_RPATH="-Wl,+b,\$libdir"
;;
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)
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,
[
fi
fi
+AC_LANG_POP() dnl C++
+
dnl ---------------------------------------------------------------------------
dnl Checks for structures
dnl ---------------------------------------------------------------------------
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
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 <stdio.h>
+#include <wchar.h>"
+ case "${host}" in
+ *-*-solaris2* )
+ AC_CHECK_HEADERS(widec.h)
+ if test "$ac_cv_header_widec_h" = "yes"; then
+ wchar_headers="$wchar_headers
+#include <widec.h>"
+ 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
fi
if test "x$ac_cv_header_fnmatch_h" = "xyes"; then
- AC_CHECK_FUNCS(fnmatch)
+ WX_CHECK_FUNCS(fnmatch,,,[#include <fnmatch.h>])
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 <math.h>])
+ WX_CHECK_FUNCS(fsync)
fi
+WX_CHECK_FUNCS(round,,,[#include <math.h>])
dnl the following tests are for Unix(like) systems only
if test "$TOOLKIT" != "MSW"; 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 <signal.h>],
[
extern void testSigHandler(int);
], [
wx_cv_type_sa_handler=void
])
+ AC_LANG_POP()
])
AC_DEFINE_UNQUOTED(wxTYPE_SA_HANDLER, $wx_cv_type_sa_handler)
if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
AC_CACHE_CHECK([for backtrace() in <execinfo.h>], wx_cv_func_backtrace,
[
+ AC_LANG_PUSH(C++)
AC_TRY_COMPILE([#include <execinfo.h>],
[
void *trace[1];
wx_cv_func_backtrace=yes,
wx_cv_func_backtrace=no
)
+ AC_LANG_POP()
]
)
else
AC_CACHE_CHECK([for __cxa_demangle() in <cxxabi.h>], wx_cv_func_cxa_demangle,
[
+ AC_LANG_PUSH(C++)
AC_TRY_LINK([#include <cxxabi.h>],
[
int rc;
wx_cv_func_cxa_demangle=yes,
wx_cv_func_cxa_demangle=no
)
+ AC_LANG_POP()
]
)
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__)
wx_cv_func_statfs_decl=yes,
wx_cv_func_statfs_decl=no
)
+ AC_LANG_POP()
)
if test "$wx_cv_func_statfs_decl" = "yes"; then
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 <sys/statvfs.h>
)
]
)
+ AC_LANG_POP()
)
if test "$wx_cv_type_statvfs_t" != "unknown"; 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])
)
]
)
fi
dnl check for uname (POSIX) and gethostname (BSD)
-AC_CHECK_FUNCS(uname gethostname, break)
+WX_CHECK_FUNCS(uname,,,[#include <sys/utsname.h>])
+if test "$wx_cv_func_uname" != yes; then
+ WX_CHECK_FUNCS(gethostname)
+fi
WX_CHECK_FUNCS(strtok_r, [], [], [#define _REENTRANT])
INET_LINK=" -l$INET_LINK"
fi
+WX_CHECK_FUNCS(fdopen)
+
fi
+
dnl if !MSW
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
-*)
AC_MSG_CHECKING([whether pthreads work with $flag])
- THREADS_CXXFLAGS="$flag"
+ THREADS_CFLAGS="$flag"
;;
*)
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.h>],
[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
fi
THREADS_LINK=""
- THREADS_CXXFLAGS=""
+ THREADS_CFLAGS=""
done
if test "x$THREADS_OK" != "xyes"; 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])
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
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
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
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
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
AM_PATH_SDL([1.2.0],
[
EXTRALIBS_SDL="$SDL_LIBS"
+ CFLAGS="$SDL_CFLAGS $CFLAGS"
CXXFLAGS="$SDL_CFLAGS $CXXFLAGS"
AC_DEFINE(wxUSE_LIBSDL)
],
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)
],
)
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)
],
)
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)
],
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
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])
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 <time.h>
wx_cv_func_strptime_decl=yes,
wx_cv_func_strptime_decl=no
)
+ AC_LANG_POP()
]
)
fi
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 <sys/types.h>
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(
)
)
- CXXFLAGS="$CXXFLAGS_OLD"
+ CFLAGS="$CFLAGS_OLD"
]
)
+ AC_LANG_POP()
])
if test "$wx_cv_type_getsockname3" = "unknown"; 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(
)
)
- CXXFLAGS="$CXXFLAGS_OLD"
+ CFLAGS="$CFLAGS_OLD"
]
)
])
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 <IOKit/hid/IOHIDLib.h> ],
[ 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
+ AC_CHECK_HEADERS(linux/joystick.h, wxUSE_JOYSTICK=yes)
+ fi
fi
if test "$wxUSE_JOYSTICK" = "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
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS display multimon"
fi
+if test "$wxUSE_DETECT_SM" = "yes"; then
+ AC_DEFINE(wxUSE_DETECT_SM)
+fi
+
if test "$wxUSE_GAUGE" = "yes"; then
AC_DEFINE(wxUSE_GAUGE)
USES_CONTROLS=1
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"
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
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
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
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 `
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 ---------------------------------------------------------------------------
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'"}
# 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 <stdio.h>
+ 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
*-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
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"
[ 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
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