X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e8f65ba6104f7689d5d342f9d5cd1cee9ed3329f..551fe3a6f024a542d26ce8da202d76d8c83f3a6f:/configure.in diff --git a/configure.in b/configure.in index b39a68cf73..3910159caf 100644 --- a/configure.in +++ b/configure.in @@ -505,13 +505,14 @@ dnl than checking it during run-time NEEDS_D_REENTRANT_FOR_R_FUNCS=0 dnl the list of all available toolkits -ALL_TOOLKITS="CYGWIN GTK MINGW MOTIF WINE PM" +ALL_TOOLKITS="CYGWIN GTK MINGW MOTIF MAC WINE PM" 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_GTK=0 DEFAULT_wxUSE_MOTIF=0 DEFAULT_wxUSE_MSW=0 +DEFAULT_wxUSE_MAC=0 DEFAULT_wxUSE_WINE=0 DEFAULT_wxUSE_PM=0 @@ -521,6 +522,7 @@ dnl nothing was found in the cache DEFAULT_DEFAULT_wxUSE_GTK=0 DEFAULT_DEFAULT_wxUSE_MOTIF=0 DEFAULT_DEFAULT_wxUSE_MSW=0 +DEFAULT_DEFAULT_wxUSE_MAC=0 DEFAULT_DEFAULT_wxUSE_WINE=0 DEFAULT_DEFAULT_wxUSE_PM=0 @@ -638,6 +640,15 @@ case "${host}" in DEFAULT_DEFAULT_wxUSE_PM=1 ;; + *-*-darwin* ) + USE_BSD=1 + USE_MAC=1 + AC_DEFINE(__MAC__) + AC_DEFINE(__BSD__) + AC_DEFINE(__UNIX__) + DEFAULT_DEFAULT_wxUSE_MAC=1 + ;; + *-*-beos* ) dnl leave USE_UNIX on - BeOS is sufficiently Unix-like for this USE_BEOS=1 @@ -779,7 +790,6 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_LISTBOX=no DEFAULT_wxUSE_LISTCTRL=no DEFAULT_wxUSE_NOTEBOOK=no - DEFAULT_wxUSE_PLOT=no DEFAULT_wxUSE_RADIOBOX=no DEFAULT_wxUSE_RADIOBTN=no DEFAULT_wxUSE_SASH=no @@ -793,6 +803,7 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_STATLINE=no DEFAULT_wxUSE_STATUSBAR=yes DEFAULT_wxUSE_TABDIALOG=no + DEFAULT_wxUSE_TOGGLEBTN=no DEFAULT_wxUSE_TOOLBAR=no DEFAULT_wxUSE_TOOLBAR_NATIVE=no DEFAULT_wxUSE_TOOLBAR_SIMPLE=no @@ -902,7 +913,6 @@ else DEFAULT_wxUSE_LISTBOX=yes DEFAULT_wxUSE_LISTCTRL=yes DEFAULT_wxUSE_NOTEBOOK=yes - DEFAULT_wxUSE_PLOT=yes DEFAULT_wxUSE_RADIOBOX=yes DEFAULT_wxUSE_RADIOBTN=yes DEFAULT_wxUSE_SASH=yes @@ -916,6 +926,7 @@ else DEFAULT_wxUSE_STATLINE=yes DEFAULT_wxUSE_STATUSBAR=yes DEFAULT_wxUSE_TABDIALOG=no + DEFAULT_wxUSE_TOGGLEBTN=yes DEFAULT_wxUSE_TOOLBAR=yes DEFAULT_wxUSE_TOOLBAR_NATIVE=yes DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes @@ -962,6 +973,7 @@ if test "$wxUSE_GUI" = "yes"; then 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(cygwin, [ --with-cygwin use Cygwin for MS-Windows], [wxUSE_CYGWIN="$withval" CACHE_CYGWIN=1 TOOLKIT_GIVEN=1]) AC_ARG_WITH(mingw, [ --with-mingw use GCC Minimal MS-Windows], [wxUSE_MINGW="$withval" CACHE_MINGW=1 TOOLKIT_GIVEN=1]) @@ -1093,6 +1105,7 @@ dnl --------------------------------------------------------------------------- WX_ARG_ENABLE(clipboard, [ --enable-clipboard use wxClipboard classes], 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) dnl TODO: doesn't work yet WX_ARG_ENABLE(wxtree, [ --enable-wxtree make wxTree library], wxUSE_WXTREE) @@ -1134,6 +1147,7 @@ if test "$wxUSE_CONTROLS" = "yes"; then DEFAULT_wxUSE_STATLINE=yes DEFAULT_wxUSE_STATUSBAR=yes DEFAULT_wxUSE_TAB_DIALOG=yes + DEFAULT_wxUSE_TOGGLEBTN=yes DEFAULT_wxUSE_TOOLBAR=yes DEFAULT_wxUSE_TOOLBAR_NATIVE=yes DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes @@ -1167,6 +1181,7 @@ elif test "$wxUSE_CONTROLS" = "no"; then DEFAULT_wxUSE_STATLINE=no DEFAULT_wxUSE_STATUSBAR=no DEFAULT_wxUSE_TAB_DIALOG=no + DEFAULT_wxUSE_TOGGLEBTN=no DEFAULT_wxUSE_TOOLBAR=no DEFAULT_wxUSE_TOOLBAR_NATIVE=no DEFAULT_wxUSE_TOOLBAR_SIMPLE=no @@ -1201,6 +1216,7 @@ WX_ARG_ENABLE(statbox, [ --enable-statbox use wxStaticBox class], wx WX_ARG_ENABLE(statline, [ --enable-statline use wxStaticLine class], wxUSE_STATLINE) WX_ARG_ENABLE(statusbar, [ --enable-statusbar use wxStatusBar class], wxUSE_STATUSBAR) WX_ARG_ENABLE(tabdialog, [ --enable-tabdialog use wxTabControl class], wxUSE_TABDIALOG) +WX_ARG_ENABLE(togglebtn, [ --enable-togglebtn use wxToggleButton class], wxUSE_TOGGLEBTN) WX_ARG_ENABLE(toolbar, [ --enable-toolbar use wxToolBar class], wxUSE_TOOLBAR) WX_ARG_ENABLE(tbarnative, [ --enable-tbarnative use native wxToolBar class], wxUSE_TOOLBAR_NATIVE) WX_ARG_ENABLE(tbarsmpl, [ --enable-tbarsmpl use wxToolBarSimple class], wxUSE_TOOLBAR_SIMPLE) @@ -1221,7 +1237,6 @@ WX_ARG_ENABLE(tooltips, [ --enable-tooltips use wxToolTip class], wxUS 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(plot, [ --enable-plot use wxPlot], wxUSE_PLOT) WX_ARG_ENABLE(joystick, [ --enable-joystick compile in joystick support (Linux only)], wxUSE_JOYSTICK) dnl --------------------------------------------------------------------------- @@ -1269,7 +1284,7 @@ else fi dnl we suppose that expr exists... -NUM_TOOLKITS=`expr ${wxUSE_GTK:-0} + ${wxUSE_MOTIF:-0} + ${wxUSE_WINE:-0} + ${wxUSE_MINGW:-0} + ${wxUSE_CYGWIN:-0}` +NUM_TOOLKITS=`expr ${wxUSE_GTK:-0} + ${wxUSE_MOTIF:-0} + ${wxUSE_MAC:-0} + ${wxUSE_WINE:-0} + ${wxUSE_MINGW:-0} + ${wxUSE_CYGWIN:-0}` dnl Allow wxUSE_PM only for OS/2 with EMX. dnl Path separator; ':' for unix. @@ -1538,10 +1553,6 @@ USE_GUI=1 TOOLKIT= TOOLKIT_INCLUDE= -GUIOBJS= -COMMONOBJS= -GENERICOBJS= - GUI_TK_LIBRARY= GUI_TK_LINK= @@ -1583,12 +1594,6 @@ if test "$wxUSE_CYGWIN" = 1 || test "$wxUSE_MINGW" = 1 ; then fi TOOLKIT=MSW - - GUIOBJS="\$(MSW_GUIOBJS)" - GUIHEADERS="\$(MSW_HEADERS)" - COMMONOBJS="\$(MSW_COMMONOBJS)" - GENERICOBJS="\$(MSW_GENERICOBJS)" - UNIXOBJS= GUIDIST=MSW_DIST dnl we should calculate these @@ -1636,19 +1641,9 @@ dnl GUI_TK_LIBRARY="$GTK_LIBS -gthread12" dnl else dnl GUI_TK_LIBRARY="$GTK_LIBS -lgthread" dnl fi - TOOLKIT=GTK AFMINSTALL=afminstall - - GUIOBJS="\$(GTK_GUIOBJS)" - GUIHEADERS="\$(GTK_HEADERS)" - COMMONOBJS="\$(GTK_COMMONOBJS)" - GENERICOBJS="\$(GTK_GENERICOBJS)" - GUIDEPS="\$(GTK_GUIDEPS)" - COMMONDEPS="\$(GTK_COMMONDEPS)" - GENERICDEPS="\$(GTK_GENERICDEPS)" - UNIXOBJS="\$(UNIX_OBJS)" - UNIXDEPS="\$(UNIX_DEPS)" + TOOLKIT=GTK GUIDIST=GTK_DIST dnl test for XIM support in libgdk @@ -1694,16 +1689,6 @@ if test "$wxUSE_WINE" = 1; then GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GUI_TK_LINK" WXWINE=1 TOOLKIT=MSW - - GUIHEADERS="\$(MSW_HEADERS)" - GUIOBJS="\$(MSW_GUIOBJS)" - COMMONOBJS="\$(MSW_COMMONOBJS)" - GENERICOBJS="\$(MSW_GENERICOBJS)" - GUIDEPS="\$(MSW_GUIDEPS)" - COMMONDEPS="\$(MSW_COMMONDEPS)" - GENERICDEPS="\$(MSW_GENERICDEPS)" - UNIXOBJS="\$(UNIX_OBJS)" - UNIXDEPS="\$(UNIX_DEPS)" GUIDIST=MSW_DIST fi @@ -1880,31 +1865,17 @@ if test "$wxUSE_MOTIF" = 1; then GUI_TK_LINK="-lXm $XPM_LINK -lXmu -lXext -lXt -lX11" GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GUI_TK_LINK" TOOLKIT=MOTIF - - GUIHEADERS="\$(MOTIF_HEADERS)" - GUIOBJS="\$(MOTIF_GUIOBJS)" - COMMONOBJS="\$(MOTIF_COMMONOBJS)" - GENERICOBJS="\$(MOTIF_GENERICOBJS)" - GUIDEPS="\$(MOTIF_GUIDEPS)" - COMMONDEPS="\$(MOTIF_COMMONDEPS)" - GENERICDEPS="\$(MOTIF_GENERICDEPS)" - UNIXOBJS="\$(UNIX_OBJS)" - UNIXDEPS="\$(UNIX_DEPS)" GUIDIST=MOTIF_DIST fi +if test "$wxUSE_MAC" = 1; then + TOOLKIT=MAC + dnl we can't call this MAC_DIST or autoconf thinks its a macro + GUIDIST=MACX_DIST +fi + if test "$wxUSE_PM" = 1; then TOOLKIT=PM - - GUIOBJS="\$(PM_GUIOBJS)" - GUIHEADERS="\$(PM_HEADERS)" - COMMONOBJS="\$(PM_COMMONOBJS)" - GENERICOBJS="\$(PM_GENERICOBJS)" - GUIDEPS="\$(PM_GUIDEPS)" - COMMONDEPS="\$(PM_COMMONDEPS)" - GENERICDEPS="\$(PM_GENERICDEPS)" - UNIXOBJS= - UNIXDEPS= GUIDIST=GTK_DIST fi @@ -1932,10 +1903,8 @@ fi ALL_OBJECTS="\$(GUIOBJS) \$(COMMONOBJS) \$(GENERICOBJS) \$(UNIXOBJS) \$(HTMLOBJS) \$(OGLOBJS)" dnl ODBC objects are Unix only - if test "$TOOLKIT" != "MSW"; then - if test "$wxUSE_ODBC" = "yes" ; then - ALL_OBJECTS="${ALL_OBJECTS} \$(IODBCOBJS)" - fi + if test "$TOOLKIT" != "MSW" -a "$wxUSE_ODBC" = "yes" ; then + ALL_OBJECTS="${ALL_OBJECTS} \$(IODBCOBJS)" fi if test "$wxUSE_LIBJPEG" = "yes" ; then @@ -1978,8 +1947,8 @@ else TOOLKIT_DEF="-D__WXBASE__" dnl the sources, their dependenices and the headers - ALL_OBJECTS="\$(BASE_OBJS) \${BASE_UNIX_OBJS}" - ALL_DEPFILES="\${BASE_DEPS} \${BASE_UNIX_DEPS}" + ALL_OBJECTS="\$(BASE_OBJS) \$(BASE_UNIX_OBJS)" + ALL_DEPFILES="\$(BASE_DEPS) \$(BASE_UNIX_DEPS)" if test "$wxUSE_ZLIB" = "yes" ; then ALL_OBJECTS="${ALL_OBJECTS} \$(ZLIBOBJS)" @@ -2109,7 +2078,7 @@ if test "$wxUSE_SHARED" = "yes"; then WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS" WX_ALL="CREATE_LINKS" ;; - *-*-freebsd* | *-*-netbsd*) + *-*-freebsd* | *-*-netbsd* ) SHARED_LD="${CC} -shared -o" PIC_FLAG="-fPIC" if test "$wxUSE_OPENGL" = "yes"; then @@ -2120,6 +2089,27 @@ if test "$wxUSE_SHARED" = "yes"; then WX_ALL="CREATE_LINKS" fi ;; + *-*-darwin* ) + SHARED_LD="${CXX} -dynamic -dylib -o" + PIC_FLAG="-fPIC" + if test "$wxUSE_OPENGL" = "yes"; then + WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL" + WX_ALL="CREATE_LINKS CREATE_LINKS_GL" + else + WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS" + WX_ALL="CREATE_LINKS" + fi + dnl the name of the shared library + WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}-${WX_RELEASE}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}.dylib" + WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}.dylib" + dnl the name of the links to the shared library + WX_LIBRARY_LINK1="lib${WX_LIBRARY}-${WX_RELEASE}.${WX_CURRENT}.dylib" + WX_LIBRARY_LINK2="lib${WX_LIBRARY}-${WX_RELEASE}.dylib" + WX_LIBRARY_LINK3="lib${WX_LIBRARY}.dylib" + WX_LIBRARY_LINK1_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.${WX_CURRENT}.dylib" + WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.dylib" + WX_LIBRARY_LINK3_GL="lib${WX_LIBRARY}_gl.dylib" + ;; *-*-osf* ) SHARED_LD="${CXX} -shared -o" PIC_FLAG="-fPIC" @@ -2344,6 +2334,14 @@ dnl understand why it works, remember that AC_TRY_COMPILE() 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 final note: AC_TRY_COMPILE 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() AC_CACHE_CHECK([for vsnprintf], wx_cv_func_vsnprintf, [ @@ -2366,14 +2364,40 @@ AC_CACHE_CHECK([for vsnprintf], wx_cv_func_vsnprintf, vsnprintf(s, 42, fmt, argp); va_end(argp); ], [ - AC_DEFINE(HAVE_VSNPRINTF) wx_cv_func_vsnprintf=yes ], [ - AC_MSG_WARN(unsafe function sprintf will be used instead of snprintf) - wx_cv_func_vsnprintf=no + AC_TRY_COMPILE([ + #include + #include + ], [ + 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 + ]) ]) ]) +if test "$wx_cv_func_vsnprintf" = yes; then + AC_DEFINE(HAVE_VSNPRINTF) +else + AC_MSG_WARN(unsafe function sprintf will be used instead of snprintf) +fi + dnl check for vsscanf() AC_CACHE_CHECK([for vsscanf], wx_cv_func_vsscanf, [ @@ -2394,13 +2418,16 @@ AC_CACHE_CHECK([for vsscanf], wx_cv_func_vsscanf, vsscanf("42", fmt, argp); va_end(argp); ], [ - AC_DEFINE(HAVE_VSSCANF) wx_cv_func_vsscanf=yes ], [ wx_cv_func_vsscanf=no ]) ]) +if test "$wx_cv_func_vsscanf" = yes; then + AC_DEFINE(HAVE_VSSCANF) +fi + AC_LANG_RESTORE dnl the following tests are for Unix(like) systems only @@ -2446,6 +2473,9 @@ AC_CHECK_FUNCS(vfork) dnl check for timegm() used by datetime.cpp AC_CHECK_FUNCS(timegm) +dnl look for a functiopn to modify the environment +AC_CHECK_FUNCS(putenv setenv, break) + HAVE_SOME_SLEEP_FUNC=0 if test "$USE_BEOS" = 1; then dnl BeOS has its own (wonder where did they get it from) sleep() function @@ -2454,6 +2484,13 @@ if test "$USE_BEOS" = 1; then HAVE_SOME_SLEEP_FUNC=1 fi +if test "$USE_MAC" = 1; then + dnl Mac OS X has both nanosleep and usleep + dnl but only usleep is defined in unistd.h + AC_DEFINE(HAVE_USLEEP) + HAVE_SOME_SLEEP_FUNC=1 +fi + if test "$HAVE_SOME_SLEEP_FUNC" != 1; then dnl try nanosleep() in libc and libposix4, if this fails - usleep() POSIX4_LINK= @@ -2466,7 +2503,9 @@ if test "$HAVE_SOME_SLEEP_FUNC" != 1; then POSIX4_LINK="-lposix4" ], [ - AC_CHECK_FUNCS(usleep) + AC_CHECK_FUNCS(usleep, + AC_DEFINE(HAVE_USLEEP), + ) AC_MSG_WARN([wxSleep() function will not work]) ] ) @@ -2552,8 +2591,10 @@ if test "$wxUSE_THREADS" = "yes" ; then dnl find if POSIX threads are available dnl AIX calls the library libpthreads - thanks IBM! - if test "$wxUSE_AIX" = 1; then + if test "$USE_AIX" = 1; then THREADS_LIB=pthreads + elif test "$USE_MAC" = 1; then + THREADS_LIB=cc_dynamic else THREADS_LIB=pthread fi @@ -2570,9 +2611,15 @@ if test "$wxUSE_THREADS" = "yes" ; then THREADS_OBJ="threadpsx.lo" THREADS_LINK="c_r" ], [ - dnl VZ: SGI threads are not supported currently - AC_CHECK_HEADER(sys/prctl.h, [ - THREADS_OBJ="threadsgi.lo" + dnl thread functions are in libcc_dynamic under Mac OS X/Darwin + AC_CHECK_LIB(cc_dynamic, pthread_create, [ + THREADS_OBJ="threadpsx.lo" + THREADS_LINK="cc_dynamic" + ], [ + dnl VZ: SGI threads are not supported currently + AC_CHECK_HEADER(sys/prctl.h, [ + THREADS_OBJ="threadsgi.lo" + ]) ]) ]) ]) @@ -2651,13 +2698,75 @@ if test "$wxUSE_THREADS" = "yes" ; then pthread_cleanup_pop(0); ], [ wx_cv_func_pthread_cleanup_push=yes - AC_DEFINE(HAVE_THREAD_CLEANUP_FUNCTIONS) ], [ wx_cv_func_pthread_cleanup_push=no ]) ]) + if test "$wx_cv_func_pthread_cleanup_push" = "yes"; then + AC_DEFINE(HAVE_THREAD_CLEANUP_FUNCTIONS) + fi + + dnl mutexattr_t initialization is done in quite different ways on different + dnl platforms, so check for a few things: + dnl + dnl HAVE_MUTEX_RECURSIVE means that we can create recursive mutexes + dnl HAVE_MUTEXATTR_SETTYPE means that we do it using + dnl pthread_mutexattr_settype(PTHREAD_MUTEX_RECURSIVE) and if it is not + dnl defined, we do it by directly assigned + dnl PTHREAD_MUTEX_RECURSIVE_MUTEX_INITIALIZER_NP to attr + +#ifdef HAVE_PTHREAD_MUTEXATTR_T +#elif defined(HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER) + + AC_CACHE_CHECK([for pthread_mutexattr_t], wx_cv_type_pthread_mutexattr_t, + [ + AC_TRY_COMPILE([#include ], + [ + pthread_mutexattr_t attr; + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); + ], [ + wx_cv_type_pthread_mutexattr_t=yes + ], [ + wx_cv_type_pthread_mutexattr_t=no + ] + ) + ]) + + if test "$wx_cv_type_pthread_mutexattr_t" = "yes"; then + AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_T) + else + dnl don't despair, there may be another way to do it + AC_CACHE_CHECK([for PTHREAD_RECURSIVE_MUTEX_INITIALIZER], + wx_cv_type_pthread_rec_mutex_init, + [ + AC_TRY_COMPILE([#include ], + [ + pthread_mutex_t attr = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; + ], [ + wx_cv_type_pthread_rec_mutex_init=yes + ], [ + wx_cv_type_pthread_rec_mutex_init=no + ] + ) + ]) + if test "$wx_cv_type_pthread_rec_mutex_init"="yes"; then + AC_DEFINE(HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER) + else + dnl this may break code working elsewhere, so at least warn about it + AC_MSG_WARN([wxMutex won't be recursive on this platform]) + fi + fi + THREADS_LINK="-l$THREADS_LINK" + + dnl building MT programs under Solaris with the native compiler requires -mt + dnl switch + if test "$USE_SOLARIS" = "yes" -a "$GCC" != "yes"; then + CFLAGS="${CFLAGS} -mt" + CXXFLAGS="${CXXFLAGS} -mt" + LDFLAGS="${LDFLAGS} -mt" + fi fi dnl from if !MSW @@ -2666,9 +2775,11 @@ fi if test "$wxUSE_THREADS" = "yes"; then AC_DEFINE(wxUSE_THREADS) - dnl must define _REENTRANT for multithreaded code - CFLAGS="${CFLAGS} -D_REENTRANT" - CXXFLAGS="${CXXFLAGS} -D_REENTRANT" + dnl must define _REENTRANT for multithreaded code except for Mac OS X + if test "$wxUSE_MAC" = "0"; then + CFLAGS="${CFLAGS} -D_REENTRANT" + CXXFLAGS="${CXXFLAGS} -D_REENTRANT" + fi SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS thread" else @@ -2703,6 +2814,11 @@ if test "$WXWINE" = 1 ; then TOOLKIT_DEF="${TOOLKIT_DEF} -D__WXWINE__" fi +if test "$wxUSE_MAC" = 1 ; then + TOOLKIT_DEF="${TOOLKIT_DEF} -D__UNIX__ -D__POWERPC__ -DTARGET_CARBON" + TOOLKIT_INCLUDE="${TOOLKIT_INCLUDE}" +fi + if test "$wxUSE_CYGWIN" = 1 ; then TOOLKIT_DEF="${TOOLKIT_DEF} -D__WIN95__" fi @@ -2746,12 +2862,13 @@ fi DEP_INFO_FLAGS= CODE_GEN_FLAGS= +CODE_GEN_FLAGS_CXX= if test "$GCC" = yes ; then if test "$wxUSE_NO_RTTI" = "yes" ; then - CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fno-rtti" + CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS -fno-rtti" fi if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then - CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fno-exceptions" + CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS -fno-exceptions" fi if test "$wxUSE_PERMISSIVE" = "yes" ; then CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fpermissive" @@ -3002,10 +3119,6 @@ if test "$wxUSE_GEOMETRY" = "yes"; then AC_DEFINE(wxUSE_GEOMETRY) fi -if test "$wxUSE_PLOT" = "yes"; then - AC_DEFINE(wxUSE_PLOT) -fi - if test "$wxUSE_DIALUP_MANAGER" = "yes" ; then AC_DEFINE(wxUSE_DIALUP_MANAGER) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dialup" @@ -3166,8 +3279,9 @@ if test "$wxUSE_SOCKETS" = "yes"; then ) fi -fi -dnl if !MSW +dnl this test may be appropriate if building under cygwin +dnl right now I'm assuming it also uses the winsock stuff +dnl like mingw does.. -- RL if test "$wxUSE_SOCKETS" = "yes" ; then dnl determine the type of third argument for getsockname @@ -3223,6 +3337,9 @@ if test "$wxUSE_SOCKETS" = "yes" ; then fi fi +fi +dnl if !MSW + if test "$wxUSE_SOCKETS" = "yes" ; then AC_DEFINE(wxUSE_SOCKETS) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sockets" @@ -3268,10 +3385,14 @@ if test "$TOOLKIT" != "MSW"; then HAVE_DL_FUNCS=0 HAVE_SHL_FUNCS=0 if test "$wxUSE_DYNLIB_CLASS" = "yes"; then - dnl the test is a bit complicated because we check for dlopen() both with - dnl and without -ldl and we also try to find shl_load() if there is no - dnl dlopen() on this system - AC_CHECK_FUNCS(dlopen, + if test "$USE_MAC" = 1; then + dnl Mac OS X needs dl_macosx.c to be compiled in to fake dlopen/dlerror + HAVE_DL_FUNCS=1 + else + dnl the test is a bit complicated because we check for dlopen() both with + dnl and without -ldl and we also try to find shl_load() if there is no + dnl dlopen() on this system + AC_CHECK_FUNCS(dlopen, [ AC_DEFINE(HAVE_DLOPEN) HAVE_DL_FUNCS=1 @@ -3305,6 +3426,7 @@ if test "$wxUSE_DYNLIB_CLASS" = "yes"; then AC_DEFINE(HAVE_DLERROR), AC_CHECK_LIB(dl, dlerror, AC_DEFINE(HAVE_DLERROR))) fi + fi if test "$HAVE_DL_FUNCS" = 0; then if test "$HAVE_SHL_FUNCS" = 0; then @@ -3361,9 +3483,6 @@ if test "$wxUSE_ODBC" = "yes" ; then AC_DEFINE(wxUSE_ODBC) WXODBCFLAG="-D_IODBC_" SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db" - IODBCOBJS="\$(IODBC_OBJS)" -else - IODBCOBJS= fi dnl ---------------------------------------------------------------- @@ -3460,11 +3579,36 @@ if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then wxUSE_DRAG_AND_DROP=no fi + if test "$wxUSE_MAC" = 1; then + AC_MSG_WARN([Drag and drop is not yet supported under Mac OS X]) + wxUSE_DRAG_AND_DROP=no + fi + if test "$USE_WIN32" = 1; then dnl check for ole headers and disable DnD if not present (earlier dnl versions of mingw32 don't have them) + AC_CHECK_HEADERS(ole2.h) - if test "x$HAVE_OLE2_H" = x ; then + + dnl for some reason this test always fails here?? + dnl if test "x$HAVE_OLE2_H" != x ; then + dnl this one does the right thing though + if test "$ac_cv_header_ole2_h" = "yes" ; then + if test "$GCC" = yes ; then + ALL_OBJECTS="$ALL_OBJECTS \$(OLEOBJS)" + ALL_DEPFILES="$ALL_DEPFILES \$(OLEDEPS)" + CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fvtable-thunks" + LIBS="$LIBS -lole32 -luuid" + + dnl metafiles need the ole code, right?? if not this + dnl doesn't need to be in here. + if test "$wxUSE_METAFILE" = "yes"; then + AC_DEFINE(wxUSE_METAFILE) + dnl this one should probably be made separately configurable + AC_DEFINE(wxUSE_ENH_METAFILE) + fi + fi + else AC_MSG_WARN(Drag and drop disabled because OLE headers not found) wxUSE_DRAG_AND_DROP=no fi @@ -3614,6 +3758,10 @@ if test "$wxUSE_TABDIALOG" = "yes"; then SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS tab" fi +if test "$wxUSE_TOGGLEBTN" = "yes"; then + AC_DEFINE(wxUSE_TOGGLEBTN) +fi + if test "$wxUSE_TOOLBAR_SIMPLE" = "yes"; then AC_DEFINE(wxUSE_TOOLBAR_SIMPLE) wxUSE_TOOLBAR="yes" @@ -3664,10 +3812,6 @@ dnl if test "$wxUSE_WXTREE" = "yes"; then dnl AC_DEFINE(wxUSE_WXTREE) dnl fi -if test "$wxUSE_METAFILE" = "yes"; then - AC_DEFINE(wxUSE_METAFILE) -fi - if test "$wxUSE_DIRDLG" = "yes"; then if test "$wxUSE_CONSTRAINTS" != "yes"; then AC_MSG_WARN(wxDirDialog requires constraints so it won't be compiled without them) @@ -3752,9 +3896,15 @@ OPENGL_LIBS="$OPENGL_LINK" dnl all additional libraries (except wxWindows itself) we link with dnl -dnl note that we always link with -lm - extended.c uses floor() and is always -dnl linked in -EXTRA_LIBS="$LIBS $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK $ZLIB_LINK -lm" +dnl note that we always link with -lm except for Mac OS X +dnl extended.c uses floor() and is always linked in +if test "$USE_MAC" = 1 ; then + EXTRA_LIBS="$LIBS $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK $ZLIB_LINK -Llib -lxpm -framework Carbon -framework System" + CFLAGS="${CFLAGS} -fpascal-strings" + CPPFLAGS="${CPPFLAGS} -fpascal-strings" +else + EXTRA_LIBS="$LIBS $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK $ZLIB_LINK -lm" +fi if test "$wxUSE_GUI" = "yes"; then EXTRA_LIBS="$GUILIBS $PNG_LINK $JPEG_LINK $TIFF_LINK $FREETYPE_LINK $EXTRA_LIBS" fi @@ -3793,8 +3943,9 @@ if test "$wxUSE_GUI" = "yes"; then dnl TODO some samples are never built so far: dnl ipc, mfc, nativdlg, oleauto, ownerdrw, proplist - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS controls dialogs dragimag drawing dynamic \ - font fractal image menu minimal richedit" + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS controls dialogs dragimag \ + drawing dynamic event font fractal image menu \ + minimal richedit" dnl this is needed to be able to find AFM files CPPFLAGS="$CPPFLAGS \$(EXTRADEFS) \$(APPEXTRADEFS)" @@ -3848,6 +3999,7 @@ AC_SUBST(SHARED_LD) AC_SUBST(PIC_FLAG) AC_SUBST(DEP_INFO_FLAGS) AC_SUBST(CODE_GEN_FLAGS) +AC_SUBST(CODE_GEN_FLAGS_CXX) AC_SUBST(BURNT_LIBRARY_NAME) AC_SUBST(BURNT_LIBRARY_NAME_GL) AC_SUBST(WX_TARGET_LIBRARY_SONAME) @@ -3867,16 +4019,6 @@ AC_SUBST(TOOLKIT_INCLUDE) AC_SUBST(WXCONFIG_INCLUDE) dnl what to compile -AC_SUBST(GUIHEADERS) -AC_SUBST(GUIOBJS) -AC_SUBST(COMMONOBJS) -AC_SUBST(GENERICOBJS) -AC_SUBST(GUIDEPS) -AC_SUBST(COMMONDEPS) -AC_SUBST(GENERICDEPS) -AC_SUBST(IODBCOBJS) -AC_SUBST(UNIXOBJS) -AC_SUBST(UNIXDEPS) AC_SUBST(ALL_OBJECTS) AC_SUBST(ALL_DEPFILES) @@ -3966,7 +4108,7 @@ AC_OUTPUT([ dnl the debian build process wants setup.h in the lib subdir so we dnl can pretend wxWin is already installed, so we *copy* it there - + if test ! -d lib; then mkdir lib fi @@ -3983,7 +4125,7 @@ AC_OUTPUT([ mkdir lib/wx/include/wx/${TOOLKIT_NAME} fi if test -f setup.h; then - cp -f setup.h lib/wx/include/wx/${TOOLKIT_NAME}/setup.h + cp -fp setup.h lib/wx/include/wx/${TOOLKIT_NAME}/setup.h fi dnl *move* setup.h to its final place @@ -3998,7 +4140,7 @@ AC_OUTPUT([ mkdir include/wx/${TOOLKIT_DIR} fi if test -f setup.h; then - mv -f setup.h include/wx/${TOOLKIT_DIR}/setup.h + cp -fp setup.h include/wx/${TOOLKIT_DIR}/setup.h fi ],