dnl libwx_$(TOOLKIT)-$(WX_RELEASE).so.$(WX_CURRENT).$(WX_REVISION).$(WX_AGE)
WX_MAJOR_VERSION_NUMBER=2
-WX_MINOR_VERSION_NUMBER=3
-WX_RELEASE_NUMBER=3
+WX_MINOR_VERSION_NUMBER=5
+WX_RELEASE_NUMBER=0
WX_VERSION=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER.$WX_RELEASE_NUMBER
WX_RELEASE=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER
WX_MSW_VERSION=$WX_MAJOR_VERSION_NUMBER$WX_MINOR_VERSION_NUMBER$WX_RELEASE_NUMBER
-WX_CURRENT=2
+WX_CURRENT=0
WX_REVISION=0
WX_AGE=0
dnl the list of all available toolkits
dnl
dnl update NUM_TOOLKITS calculation below when adding a new toolkit here!
-ALL_TOOLKITS="GTK MAC MGL MICROWIN MOTIF MSW PM WINE X11"
+ALL_TOOLKITS="COCOA GTK MAC MGL MICROWIN MOTIF MSW PM X11"
dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones
dnl which are either yes or no
+DEFAULT_wxUSE_COCOA=0
DEFAULT_wxUSE_GTK=0
DEFAULT_wxUSE_MAC=0
DEFAULT_wxUSE_MGL=0
DEFAULT_wxUSE_MOTIF=0
DEFAULT_wxUSE_MSW=0
DEFAULT_wxUSE_PM=0
-DEFAULT_wxUSE_WINE=0
DEFAULT_wxUSE_X11=0
dnl these are the values which are really default for the given platform -
dnl they're not cached and are only used if no --with-toolkit was given *and*
dnl nothing was found in the cache
+DEFAULT_DEFAULT_wxUSE_COCOA=0
DEFAULT_DEFAULT_wxUSE_GTK=0
DEFAULT_DEFAULT_wxUSE_MAC=0
DEFAULT_DEFAULT_wxUSE_MGL=0
DEFAULT_DEFAULT_wxUSE_MOTIF=0
DEFAULT_DEFAULT_wxUSE_MSW=0
DEFAULT_DEFAULT_wxUSE_PM=0
-DEFAULT_DEFAULT_wxUSE_WINE=0
DEFAULT_DEFAULT_wxUSE_X11=0
PROGRAM_EXT=
*-*-openbsd*)
USE_BSD=1
USE_OPENBSD=1
- AC_DEFINE(__FREEBSD__)
AC_DEFINE(__OPENBSD__)
+ AC_DEFINE(__BSD__)
DEFAULT_DEFAULT_wxUSE_GTK=1
;;
*-*-netbsd*)
USE_BSD=1
USE_NETBSD=1
- AC_DEFINE(__FREEBSD__)
AC_DEFINE(__NETBSD__)
+ AC_DEFINE(__BSD__)
DEFAULT_DEFAULT_wxUSE_GTK=1
;;
*-*-osf* )
USE_AIX=1
USE_SYSV=1
USE_SVR4=1
- dnl Irvin Probst <irvin.probst@fr.thalesgroup.com> reports that the shared
- dnl libraries under AIX have the same suffix as the normal ones
+ dnl quoting from http://www-1.ibm.com/servers/esdd/articles/gnu.html:
+ dnl
+ dnl Both archive libraries and shared libraries on AIX have an .a
+ dnl extension. This will explain why you can't link with an .so and
+ dnl why it works with the name changed to .a.
SO_SUFFIX=a
AC_DEFINE(__AIX__)
AC_DEFINE(__SYSV__)
AC_DEFINE(__EMX__)
PROGRAM_EXT=".exe"
DEFAULT_DEFAULT_wxUSE_PM=1
- LIBS="$LIBS -lstdcpp"
;;
powerpc-*-darwin* )
AC_DEFINE(__BSD__)
AC_DEFINE(__DARWIN__)
AC_DEFINE(__POWERPC__)
+ AC_DEFINE(TARGET_CARBON)
DEFAULT_DEFAULT_wxUSE_MAC=1
;;
DEFAULT_wxUSE_FONTMAP=no
DEFAULT_wxUSE_STREAMS=no
DEFAULT_wxUSE_SOCKETS=no
+ DEFAULT_wxUSE_OLE=no
+ DEFAULT_wxUSE_DATAOBJ=no
DEFAULT_wxUSE_DIALUP_MANAGER=no
DEFAULT_wxUSE_JOYSTICK=no
DEFAULT_wxUSE_DYNLIB_CLASS=no
DEFAULT_wxUSE_CHECKLST=no
DEFAULT_wxUSE_CHOICE=no
DEFAULT_wxUSE_COMBOBOX=no
+ DEFAULT_wxUSE_DISPLAY=no
DEFAULT_wxUSE_GAUGE=no
DEFAULT_wxUSE_GRID=no
DEFAULT_wxUSE_NEW_GRID=no
DEFAULT_wxUSE_FONTMAP=yes
DEFAULT_wxUSE_STREAMS=yes
DEFAULT_wxUSE_SOCKETS=yes
+ DEFAULT_wxUSE_OLE=yes
+ DEFAULT_wxUSE_DATAOBJ=yes
DEFAULT_wxUSE_DIALUP_MANAGER=yes
DEFAULT_wxUSE_JOYSTICK=yes
DEFAULT_wxUSE_DYNLIB_CLASS=yes
DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=yes
DEFAULT_wxUSE_PRINTING_ARCHITECTURE=yes
- DEFAULT_wxUSE_PROLOGIO=yes
- DEFAULT_wxUSE_RESOURCES=yes
+ DEFAULT_wxUSE_PROLOGIO=no
+ DEFAULT_wxUSE_RESOURCES=no
DEFAULT_wxUSE_CONSTRAINTS=yes
DEFAULT_wxUSE_IPC=yes
DEFAULT_wxUSE_HELP=yes
DEFAULT_wxUSE_CHECKLST=yes
DEFAULT_wxUSE_CHOICE=yes
DEFAULT_wxUSE_COMBOBOX=yes
+ DEFAULT_wxUSE_DISPLAY=no
DEFAULT_wxUSE_GAUGE=yes
DEFAULT_wxUSE_GRID=yes
DEFAULT_wxUSE_NEW_GRID=yes
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(wine, [ --with-wine use WINE], [wxUSE_WINE="$withval" CACHE_WINE=1 TOOLKIT_GIVEN=1])
+AC_ARG_WITH(cocoa, [ --with-cocoa use Cocoa], [wxUSE_COCOA="$withval" 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])
AC_ARG_WITH(mgl, [ --with-mgl use SciTech MGL], [wxUSE_MGL="$withval" wxUSE_UNIVERSAL="yes" CACHE_MGL=1 TOOLKIT_GIVEN=1])
WX_ARG_ENABLE(optimise, [ --enable-optimise create optimised code], wxUSE_OPTIMISE)
WX_ARG_ENABLE(debug, [ --enable-debug same as debug_flag and debug_info], wxUSE_DEBUG)
-dnl allow the precompiled header option to be disabled under Mac OS X
-WX_ARG_ENABLE(precomp, [ --enable-precomp enable use of precompiled headers (Mac OS X)], wxUSE_PRECOMP)
+dnl allow the precompiled header option to be disabled under Mac OS X/Darwin
+WX_ARG_ENABLE(precomp, [ --enable-precomp enable use of precompiled headers (Mac OS X/Darwin)], wxUSE_PRECOMP)
if test "$wxUSE_DEBUG" = "yes"; then
DEFAULT_wxUSE_DEBUG_FLAG=yes
WX_ARG_ENABLE(no_deps, [ --enable-no_deps create code without dependency information], wxUSE_NO_DEPS)
WX_ARG_ENABLE(compat20, [ --enable-compat20 enable wxWindows 2.0 compatibility], WXWIN_COMPATIBILITY_2)
-WX_ARG_ENABLE(compat22, [ --disable-compat22 disable wxWindows 2.2 compatibility], WXWIN_COMPATIBILITY_2_2)
+WX_ARG_ENABLE(compat22, [ --enable-compat22 enable wxWindows 2.2 compatibility], WXWIN_COMPATIBILITY_2_2)
+WX_ARG_ENABLE(compat24, [ --disable-compat24 disable wxWindows 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"])
WX_ARG_ENABLE(http, [ --enable-http use wxHTTP (requires wxProtocol], wxUSE_PROTOCOL_HTTP)
WX_ARG_ENABLE(fileproto, [ --enable-fileproto use wxFileProto class (requires wxProtocol], wxUSE_PROTOCOL_FILE)
WX_ARG_ENABLE(sockets, [ --enable-sockets use socket/network classes], wxUSE_SOCKETS)
+WX_ARG_ENABLE(ole, [ --enable-ole use OLE classes], wxUSE_OLE)
+WX_ARG_ENABLE(dataobj, [ --enable-dataobj use data object classes], wxUSE_DATAOBJ)
WX_ARG_ENABLE(ipc, [ --enable-ipc use interprocess communication (wxSocket etc.)], wxUSE_IPC)
dnl IPC &c
dnl ---------------------------------------------------------------------------
-WX_ARG_ENABLE(clipboard, [ --enable-clipboard use wxClipboard classes], wxUSE_CLIPBOARD)
+WX_ARG_ENABLE(clipboard, [ --enable-clipboard use wxClipboard class], wxUSE_CLIPBOARD)
WX_ARG_ENABLE(dnd, [ --enable-dnd use Drag'n'Drop classes], wxUSE_DRAG_AND_DROP)
WX_ARG_ENABLE(metafile, [ --enable-metafile use win32 metafiles], wxUSE_METAFILE)
-WX_ARG_ENABLE(treelayout, [ --enable-treelayout use wxTreeLayout classes], wxUSE_TREELAYOUT)
+WX_ARG_ENABLE(treelayout, [ --enable-treelayout use wxTreeLayout class], wxUSE_TREELAYOUT)
dnl ---------------------------------------------------------------------------
dnl optional GUI controls (in alphabetical order except the first one)
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_HELP=no
+ wxUSE_CLIPBOARD=no
+ wxUSE_DRAG_AND_DROP=no
+ wxUSE_DATAOBJ=no
+ DEFAULT_wxUSE_TOOLBAR_NATIVE=no
+ DEFAULT_wxUSE_TEXTDLG=no
+ DEFAULT_wxUSE_GAUGE=no
+ DEFAULT_wxUSE_SCROLLBAR=no
+ DEFAULT_wxUSE_SLIDER=no
+ DEFAULT_wxUSE_COMBOBOX=no
+ DEFAULT_wxUSE_CALCTRL=no
+ DEFAULT_wxUSE_SPINBTN=no
+ DEFAULT_wxUSE_SPINCTRL=no
+ DEFAULT_wxUSE_TOOLTIPS=no
+ DEFAULT_wxUSE_CHOICEDLG=no
+ DEFAULT_wxUSE_COLOURDLG=no
+ DEFAULT_wxUSE_DIRDLG=no
+ DEFAULT_wxUSE_DRAGIMAGE=no
+ DEFAULT_wxUSE_FINDREPLDLG=no
+ DEFAULT_wxUSE_FONTDLG=no
+ DEFAULT_wxUSE_GRID=no
+ DEFAULT_wxUSE_NEW_GRID=no
+ DEFAULT_wxUSE_NUMBERDLG=no
+ DEFAULT_wxUSE_PROGRESSDLG=no
+ DEFAULT_wxUSE_PROPSHEET=no
+ DEFAULT_wxUSE_SASH=no
+ DEFAULT_wxUSE_SPLITTER=no
+ DEFAULT_wxUSE_WIZARDDLG=no
+ DEFAULT_wxUSE_SPLITTER=no
+ DEFAULT_wxUSE_STARTUP_TIPS=no
+ DEFAULT_wxUSE_TREECTRL=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(checkbox, [ --enable-checkbox use wxCheckBox class], wxUSE_CHECKBOX)
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(combobox, [ --enable-combobox use wxComboBox classes], wxUSE_COMBOBOX)
+WX_ARG_ENABLE(combobox, [ --enable-combobox use wxComboBox class], wxUSE_COMBOBOX)
+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(newgrid, [ --enable-newgrid use new wxGrid class], wxUSE_NEW_GRID)
dnl Stem for flex output; lexyy for OS/2, lex.yy otherwise
case "${host}" in
*-pc-os2_emx | *-pc-os2-emx )
- dnl PATH_IFS is autodetected by OS/2's configure (usually ';')
+ PATH_IFS=';'
+dnl Really ought to text for this as meanwhile there are flex versions using
+dnl lex.yy as well due to FAT support being more and more dropped...
LEX_STEM="lexyy"
;;
*)
AC_MSG_CHECKING(for toolkit)
+# In Wine, we need to default to MSW, not GTK or MOTIF
+if test "$wxUSE_WINE" = "yes"; then
+ DEFAULT_DEFAULT_wxUSE_GTK=0
+ DEFAULT_DEFAULT_wxUSE_MOTIF=0
+ DEFAULT_DEFAULT_wxUSE_MSW=1
+fi
+
if test "$wxUSE_GUI" = "yes"; then
if test "$USE_BEOS" = 1; then
dnl we suppose that expr is available (maybe there is a better way to do
dnl this? what about using ALL_TOOLKITS? TODO)
- NUM_TOOLKITS=`expr ${wxUSE_GTK:-0} + ${wxUSE_MOTIF:-0} + ${wxUSE_MAC:-0} \
- + ${wxUSE_WINE:-0} + ${wxUSE_MSW:-0} + ${wxUSE_MGL:-0} + ${wxUSE_MICROWIN:-0} + ${wxUSE_X11:-0}`
+ NUM_TOOLKITS=`expr ${wxUSE_COCOA:-0} + ${wxUSE_GTK:-0} + ${wxUSE_MAC:-0} \
+ + ${wxUSE_MGL:-0} + ${wxUSE_MICROWIN:-0} \
+ + ${wxUSE_MOTIF:-0} + ${wxUSE_MSW:-0} + ${wxUSE_X11:-0}`
dnl Allow wxUSE_PM only for OS/2 with EMX.
case "${host}" in
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
;;
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++
+ RESCOMP=wrc
+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
dnl defines CFLAGS
dnl
dnl this magic incantation is needed to prevent AC_PROG_CC from setting the
-dnl default CFLAGS (something like "-g -O2") - we don't need this as add
+dnl default CFLAGS (something like "-g -O2") -- we don't need this as we add
dnl -g and -O flags ourselves below
CFLAGS=${CFLAGS:=}
AC_PROG_CC
dnl defines INSTALL with the appropriate command
AC_PROG_INSTALL
-dnl make install path absolute (if not already); will fail with MSDOS paths
+dnl make install path absolute (if not already);
+dnl will fail with (some) MSDOS paths
case ${INSTALL} in
/* ) # Absolute
;;
+ ?:* ) # Drive letter, considered as absolute.
+ ;;
*)
INSTALL=`pwd`/${INSTALL} ;;
esac
+dnl HP-UX install doesn't handle the "-d" switch so don't use it there
+case ${host} in
+ *-hp-hpux* )
+ INSTALL_DIR="mkdir"
+ ;;
+
+ *) INSTALL_DIR="$INSTALL -d"
+ ;;
+esac
+
case "${host}" in
dnl needed for making link to setup.h
AC_PROG_LN_S
+dnl ---------------------------------------------------------------------------
+dnl When we are using gcc on OS/2, we want to be either using resources (PM)
+dnl or a more complete POSIX emulation for Motif/GTK+/X11
+dnl ---------------------------------------------------------------------------
+dnl (OS/2-only piece)
+case "${host}" in
+ *-pc-os2_emx | *-pc-os2-emx )
+ dnl Explicitly link -lstdcpp, since we are using "gcc" not "g++"/"c++".
+ LIBS="$LIBS -lstdcpp"
+ 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).
+ AC_CHECK_LIB(cExt, drand48, LIBS="$LIBS -lcExt")
+ else
+ dnl Include resources for the "native" port (wxPM).
+ RESPROGRAMOBJ="\${top_srcdir}/include/wx/os2/wx.res"
+ fi
+ ;;
+esac
+dnl (end of OS/2-only piece)
+
dnl ------------------------------------------------------------------------
dnl Check for headers
dnl ------------------------------------------------------------------------
dnl test for strings.h needed under AIX, but do not check for it wxMac as
dnl it exists but is only a simple redirection to string.h and it is in
dnl conflict with Strings.h in FlatCarbon headers
-if test "$wxUSE_MAC" != 1; then
+if test "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1; then
dnl defines HAVE_STRINGS_H
AC_CHECK_HEADERS(strings.h)
fi
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 test $ac_cv_header_langinfo_h = "yes"; then
+ LIBS="$LIBS -lintl"
+ fi
+ ;;
+esac
+
if test "$wxUSE_GUI" = "yes"; then
if test "$wxUSE_UNIX" = "yes"; then
dnl defines HAVE_X11_XKBLIB_H
arm-*-linux* )
AC_CHECK_SIZEOF(long long, 8)
;;
+ *-hp-hpux* )
+ AC_CHECK_SIZEOF(long long, 0)
+ if test "$ac_cv_sizeof_long_long" != "0"; then
+ dnl HPUX 10.20 headers need this define in order to use long long definitions
+ CPPFLAGS="$CPPFLAGS -D_INCLUDE_LONGLONG"
+ fi
+ ;;
* )
AC_CHECK_SIZEOF(long long, 0)
esac
[
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>
],
wx_cv_sizeof_wchar_t=`cat conftestval`,
wx_cv_sizeof_wchar_t=0,
- wx_cv_sizeof_wchar_t=4
+ [
+ case "${host}" in
+ *-pc-msdosdjgpp )
+ wx_cv_sizeof_wchar_t=0
+ ;;
+ * )
+ wx_cv_sizeof_wchar_t=4
+ ;;
+ esac
+ ]
)
])
dnl check for large file support
AC_SYS_LARGEFILE
+dnl we need to define _FILE_OFFSET_BITS or _LARGE_FILES on the compiler command
+dnl line because otherwise the system headers risk being included before
+dnl wx/defs.h which defines these constants leading to inconsistent
+dnl sizeof(off_t) in different source files of the same program and linking
+dnl problems
+if test "x$wx_largefile" = "xyes"; then
+ if test "x$ac_cv_sys_file_offset_bits" = "x64"; then
+ WX_LARGEFILE_FLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGE_FILES"
+ else
+ WX_LARGEFILE_FLAGS="-D_LARGE_FILES"
+ fi
+ CPPFLAGS="$CPPFLAGS $WX_LARGEFILE_FLAGS"
+fi
+
dnl check for bytesex stuff (don't use AC_C_BIGENDIAN to allow cross-compiling)
WX_C_BIGENDIAN
dnl check whether C++ compiler supports explicit keyword
WX_CPP_EXPLICIT
+dnl check whether C++ compiler supports C++ casts
+AC_CXX_CONST_CAST
+
dnl ---------------------------------------------------------------------------
dnl Define search path for includes and libraries: all headers and libs will be
dnl looked for in all directories of this path
dnl ---------------------------------------------------------------------------
-dnl notice that /usr/include should not be in this list, otherwise it breaks
-dnl compilation on Solaris/gcc because standard headers are included instead
-dnl of the gcc ones (correction: it *is* needed for broken AIX compiler - but
-dnl do put it last!)
+dnl Notice that /usr/include should *not* be in this list, otherwise it breaks
+dnl compilation on Solaris/AIX/... with gcc because standard (non ANSI C)
+dnl headers are included instead of the "fixed" (ANSI-fied) gcc ones.
dnl
dnl Also try to put all directories which may contain X11R6 before those which
dnl may contain X11R5/4 - we want to use R6 on machines which have both!
/usr/local/x11r5/include \
/usr/lpp/Xamples/include \
\
- /usr/openwin/share/include \
- \
- /usr/include"
+ /usr/openwin/share/include"
SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s/include/lib/g` "
AC_DEFINE(wxUSE_ZLIB)
if test "$wxUSE_ZLIB" = "sys" -o "$wxUSE_ZLIB" = "yes" ; then
- AC_CHECK_HEADER(zlib.h, AC_CHECK_LIB(z, deflate, ZLIB_LINK=" -lz"))
+ dnl don't test for zlib under Mac -- its verson there is 1.1.3 but we
+ dnl should still use it because hopefully (can someone confirm this?)
+ dnl Apple did fix the security problem in it and not using the system
+ dnl library results in a whole bunch of warnings when linking with
+ dnl Carbon framework
+ if test "$USE_DARWIN" = 1; then
+ system_zlib_h_ok="yes"
+ else
+ dnl we have troubles with ancient zlib versions (e.g. 1.0.4 is
+ dnl known to not work) and although I don't know which is
+ dnl the minimal required version it's safer to test for 1.1.4 as
+ dnl it fixes a security problem in 1.1.3 -- and hopefully nobody
+ dnl has anything more ancient (1.1.3 was released in July 1998)
+ dnl anyhow
+ AC_CACHE_CHECK([for zlib.h >= 1.1.4], ac_cv_header_zlib_h,
+ AC_TRY_RUN(
+ [
+ dnl zlib.h defines ZLIB_VERSION="x.y.z"
+ #include <zlib.h>
+ #include <stdio.h>
+
+ dnl don't use the brackets as quotes, we need them
+ changequote(,)
+ int main()
+ {
+ FILE *f=fopen("conftestval", "w");
+ if (!f) exit(1);
+ fprintf(f, "%s",
+ ZLIB_VERSION[0] == '1' &&
+ (ZLIB_VERSION[2] > '1' ||
+ (ZLIB_VERSION[2] == '1' &&
+ ZLIB_VERSION[4] >= '4')) ? "yes" : "no");
+ exit(0);
+ }
+ changequote([,])
+ ],
+ ac_cv_header_zlib_h=`cat conftestval`,
+ ac_cv_header_zlib_h=no,
+ dnl cross-compiling: don't have an answer, try later
+ unset ac_cv_header_zlib_h
+ )
+ )
+ dnl If the test above did not come up with a value (e.g. cross
+ dnl compiling) then this should give a definitive answer
+ AC_CHECK_HEADER(zlib.h)
+
+ system_zlib_h_ok=$ac_cv_header_zlib_h
+ fi
+
+ if test "$system_zlib_h_ok" = "yes"; then
+ AC_CHECK_LIB(z, deflate, ZLIB_LINK=" -lz")
+ fi
if test "x$ZLIB_LINK" = "x" ; then
if test "$wxUSE_ZLIB" = "sys" ; then
- AC_MSG_ERROR([system zlib compression library not found! Use --with-zlib=builtin to use built-in version])
+ AC_MSG_ERROR([zlib library not found or too old! Use --with-zlib=builtin to use built-in version])
else
- AC_MSG_WARN([system zlib compression library not found, will use built-in instead])
+ AC_MSG_WARN([zlib library not found or too old, will use built-in instead])
wxUSE_ZLIB=builtin
fi
else
if test "$wxUSE_MGL" != 1 ; then
dnl Don't check for libpng when building wxMGL, libmgl contains it
if test "$wxUSE_LIBPNG" = "sys" -o "$wxUSE_LIBPNG" = "yes" ; then
- AC_CHECK_HEADER(png.h,
- AC_CHECK_LIB(png, png_check_sig,
- PNG_LINK=" -lpng",
- ,
- [-lz -lm])
- )
+ dnl libpng version 0.9 is known to not work, if an even newer
+ dnl version is required, just bump it up in the test below
+ AC_CACHE_CHECK([for png.h > 0.90], ac_cv_header_png_h,
+ AC_TRY_RUN(
+ [
+ dnl png.h defines PNG_LIBPNG_VER=number
+ #include <png.h>
+ #include <stdio.h>
+
+ int main()
+ {
+ FILE *f=fopen("conftestval", "w");
+ if (!f) exit(1);
+ fprintf(f, "%s",
+ PNG_LIBPNG_VER > 90 ? "yes" : "no");
+ exit(0);
+ }
+ ],
+ ac_cv_header_png_h=`cat conftestval`,
+ ac_cv_header_png_h=no,
+ dnl cross-compiling: test (later) if we have any png.h
+ unset ac_cv_header_png_h
+ )
+ )
+ AC_CHECK_HEADER(png.h)
+
+ if test "$ac_cv_header_png_h" = "yes"; then
+ AC_CHECK_LIB(png, png_check_sig, PNG_LINK=" -lpng", , [-lz -lm])
+ fi
if test "x$PNG_LINK" = "x" ; then
if test "$wxUSE_LIBPNG" = "sys" ; then
- AC_MSG_ERROR([system png library not found! Use --with-libpng=builtin to use built-in version])
+ AC_MSG_ERROR([system png library not found or too old! Use --with-libpng=builtin to use built-in version])
else
- AC_MSG_WARN([system png library not found, will use built-in instead])
+ AC_MSG_WARN([system png library not found or too old, will use built-in instead])
wxUSE_LIBPNG=builtin
fi
else
dnl we are using the system library
- wxUSE_LIBPNG=yes
+ wxUSE_LIBPNG=sys
fi
fi
fi
TIFF_INCLUDE=
TIFF_LINK=
+TIFF_PREREQ_LINKS=-lm
if test "$wxUSE_LIBTIFF" != "no" ; then
AC_DEFINE(wxUSE_LIBTIFF)
if test "$wxUSE_LIBTIFF" = "sys" -o "$wxUSE_LIBTIFF" = "yes" ; then
+ dnl libtiff may depend on libjpeg and libz so use them in the test
+ dnl below or it would fail
+ if test "$wxUSE_LIBJPEG" = "sys"; then
+ TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $JPEG_LINK"
+ fi
+ if test "$wxUSE_ZLIB" = "sys"; then
+ TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $ZLIB_LINK"
+ fi
AC_CHECK_HEADER(tiffio.h,
AC_CHECK_LIB(tiff, TIFFError,
TIFF_LINK=" -ltiff",
,
- -lm)
+ $TIFF_PREREQ_LINKS)
)
if test "x$TIFF_LINK" = "x" ; then
dnl ----------------------------------------------------------------
AFMINSTALL=
+WIN32INSTALL=
TOOLKIT=
TOOLKIT_INCLUDE=
RESFLAGS="--include-dir \$(top_srcdir)/include --include-dir \$(top_srcdir)/\$(program_dir) --define __WIN32__ --define __WIN95__ --define __GNUWIN32__"
RESPROGRAMOBJ="\$(PROGRAM)_resources.o"
+
+ dnl install Win32-specific files in "make install"
+ WIN32INSTALL=win32install
+fi
+
+if test "$USE_DARWIN" = 1; then
+ dnl Mac OS X/Darwin GCC uses precompiled headers by default
+ dnl this can cause problems both when compiling wxMac and wxBase
+ if test "$wxUSE_PRECOMP" = "yes"; then
+ CPPFLAGS="$CPPFLAGS -cpp-precomp"
+ else
+ CPPFLAGS="$CPPFLAGS -no-cpp-precomp"
+ fi
fi
if test "$wxUSE_GUI" = "yes"; then
GUIDIST=MSW_DIST
dnl -mwindows causes a heap of other default gui libs to be linked in.
- dnl FIXME: If cygwin needs this, please push it above, if not, please
- dnl remove this comment :-)
- case "${host}" in
- *-*-mingw32* )
- LDFLAGS="$LDFLAGS -Wl,--subsystem,windows -mwindows"
- esac
+ dnl All platforms need this, except maybe cygwin
+ LDFLAGS="$LDFLAGS -Wl,--subsystem,windows -mwindows"
fi
if test "$wxUSE_GTK" = 1; then
GTK_MODULES=gthread
fi
+ dnl note that if we fail to find GTK2 we abort and don't fall
+ dnl back to GTK1.x
wx_cv_lib_gtk=
if test "x$wxUSE_GTK2" = "xyes"; then
AM_PATH_GTK_2_0(2.0.0, wx_cv_lib_gtk=2.0, , $GTK_MODULES)
- fi
-
- if test -z "$wx_cv_lib_gtk"; then
+ else
AM_PATH_GTK(1.2.7, wx_cv_lib_gtk=1.2.7, , $GTK_MODULES)
- fi
- if test -z "$wx_cv_lib_gtk"; then
- AM_PATH_GTK(1.2.3, wx_cv_lib_gtk=1.2.3, , $GTK_MODULES)
+ if test -z "$wx_cv_lib_gtk"; then
+ AM_PATH_GTK(1.2.3, wx_cv_lib_gtk=1.2.3, , $GTK_MODULES)
+ fi
fi
if test -z "$wx_cv_lib_gtk"; then
case "$wx_cv_lib_gtk" in
2.0) WXGTK20=1
+ TOOLKIT_VERSION=2
;;
1.2.7) WXGTK127=1
WXGTK12=1
]
)
fi
+ else
+ if test "$wxUSE_UNICODE" = "yes"; then
+ AC_MSG_WARN([Unicode configuration not supported with GTK+ 1.x])
+ wxUSE_UNICODE=no
+ fi
+ fi
+
+ dnl we need poll() in src/gtk/app.cpp (we know that Darwin doesn't
+ dnl have it but we do the check for the others)
+ if test "$USE_DARWIN" != 1; then
+ AC_CHECK_FUNCS(poll)
fi
TOOLKIT_INCLUDE="$wx_cv_cflags_gtk"
fi
if test "$wxUSE_MGL" = 1; then
- AC_MSG_CHECKING(for SciTech MGL library)
+ AC_MSG_CHECKING(for SciTech MGL library)
if test "x$MGL_ROOT" = x ; then
AC_MSG_RESULT(not found)
AC_MSG_ERROR([Cannot find MGL library. Make sure MGL_ROOT is set.])
AC_MSG_RESULT($MGL_ROOT)
fi
+ AC_MSG_CHECKING(for libmgl location)
dnl Find MGL library that we want
dnl FIXME_MGL - test for MGL variants for freebsd etc.
case "${host}" in
*-*-linux* )
- mgl_os=linux/gcc/glibc
+ if test "x$wxUSE_SHARED" = xyes ; then
+ mgl_os_candidates="linux/gcc/glibc.so linux/gcc/glibc"
+ else
+ mgl_os_candidates="linux/gcc/glibc linux/gcc/glibc.so"
+ fi
;;
*-pc-msdosdjgpp )
- mgl_os=dos32/dj2
+ mgl_os_candidates="dos32/dj2"
;;
*)
AC_MSG_ERROR(This system type ${host} is not yet supported by wxMGL.)
esac
mgl_lib_type=""
-
- if test "$wxUSE_DEBUG_FLAG" = yes ; then
- if test -f $MGL_ROOT/lib/debug/$mgl_os/libmgl.a -o \
- -f $MGL_ROOT/lib/debug/$mgl_os/libmgl.so; then
- mgl_lib_type=debug
- fi
- fi
- if test "x$mgl_lib_type" = x ; then
- if test -f $MGL_ROOT/lib/release/$mgl_os/libmgl.a -o \
- -f $MGL_ROOT/lib/release/$mgl_os/libmgl.so; then
- mgl_lib_type=release
- else
- AC_MSG_ERROR([Cannot find MGL libraries, make sure they are compiled.])
+ mgl_os=""
+
+ for mgl_os_i in $mgl_os_candidates ; do
+ if test "x$mgl_os" = x ; then
+ if test "$wxUSE_DEBUG_FLAG" = yes ; then
+ if test -f $MGL_ROOT/lib/debug/$mgl_os_i/libmgl.a -o \
+ -f $MGL_ROOT/lib/debug/$mgl_os_i/libmgl.so; then
+ mgl_lib_type=debug
+ mgl_os=$mgl_os_i
+ fi
+ fi
+ if test "x$mgl_lib_type" = x ; then
+ if test -f $MGL_ROOT/lib/release/$mgl_os_i/libmgl.a -o \
+ -f $MGL_ROOT/lib/release/$mgl_os_i/libmgl.so; then
+ mgl_lib_type=release
+ mgl_os=$mgl_os_i
+ fi
+ fi
fi
- fi
+ done
+ if test "x$mgl_os" = x ; then
+ AC_MSG_RESULT(not found)
+ AC_MSG_ERROR([Cannot find MGL libraries, make sure they are compiled.])
+ fi
+ AC_MSG_RESULT("$MGL_ROOT/lib/$mgl_lib_type/$mgl_os")
+
wxUSE_UNIVERSAL="yes"
TOOLKIT_INCLUDE="-I$MGL_ROOT/include"
)
fi
+ if test "$wxUSE_UNICODE" = "yes"; then
+ PKG_CHECK_MODULES(PANGOX, pangox,
+ [
+ CXXFLAGS="$CXXFLAGS $PANGOX_CFLAGS"
+ LIBS="$LIBS $PANGOX_LIBS"
+ ],
+ [
+ AC_MSG_ERROR([pangox library not found, library cannot be compiled in Unicode mode])
+ ]
+ )
+ PKG_CHECK_MODULES(PANGOFT2, pangoft2,
+ [
+ CXXFLAGS="$CXXFLAGS $PANGOFT2_CFLAGS"
+ LIBS="$LIBS $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,
+ [
+ CXXFLAGS="$CXXFLAGS $PANGOXFT_CFLAGS"
+ LIBS="$LIBS $PANGOXFT_LIBS"
+ ],
+ [
+ AC_MSG_WARN([pangoxft library not found, library will be compiled without anti-aliasing support])
+ ]
+ )
+ fi
+
wxUSE_UNIVERSAL="yes"
if test "$wxUSE_NANOX" = "yes"; then
GUIDIST=X11_DIST
fi
- if test "$wxUSE_WINE" = 1; then
- AC_CHECK_HEADER(windows.h, [],
- [
- AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
- ])
-
- xpm_link=
- AC_MSG_CHECKING(for Xpm library)
- WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
- if test "$ac_find_libraries" != "" ; then
- GUI_TK_LIBRARY="-L$ac_find_libraries"
- xpm_link=" -lXpm"
- AC_DEFINE(wxHAVE_LIB_XPM)
- AC_MSG_RESULT(found at $ac_find_libraries)
- else
- AC_MSG_RESULT(no)
- AC_MSG_WARN(library will be compiled without support for images in XPM format)
- fi
-
- mesa_link=
- AC_MSG_CHECKING(for Mesa library)
- WX_PATH_FIND_LIBRARIES($SEARCH_LIB,MesaGL)
- if test "$ac_find_libraries" != "" ; then
- GUI_TK_LIBRARY="$GUI_TK_LIBRARY -L$ac_find_libraries"
- mesa_link=" -lMesaGL"
- AC_MSG_RESULT(found at $ac_find_libraries)
- else
- AC_MSG_ERROR(no)
- fi
-
- GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lwine$mesa_link$xpm_link -lXxf86dga -lXxf86vm -lSM -lICE -lXext -lXmu -lX11 -lncurses"
- TOOLKIT=MSW
- GUIDIST=MSW_DIST
- TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXWINE__"
- fi
-
if test "$wxUSE_MOTIF" = 1; then
dnl use standard macros to check for X headers/libs, this brings support
dnl for the standard configure options --x-includes and --x-libraries
AC_MSG_ERROR(X11 not found, please use --x-includes and/or --x-libraries options)
fi
- GUI_TK_LIBRARY="$X_LIBS"
- TOOLKIT_INCLUDE="$X_CFLAGS"
+ dnl for some reason AC_PATH_XTRA seems to add -INONE and -LNONE to
+ dnl X_LIBS and X_CFLAGS respectively -- what for??
+ GUI_TK_LIBRARY=`echo $X_LIBS | sed 's/ -LNONE//'`
+ TOOLKIT_INCLUDE=`echo $X_CFLAGS | sed 's/ -INONE//'`
AFMINSTALL=afminstall
COMPILED_X_PROGRAM=0
for libp in "" " -lXp"; do
if test "$libs_found" = "0"; then
for libsm_ice in " -lSM -lICE"; do
- if test "$libs_found" = "0"; then
+ if test "$libs_found" = "0"; then
save_LIBS="$LIBS"
LIBS="$GUI_TK_LIBRARY -lXm${xpm_link} ${libp} -lXmu -lXext -lXt${libsm_ice} -lX11"
save_CFLAGS=$CFLAGS
AC_MSG_ERROR([can't link a simple motif program])
fi
+ save_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
+ AC_MSG_CHECKING([for Motif 2])
+ AC_TRY_COMPILE([
+ #include <Xm/Xm.h>
+ ],
+ [
+ #if XmVersion < 2000
+ #error "Not Motif 2"
+ #endif
+ ],
+ [
+ AC_DEFINE(__WXMOTIF20__,1)
+ AC_MSG_RESULT([found])
+ ],
+ [
+ AC_DEFINE(__WXMOTIF20__,0)
+ AC_MSG_RESULT([not found])
+ ])
+ CFLAGS=$save_CFLAGS
+
GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXm$xpm_link${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11"
- TOOLKIT_VPATH="\${top_srcdir}/src/motif${PATH_IFS}\${top_srcdir}/src/motif/xmcombo"
+ TOOLKIT_VPATH="\${top_srcdir}/src/motif${PATH_IFS}\${top_srcdir}/src/motif/xmcombo${PATH_IFS}\${top_srcdir}/src/x11"
TOOLKIT=MOTIF
GUIDIST=MOTIF_DIST
fi
if test "$wxUSE_MAC" = 1; then
- if test "$wxUSE_PRECOMP" = "yes"; then
- CPPFLAGS="$CPPFLAGS -cpp-precomp"
- else
- CPPFLAGS="$CPPFLAGS -no-cpp-precomp"
- fi
- CPPFLAGS="$CPPFLAGS -I/Developer/Headers/FlatCarbon -I\${top_srcdir}/src/mac/morefile"
- CFLAGS="$CFLAGS -fpascal-strings"
- CXXFLAGS="$CXXFLAGS -fpascal-strings"
+ CPPFLAGS="$CPPFLAGS -fpascal-strings -I\${top_srcdir}/src/mac/morefilex -I/Developer/Headers/FlatCarbon"
- TOOLKIT_VPATH="\${top_srcdir}/src/mac${PATH_IFS}\${top_srcdir}/src/mac/morefile"
+ TOOLKIT_VPATH="\${top_srcdir}/src/mac${PATH_IFS}\${top_srcdir}/src/mac/morefilex"
TOOLKIT=MAC
dnl we can't call this MAC_DIST or autoconf thinks its a macro
GUIDIST=MACX_DIST
fi
+ if test "$wxUSE_COCOA" = 1; then
+ TOOLKIT_VPATH="\${top_srcdir}/src/cocoa"
+ TOOLKIT=COCOA
+ GUIDIST=COCOA_DIST
+ fi
+
if test "$wxUSE_PM" = 1; then
TOOLKIT=PM
GUIDIST=GTK_DIST
+ AC_MSG_WARN([OS/2 PM requires old resource format, re-enabled])
+ wxUSE_PROLOGIO="yes"
+ wxUSE_RESOURCES="yes"
+ AC_MSG_WARN([OS/2 threads are not yet supported... disabled])
+ wxUSE_THREADS="no"
fi
dnl the name of the directory where the files for this toolkit live
dnl ---------------------------------------------------------------------------
if test "$wxUSE_OPENGL" = "yes"; then
- if test "$wxUSE_MAC" = 1; then
+ if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = "1"; then
OPENGL_LIBS="-framework OpenGL -framework AGL"
elif test "$wxUSE_MSW" = 1; then
OPENGL_LIBS="-lopengl32 -lglu32"
lib_debug_suffix=d
fi
-TOOLCHAIN_NAME="${TOOLKIT_DIR}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}-${WX_RELEASE}"
-TOOLCHAIN_NAME_GL="${TOOLKIT_DIR}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}_gl-${WX_RELEASE}"
+WX_VERSION_TAG=`echo WX${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}_${WX_RELEASE} | tr "[[a-z]]" "[[A-Z]]"`
+
+TOOLCHAIN_NAME="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}-${WX_RELEASE}"
+TOOLCHAIN_NAME_GL="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}_gl-${WX_RELEASE}"
if test "$cross_compiling" = "yes"; then
TOOLCHAIN_NAME="${TOOLCHAIN_NAME}-${host_alias}"
dnl library link name
WX_LIBRARY="wx_${TOOLCHAIN_NAME}"
WX_LIBRARY_GL="wx_${TOOLCHAIN_NAME_GL}"
+WX_LIBRARY_BASENAME="wx_${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}"
dnl the name of the shared library
WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${SO_SUFFIX}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
;;
*-*-darwin* )
+ dnl Under Mac OS X, the naming conventions for shared libraries
+ dnl are different: the number precedes the suffix.
+
+ WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}.${SO_SUFFIX}"
+ WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY_GL}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}.${SO_SUFFIX}"
+
+ WX_LIBRARY_LINK1="lib${WX_LIBRARY}.${WX_CURRENT}.${SO_SUFFIX}"
+ WX_LIBRARY_LINK2="lib${WX_LIBRARY}.${SO_SUFFIX}"
+ WX_LIBRARY_LINK1_GL="lib${WX_LIBRARY_GL}.${WX_CURRENT}.${SO_SUFFIX}"
+ WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}"
+
dnl Under Mac OS X, we should build real frameworks instead of simple
dnl dynamic shared libraries (in order to embed the resources)
if test "$wxUSE_MAC" = 1; then
- dnl the name of the resources file for wxMac
- WX_RESOURCES_MACOSX_ASCII="lib${WX_LIBRARY}.r"
- WX_RESOURCES_MACOSX_DATA="lib${WX_LIBRARY}.rsrc"
+ 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="lib${WX_LIBRARY}.${WX_CURRENT}.r"
+ WX_RESOURCES_MACOSX_DATA="lib${WX_LIBRARY}.${WX_CURRENT}.rsrc"
fi
;;
esac
PIC_FLAG="-fPIC"
fi
+
+ dnl use versioned symbols if available on the platform
+ WX_VERSIONED_SYMBOLS([\$(top_builddir)/version-script])
+
dnl the command to use for creating the shared library
SHARED_LD="${CXX} -shared -o"
case "${host}" in
*-hp-hpux* )
dnl default settings are good for gcc but not for the native HP-UX
- if test "$GCC" == "yes"; then
- SHARED_LD="${SHARED_LD} ${PIC_FLAG}"
+ if test "$GCC" = "yes"; then
+ dnl -o flag must be after PIC flag
+ SHARED_LD="${CXX} -shared ${PIC_FLAG} -o"
else
dnl no idea why it wants it, but it does
LDFLAGS="$LDFLAGS -L/usr/lib"
*-*-darwin* )
dnl For Unix to MacOS X porting instructions, see:
dnl http://fink.sourceforge.net/doc/porting/porting.html
- CFLAGS="$CFLAGS -fno-common -DWXMAKINGDLL"
- CXXFLAGS="$CXXFLAGS -fno-common -DWXMAKINGDLL"
+ TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -DWXMAKINGDLL"
+ CFLAGS="$CFLAGS -fno-common"
+ CXXFLAGS="$CXXFLAGS -fno-common"
dnl wxWindows must be fully binded (lazy binding breaks RTTI classinfo)
dnl this can be done either with the exe linker flag -Wl,-bind_at_load
dnl or with a double stage link in order to create a single module
dnl "-init _wxWindowsDylibInit" not useful with lazy linking solved
SHARED_LD="\${top_srcdir}/distrib/mac/shared-ld-sh -undefined suppress -flat_namespace -o"
PIC_FLAG="-dynamic -fPIC"
- SONAME_FLAGS="-compatibility_version ${WX_RELEASE} -current_version ${WX_VERSION}"
- SONAME_FLAGS_GL=${SONAME_FLAGS}
+ dnl library installation base name and wxMac resources file base name
+ dnl must be identical in order for the resource file to be found at
+ dnl run time in src/mac/app.cpp
+ SONAME_FLAGS="-compatibility_version ${WX_RELEASE} -current_version ${WX_VERSION} -install_name \$(libdir)/${WX_LIBRARY_LINK1}"
+ SONAME_FLAGS_GL="-compatibility_version ${WX_RELEASE} -current_version ${WX_VERSION} -install_name \$(libdir)/${WX_LIBRARY_LINK1_GL}"
;;
*-*-aix* )
- dnl the abs path below used to be hardcoded here so I guess it must
- dnl be some sort of standard location under AIX?
- AC_CHECK_PROG(AIX_CXX_LD, makeC++SharedLib,
- makeC++SharedLib, /usr/lpp/xlC/bin/makeC++SharedLib)
+ dnl default settings are ok for gcc
+ if test "$GCC" != "yes"; then
+ dnl the abs path below used to be hardcoded here so I guess it must
+ dnl be some sort of standard location under AIX?
+ AC_CHECK_PROG(AIX_CXX_LD, makeC++SharedLib,
+ makeC++SharedLib, /usr/lpp/xlC/bin/makeC++SharedLib)
- SHARED_LD="$(AIX_CXX_LD) -p 0 -o"
+ SHARED_LD="$(AIX_CXX_LD) -p 0 -o"
+ fi
;;
*-*-cygwin* | *-*-mingw32* )
-
WX_LIBRARY_IMPORTLIB="${WX_LIBRARY_NAME_SHARED}.a"
SHARED_LD="${CXX} -shared -Wl,--out-implib,lib/${WX_LIBRARY_IMPORTLIB} -o"
PIC_FLAG="-UWXUSINGDLL -DWXMAKINGDLL=1 -D_DLL=1 -D_WINDLL=1"
- dnl install shared libs without symlinks
+ dnl Don't build seperate GL library
+ WX_ALL="\$(build_libdir)/${WX_LIBRARY_NAME_SHARED}"
+ WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
+
if test "$wxUSE_OPENGL" = "yes"; then
- WX_ALL_INSTALLED="preinstall_gl"
- WX_ALL="\$(build_libdir)/${WX_LIBRARY_NAME_SHARED} \$(build_libdir)/${WX_LIBRARY_NAME_SHARED_GL}"
- else
- WX_ALL="\$(build_libdir)/${WX_LIBRARY_NAME_SHARED}"
+ LIBS="${LIBS} ${OPENGL_LIBS}"
fi
;;
SHARED_LD="${LD} -shared -o"
;;
+ *-*-irix* )
+ dnl default settings are ok for gcc
+ if test "$GCC" != "yes"; then
+ PIC_FLAG="-KPIC"
+ fi
+ ;;
+
*-*-freebsd* | *-*-openbsd* | *-*-netbsd* | \
*-*-sunos4* | \
- *-*-irix5* | *-*-irix6* | \
*-*-osf* | \
*-*-dgux5* | \
*-*-sysv5* )
WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall"
fi
- if test "$wxUSE_MAC" = 1; then
+ if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall"
fi
WX_TARGET_LIBRARY_TYPE="a"
INSTALL_LIBRARY='$(INSTALL_DATA)'
+
+ dnl wx-config should assume the --static flag by default if we don't have
+ dnl any shared libs anyhow
+ STATIC_FLAG="yes"
+else
+ STATIC_FLAG="no"
fi
+dnl default value is to (silently) do nothing in the makefile
+MACRESCOMP="@#"
+MACSETFILE="@#"
+MACRESWXCONFIG="#"
if test "$wxUSE_MAC" = 1; then
dnl add the resources target for wxMac
LIBWXMACRES="\$(top_builddir)/lib/${WX_RESOURCES_MACOSX_ASCII}"
WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall_res"
AC_CHECK_PROG(RESCOMP, Rez, Rez, /Developer/Tools/Rez)
AC_CHECK_PROG(DEREZ, DeRez, DeRez, /Developer/Tools/DeRez)
+ AC_CHECK_PROG(SETFILE, SetFile, SetFile, /Developer/Tools/SetFile)
MACOSX_BUNDLE="bundle"
- if test "$wxUSE_SHARED" = "yes"; then
- dnl resources are bundled with shared library, not with applications
- LIBWXMACRESCOMP="\$(RESCOMP) -t APPL Carbon.r -o \$(BIN_PROGRAM)"
- LIBWXMACRESWXCONFIG="${RESCOMP} -t APPL Carbon.r -o"
- else
- dnl resources are bundled with applications, not with static library
- LIBWXMACRESCOMP="\$(RESCOMP) -t APPL Carbon.r ${LIBWXMACRES} -o \$(BIN_PROGRAM)"
- LIBWXMACRESWXCONFIG="${RESCOMP} -t APPL Carbon.r \${prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o"
- fi
+ dnl resources are bundled both with shared library and applications
+ dnl since the carb resource *must* be included in the application
+ MACRESCOMP="\$(RESCOMP) -d __DARWIN__ -t APPL Carbon.r ${LIBWXMACRES} -o"
+ MACSETFILE="\$(SETFILE)"
+ MACRESWXCONFIG="${RESCOMP} -d __DARWIN__ -t APPL Carbon.r \$(top_builddir)/lib/${WX_RESOURCES_MACOSX_ASCII}} -o"
else
if test "$wxUSE_PM" = 1; then
- LIBWXMACRESCOMP="emxbind -ep \$(BIN_PROGRAM)"
+ MACRESCOMP="emxbind -ep"
fi
fi
AC_MSG_WARN([Wide character support is unavailable])
fi
-dnl check for vprintf/vsprintf() which are GNU extensions
-AC_FUNC_VPRINTF
-
-dnl check for vsscanf() and vsnprintf() - on some platforms (Linux, glibc
-dnl 2.1.1 for the first one, HP-UX for the second) it's available in the
-dnl library but the prototype is missing, so we can't use AC_CHECK_FUNCS() here,
-dnl do it manually. We can't use AC_TRY_COMPILE(), either, because it doesn't
-dnl check if the symbol is available at linking time
-
-dnl we use AC_TRY_LINK() here instead of AC_TRY_RUN() to make the checks
-dnl work for cross-compilation, but AC_TRY_LINK() normally only compiles
-dnl one function while we need at least 2 - hence the ugly hack below. To
-dnl understand why it works, remember that AC_TRY_LINK() just prepends
-dnl "int main() {" in the beginning of the code and "; return 0; }" at the
-dnl end...
-
-dnl if we fail to find vsnprintf, also try for _vsnprintf as that is what
-dnl we'll find under MSW if it exists.
+dnl *printf() functions sometimes are available in the library but not
+dnl prototyped -- if this is the case, we can't use them from C++ code, but to
+dnl detect this we have to use C++ compiler for testing
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
-dnl final note: AC_TRY_LINK will only be executed if there is nothing in
-dnl the cache so we have to do AC_DEFINE(HAVE_VSNPRINTF) below and not inside
-dnl it or the symbol wouldn't be defined for the 2nd and subsequent configure
-dnl runs
+dnl check for vsnprintf() -- a safe version of vsprintf())
+dnl
+dnl the trouble here is that on some systems (notable HP-UX) this function is
+dnl present in libc but not in the system headers and so AC_CHECK_FUNCS (which,
+dnl stupidly, provides a dummy function declaration inside its extension)
+dnl succeeds, even with C++ compiler, but the compilation of wxWindows fails
+dnl
+dnl so we first check if the function is in the library
+AC_CHECK_FUNCS(vsnprintf)
-dnl check for vsnprintf() - a safe version of vsprintf()
-AC_CACHE_CHECK([for vsnprintf], wx_cv_func_vsnprintf,
-[
- AC_TRY_LINK([
+if test "$ac_cv_func_vsnprintf" = "yes"; then
+ dnl yes it is -- now check if it is in the headers
+ AC_CACHE_CHECK([for vsnprintf declaration], wx_cv_func_vsnprintf_decl,
+ [
+ AC_TRY_COMPILE(
+ [
#include <stdio.h>
#include <stdarg.h>
- ], [
- int wx_test_vsnprintf(const char *, ...);
-
- wx_test_vsnprintf("%s");
- return 0;
- }
-
- int wx_test_vsnprintf(const char *fmt, ...)
- {
- char *s;
-
- va_list argp;
- va_start(argp, fmt);
- vsnprintf(s, 42, fmt, argp);
- va_end(argp);
- ], [
- wx_cv_func_vsnprintf=yes
- ], [
- AC_TRY_LINK([
- #include <stdio.h>
- #include <stdarg.h>
- ], [
- int wx_test_vsnprintf(const char *, ...);
-
- wx_test_vsnprintf("%s");
- return 0;
- }
-
- int wx_test_vsnprintf(const char *fmt, ...)
- {
- char *s;
-
- va_list argp;
- va_start(argp, fmt);
- _vsnprintf(s, 42, fmt, argp);
- va_end(argp);
- ], [
- wx_cv_func_vsnprintf=yes
- ], [
- wx_cv_func_vsnprintf=no
- ])
- ])
-])
+ ],
+ [
+ char *buf;
+ va_list ap;
+ vsnprintf(buf, 10u, "%s", ap);
+ ],
+ wx_cv_func_vsnprintf_decl=yes,
+ wx_cv_func_vsnprintf_decl=no
+ )
+ ]
+ )
-if test "$wx_cv_func_vsnprintf" = yes; then
- AC_DEFINE(HAVE_VSNPRINTF)
-else
- AC_MSG_WARN(unsafe function vsprintf will be used instead of vsnprintf)
+ if test "$wx_cv_func_vsnprintf_decl" = "yes"; then
+ AC_DEFINE(HAVE_VSNPRINTF_DECL)
+ fi
fi
-dnl check for vsscanf()
-AC_CACHE_CHECK([for vsscanf], wx_cv_func_vsscanf,
-[
- AC_TRY_COMPILE([
- #include <stdio.h>
- #include <stdarg.h>
- ], [
- int wx_test_vsscanf(const char *, ...);
-
- wx_test_vsscanf("%d");
- return 0;
- }
-
- int wx_test_vsscanf(const char *fmt, ...)
- {
- va_list argp;
- va_start(argp, fmt);
- vsscanf("42", fmt, argp);
- va_end(argp);
- ], [
- wx_cv_func_vsscanf=yes
- ], [
- wx_cv_func_vsscanf=no
- ])
-])
+if test "$wxUSE_UNICODE" = yes; then
+ dnl also look if we have wide char IO functions
+ AC_CHECK_FUNCS(fputwc wprintf vswprintf)
-if test "$wx_cv_func_vsscanf" = yes; then
- AC_DEFINE(HAVE_VSSCANF)
+ dnl MinGW has a vswprintf with a different prototype, and
+ dnl a _vsnwprintf with the correct prototype, but AC_CHECK_FUNCS
+ dnl finds it even if it is not declared in some versions...
+ AC_MSG_CHECKING([for _vsnwprintf])
+ AC_TRY_COMPILE([#include <wchar.h>],
+ [&_vsnwprintf;],
+ [AC_MSG_RESULT([yes])
+ AC_DEFINE(HAVE__VSNWPRINTF)],
+ [AC_MSG_RESULT([no])]);
fi
-if test "$wxUSE_UNICODE" = yes; then
- dnl look if we have wide char IO functions
- AC_CHECK_FUNCS(fputwc wprintf)
-fi
+AC_LANG_RESTORE
+
+
dnl the following tests are for Unix(like) systems only
if test "$TOOLKIT" != "MSW"; then
fi
fi
-dnl check for vfork() (even if it's the same as fork() in modern Unices)
-AC_CHECK_FUNCS(vfork)
-
dnl check for the function for temp files creation
AC_CHECK_FUNCS(mkstemp mktemp, break)
)
if test "$wx_cv_func_statfs" = "yes"; then
+ wx_cv_type_statvfs_t="struct statfs"
AC_DEFINE(HAVE_STATFS)
else
AC_CACHE_CHECK(for statvfs, wx_cv_func_statvfs,
AC_TRY_COMPILE(
[
- #include <sys/statvfs.h>
+ #include <stddef.h>
+ #include <sys/statvfs.h>
],
[
- long l;
- struct statvfs fs;
- statvfs("/", &fs);
- l = fs.f_bsize;
- l += fs.f_blocks;
- l += fs.f_bavail;
+ statvfs("/", NULL);
],
- [
- wx_cv_func_statvfs=yes
- ],
- [
- wx_cv_func_statvfs=no
- ]
+ wx_cv_func_statvfs=yes,
+ wx_cv_func_statvfs=no
)
)
if test "$wx_cv_func_statvfs" = "yes"; then
- AC_DEFINE(HAVE_STATVFS)
+ dnl we also have to check whether we should use statvfs_t (works under
+ dnl Solaris 8, doesn't work under Solaris 7) or "struct statvfs" (vice
+ dnl versa) as the argument for statvfs in 64 bit off_t mode (in 32 bit
+ dnl mode both work fine)
+ dnl
+ 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_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+
+ AC_CACHE_CHECK(for statvfs argument type, wx_cv_type_statvfs_t,
+ AC_TRY_COMPILE(
+ [
+ #include <sys/statvfs.h>
+ ],
+ [
+ long l;
+ statvfs_t fs;
+ statvfs("/", &fs);
+ l = fs.f_bsize;
+ l += fs.f_blocks;
+ l += fs.f_bavail;
+ ],
+ wx_cv_type_statvfs_t=statvfs_t,
+ [
+ AC_TRY_COMPILE(
+ [
+ #include <sys/statvfs.h>
+ ],
+ [
+ long l;
+ struct statvfs fs;
+ statvfs("/", &fs);
+ l = fs.f_bsize;
+ l += fs.f_blocks;
+ l += fs.f_bavail;
+ ],
+ wx_cv_type_statvfs_t="struct statvfs",
+ wx_cv_type_statvfs_t="unknown"
+ )
+ ]
+ )
+ )
+
+ AC_LANG_RESTORE
+
+ if test "$wx_cv_type_statvfs_t" != "unknown"; then
+ AC_DEFINE(HAVE_STATVFS)
+ fi
else
- AC_MSG_WARN([wxGetDiskSpace() function won't work without statfs()])
+ dnl set it for the test below
+ wx_cv_type_statvfs_t="unknown"
fi
fi
+if test "$wx_cv_type_statvfs_t" != "unknown"; then
+ AC_DEFINE_UNQUOTED(WX_STATFS_T, $wx_cv_type_statvfs_t)
+else
+ AC_MSG_WARN([wxGetDiskSpace() function won't work without statfs()])
+fi
+
dnl check for fcntl() or at least flock() needed by Unix implementation of
dnl wxSingleInstanceChecker
if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
fi
if test "$USE_DARWIN" = 1; then
- dnl Mac OS X has both nanosleep and usleep
+ dnl Mac OS X/Darwin has both nanosleep and usleep
dnl but only usleep is defined in unistd.h
AC_DEFINE(HAVE_USLEEP)
HAVE_SOME_SLEEP_FUNC=1
AC_CACHE_SAVE
dnl ---------------------------------------------------------------------------
-dnl thread support for Unix (always available under Win32)
+dnl thread support for Unix (for Win32 see past the next matching "else")
dnl ---------------------------------------------------------------------------
-dnl under MSW we always have thread support
+dnl under MSW (except mingw32) we always have thread support
CPP_MT_FLAG=
if test "$TOOLKIT" != "MSW"; then
THREADS_CFLAGS=
if test "$wxUSE_THREADS" = "yes" ; then
- if test "$wxUSE_WINE" = 1 ; then
- AC_MSG_WARN([Threads are not supported under WINE... disabled])
- wxUSE_THREADS="no"
- elif test "$USE_BEOS" = 1; then
+ if test "$USE_BEOS" = 1; then
AC_MSG_WARN([BeOS threads are not yet supported... disabled])
wxUSE_THREADS="no"
fi
dnl AIX calls the library libpthreads - thanks IBM!
THREAD_OPTS="pthreads"
;;
+ *-hp-hpux* )
+ dnl HP-UX aCC only gives a warning, not an error about
+ dnl -pthread but it doesn't work and we have to use -lpthread
+ dnl there
+ if test "x$GCC" != "xyes"; then
+ THREAD_OPTS=""
+ fi
esac
dnl simply linking with libpthread should make the test below work but
else
dnl yes, these special compiler flags should be used with the
dnl linker as well
- LIBS="$THREADS_LINK $THREADS_CFLAGS $LIBS"
+ LDFLAGS="$THREADS_CFLAGS $LDFLAGS"
+ LIBS="$THREADS_LINK $LIBS"
AC_MSG_CHECKING([if more special flags are required for pthreads])
flag=no
case "${host}" in
- *-aix* | *-freebsd*)
+ *-aix*)
+ dnl again quoting from
+ dnl http://www-1.ibm.com/servers/esdd/articles/gnu.html:
+ dnl
+ dnl When compiling and linking with -pthread, the library
+ dnl search path should include -L/usr/lib/threads at the
+ dnl beginning of the path.
+ LDFLAGS="-L/usr/lib/threads $LDFLAGS"
flag="-D_THREAD_SAFE"
;;
+ *-freebsd*)
+ flag="-D_THREAD_SAFE"
+ ;;
+ *-hp-hpux* )
+ flag="-D_REENTRANT"
+ if test "x$GCC" != "xyes"; then
+ dnl see http://docs.hp.com/hpux/onlinedocs/2213/threads.htm
+ flag="$flag -D_RWSTD_MULTI_THREAD"
+ fi
+ ;;
*solaris* | alpha*-osf*)
flag="-D_REENTRANT"
;;
fi
dnl from if !MSW
+else
+ if test "$wxUSE_THREADS" = "yes" ; then
+ case "${host}" in
+ *-*-mingw32* )
+ dnl check if the compiler accepts -mthreads
+ AC_CACHE_CHECK([if compiler supports -mthreads],
+ wx_cv_cflags_mthread,
+ [
+ CFLAGS_OLD="$CFLAGS"
+ CFLAGS="$CFLAGS -mthreads"
+ 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
+ CXXFLAGS="$CXXFLAGS -mthreads"
+ TOOLCHAIN_DEFS="$TOOLCHAIN_DEFS -mthreads"
+ LDFLAGS="$LDFLAGS -mthreads"
+ else
+ dnl it doesn't
+ CFLAGS="$CFLAGS_OLD"
+ fi
+ ;;
+ esac
+ fi
fi
if test "$wxUSE_THREADS" = "yes"; then
dnl for each subroutine by default -- using the switch below only creates
dnl one entry per file instead at the price of minor performance penalty
dnl
+ dnl As of wx2.4 a bug in the hppa gcc compiler causes a similar problem
+ dnl without -ffunction-sections. No idea how long we'll need to maintain
+ dnl this, or even the extent of gcc/wx version combinations affected, but
+ dnl also as above, this 'fix' does not come without side effects.
+ dnl
dnl TODO: test for the gcc version here (how?)
case "${host}" in
powerpc*-*-aix* )
CODE_GEN_FLAGS="$CODE_GEN_FLAGS -mminimal-toc"
;;
+ *-hppa* )
+ CODE_GEN_FLAGS="$CODE_GEN_FLAGS -ffunction-sections"
+ ;;
esac
fi
+OPTIMISE=
if test "$wxUSE_OPTIMISE" = "no" ; then
- OPTIMISE=
+ if test "$GCC" = yes ; then
+ dnl use -O0 because compiling with it is faster than compiling with no
+ dnl optimization options at all (at least with g++ 3.2)
+ OPTIMISE="-O0"
+ fi
else
if test "$GCC" = yes ; then
OPTIMISE="-O2"
+
+ dnl VZ: does anybody know what does this do??
case "${host}" in
i586-*-*|i686-*-* )
OPTIMISE="${OPTIMISE} "
fi
fi
+dnl ---------------------------------------------------------------------------
+dnl compatibility level
+dnl ---------------------------------------------------------------------------
+
if test "$WXWIN_COMPATIBILITY_2" = "yes"; then
AC_DEFINE(WXWIN_COMPATIBILITY_2)
WXWIN_COMPATIBILITY_2_2="yes"
fi
-if test "x$WXWIN_COMPATIBILITY_2_2" != "xno"; then
+if test "x$WXWIN_COMPATIBILITY_2_2" = "xyes"; then
AC_DEFINE(WXWIN_COMPATIBILITY_2_2)
+
+ WXWIN_COMPATIBILITY_2_4="yes"
+fi
+
+if test "x$WXWIN_COMPATIBILITY_2_4" != "xno"; then
+ AC_DEFINE(WXWIN_COMPATIBILITY_2_4)
fi
dnl ---------------------------------------------------------------------------
dnl wxSocket
dnl ------------------------------------------------------------------------
-dnl VZ: the GUI hooks wxSocket needs are not implemented yet in wxX11
+dnl VZ: the GUI hooks wxSocket needs are not implemented yet in wxMGL
if test "$wxUSE_SOCKETS" = "yes"; then
if test "$wxUSE_MGL" = "1"; then
AC_MSG_WARN([wxSocket not yet supported under MGL... disabled])
if test "$wxUSE_GUI" = "yes"; then
- if test "$TOOLKIT" = "MAC"; 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
if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
-dnl There is now experimental generic MDI support
+dnl There is now experimental generic MDI support
dnl if test "$wxUSE_UNIVERSAL" = "yes"; then
dnl AC_MSG_WARN(MDI not yet supported for wxUniversal... disabled)
dnl wxUSE_MDI_ARCHITECTURE=no
if test "$wxUSE_PROLOGIO" = "yes" ; then
AC_DEFINE(wxUSE_PROLOGIO)
+ ALL_OBJECTS="$ALL_OBJECTS parser.o"
fi
if test "$wxUSE_RESOURCES" = "yes" ; then
if test "$wxUSE_NANOX" = "yes"; then
AC_MSG_WARN([Cannot use resource database functions in NanoX])
- else
- AC_DEFINE(wxUSE_RESOURCES)
- SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS resource"
+ else
+ AC_DEFINE(wxUSE_RESOURCES)
+ SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS resource"
+ fi
+ if test "$wxUSE_PROLOGIO" != "yes" ; then
+ ALL_OBJECTS="$ALL_OBJECTS parser.o"
fi
fi
dnl present (earlier versions of mingw32 don't have ole2.h)
if test "$wxUSE_MSW" = 1 -a \( "$wxUSE_DATAOBJ" = "yes" \
-o "$wxUSE_CLIPBOARD" = "yes" \
+ -o "$wxUSE_OLE" = "yes" \
-o "$wxUSE_DRAG_AND_DROP" = "yes" \) ; then
AC_CHECK_HEADERS(ole2.h)
if test "$ac_cv_header_ole2_h" = "yes" ; then
if test "$GCC" = yes ; then
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+
+ AC_MSG_CHECKING([if g++ requires -fvtable-thunks])
+ AC_TRY_COMPILE([#include <windows.h>
+ #include <ole2.h>],
+ [],
+ [AC_MSG_RESULT(no)],
+ [AC_MSG_RESULT(yes)
+ CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fvtable-thunks"])
+ AC_LANG_RESTORE
ALL_OBJECTS="$ALL_OBJECTS \$(OLEOBJS)"
- CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fvtable-thunks"
LIBS=" -lrpcrt4 -loleaut32 -lole32 -luuid$LIBS"
AC_DEFINE(wxUSE_OLE)
wxUSE_CLIPBOARD=no
wxUSE_DRAG_AND_DROP=no
wxUSE_DATAOBJ=no
+ wxUSE_OLE=no
fi
if test "$wxUSE_METAFILE" = "yes"; then
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS checklst"
fi
+if test "$wxUSE_DISPLAY" = "yes"; then
+ AC_DEFINE(wxUSE_DISPLAY)
+ SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS display"
+fi
+
if test "$wxUSE_GAUGE" = "yes"; then
AC_DEFINE(wxUSE_GAUGE)
USES_CONTROLS=1
fi
if test "$wxUSE_STATLINE" = "yes"; then
- if test "$wxUSE_WINE" = 1 ; then
- AC_MSG_WARN([wxStaticLine is not supported under WINE])
- else
- AC_DEFINE(wxUSE_STATLINE)
- USES_CONTROLS=1
- fi
+ AC_DEFINE(wxUSE_STATLINE)
+ USES_CONTROLS=1
fi
if test "$wxUSE_STATUSBAR" = "yes"; then
fi
if test "$wxUSE_TOGGLEBTN" = "yes"; then
- if test "$wxUSE_MAC" = 1; then
+ if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
AC_MSG_WARN([Toggle button not yet supported under Mac OS X... disabled])
wxUSE_TOGGLEBTN=no
fi
if test "$wxUSE_MOTIF" = 1; then
AC_MSG_WARN([wxTooltip not supported yet under Motif... disabled])
else
- if test "$wxUSE_WINE" = 1; then
- AC_MSG_WARN([wxTooltip not supported under WINE... disabled])
+ if test "$wxUSE_UNIVERSAL" = "yes"; then
+ AC_MSG_WARN([wxTooltip not supported yet in wxUniversal... disabled])
else
- if test "$wxUSE_UNIVERSAL" = "yes"; then
- AC_MSG_WARN([wxTooltip not supported yet in wxUniversal... disabled])
- else
- AC_DEFINE(wxUSE_TOOLTIPS)
- fi
+ AC_DEFINE(wxUSE_TOOLTIPS)
fi
fi
fi
fi
if test "$wxUSE_POPUPWIN" = "yes"; then
- if test "$wxUSE_MAC" = 1; then
+ if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
AC_MSG_WARN([Popup window not yet supported under Mac OS X... disabled])
else
if test "$wxUSE_MOTIF" = 1; then
AC_DEFINE_UNQUOTED(wxINSTALL_PREFIX, "$wxPREFIX")
+dnl define the variables used in wx-config
+top_builddir=`pwd`
+
dnl ---------------------------------------------------------------------------
dnl Output the makefiles and such from the results found above
dnl ---------------------------------------------------------------------------
if test "$wxUSE_MAC" = 1 ; then
LDFLAGS="$LDFLAGS -framework Carbon -framework System"
fi
+if test "$wxUSE_COCOA" = 1 ; then
+ LDFLAGS="$LDFLAGS -framework Cocoa -framework System"
+fi
dnl FIXME: should this be covered by the conditional above
dnl given the -lm comment there? Or should that comment (and
dnl this one) be removed.. [ 7 Nov 2001 ]
-LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK -lm $LIBS"
+LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK $LIBS"
+
+dnl Only add the -lm library if floating point functions cannot be used
+dnl without it. This check is important on cygwin because of the bizarre
+dnl way that they have organized functions into libraries. On cygwin, both
+dnl libc.a and libm.a are symbolic links to a single lib libcygwin.a. This
+dnl means that
+dnl 1) linking with -lm is not necessary, and
+dnl 2) linking with -lm is dangerous if the order of libraries is wrong
+dnl In particular, if you compile any program with -mno-cygwin and link with
+dnl -lm, it will crash instantly when it is run. This happens because the
+dnl linker incorrectly links the Cygwin libm.a (==libcygwin.a), which replaces
+dnl the ___main function instead of allowing it to be defined by
+dnl /usr/lib/mingw/libmingw32.a as it should be.
+dnl
+dnl On MacOS X, this test will find that -lm is unnecessary and leave it out.
+dnl
+dnl Just check a few floating point functions. If they are all found without
+dnl -lm, then we must not need -lm.
+have_cos=0
+have_floor=0
+AC_CHECK_FUNCS(cos, have_cos=1)
+AC_CHECK_FUNCS(floor, have_floor=1)
+AC_MSG_CHECKING(if floating point functions link without -lm)
+if test "$have_cos" = 1 -a "$have_floor" = 1; then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+ LIBS="$LIBS -lm"
+ # use different functions to avoid configure caching
+ have_sin=0
+ have_ceil=0
+ AC_CHECK_FUNCS(sin, have_sin=1)
+ AC_CHECK_FUNCS(ceil, have_ceil=1)
+ AC_MSG_CHECKING(if floating point functions link with -lm)
+ if test "$have_sin" = 1 -a "$have_ceil" = 1; then
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ # not sure we should warn the user, crash, etc.
+ fi
+fi
if test "$wxUSE_GUI" = "yes"; then
fi
fi
-EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE $INCLUDES"
+EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE"
dnl remove the extra white space from the cc/c++/ld options
+CPPFLAGS=`echo $INCLUDES $CPPFLAGS | sed 's/ \\+/ /g'`
CFLAGS=`echo $EXTRA_CFLAGS $CFLAGS $CXXWARNINGS | sed 's/ \\+/ /g'`
CXXFLAGS=`echo $EXTRA_CFLAGS $CXXFLAGS $CXXWARNINGS | sed 's/ \+/ /g'`
LIBS=`echo $LIBS | sed 's/ \+/ /g'`
AC_SUBST(WX_RELEASE_NUMBER)
AC_SUBST(WX_LIBRARY_NAME_STATIC)
AC_SUBST(WX_LIBRARY_NAME_SHARED)
+AC_SUBST(WX_LIBRARY_BASENAME)
AC_SUBST(WX_LIBRARY_IMPORTLIB)
AC_SUBST(WX_TARGET_LIBRARY)
AC_SUBST(WX_LIBRARY_LINK1)
AC_SUBST(WX_TARGET_LIBRARY_SONAME)
AC_SUBST(WX_TARGET_LIBRARY_TYPE)
+AC_SUBST(STATIC_FLAG)
+
dnl debugging options
AC_SUBST(WXDEBUG_DEFINE)
dnl toolkit options
AC_SUBST(USE_GUI)
AC_SUBST(AFMINSTALL)
+AC_SUBST(WIN32INSTALL)
AC_SUBST(TOOLKIT)
AC_SUBST(TOOLKIT_DIR)
AC_SUBST(TOOLKIT_VPATH)
AC_SUBST(TOOLCHAIN_DLL_DEFS)
dnl wx-config options
+AC_SUBST(top_builddir)
AC_SUBST(host_alias)
AC_SUBST(cross_compiling)
AC_SUBST(WXCONFIG_LIBS)
AC_SUBST(WXCONFIG_LIBS_STATIC_GL)
AC_SUBST(WXCONFIG_INCLUDE)
AC_SUBST(WXCONFIG_RPATH)
+AC_SUBST(WX_LARGEFILE_FLAGS)
dnl the list of files to compile/install
AC_SUBST(ALL_OBJECTS)
dnl additional libraries and linker settings
AC_SUBST(LDFLAGS)
AC_SUBST(LDFLAGS_GL)
+AC_SUBST(LDFLAGS_VERSIONING)
AC_SUBST(LDFLAGS_EXE)
AC_SUBST(OPENGL_LIBS)
AC_SUBST(DMALLOC_LIBS)
AC_SUBST(EXTRADEFS)
+AC_SUBST(WX_VERSION_TAG)
dnl additional resurces settings
AC_SUBST(RESCOMP)
AC_SUBST(DEREZ)
AC_SUBST(MACOSX_BUNDLE)
AC_SUBST(LIBWXMACRES)
-AC_SUBST(LIBWXMACRESCOMP)
-AC_SUBST(LIBWXMACRESWXCONFIG)
+AC_SUBST(MACRESCOMP)
+AC_SUBST(MACSETFILE)
+AC_SUBST(MACRESWXCONFIG)
-dnl These seem to be missing
+dnl other tools
+AC_SUBST(GCC)
AC_SUBST(DLLTOOL)
AC_SUBST(AS)
AC_SUBST(NM)
AC_SUBST(LD)
AC_SUBST(MAKEINFO)
AC_SUBST(INSTALL_LIBRARY)
+AC_SUBST(INSTALL_DIR)
dnl MAKE_SET will be replaced with "MAKE=..." or nothing if make sets MAKE
dnl itself (this macro is required if SUBDIRS variable is used in Makefile.am
wx_cv_target_library=$WX_TARGET_LIBRARY
wx_cv_target_library_gl=$WX_TARGET_LIBRARY_GL
wx_cv_target_libtype=$WX_TARGET_LIBRARY_TYPE
+wx_cv_library_basename=${WX_LIBRARY_BASENAME}
+wx_cv_release=${WX_RELEASE}
+wx_cv_current=${WX_CURRENT}
+wx_cv_revision=${WX_REVISION}
+wx_cv_age=${WX_AGE}
+wx_cv_use_gui=${USE_GUI}
+wx_cv_use_resources=${wxUSE_RESOURCES}
export wx_cv_path_samplesubdirs wx_cv_if_gnu_make \
wx_cv_path_ifs wx_cv_program_ext \
- wx_cv_target_library wx_cv_target_library_gl wx_cv_target_libtype
+ wx_cv_target_library wx_cv_target_library_gl wx_cv_target_libtype \
+ wx_cv_library_basename wx_cv_release wx_cv_current wx_cv_revision wx_cv_age \
+ wx_cv_use_gui wx_cv_use_resources
AC_CONFIG_SUBDIRS(demos samples utils contrib)
dnl colon)
AC_OUTPUT([
wx-config
+ version-script
src/make.env
src/makeprog.env
src/makelib.env
]
)
-dnl vi: set et sts=4 sw=4:
+dnl report on what we decided to do
+echo
+echo "Configured wxWindows ${WX_VERSION} for \`${host}'"
+echo ""
+echo " Which GUI toolkit should wxWindows use? ${TOOLKIT:-base only}"
+
+echo " Should wxWindows be compiled in debug mode? ${wxUSE_DEBUG:-no}"
+echo " Should wxWindows be linked as a shared library? ${wxUSE_SHARED:-no}"
+echo " Should wxWindows be compiled in Unicode mode? ${wxUSE_UNICODE:-no}"
+
+echo " What level of wxWindows compatibility should be enabled?"
+echo " wxWindows 2.0 ${WXWIN_COMPATIBILITY_2:-no}"
+echo " wxWindows 2.2 ${WXWIN_COMPATIBILITY_2_2:-no}"
+echo " wxWindows 2.4 ${WXWIN_COMPATIBILITY_2_4:-yes}"
+
+echo " Which libraries should wxWindows use?"
+echo " jpeg ${wxUSE_LIBJPEG-none}"
+echo " png ${wxUSE_LIBPNG-none}"
+echo " regex ${wxUSE_REGEX}"
+echo " tiff ${wxUSE_LIBTIFF-none}"
+echo " zlib ${wxUSE_ZLIB}"
+
+echo ""
+
+dnl vi: set et sts=4 sw=4 com=\:dnl: