diff --git a/configure.in b/configure.in index e9bae45f0f..33e1b544e6 100644 --- a/configure.in +++ b/configure.in @@ -58,6 +58,7 @@ dnl ------------------------------------------------------------------------ dnl assume Unix USE_UNIX=1 +USE_OS2=0 USE_WIN32=0 USE_DOS=0 USE_BEOS=0 @@ -260,13 +261,13 @@ case "${host}" in ;; *-pc-os2_emx | *-pc-os2-emx ) + USE_OS2=1 + dnl Now both USE_OS2 and USE_UNIX should be set to 1 !! AC_DEFINE(__EMX__) PROGRAM_EXT=".exe" DEFAULT_DEFAULT_wxUSE_PM=1 dnl "c++" wrapper is not always available, so always use plain gcc. CXX=gcc - dnl Explicitly link -lstdcpp, since we are using "gcc" not "g++"/"c++". - LIBS="$LIBS -lstdcpp" LDFLAGS="$LDFLAGS -Zcrtdll -Zsysv-signals" ;; @@ -1353,6 +1354,8 @@ 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 Moreover we need to link explicitly against either stdcpp.a or stdcxx.a +dnl (depending on compiler version), since we are using "gcc", not "g++/c++". dnl --------------------------------------------------------------------------- dnl (OS/2-only piece) case "${host}" in @@ -1367,6 +1370,26 @@ case "${host}" in dnl Include resources for the "native" port (wxPM). RESPROGRAMOBJ="\${top_srcdir}/include/wx/os2/wx.res" fi + AC_CACHE_CHECK([for gcc 3 or later], wx_cv_gcc3,[ + AC_TRY_COMPILE([#include ], + [ + #if (__GNUC__ < 3) + #error old gcc + #endif + ], + [ + wx_cv_gcc3=yes + ], + [ + wx_cv_gcc3=no + ] + ) + ]) + if test "$wx_cv_gcc3" = "no"; then + LIBS="$LIBS -lstdcpp" + else + LIBS="$LIBS -lstdcxx" + fi ;; esac dnl (end of OS/2-only piece) @@ -1418,7 +1441,7 @@ case "${host}" in esac if test "$wxUSE_GUI" = "yes"; then - if test "$wxUSE_UNIX" = "yes"; then + if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_PM" != 1; then dnl defines HAVE_X11_XKBLIB_H AC_CHECK_HEADERS(X11/XKBlib.h) fi @@ -3807,8 +3830,8 @@ else fi ;; *-pc-os2*emx ) - CFLAGS="$CFLAGS -Zmt" - CXXFLAGS="$CXXFLAGS -Zmt" + CFLAGS="$CFLAGS -Zmt -D__ST_MT_ERRNO__" + CXXFLAGS="$CXXFLAGS -Zmt -D__ST_MT_ERRNO__" LDFLAGS="$LDFLAGS -Zmt" ;; esac @@ -4394,8 +4417,9 @@ dnl ------------------------------------------------------------------------ dnl DLL support dnl ------------------------------------------------------------------------ -dnl under MSW we always have LoadLibrary/GetProcAddress -if test "$TOOLKIT" != "MSW"; then +dnl under MSW we always have LoadLibrary/GetProcAddress and +dnl under OS/2 we always have DosLoadModule/DosQueryProcAddr +if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then HAVE_DL_FUNCS=0 HAVE_SHL_FUNCS=0