dnl initialization
dnl ---------------------------------------------------------------------------
-AC_INIT([wxWidgets], [2.5.2], [wx-dev@lists.wxwidgets.org])
+AC_INIT([wxWidgets], [2.5.4], [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])
wx_major_version_number=2
wx_minor_version_number=5
-wx_release_number=2
-wx_subrelease_number=3
+wx_release_number=4
+wx_subrelease_number=1
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
-WX_CURRENT=2
+WX_CURRENT=4
WX_REVISION=0
-WX_AGE=0
+WX_AGE=4
dnl ------------------------------------------------------------------------
SO_SUFFIX=dylib
AC_DEFINE(__BSD__)
AC_DEFINE(__DARWIN__)
- AC_DEFINE(__POWERPC__)
AC_DEFINE(TARGET_CARBON)
DEFAULT_DEFAULT_wxUSE_MAC=1
;;
+ powerpc-apple-macos* )
+ dnl Classic Mac OS (< X)
+ USE_UNIX=0
+ dnl For some reason the test that should be cross-compiler capable fails
+ dnl However, there is no doubt that MacOS PowerPC is big endian.
+ ac_cv_c_bigendian=yes
+ SO_SUFFIX=shlib
+ dnl AC_DEFINE(TARGET_CARBON)
+ dnl platform.h needs TARGET_CARBON before setup.h, we'll add it to CPPFLAGS
+ DEFAULT_DEFAULT_wxUSE_MAC=1
+ ;;
*-*-beos* )
dnl leave USE_UNIX on - BeOS is sufficiently Unix-like for this
DEFAULT_wxUSE_NO_DEPS=no
DEFAULT_wxUSE_NO_RTTI=no
DEFAULT_wxUSE_NO_EXCEPTIONS=no
+ DEFAULT_wxUSE_RPATH=yes
DEFAULT_wxUSE_PERMISSIVE=no
DEFAULT_wxUSE_DEBUG_FLAG=yes
DEFAULT_wxUSE_DEBUG_INFO=yes
DEFAULT_wxUSE_LIBXPM=no
DEFAULT_wxUSE_LIBMSPACK=no
DEFAULT_wxUSE_LIBSDL=no
+ DEFAULT_wxUSE_LIBGNOMEPRINT=no
DEFAULT_wxUSE_ODBC=no
DEFAULT_wxUSE_OPENGL=no
DEFAULT_wxUSE_ON_FATAL_EXCEPTION=no
+ DEFAULT_wxUSE_STACKWALKER=no
DEFAULT_wxUSE_SNGLINST_CHECKER=no
DEFAULT_wxUSE_STD_IOSTREAM=no
DEFAULT_wxUSE_CMDLINE_PARSER=no
DEFAULT_wxUSE_TEXTBUFFER=no
DEFAULT_wxUSE_TEXTFILE=no
DEFAULT_wxUSE_SOUND=no
+ DEFAULT_wxUSE_MEDIACTRL=no
+ DEFAULT_wxUSE_DIRECTSHOW=no
DEFAULT_wxUSE_INTL=no
DEFAULT_wxUSE_CONFIG=no
DEFAULT_wxUSE_FONTMAP=no
DEFAULT_wxUSE_FS_INET=no
DEFAULT_wxUSE_FS_ZIP=no
DEFAULT_wxUSE_BUSYINFO=no
+ DEFAULT_wxUSE_ARCHIVE_STREAMS=no
DEFAULT_wxUSE_ZIPSTREAM=no
DEFAULT_wxUSE_VALIDATORS=no
DEFAULT_wxUSE_CHOICE=no
DEFAULT_wxUSE_CHOICEBOOK=no
DEFAULT_wxUSE_COMBOBOX=no
+ DEFAULT_wxUSE_DATEPICKCTRL=no
DEFAULT_wxUSE_DISPLAY=no
DEFAULT_wxUSE_GAUGE=no
DEFAULT_wxUSE_GRID=no
DEFAULT_wxUSE_NO_DEPS=no
DEFAULT_wxUSE_NO_RTTI=no
DEFAULT_wxUSE_NO_EXCEPTIONS=no
+ DEFAULT_wxUSE_RPATH=yes
DEFAULT_wxUSE_PERMISSIVE=no
DEFAULT_wxUSE_DEBUG_FLAG=no
DEFAULT_wxUSE_DEBUG_INFO=no
DEFAULT_wxUSE_LIBXPM=yes
DEFAULT_wxUSE_LIBMSPACK=yes
DEFAULT_wxUSE_LIBSDL=no
+ DEFAULT_wxUSE_LIBGNOMEPRINT=no
DEFAULT_wxUSE_ODBC=no
DEFAULT_wxUSE_OPENGL=no
DEFAULT_wxUSE_ON_FATAL_EXCEPTION=yes
+ DEFAULT_wxUSE_STACKWALKER=yes
DEFAULT_wxUSE_SNGLINST_CHECKER=yes
DEFAULT_wxUSE_STD_IOSTREAM=no
DEFAULT_wxUSE_CMDLINE_PARSER=yes
DEFAULT_wxUSE_TEXTBUFFER=yes
DEFAULT_wxUSE_TEXTFILE=yes
DEFAULT_wxUSE_SOUND=yes
+ DEFAULT_wxUSE_MEDIACTRL=no
+ DEFAULT_wxUSE_DIRECTSHOW=no
DEFAULT_wxUSE_INTL=yes
DEFAULT_wxUSE_CONFIG=yes
DEFAULT_wxUSE_FONTMAP=yes
DEFAULT_wxUSE_FS_INET=yes
DEFAULT_wxUSE_FS_ZIP=yes
DEFAULT_wxUSE_BUSYINFO=yes
+ DEFAULT_wxUSE_ARCHIVE_STREAMS=yes
DEFAULT_wxUSE_ZIPSTREAM=yes
DEFAULT_wxUSE_VALIDATORS=yes
DEFAULT_wxUSE_CHOICE=yes
DEFAULT_wxUSE_CHOICEBOOK=yes
DEFAULT_wxUSE_COMBOBOX=yes
+ DEFAULT_wxUSE_DATEPICKCTRL=yes
DEFAULT_wxUSE_DISPLAY=yes
DEFAULT_wxUSE_GAUGE=yes
DEFAULT_wxUSE_GRID=yes
WX_ARG_ENABLE(universal, [ --enable-universal use wxWidgets GUI controls instead of native ones], wxUSE_UNIVERSAL)
AC_ARG_WITH(gtk, [ --with-gtk use GTK+], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1])
AC_ARG_WITH(motif, [ --with-motif use Motif/Lesstif], [wxUSE_MOTIF="$withval" CACHE_MOTIF=1 TOOLKIT_GIVEN=1])
-AC_ARG_WITH(mac, [ --with-mac use Mac OS X], [wxUSE_MAC="$withval" TOOLKIT_GIVEN=1])
-AC_ARG_WITH(cocoa, [ --with-cocoa use Cocoa], [wxUSE_COCOA="$withval" TOOLKIT_GIVEN=1])
+AC_ARG_WITH(mac, [ --with-mac use Mac OS X], [wxUSE_MAC="$withval" CACHE_MAC=1 TOOLKIT_GIVEN=1])
+AC_ARG_WITH(cocoa, [ --with-cocoa use Cocoa], [wxUSE_COCOA="$withval" CACHE_COCOA=1 TOOLKIT_GIVEN=1])
AC_ARG_WITH(wine, [ --with-wine use Wine], [wxUSE_WINE="$withval" CACHE_WINE=1])
AC_ARG_WITH(msw, [ --with-msw use MS-Windows], [wxUSE_MSW="$withval" CACHE_MSW=1 TOOLKIT_GIVEN=1])
AC_ARG_WITH(pm, [ --with-pm use OS/2 Presentation Manager], [wxUSE_PM="$withval" CACHE_PM=1 TOOLKIT_GIVEN=1])
WX_ARG_SYS_WITH(libxpm, [ --with-libxpm use libxpm (XPM file format)], wxUSE_LIBXPM)
WX_ARG_WITH(libmspack, [ --with-libmspack use libmspack (CHM help files loading)], wxUSE_LIBMSPACK)
WX_ARG_WITH(sdl, [ --with-sdl use SDL for audio on Unix], wxUSE_LIBSDL)
+WX_ARG_WITH(gnomeprint, [ --with-gnomeprint use GNOME print for printing under Unix], wxUSE_LIBGNOMEPRINT)
WX_ARG_WITH(opengl, [ --with-opengl use OpenGL (or Mesa)], wxUSE_OPENGL)
fi
WX_ARG_ENABLE(compat22, [ --enable-compat22 enable wxWidgets 2.2 compatibility], WXWIN_COMPATIBILITY_2_2)
WX_ARG_ENABLE(compat24, [ --disable-compat24 disable wxWidgets 2.4 compatibility], WXWIN_COMPATIBILITY_2_4, disable)
-AC_ARG_ENABLE(rpath, [ --enable-rpath=DIR output the rpath flag from wx-config], [wxRPATH_DIR="$enableval"])
-
-if test "$wxRPATH_DIR" != "" -a "$wxRPATH_DIR" != "disable" -a "$wxRPATH_DIR" != "no"; then
- WXCONFIG_RPATH="-Wl,-rpath -Wl,$wxRPATH_DIR"
-fi
+WX_ARG_ENABLE(rpath, [ --disable-rpath disable use of rpath for uninstalled builds], wxUSE_RPATH)
dnl ---------------------------------------------------------------------------
dnl please keep the settings below in alphabetical order
WX_ARG_ENABLE(apple_ieee, [ --enable-apple_ieee use the Apple IEEE codec], wxUSE_APPLE_IEEE)
+WX_ARG_ENABLE(arcstream, [ --enable-arcstream use wxArchive streams], wxUSE_ARCHIVE_STREAMS)
WX_ARG_ENABLE(catch_segvs, [ --enable-catch_segvs catch signals in wxApp::OnFatalException (Unix only)], wxUSE_ON_FATAL_EXCEPTION)
+WX_ARG_ENABLE(backtrace, [ --enable-backtrace use wxStackWalker class for getting backtraces], wxUSE_STACKWALKER)
WX_ARG_ENABLE(cmdline, [ --enable-cmdline use wxCmdLineParser class], wxUSE_CMDLINE_PARSER)
WX_ARG_ENABLE(datetime, [ --enable-datetime use wxDateTime class], wxUSE_DATETIME)
WX_ARG_ENABLE(dialupman, [ --enable-dialupman use dialup network classes], wxUSE_DIALUP_MANAGER)
WX_ARG_ENABLE(timer, [ --enable-timer use wxTimer class], wxUSE_TIMER)
WX_ARG_ENABLE(unicode, [ --enable-unicode compile wxString with Unicode support], wxUSE_UNICODE)
WX_ARG_ENABLE(sound, [ --enable-sound use wxSound class], wxUSE_SOUND)
+WX_ARG_ENABLE(mediactrl, [ --enable-mediactrl use wxMediaCtrl class], wxUSE_MEDIACTRL)
WX_ARG_ENABLE(wxprintfv, [ --enable-wxprintfv use wxWidgets implementation of vprintf()], wxUSE_EXPERIMENTAL_PRINTF)
-WX_ARG_ENABLE(zipstream, [ --enable-zipstream use wxZipInputStream], wxUSE_ZIPSTREAM)
+WX_ARG_ENABLE(zipstream, [ --enable-zipstream use wxZip streams], wxUSE_ZIPSTREAM)
WX_ARG_ENABLE(url, [ --enable-url use wxURL class], wxUSE_URL)
WX_ARG_ENABLE(protocol, [ --enable-protocol use wxProtocol class], wxUSE_PROTOCOL)
DEFAULT_wxUSE_ACCEL=yes
DEFAULT_wxUSE_BMPBUTTON=yes
DEFAULT_wxUSE_BUTTON=yes
- DEFAULT_wxUSE_CALCTRL=no
+ DEFAULT_wxUSE_CALCTRL=yes
DEFAULT_wxUSE_CARET=yes
DEFAULT_wxUSE_COMBOBOX=yes
DEFAULT_wxUSE_CHECKBOX=yes
DEFAULT_wxUSE_CHECKLISTBOX=yes
DEFAULT_wxUSE_CHOICE=yes
DEFAULT_wxUSE_CHOICEBOOK=yes
+ DEFAULT_wxUSE_DATEPICKCTRL=yes
DEFAULT_wxUSE_GAUGE=yes
DEFAULT_wxUSE_GRID=yes
DEFAULT_wxUSE_IMAGLIST=yes
DEFAULT_wxUSE_CHECKLISTBOX=no
DEFAULT_wxUSE_CHOICE=no
DEFAULT_wxUSE_CHOICEBOOK=no
+ DEFAULT_wxUSE_DATEPICKCTRL=no
DEFAULT_wxUSE_GAUGE=no
DEFAULT_wxUSE_GRID=no
DEFAULT_wxUSE_IMAGLIST=no
DEFAULT_wxUSE_TIPWINDOW=no
fi
-## FIXME: This is a blatant hack
-if test "x$wxUSE_COCOA" != "x" -a "$wxUSE_COCOA" != "0" ; then
- wxUSE_PRINTING_ARCHITECTURE=no
- wxUSE_DRAG_AND_DROP=no
- DEFAULT_wxUSE_TOOLTIPS=no
- DEFAULT_wxUSE_DRAGIMAGE=no
-fi
-
WX_ARG_ENABLE(accel, [ --enable-accel use accelerators], wxUSE_ACCEL)
WX_ARG_ENABLE(button, [ --enable-button use wxButton class], wxUSE_BUTTON)
WX_ARG_ENABLE(bmpbutton, [ --enable-bmpbutton use wxBitmapButton class], wxUSE_BMPBUTTON)
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(combobox, [ --enable-combobox use wxComboBox class], wxUSE_COMBOBOX)
+WX_ARG_ENABLE(datepick, [ --enable-datepick use wxDatePickerCtrl class], wxUSE_DATEPICKCTRL)
WX_ARG_ENABLE(display, [ --enable-display use wxDisplay class], wxUSE_DISPLAY)
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(splines, [ --enable-splines use spline drawing code], wxUSE_SPLINES)
WX_ARG_ENABLE(validators, [ --enable-validators use wxValidator and derived classes], wxUSE_VALIDATORS)
WX_ARG_ENABLE(busyinfo, [ --enable-busyinfo use wxBusyInfo], wxUSE_BUSYINFO)
-WX_ARG_ENABLE(joystick, [ --enable-joystick use wxJoystick (Linux only)], wxUSE_JOYSTICK)
+WX_ARG_ENABLE(joystick, [ --enable-joystick use wxJoystick], wxUSE_JOYSTICK)
WX_ARG_ENABLE(metafile, [ --enable-metafiles use wxMetaFile (Windows only)], wxUSE_METAFILE)
WX_ARG_ENABLE(dragimage, [ --enable-dragimage use wxDragImage], wxUSE_DRAGIMAGE)
WX_ARG_ENABLE(accessibility,[ --enable-accessibility enable accessibility support], wxUSE_ACCESSIBILITY)
dnl cross-compiling support: we're cross compiling if the build system is
dnl different from the target one (assume host and target be always the same)
if test "$build" != "$host" ; then
- if test "$USE_WIN32" = 1 -o "$USE_DOS" = 1 -o "$USE_UNIX"; then
+ if test "$USE_WIN32" = 1 -o "$USE_DOS" = 1 -o "$USE_UNIX" = 1; then
CC=$host_alias-gcc
CXX=$host_alias-c++
AR=$host_alias-ar
DLLTOOL=$host_alias-dlltool
RESCOMP=$host_alias-windres
STRIP=$host_alias-strip
+ elif test "x$CC" '!=' "x"; then
+ echo "You set CC, I assume you know what you are doing."
else
AC_MSG_ERROR($build_alias -> $host_alias cross compilation not supported yet.)
fi
dnl -g and -O flags ourselves below
CFLAGS=${CFLAGS:=}
AC_PROG_CC
+AC_WX_METROWERKS_EXTO
+if test "x$wx_cv_c_exto" '!=' "x"; then
+ unset ac_cv_prog_cc_g
+ _AC_PROG_CC_G
+fi
+AC_BAKEFILE_PROG_MWCC
+AC_WX_PROG_XLCC
dnl is -traditional needed for correct compilations
dnl adds -traditional for gcc if needed
dnl see CFLAGS line above
CXXFLAGS=${CXXFLAGS:=}
AC_PROG_CXX
+AC_WX_METROWERKS_EXTO
+if test "x$wx_cv_cxx_exto" '!=' "x"; then
+ unset ac_cv_prog_cxx_g
+ _AC_PROG_CXX_G
+fi
+AC_BAKEFILE_PROG_MWCXX
+AC_WX_PROG_XLCXX
AC_LANG_RESTORE
dnl Platform specific tests
dnl ------------------------------------------------------------------------
+dnl xlC needs -qunique (at least on AIX) so that one source file can be
+dnl compiled to multiple object files and safely linked together.
+if test "x$XLCXX" = "xyes"; then
+ CXXFLAGS="$CXXFLAGS -qunique"
+fi
+
+
+dnl This case is for OS X vs. everything else
+case "${host}" in
+ powerpc-*-darwin* )
+ AC_MSG_CHECKING([if __POWERPC__ is already defined])
+ AC_TRY_COMPILE([],[#ifndef __POWERPC__
+ choke me for lack of PowerPC
+#endif
+],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])
+ AC_DEFINE(__POWERPC__)
+ ])
+ AC_MSG_CHECKING([if CoreFoundation/CFBase.h is usable])
+ AC_TRY_COMPILE([#include <CoreFoundation/CFBase.h>
+],[],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])
+ AC_MSG_CHECKING([if __CF_USE_FRAMEWORK_INCLUDES__ is required])
+ AC_TRY_COMPILE([#define __CF_USE_FRAMEWORK_INCLUDES__
+#include <CoreFoundation/CFBase.h>
+ ],[],
+ [AC_MSG_RESULT([yes])
+ dnl We must use -D so source files that don't include wx/setup.h
+ dnl but do include CFBase will work.
+ CPPFLAGS="$CPPFLAGS -D__CF_USE_FRAMEWORK_INCLUDES__"],
+ [AC_MSG_FAILURE([no. CoreFoundation not available.])]
+ )
+ ]
+ )
+ ;;
+esac
+
+dnl This case is for OS/2 vs. everything else
case "${host}" in
*-pc-os2_emx | *-pc-os2-emx )
dnl ---------------------------------------------------------------------
dnl Include resources for the "native" port (wxPM).
RESPROGRAMOBJ="\${top_srcdir}/include/wx/os2/wx.res"
fi
+ dnl Check for the gcc version (and thereby for the C runtime library).
+ dnl wx_cv_gccversion = EMX2 -> Standard EMX environment
+ dnl wx_cv_gccversion = EMX3 -> EMX with gcc-3.0.3 or gcc-3.2.1
+ dnl wx_cv_gccversion = Innotek5 -> gcc-3.2.2 with Innotek libc5
+ dnl wx_cv_gccversion = Innotek6 -> gcc-3.3.5 with Innotek libc6.
AC_CACHE_CHECK([for gcc version], wx_cv_gccversion,[
- AC_TRY_COMPILE([],
+ AC_TRY_RUN(
+ dnl Check the gcc version macro.
[
+ #include <stdio.h>
+
+ int main()
+ {
+ FILE *f=fopen("conftestval", "w");
+ if (!f) exit(1);
+ fprintf(f,
#if (__GNUC__ < 3)
- #error old gcc
+ "EMX2"
+ #elif (__GNUC__==3) && ((__GNUC_MINOR__ < 2) || ((__GNUC_MINOR__==2) && (__GNUC_PATCHLEVEL__<2)))
+ "EMX3"
+ #elif (__GNUC__==3) && (__GNUC_MINOR__==2) && (__GNUC_PATCHLEVEL__==2)
+ "Innotek5"
+ #else
+ "Innotek6"
#endif
+ );
+ exit(0);
+ }
],
- [
- AC_TRY_COMPILE([],
- [
- #if (__GNUC__==3) && ((__GNUC_MINOR__ < 2) || ((__GNUC_MINOR__==2) && (__GNUC_PATCHLEVEL__<2)))
- #error intermediate gcc
- #endif
- ],
- [
- wx_cv_gccversion=Innotek
- ],
- [
- wx_cv_gccversion=3
- ]
- )
- ],
- [
- wx_cv_gccversion=2
- ]
+ wx_cv_gccversion=`cat conftestval`,
+ wx_cv_gccversion="EMX2",
+ dnl Compilation error: Assuming standard EMX environment
+ wx_cv_gccversion="EMX2"
)
])
- if test "$wx_cv_gccversion" = "2"; then
+ if test "$wx_cv_gccversion" = "EMX2"; then
LIBS="$LIBS -lstdcpp"
LDFLAGS="$LDFLAGS -Zsysv-signals"
else
- if test "$wx_cv_gccversion" = "3"; then
+ if test "$wx_cv_gccversion" = "EMX3"; then
LIBS="$LIBS -lstdcxx"
LDFLAGS="$LDFLAGS -Zsysv-signals"
else
LIBS="$LIBS -lstdc++"
fi
fi
+ 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
+ fi
if test "$wxUSE_OMF" = "yes"; then
- LDFLAGS="$LDFLAGS -Zomf -Zlinker /PMTYPE:PM -Zlinker /EXEPACK"
+ LDFLAGS="$LDFLAGS -Zlinker /EXEPACK -Zlinker /PMTYPE:PM"
fi
dnl (end of OS/2-only piece)
;;
case "${host}" in
*-pc-os2_emx | *-pc-os2-emx )
- dnl Explicitly link -lintl if langinfo.h is available.
- if test $ac_cv_header_langinfo_h = "yes"; then
+ dnl Explicitly link -lintl if langinfo.h is available
+ dnl and intl not yet included in libc
+ if test $ac_cv_header_langinfo_h = "yes" \
+ -a \( "$wx_cv_gccversion" = "EMX2" \
+ -o "$wx_cv_gccversion" = "EMX3" \
+ -o "$wx_cv_gccversion" = "Innotek5" \); then
LIBS="$LIBS -lintl"
fi
;;
AC_CHECK_SIZEOF(long long, 0)
esac
-dnl we have to do it ourselves because SGI/Irix's stdio.h does not include
-dnl wchar_t and AC_CHECK_SIZEOF only includes stdio.h
-dnl Mac OS X does not provide wchar.h and wchar_t is defined by stdlib.h (GD)
-AC_CACHE_CHECK([size of wchar_t], wx_cv_sizeof_wchar_t,
-[
- AC_TRY_RUN(
- [
- /* DJGPP only has fake wchar_t: */
- #ifdef __DJGPP__
- # error "fake wchar_t"
- #endif
- #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>
- int main()
+dnl SGI/Irix's stdio.h does not include wchar_t. Mac OS X does not provide
+dnl wchar.h and wchar_t is defined by stdlib.h (GD)
+AC_CHECK_SIZEOF(wchar_t, 0,
+ [
+ /* DJGPP only has fake wchar_t: */
+ #ifdef __DJGPP__
+ # error "fake wchar_t"
+ #endif
+ #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>
+ ]
+)
+
+dnl checks needed to define wxVaCopy
+AC_CACHE_CHECK([for va_copy],
+ wx_cv_func_va_copy,
+ [
+ AC_LINK_IFELSE([
+ #include <stdarg.h>
+ void foo(char *f, ...)
{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%i", sizeof(wchar_t));
- exit(0);
+ va_list ap1, ap2;
+ va_start(ap1, f);
+ va_copy(ap2, ap1);
+ va_end(ap2);
+ va_end(ap1);
}
- ],
- wx_cv_sizeof_wchar_t=`cat conftestval`,
- wx_cv_sizeof_wchar_t=0,
+ int main()
+ {
+ foo("hi", 17);
+ return 0;
+ }],
+ wx_cv_func_va_copy=yes,
+ wx_cv_func_va_copy=no
+ )
+ ]
+)
+
+if test $wx_cv_func_va_copy = "yes"; then
+ AC_DEFINE(HAVE_VA_COPY)
+else
+ dnl try to understand how can we copy va_lists
+ AC_CACHE_CHECK([if va_list can be copied by value],
+ wx_cv_type_va_list_lvalue,
[
- case "${host}" in
- *-pc-msdosdjgpp )
- wx_cv_sizeof_wchar_t=0
- ;;
- * )
- wx_cv_sizeof_wchar_t=4
- ;;
- esac
+ AC_RUN_IFELSE([
+ #include <stdarg.h>
+ int foo(char *f, ...)
+ {
+ va_list ap1, ap2;
+ va_start(ap1, f);
+ ap2 = ap1;
+ if ( va_arg(ap1, int) != 17 || va_arg(ap2, int) != 17 )
+ return 1;
+ va_end(ap2);
+ va_end(ap1);
+ return 0;
+ }
+ int main()
+ {
+ return foo("hi", 17);
+ }],
+ wx_cv_type_va_list_lvalue=yes,
+ wx_cv_type_va_list_lvalue=no,
+ dnl assume most common case for cross-compiling...
+ wx_cv_type_va_list_lvalue=yes
+ )
]
)
-])
-AC_DEFINE_UNQUOTED(SIZEOF_WCHAR_T, $wx_cv_sizeof_wchar_t)
+ if test $wx_cv_type_va_list_lvalue != "yes"; then
+ dnl we suppose that the only thing which can't be copied like this
+ dnl are arrays... only experience will show whether this is really true
+ AC_DEFINE(VA_LIST_IS_ARRAY)
+ fi
+fi
dnl check for large file support
AC_SYS_LARGEFILE
else
WX_LARGEFILE_FLAGS="-D_LARGE_FILES"
fi
+ dnl AC_FUNC_FSEEKO sets HAVE_FSEEKO and $ac_cv_sys_largefile_source
+ AC_FUNC_FSEEKO
+ if test "$ac_cv_sys_largefile_source" != no; then
+ WX_LARGEFILE_FLAGS="$WX_LARGEFILE_FLAGS -D_LARGEFILE_SOURCE=$ac_cv_sys_largefile_source"
+ fi
CPPFLAGS="$CPPFLAGS $WX_LARGEFILE_FLAGS"
fi
dnl check whether C++ compiler supports C++ casts
AC_CXX_CONST_CAST
+AC_CXX_REINTERPRET_CAST
AC_CXX_STATIC_CAST
dnl check various STL features
dnl ------------------------------------------------------------------------
if test "$wxUSE_LIBMSPACK" != "no"; then
-
AC_CHECK_HEADER([mspack.h], [found_mspack_h=1])
if test "x$found_mspack_h" = "x1"; then
AC_CHECK_LIB(mspack, mspack_create_chm_decompressor,
fi
if test "x$MSPACK_LINK" = "x" ; then
wxUSE_LIBMSPACK=no
- else
- AC_DEFINE(wxUSE_LIBMSPACK)
fi
fi
+if test "$wxUSE_LIBMSPACK" != "no"; then
+ AC_DEFINE(wxUSE_LIBMSPACK)
+fi
+
dnl ----------------------------------------------------------------
dnl search for toolkit (widget sets)
WXGTK20=
WXGPE=
+ if test "$wxUSE_COCOA" = 1 ; then
+ if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes"; then
+ AC_MSG_WARN([Printing not supported under wxCocoa yet, disabled])
+ wxUSE_PRINTING_ARCHITECTURE=no
+ fi
+ if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
+ AC_MSG_WARN([Drag and Drop not supported under wxCocoa yet, disabled])
+ wxUSE_DRAG_AND_DROP=no
+ fi
+ if test "$wxUSE_DRAGIMAGE" = "yes"; then
+ AC_MSG_WARN([Drag Image and DandD not supported under wxCocoa yet, disabled])
+ wxUSE_DRAGIMAGE=no
+ fi
+ fi
+
if test "$wxUSE_MSW" = 1 ; then
TOOLKIT=MSW
GUIDIST=MSW_DIST
esac
if test "$WXGTK20" = 1; then
- if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
- PKG_CHECK_MODULES(PANGOFT2, pangoft2,
- [
- CXXFLAGS="$CXXFLAGS $PANGOFT2_CFLAGS"
- # FIXME: GTK_LIBS already has a lot of what this is
- # about to add, but we go ahead and just add
- # it all again anyway.
- # This is not a good way to manage things. And simply
- # uniq'ing the list later is hardly better.
- 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"
- ]
- )
- fi
-
save_CFLAGS="$CFLAGS"
save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GTK_CFLAGS"
LIBS="$LIBS $GTK_LIBS"
+
AC_CHECK_FUNCS([pango_font_family_is_monospace])
+
+ dnl test if we have at least GTK+ 2.4:
+ AC_MSG_CHECKING([if GTK+ is version >= 2.4])
+ AC_TRY_COMPILE([
+ #include <gtk/gtk.h>
+ ],
+ [
+ #if !GTK_CHECK_VERSION(2,4,0)
+ #error "Not GTK+ 2.4"
+ #endif
+ ],
+ [
+ AC_DEFINE(__WXGTK24__)
+ AC_MSG_RESULT([yes])
+ ],
+ [
+ AC_MSG_RESULT([no])
+ ])
+
CFLAGS="$save_CFLAGS"
LIBS="$save_LIBS"
else
)
PKG_CHECK_MODULES(PANGOXFT, pangoxft,
[
+ AC_DEFINE(HAVE_PANGO_XFT)
CXXFLAGS="$CXXFLAGS $PANGOXFT_CFLAGS"
GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOXFT_LIBS"
],
AC_MSG_RESULT([none])
fi
- CPPFLAGS="$CPPFLAGS $CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -I/Developer/Headers/FlatCarbon"
+ if test "x$wxUSE_UNIX" = "xyes"; then
+ CPPFLAGS="$CPPFLAGS $CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -I/Developer/Headers/FlatCarbon"
+ else
+ dnl platform.h needs TARGET_CARBON before setup.h
+ CPPFLAGS="$CPPFLAGS $CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -DTARGET_CARBON"
+ fi
TOOLKIT=MAC
dnl we can't call this MAC_DIST or autoconf thinks its a macro
GUIDIST=MACX_DIST
dnl wxMac version of wxBase and wxCocoa or wxBase-only built on Darwin
dnl are different, so they need different names:
- dnl FIXME: If we can do it like this, please do, and we can remove
- dnl BASEPORT from bakefiles and elsewhere
- WX_FLAVOUR="carbon${WX_FLAVOUR:+_$WX_FLAVOUR}"
+ WXBASEPORT="_carbon"
fi
if test "$wxUSE_COCOA" = 1; then
wxUSE_ODBC=sys
fi
fi
- if test "$wxUSE_ODBC" != "no" ; then
- AC_DEFINE(wxUSE_ODBC)
- if test "$wxUSE_ODBC" = "builtin" ; then
- AC_DEFINE(wxUSE_BUILTIN_IODBC)
- fi
- SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db"
-
- dnl is this still necessary in 2.5?
- WXODBCFLAG="-D_IODBC_"
+
+ if test "$wxUSE_ODBC" = "builtin" ; then
+ AC_DEFINE(wxUSE_BUILTIN_IODBC)
fi
fi
+if test "$wxUSE_ODBC" != "no" ; then
+ AC_DEFINE(wxUSE_ODBC)
+ SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db"
+
+ dnl is this still necessary?
+ WXODBCFLAG="-D_IODBC_"
+fi
dnl ---------------------------------------------------------------------------
dnl wxDisplay Sanity checks
dnl ---------------------------------------------------------------------------
dnl DirectDraw / Multimon for MSW
dnl ---------------------------------------------------------------------------
- AC_CHECK_HEADERS([multimon.h ddraw.h], [], [
- wxUSE_DISPLAY="no"
- AC_MSG_WARN([ddraw.h or multimon.h not found; disabling wxDisplay])
- ] )
+ AC_CHECK_HEADERS([multimon.h ddraw.h], [],
+ [
+ wxUSE_DISPLAY="no"
+ AC_MSG_WARN([ddraw.h or multimon.h not found; disabling wxDisplay])
+ ],
+ [#include <windows.h>])
fi
fi
case "${host}" in
*-*-linux* | *-*-gnu* )
SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib"
+ WXCONFIG_RPATH="-Wl,-rpath,\$libdir"
;;
*-*-solaris2* )
[
AC_MSG_RESULT([yes])
SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib"
- ],
- [
+ WXCONFIG_RPATH="-Wl,-rpath,\$libdir"
+ ],[
AC_MSG_RESULT([no])
AC_MSG_CHECKING([if the linker accepts -R])
LDFLAGS="$saveLdflags -Wl,-R,/"
AC_TRY_LINK(
[],[],
[
- AC_MSG_RESULT([yes])
- SAMPLES_RPATH_FLAG="-Wl,-R,\$(top_builddir)lib"],
- [
+ AC_MSG_RESULT([yes])
+ SAMPLES_RPATH_FLAG="-Wl,-R,\$(top_builddir)lib"
+ WXCONFIG_RPATH="-Wl,-R,\$libdir"
+ ],[
AC_MSG_RESULT([no])
])
])
LDFLAGS="$saveLdflags"
else
SAMPLES_RPATH_FLAG="-R\$(top_builddir)lib"
+ WXCONFIG_RPATH="-R\$libdir"
fi
;;
TOOLCHAIN_DLL_DEFS="${TOOLCHAIN_DLL_DEFS} -DWXUSINGDLL=1"
;;
+ *-*-hpux* )
+ SAMPLES_RPATH_FLAG="-Wl,+b,\$(top_builddir)lib"
+ WXCONFIG_RPATH="-Wl,+b,\$libdir"
+ ;;
+
esac
-fi
-dnl do not 'else' this, it may be changed in the above conditional.
-if test "$wxUSE_SHARED" = "no"; then
+ if test $wxUSE_RPATH = "no"; then
+ SAMPLES_RPATH_FLAG=''
+ SAMPLES_RPATH_POSTLINK=''
+ WXCONFIG_RPATH=''
+ fi
+
+ SHARED=1
+
+else
+
config_linkage_component="-static"
SHARED=0
-else
- SHARED=1
+
fi
dnl library link name
dnl These just save us from exporting lib_{unicode,debug,flavour}_suffix.
dnl If we ever need to do that, we won't need to keep these.
-WX_LIBRARY_BASENAME_NOGUI="wx_base${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}"
+WX_LIBRARY_BASENAME_NOGUI="wx_base${WXBASEPORT}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}"
WX_LIBRARY_BASENAME_GUI="wx_${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}"
if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1; then
dnl base name of the resource file for wxMac must be the same
dnl as library installation base name (-install_name)
- WX_RESOURCES_MACOSX_ASCII="libwx_${TOOLCHAIN_NAME}.${WX_CURRENT}.r"
- WX_RESOURCES_MACOSX_DATA="libwx_${TOOLCHAIN_NAME}.${WX_CURRENT}.rsrc"
+ WX_RESOURCES_MACOSX_ASCII="libwx_${TOOLCHAIN_NAME}.${wx_release_number}.r"
+ 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}"
fi
else
dnl default value is to (silently) do nothing in the makefile
- MACSETFILE="@#"
- MACRESWXCONFIG="#"
+ MACSETFILE="@true"
+ MACRESWXCONFIG="@true"
dnl confusingly, wxOS2 also uses MACRESCOMP in its post-link step
if test "$wxUSE_PM" = 1; then
MACRESCOMP="emxbind -ep"
else
- MACRESCOMP="@#"
+ MACRESCOMP="@true"
fi
fi
dnl defines uid_t and gid_t if not already defined
AC_TYPE_UID_T
+dnl sets HAVE_SSIZE_T if ssize_t is defined
+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_SAVE
dnl ---------------------------------------------------------------------------
dnl don't check for wchar_t functions if we haven't got wchar_t itself
-if test "$wx_cv_sizeof_wchar_t" != "0"; then
+if test "$ac_cv_sizeof_wchar_t" != "0"; then
AC_DEFINE(wxUSE_WCHAR_T)
dnl check for wcslen in all possible places
AC_DEFINE(HAVE_WCSLEN)
fi
- dnl HP-UX aCC needs this define to find mbstrtowcs() &c
- if test "$USE_HPUX" = 1 -a "x$GCC" != "xyes"; then
+ dnl on HP-UX aCC and g++ need this define to find mbstrtowcs() &c
+ if test "$USE_HPUX" = 1; then
CPPFLAGS="$CPPFLAGS -D_INCLUDE__STDC_A1_SOURCE "
fi
vsnprintf(buf, 10u, "%s", ap);
],
wx_cv_func_vsnprintf_decl=yes,
- wx_cv_func_vsnprintf_decl=no
+ [
+ dnl Metrowerks does provide a vsnprintf declaration
+ dnl but in C++ mode it's always in std namespace.
+ dnl FIXME: Do we have any UNIX C++ compilers that would
+ dnl fail this test if using namespace std; was
+ dnl simply always included?
+ AC_TRY_COMPILE(
+ [
+ #include <stdio.h>
+ #include <stdarg.h>
+ using namespace std;
+ ],
+ [
+ char *buf;
+ va_list ap;
+ vsnprintf(buf, 10u, "%s", ap);
+ ],
+ wx_cv_func_vsnprintf_decl=yes,
+ wx_cv_func_vsnprintf_decl=no
+ )
+ ]
)
]
)
fi
fi
+dnl backtrace() and backtrace_symbols() for wxStackWalker
+if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+
+ AC_CACHE_CHECK([for backtrace() in <execinfo.h>], wx_cv_func_backtrace,
+ [
+ AC_TRY_COMPILE([#include <execinfo.h>],
+ [
+ void *trace[1];
+ char **messages;
+
+ backtrace(trace, 1);
+ messages = backtrace_symbols(trace, 1);
+ ],
+ wx_cv_func_backtrace=yes,
+ wx_cv_func_backtrace=no
+ )
+ ]
+ )
+
+
+ if test "$wx_cv_func_backtrace" = "no"; then
+ AC_MSG_WARN([backtrace() is not available, wxStackWalker will not be available])
+ wxUSE_STACKWALKER=no
+ else
+ AC_CACHE_CHECK([for __cxa_demangle() in <cxxabi.h>], wx_cv_func_cxa_demangle,
+ [
+ AC_TRY_COMPILE([#include <cxxabi.h>],
+ [
+ int rc;
+ __cxxabiv1::__cxa_demangle("foo", 0, 0, &rc);
+ ],
+ wx_cv_func_cxa_demangle=yes,
+ wx_cv_func_cxa_demangle=no
+ )
+ ]
+ )
+
+ if test "$wx_cv_func_cxa_demangle" = "yes"; then
+ AC_DEFINE(HAVE_CXA_DEMANGLE)
+ fi
+ fi
+
+ AC_LANG_RESTORE
+fi
+
dnl check for the function for temp files creation
AC_CHECK_FUNCS(mkstemp mktemp, break)
if test "x$GCC" != "xyes"; then
dnl see http://docs.hp.com/hpux/onlinedocs/2213/threads.htm
flag="$flag -D_RWSTD_MULTI_THREAD"
-
- dnl we also need -lcma for user threads (-lpthread is for
- dnl kernel threads only) according to Ian Brown
- LIBS="$LIBS -lcma"
fi
;;
*solaris* | alpha*-osf*)
dnl ---------------------------------------------------------------------------
if test "$wxUSE_GUI" = "yes"; then
- AC_DEFINE(wxUSE_GUI)
-
- dnl the things we always pull in the GUI version of the library:
- dnl 1. basic things like wxApp, wxWindow, wxControl, wxFrame, wxDialog (the
- dnl library really can't be built without those)
- dnl 2. basic controls: wxButton, wxStaticText, wxTextCtrl (these are used in
- dnl almost any program and the first 2 are needed to show a message box
- dnl which want to be always able to do)
- dnl 3. GDI stuff: icon, cursors and all that. Although it would be very nice
- dnl to compile without them (if the app doesn't do any drawing, it doesn't
- dnl need the dcs, pens, brushes, ...), this just can't be done now
- dnl 4. menu stuff: wxMenu, wxMenuBar, wxMenuItem
- dnl 5. misc stuff: timers, settings, message box
-else
- AC_DEFINE(wxUSE_NOGUI)
+ AC_DEFINE(wxUSE_GUI)
+
+ dnl the things we always pull in the GUI version of the library:
+ dnl 1. basic things like wxApp, wxWindow, wxControl, wxFrame, wxDialog (the
+ dnl library really can't be built without those)
+ dnl 2. basic controls: wxButton, wxStaticText, wxTextCtrl (these are used in
+ dnl almost any program and the first 2 are needed to show a message box
+ dnl which want to be always able to do)
+ dnl 3. GDI stuff: icon, cursors and all that. Although it would be very nice
+ dnl to compile without them (if the app doesn't do any drawing, it doesn't
+ dnl need the dcs, pens, brushes, ...), this just can't be done now
+ dnl 4. menu stuff: wxMenu, wxMenuBar, wxMenuItem
+ dnl 5. misc stuff: timers, settings, message box
fi
dnl ---------------------------------------------------------------------------
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sound"
fi
+if test "$WXGTK20" = 1; then
+ 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"
+ CXXFLAGS="$CXXFLAGS $LIBGNOMEPRINTUI_CFLAGS"
+ AC_DEFINE(wxUSE_LIBGNOMEPRINT)
+ ],
+ [
+ AC_MSG_WARN([libgnomeprintui not found, library will use standard PostScript printing])
+ wxUSE_LIBGNOMEPRINT="no"
+ ]
+ )
+ fi
+ fi
+fi
+
+
if test "$wxUSE_CMDLINE_PARSER" = "yes"; then
AC_DEFINE(wxUSE_CMDLINE_PARSER)
fi
AC_DEFINE(wxUSE_FS_ZIP)
fi
+if test "$wxUSE_ARCHIVE_STREAMS" = "yes"; then
+ AC_DEFINE(wxUSE_ARCHIVE_STREAMS)
+fi
+
if test "$wxUSE_ZIPSTREAM" = "yes"; then
- AC_DEFINE(wxUSE_ZIPSTREAM)
+ if test "$wxUSE_ARCHIVE_STREAMS" != "yes"; then
+ AC_MSG_WARN(wxZip requires wxArchive... disabled)
+ elif test "$wxUSE_ZLIB" = "no"; then
+ AC_MSG_WARN(wxZip requires wxZlib... disabled)
+ else
+ AC_DEFINE(wxUSE_ZIPSTREAM)
+ fi
fi
if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
AC_DEFINE(wxUSE_ON_FATAL_EXCEPTION)
fi
+if test "$wxUSE_STACKWALKER" = "yes"; then
+ AC_DEFINE(wxUSE_STACKWALKER)
+fi
+
if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
AC_DEFINE(wxUSE_SNGLINST_CHECKER)
fi
AC_MSG_WARN(wxConfig requires wxTextFile... disabled)
else
AC_DEFINE(wxUSE_CONFIG)
+ AC_DEFINE(wxUSE_CONFIG_NATIVE)
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS config"
fi
fi
AC_DEFINE(wxUSE_GEOMETRY)
fi
-if test "$wxUSE_DIALUP_MANAGER" = "yes" ; then
- AC_DEFINE(wxUSE_DIALUP_MANAGER)
- SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dialup"
-fi
-
if test "$wxUSE_STREAMS" = "yes" ; then
AC_DEFINE(wxUSE_STREAMS)
fi
else
AC_DEFINE_UNQUOTED(SOCKLEN_T, $wx_cv_type_getsockname3)
fi
+ dnl Do this again for getsockopt as it may be different
+ AC_CACHE_CHECK([what is the type of the fifth argument of getsockopt],
+ wx_cv_type_getsockopt5,
+ [
+ AC_TRY_COMPILE(
+ [
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ ],
+ [
+ socklen_t len;
+ getsockopt(0, 0, 0, 0, &len);
+ ],
+ 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)
+ CFLAGS_OLD="$CFLAGS"
+ if test "$GCC" = yes ; then
+ CFLAGS="$CFLAGS -Werror"
+ fi
+
+ AC_TRY_COMPILE(
+ [
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ ],
+ [
+ size_t len;
+ getsockopt(0, 0, 0, 0, &len);
+ ],
+ wx_cv_type_getsockopt5=size_t,
+ AC_TRY_COMPILE(
+ [
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ ],
+ [
+ int len;
+ getsockopt(0, 0, 0, 0, &len);
+ ],
+ wx_cv_type_getsockopt5=int,
+ wx_cv_type_getsockopt5=unknown
+ )
+ )
+
+ CFLAGS="$CFLAGS_OLD"
+ ]
+ )
+ ])
+
+ if test "$wx_cv_type_getsockopt5" = "unknown"; then
+ wxUSE_SOCKETS=no
+ AC_MSG_WARN([Couldn't find socklen_t synonym for this system])
+ else
+ AC_DEFINE_UNQUOTED(SOCKOPTLEN_T, $wx_cv_type_getsockopt5)
+ fi
AC_LANG_POP
fi
fi
dnl ---------------------------------------------------------------------------
if test "$wxUSE_GUI" = "yes"; then
-
- if test "$TOOLKIT" = "MAC" -o "$TOOLKIT" = "COCOA"; then
- AC_MSG_WARN([Joystick not yet supported under Mac OS X... disabled])
- wxUSE_JOYSTICK=no
- fi
-
dnl under MSW we always have joystick support
- if test "$TOOLKIT" != "MSW"; then
- if test "$wxUSE_JOYSTICK" = "yes"; then
- dnl joystick support is only for Linux 2.1.x or greater
+ if test "$wxUSE_JOYSTICK" = "yes"; then
+
+ dnl joystick support is only for Linux 2.1.x or greater
+ if test "$TOOLKIT" != "MAC" -a "$TOOLKIT" != "COCOA" -a "$TOOLKIT" != "MSW"; then
AC_CHECK_HEADERS(linux/joystick.h)
if test "$ac_cv_header_linux_joystick_h" != "yes"; then
wxUSE_JOYSTICK=no
AC_MSG_WARN(Joystick not supported by this system... disabled)
fi
+ else
+ dnl mac only available on darwin
+ if test "$USE_DARWIN" != 1 -a "$TOOLKIT" != "MSW"; then
+ wxUSE_JOYSTICK=no
+ AC_MSG_WARN(Joystick not supported by this system... disabled)
+ fi
fi
- fi
- if test "$wxUSE_JOYSTICK" = "yes"; then
- AC_DEFINE(wxUSE_JOYSTICK)
- SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest"
+
+ if test "$wxUSE_JOYSTICK" = "yes"; then
+ AC_DEFINE(wxUSE_JOYSTICK)
+ SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest"
+ fi
fi
fi
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS checklst"
fi
+if test "$wxUSE_DATEPICKCTRL" = "yes"; then
+ AC_DEFINE(wxUSE_DATEPICKCTRL)
+ USES_CONTROLS=1
+fi
+
if test "$wxUSE_DISPLAY" = "yes"; then
AC_DEFINE(wxUSE_DISPLAY)
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS display"
fi
if test "$wxUSE_STATUSBAR" = "yes"; then
+ dnl this will get undefined in wx/chkconf.h if it's not supported
+ AC_DEFINE(wxUSE_NATIVE_STATUSBAR)
AC_DEFINE(wxUSE_STATUSBAR)
USES_CONTROLS=1
if test "$wxUSE_TABDIALOG" = "yes"; then
AC_DEFINE(wxUSE_TAB_DIALOG)
- SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS tab"
fi
if test "$wxUSE_TEXTCTRL" = "yes"; then
fi
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])
+ else
+ AC_DEFINE(wxUSE_DIALUP_MANAGER)
+ SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dialup"
+ fi
+fi
+
if test "$wxUSE_TIPWINDOW" = "yes"; then
if test "$wxUSE_PM" = 1; then
AC_MSG_WARN([wxTipWindow not yet supported under PM... disabled])
fi
fi
if test "$wxUSE_WEBKIT" = "yes"; then
- if test "$wxUSE_MAC" = 1; then
+ if test "$wxUSE_MAC" = 1 -a "$USE_DARWIN" = 1; then
old_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -x objective-c++"
AC_CHECK_HEADER([WebKit/HIWebView.h],
USE_XRC=0
if test "$wxUSE_XRC" = "yes"; then
- AC_DEFINE(wxUSE_XRC)
- USE_XRC=1
- SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS xrc"
+ if test "$wxUSE_XML" != "yes"; then
+ AC_MSG_WARN([XML library not built, XRC resources disabled])
+ wxUSE_XRC=no
+ else
+ AC_DEFINE(wxUSE_XRC)
+ USE_XRC=1
+ SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS xrc"
+ fi
fi
if test "$wxUSE_MENUS" = "yes"; then
if test "$wxUSE_SYSTEM_OPTIONS" = "yes"; then
AC_DEFINE(wxUSE_SYSTEM_OPTIONS)
if test "$TOOLKIT" = "MSW" -o "$TOOLKIT" = "GTK" -o "$TOOLKIT" = "X11" -o \
- "$TOOLKIT" = "MOTIF"; then
+ "$TOOLKIT" = "MOTIF" -o "$TOOLKIT" = "COCOA"; then
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS taskbar"
fi
fi
fi
dnl ---------------------------------------------------------------------------
-dnl get the string with OS info - used by wxGetOsDescription()
+dnl wxMediaCtrl
+dnl ---------------------------------------------------------------------------
+
+if test "$wxUSE_MEDIACTRL" = "yes"; then
+ if test "$wxUSE_MSW" = 1; then
+ dnl -----------------------------------------------------------------------
+ dnl DirectShow MSW
+ dnl -----------------------------------------------------------------------
+ wxUSE_DIRECTSHOW="yes"
+ AC_CHECK_HEADERS([dshow.h], [],
+ [
+ wxUSE_DIRECTSHOW="no"
+ AC_MSG_WARN([DirectShow not installed; consider installing the DirectX7 SDK or higher])
+ ],
+ [#include <windows.h>])
+
+ if test "$wxUSE_DIRECTSHOW" = "yes"; then
+ AC_DEFINE(wxUSE_DIRECTSHOW)
+ LIBS="$LIBS -lstrmiids"
+ fi
+ fi
+
+ dnl -----------------------------------------------------------------------
+ dnl GStreamer
+ dnl -----------------------------------------------------------------------
+ if test "$wxUSE_GTK" = 1; then
+ wxUSE_GSTREAMER="yes"
+
+ dnl -------------------------------------------------------------------
+ dnl Test for gstreamer module from pkg-config
+ dnl -------------------------------------------------------------------
+ PKG_CHECK_MODULES(GSTREAMER, gstreamer-0.8,
+ [
+ CPPFLAGS="$CPPFLAGS $GSTREAMER_CFLAGS"
+ LIBS="$LIBS $GSTREAMER_LIBS -lgstplay-0.8"
+ ],
+ [
+ AC_MSG_WARN([GStreamer installation not found])
+ wxUSE_GSTREAMER="no"
+ ])
+
+ dnl -------------------------------------------------------------------
+ dnl Perform a check for a GStreamer element using gst-inspect
+ dnl Thomas Vander Stichele <thomas at apestaart dot org>
+ dnl Last modification: 25/01/2005
+ dnl
+ dnl AM_GST_ELEMENT_CHECK(ELEMENT-NAME, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
+ dnl -------------------------------------------------------------------
+ AC_DEFUN([AM_GST_ELEMENT_CHECK],
+ [
+ if test "x$GST_INSPECT" == "x"; then
+ AC_CHECK_PROG(GST_INSPECT, gst-inspect, gst-inspect, [])
+ fi
+
+ if test "x$GST_INSPECT" != "x"; then
+ AC_MSG_CHECKING(GStreamer element $1)
+ if [ $GST_INSPECT $1 > /dev/null 2> /dev/null ]; then
+ AC_MSG_RESULT(found.)
+ $2
+ else
+ AC_MSG_RESULT(not found.)
+ $3
+ fi
+ fi
+ ])
+
+ dnl -------------------------------------------------------------------
+ dnl Test for x video sink (video useless without)
+ dnl -------------------------------------------------------------------
+ AM_GST_ELEMENT_CHECK(xvimagesink,[],
+ [
+ wxUSE_GSTREAMER="no"
+ AC_MSG_WARN([x video sink not found - cannot use GStreamer])
+ ])
+
+ dnl -------------------------------------------------------------------
+ dnl Check for gstplay-0.8 lib and corresponding x overlay header
+ dnl -------------------------------------------------------------------
+ AC_CHECK_HEADER(gst/xoverlay/xoverlay.h, [],
+ [
+ wxUSE_GSTREAMER="no"
+ AC_MSG_WARN([xoverlay header not found, cannot use GStreamer])
+ ],
+ [#include <gst/gst.h>])
+
+ AC_MSG_CHECKING([for gstplay 0.8])
+ WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],gstplay-0.8)
+
+ if test "$ac_find_libraries" = "" ; then
+ AC_MSG_RESULT([no])
+ wxUSE_GSTREAMER="no"
+ else
+ AC_MSG_RESULT([yes])
+ fi
+
+ if test "$wxUSE_GSTREAMER" = "yes"; then
+ AC_DEFINE(wxUSE_GSTREAMER)
+ AC_MSG_RESULT([GStreamer detection successful])
+ fi
+ fi
+ SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mediaplayer"
+ AC_DEFINE(wxUSE_MEDIACTRL)
+fi
+
+dnl ---------------------------------------------------------------------------
+dnl get the string with OS info - used by wxGetOsDescription() on MacOS X
dnl ---------------------------------------------------------------------------
if test "$cross_compiling" = "yes"; then
dnl extended.c uses floor() and is always linked in
if test "$wxUSE_MAC" = 1 ; then
- if test "$wxUSE_SOUND" = "yes"; then
- LDFLAGS="$LDFLAGS -framework QuickTime"
+ if test "$wxUSE_SOUND" = "yes" || test "$wxUSE_MEDIACTRL" = "yes"; then
+ if test "$USE_DARWIN" = 1; then
+ LDFLAGS="$LDFLAGS -framework QuickTime"
+ else
+ LDFLAGS="$LDFLAGS -lQuickTimeLib"
+ fi
+ fi
+ if test "$USE_DARWIN" = 1; then
+ LDFLAGS="$LDFLAGS -framework IOKit -framework Carbon -framework Cocoa -framework System"
+ else
+ LDFLAGS="$LDFLAGS -lCarbonLib"
fi
- LDFLAGS="$LDFLAGS -framework Carbon -framework Cocoa -framework System"
fi
if test "$wxUSE_COCOA" = 1 ; then
- LDFLAGS="$LDFLAGS -framework Cocoa -framework System"
+ LDFLAGS="$LDFLAGS -framework IOKit -framework Cocoa"
+ if test "$wxUSE_MEDIACTRL" = "yes"; then
+ LDFLAGS="$LDFLAGS -framework QuickTime"
+ fi
fi
dnl FIXME: should this be covered by the conditional above
dnl C/C++ compiler options used to compile wxWidgets
if test "$GXX" = yes ; then
dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
- CXXWARNINGS="-Wall"
+ CWARNINGS="-Wall"
+ CXXWARNINGS="$CWARNINGS -Wno-ctor-dtor-privacy"
dnl should enable this one day...
dnl CXXWARNINGS="-Wall -Werror"
fi
dnl remove the extra white space from the cc/c++/ld options
CPPFLAGS=`echo $WXDEBUG_DEFINE $INCLUDES $CPPFLAGS`
-CFLAGS=`echo $CODE_GEN_FLAGS $EXTRA_CFLAGS $CFLAGS $CXXWARNINGS`
+CFLAGS=`echo $CODE_GEN_FLAGS $EXTRA_CFLAGS $CFLAGS $CWARNINGS`
CXXFLAGS=`echo $CODE_GEN_FLAGS $CODE_GEN_FLAGS_CXX $EXTRA_CFLAGS $CXXFLAGS $CXXWARNINGS`
+if test "x$MWCC" = "xyes"; then
+ dnl Correct MW 8.3 to be more similar to GCC. In particular we
+ dnl must use <regex.h> from system not our local copy on OS X,
+ dnl but must use local not system on OS 9.
+ dnl The following should make all -I paths usable for <> includes
+ dnl while first checking in real system paths. With 8.3 using
+ dnl -gccincludes it will actually check local paths before system
+ dnl even for <> which is totally wrong.
+
+ dnl Note that because this absolutely needs to be before any -I
+ dnl that we have to tack it on to the end of the compiler commandline.
+ CC="$CC -cwd source -I-"
+ CXX="$CXX -cwd source -I-"
+fi
+
LIBS=`echo $LIBS`
EXTRALIBS="$LDFLAGS $LDFLAGS_VERSIONING $LIBS $DMALLOC_LIBS"
EXTRALIBS_HTML="$MSPACK_LINK"
EXTRALIBS_ODBC="$ODBC_LINK"
if test "$wxUSE_GUI" = "yes"; then
- EXTRALIBS_GUI=`echo $GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK $WEBKIT_LINK`
+ EXTRALIBS_GUI=`echo $GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK $WEBKIT_LINK $EXTRALIBS_GNOMEPRINT`
fi
if test "$wxUSE_OPENGL" = "yes"; then
EXTRALIBS_OPENGL="$LDFLAGS_GL $OPENGL_LIBS"
AC_SUBST(EXTRALIBS_OPENGL)
AC_SUBST(EXTRALIBS_SDL)
AC_SUBST(WITH_PLUGIN_SDL)
+AC_SUBST(EXTRALIBS_GNOMEPRINT)
AC_SUBST(UNICODE)
AC_SUBST(BUILD)
AC_SUBST(DEBUG_INFO)
;;
esac
-AC_BAKEFILE
+AC_BAKEFILE([m4_include(autoconf_inc.m4)])
if test "$wxUSE_SHARED" = "yes"; then
sanitised_bakefile_mess=`echo "$SHARED_LD_CXX" | tr -d '()'`
EXE_LINKER=`eval echo "$sanitised_bakefile_mess"`
+ dnl Need addtional flag on OS/2, so override bakefiles value
+ dnl (there currently is no suitable variable to which the
+ dnl missing flags could be added, AFAICS. SN, 18.12.2004. )
+ case "${host}" in
+ *-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 .
+ ;;
+ esac
else
dnl No bakefile support for static builds, but this should be ok for most.
fi
+dnl According to Vaclav, if NO_GCC_PRAGMA is used for any reason it needs to
+dnl be in wx-config output. Not doing so could result in link problems.
GCC_PRAGMA_FLAGS=""
+PCH_FLAGS=""
dnl Find out if we have to define NO_GCC_PRAGMA and WX_PRECOMP:
if test $GCC_PCH = 1 ; then
- GCC_PRAGMA_FLAGS="-DWX_PRECOMP -DNO_GCC_PRAGMA"
+ GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA"
+ PCH_FLAGS="-DWX_PRECOMP"
else
case "${host}" in
powerpc-*-darwin* )
[AC_MSG_RESULT([no])])
fi
;;
+ *-pc-os2_emx | *-pc-os2-emx )
+ dnl GCC versions ported to OS/2 have similar problems with
+ dnl static member of classes in combination with STL and
+ dnl pragma interface/implementation
+ if test "$wxUSE_STL" = "yes"; then
+ AC_MSG_CHECKING([if this gcc version needs -DNO_GCC_PRAGMA])
+ AC_TRY_COMPILE([],
+ [#if !(__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2))
+ #error "Not GCC 3.2 or greater"
+ #endif
+ ],
+ [GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA"
+ AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])])
+ fi
+ ;;
esac
fi
-CPPFLAGS="$GCC_PRAGMA_FLAGS $CPPFLAGS"
+CPPFLAGS="$PCH_FLAGS $GCC_PRAGMA_FLAGS $CPPFLAGS"
dnl for convenience, sort the samples in alphabetical order
LN_S="${LN_S}"
])
+dnl This would give us us build dir that in every significant way
+dnl resembles an installed wx in prefix=$builddir. It is troublesome
+dnl though in this form because AC_CONFIG_LINKS will fail for directories
+dnl on platforms that do not have symlinks.
+dnl AC_CONFIG_LINKS([ include/wx-$WX_RELEASE$WX_FLAVOUR:include ])
+dnl AC_CONFIG_LINKS([ contrib/include ])
+
dnl Configure samples, contrib etc. directories, but only if they are present:
if test "$wxUSE_GUI" = "yes"; then
if test ${subdir} = "samples"; then
makefiles="samples/Makefile.in samples/console/Makefile.in"
elif test ${subdir} = "utils"; then
- makefiles="utils/HelpGen/Makefile.in \
- utils/HelpGen/src/Makefile.in \
- utils/tex2rtf/Makefile.in \
- utils/tex2rtf/src/Makefile.in"
+ makefiles=""
+ for util in HelpGen tex2rtf ; do
+ if test -d $srcdir/utils/$util ; then
+ makefiles="utils/$util/Makefile.in \
+ utils/$util/src/Makefile.in \
+ $makefiles"
+ fi
+ done
else dnl assume that everything compiles for tests
makefiles=`(cd $srcdir ; find $subdir -name Makefile.in)`
fi
echo " expat ${wxUSE_EXPAT}"
echo " libmspack ${wxUSE_LIBMSPACK}"
echo " sdl ${wxUSE_LIBSDL}"
+echo " gnomeprint ${wxUSE_LIBGNOMEPRINT-none}"
echo ""