X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b4085ce66cb2323dad4abbc3c9af7928b50e4074..27ef0d92ff9bd355b6ea0089d8b4fa5fe6d30c15:/configure.in diff --git a/configure.in b/configure.in index 2c19db017d..7b91426576 100644 --- a/configure.in +++ b/configure.in @@ -216,7 +216,6 @@ AC_DEFUN(WX_CPP_BOOL, return 0; ], [ - AC_DEFINE(HAVE_BOOL) wx_cv_cpp_bool=yes ], [ @@ -448,27 +447,39 @@ AC_CANONICAL_SYSTEM dnl When making releases do: dnl dnl WX_RELEASE_NUMBER += 1 -dnl WX_INTERFACE_AGE += 1 -dnl WX_BINARY_AGE += 1 dnl -dnl if any functions have been added, do: +dnl ..and update WX_CURRENT, WX_RELEASE and WX_AGE according to the +dnl following rules: dnl -dnl WX_INTERFACE_AGE = 0 +dnl If any changes have been made to the public interface, that is if any +dnl exported class, method, global or global type has been added, removed +dnl or changed in any way, then do: WX_CURRENT += 1 +dnl +dnl If source changes have been made that *do not* alter the public +dnl interface then do: WX_REVISION += 1 +dnl If WX_CURRENT was incremented (as above) instead do: WX_REVISION = 0 +dnl +dnl If any public interface was added, do: WX_AGE += 1 +dnl If any public interface was removed (or altered in a way effectively +dnl removing the previous definition), instead do: WX_AGE = 0 +dnl +dnl When the major or minor version numbers are incremented, all the above +dnl variables should be reset to 0. +dnl +dnl The resulting library name will be of the form: +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=0 - -WX_INTERFACE_AGE=0 -WX_BINARY_AGE=0 +WX_RELEASE_NUMBER=1 WX_VERSION=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER.$WX_RELEASE_NUMBER - -dnl wxWindows shared library versioning WX_RELEASE=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER -WX_CURRENT=`expr $WX_RELEASE_NUMBER - $WX_INTERFACE_AGE` -WX_REVISION=$WX_INTERFACE_AGE -WX_AGE=`expr $WX_BINARY_AGE - $WX_INTERFACE_AGE` + +WX_CURRENT=0 +WX_REVISION=0 +WX_AGE=0 + dnl ------------------------------------------------------------------------ dnl Check platform (host system) @@ -478,6 +489,7 @@ dnl assume Unix USE_UNIX=1 USE_WIN32=0 USE_BEOS=0 +USE_MAC=0 USE_LINUX= USE_SGI= @@ -492,6 +504,7 @@ USE_ALPHA= USE_OSF= USE_BSD= USE_FREEBSD= +USE_OPENBSD= USE_NETBSD= USE_VMS= USE_ULTRIX= @@ -582,6 +595,13 @@ case "${host}" in AC_DEFINE(__BSD__) DEFAULT_DEFAULT_wxUSE_GTK=1 ;; + *-*-openbsd*) + USE_BSD=1 + USE_OPENBSD=1 + AC_DEFINE(__FREEBSD__) + AC_DEFINE(__OPENBSD__) + DEFAULT_DEFAULT_wxUSE_GTK=1 + ;; *-*-netbsd*) USE_BSD=1 USE_NETBSD=1 @@ -621,7 +641,7 @@ case "${host}" in DEFAULT_DEFAULT_wxUSE_MOTIF=1 ;; - *-*-cygwin32* | *-*-mingw32* ) + *-*-cygwin* | *-*-mingw32* ) USE_UNIX=0 USE_WIN32=1 AC_DEFINE(__WIN32__) @@ -724,6 +744,7 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_OPENGL=no DEFAULT_wxUSE_ON_FATAL_EXCEPTION=no + DEFAULT_wxUSE_SNGLINST_CHECKER=no DEFAULT_wxUSE_STD_IOSTREAM=no DEFAULT_wxUSE_FILE=no DEFAULT_wxUSE_TEXTFILE=no @@ -803,6 +824,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 @@ -811,9 +833,11 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_UNICODE=no DEFAULT_wxUSE_WCSRTOMBS=no + DEFAULT_wxUSE_IMAGE=no DEFAULT_wxUSE_GIF=no DEFAULT_wxUSE_PCX=no DEFAULT_wxUSE_PNM=no + DEFAULT_wxUSE_XPM=no else DEFAULT_wxUSE_THREADS=yes @@ -846,6 +870,7 @@ else DEFAULT_wxUSE_OPENGL=no DEFAULT_wxUSE_ON_FATAL_EXCEPTION=yes + DEFAULT_wxUSE_SNGLINST_CHECKER=yes DEFAULT_wxUSE_STD_IOSTREAM=no DEFAULT_wxUSE_FILE=yes DEFAULT_wxUSE_TEXTFILE=yes @@ -925,6 +950,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 @@ -933,9 +959,11 @@ else DEFAULT_wxUSE_UNICODE=no DEFAULT_wxUSE_WCSRTOMBS=no + DEFAULT_wxUSE_IMAGE=yes DEFAULT_wxUSE_GIF=yes DEFAULT_wxUSE_PCX=yes DEFAULT_wxUSE_PNM=yes + DEFAULT_wxUSE_XPM=yes fi dnl WX_ARG_WITH should be used to select whether an external package will be @@ -1060,6 +1088,7 @@ WX_ARG_ENABLE(fs_zip, [ --enable-fs_zip use virtual ZIP filesyst WX_ARG_ENABLE(zipstream, [ --enable-zipstream use wxZipInputStream], wxUSE_ZIPSTREAM) WX_ARG_ENABLE(catch_segvs, [ --enable-catch_segvs catch signals and pass them to wxApp::OnFatalException], wxUSE_ON_FATAL_EXCEPTION) +WX_ARG_ENABLE(snglinst, [ --enable-snglinst use wxSingleInstanceChecker class], wxUSE_SNGLINST_CHECKER) dnl --------------------------------------------------------------------------- dnl "big" options (i.e. those which change a lot of things throughout the library) @@ -1103,6 +1132,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) @@ -1144,6 +1174,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 @@ -1177,6 +1208,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 @@ -1211,6 +1243,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) @@ -1237,9 +1270,11 @@ dnl --------------------------------------------------------------------------- dnl support for image formats that do not rely on external library dnl --------------------------------------------------------------------------- +WX_ARG_ENABLE(image, [ --enable-image use wxImage class], wxUSE_IMAGE) WX_ARG_ENABLE(gif, [ --enable-gif use gif images (GIF file format)], wxUSE_GIF) WX_ARG_ENABLE(pcx, [ --enable-pcx use pcx images (PCX file format)], wxUSE_PCX) WX_ARG_ENABLE(pnm, [ --enable-pnm use pnm images (PNM file format)], wxUSE_PNM) +WX_ARG_ENABLE(pnm, [ --enable-xpm use xpm images (XPM file format)], wxUSE_XPM) fi dnl for GUI only @@ -1547,10 +1582,6 @@ USE_GUI=1 TOOLKIT= TOOLKIT_INCLUDE= -GUIOBJS= -COMMONOBJS= -GENERICOBJS= - GUI_TK_LIBRARY= GUI_TK_LINK= @@ -1592,12 +1623,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 @@ -1645,19 +1670,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 @@ -1703,16 +1718,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 @@ -1889,38 +1894,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 - UNIXOBJS="\$(UNIX_OBJS)" - UNIXDEPS="\$(UNIX_DEPS)" - GUIDIST=MAC_DIST + 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 @@ -1948,10 +1932,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 @@ -2011,12 +1993,6 @@ else dnl distribute only wxBase sources/headers GUIDIST="BASE_DIST" DISTDIR="wxBase" - - dnl Apple MAC OS X specific extras - if test "$USE_UNIX" = 1 ; then - ALL_OBJECTS="${ALL_OBJECTS} dl_macosx.o" - ALL_DEPFILES="${ALL_DEPFILES} dl_macosx.d" - fi fi dnl the name of the (libtool) library @@ -2131,7 +2107,7 @@ if test "$wxUSE_SHARED" = "yes"; then WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS" WX_ALL="CREATE_LINKS" ;; - *-*-freebsd* | *-*-netbsd* ) + *-*-freebsd* | *-*-openbsd* | *-*-netbsd* ) SHARED_LD="${CC} -shared -o" PIC_FLAG="-fPIC" if test "$wxUSE_OPENGL" = "yes"; then @@ -2143,8 +2119,8 @@ if test "$wxUSE_SHARED" = "yes"; then fi ;; *-*-darwin* ) - SHARED_LD="libtool -dynamic -o" - PIC_FLAG="-fPIC" + SHARED_LD="${CXX} -dynamiclib -o" + PIC_FLAG="-dynamic -fPIC" if test "$wxUSE_OPENGL" = "yes"; then WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL" WX_ALL="CREATE_LINKS CREATE_LINKS_GL" @@ -2152,6 +2128,18 @@ if test "$wxUSE_SHARED" = "yes"; then WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS" WX_ALL="CREATE_LINKS" fi + dnl add the resources target + WX_ALL="${WX_ALL} ./lib/lib${WX_LIBRARY}-${WX_RELEASE}.r" + dnl the name of the shared library + WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}-${WX_RELEASE}.dylib.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}" + WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.dylib.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}" + dnl the name of the links to the shared library + WX_LIBRARY_LINK1="lib${WX_LIBRARY}-${WX_RELEASE}.dylib.${WX_CURRENT}" + 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}.dylib.${WX_CURRENT}" + 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" @@ -2175,7 +2163,7 @@ if test "$wxUSE_SHARED" = "yes"; then SHARED_LD="/usr/lpp/xlC/bin/makeC++SharedLib -p 0 -o" WX_ALL=${WX_LIBRARY_NAME_SHARED} ;; - *-*-cygwin32* ) + *-*-cygwin* ) dnl only static for now WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}" WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}" @@ -2248,10 +2236,10 @@ dnl ------------------------------------------------------------------------ dnl defines HAVE_STRINGS_H (where some string functions live on AIX for example) AC_CHECK_HEADERS(strings.h) +dnl defines HAVE_STDLIB_H +AC_CHECK_HEADERS(stdlib.h) dnl defines HAVE_UNISTD_H AC_CHECK_HEADERS(unistd.h) -dnl defines HAVE_FCNTL_H -AC_CHECK_HEADERS(fcntl.h) dnl defines HAVE_WCHAR_H AC_CHECK_HEADERS(wchar.h) dnl defines HAVE_WCSTR_H @@ -2285,6 +2273,30 @@ AC_TYPE_SIZE_T dnl defines uid_t and gid_t if not already defined AC_TYPE_UID_T +dnl check for wchar_t +AC_CACHE_CHECK([for wchar_t], wx_cv_type_wchar_t, +[ + AC_TRY_COMPILE([#include ], + [ + wchar_t wc, *ws; + wc = L'a'; + ws = L"Hello, world!"; + ], + wx_cv_type_wchar_t=yes, + AC_TRY_COMPILE([#include ], + [ + wchar_t wc, *ws; + wc = L'a'; + ws = L"Hello, world!"; + ], + wx_cv_type_wchar_t=yes, + wx_cv_type_wchar_t=no) + ) +]) +if test "$wx_cv_type_wchar_t" = yes ; then + AC_DEFINE(wxUSE_WCHAR_T) +fi + dnl --------------------------------------------------------------------------- dnl Checks for structures dnl --------------------------------------------------------------------------- @@ -2325,13 +2337,43 @@ dnl check the sizes of integral types (give some reasonable default values for dnl cross-compiling) dnl defines the size of certain types of variables in SIZEOF_ AC_CHECK_SIZEOF(char, 1) -AC_CHECK_SIZEOF(wchar_t, 4) AC_CHECK_SIZEOF(short, 2) AC_CHECK_SIZEOF(int *, 4) AC_CHECK_SIZEOF(int, 4) AC_CHECK_SIZEOF(long, 4) AC_CHECK_SIZEOF(long long, 0) +dnl we have to do it ourselves because SGI/Irix's stdio.h does not include +dnl wchar_t an 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( + [ + #ifdef HAVE_WCHAR_H + # include + #endif + #ifdef HAVE_STDLIB_H + # include + #endif + #include + int main() + { + FILE *f=fopen("conftestval", "w"); + if (!f) exit(1); + fprintf(f, "%i", sizeof(wchar_t)); + exit(0); + } + ], + wx_cv_sizeof_wchar_t=`cat conftestval`, + wx_cv_sizeof_wchar_t=0, + wx_cv_sizeof_wchar_t=4 + ) +]) + +AC_DEFINE_UNQUOTED(SIZEOF_WCHAR_T, $wx_cv_sizeof_wchar_t) + + dnl for bytesex stuff (don't use AC_C_BIGENDIAN to allow cross-compiling) WX_C_BIGENDIAN @@ -2362,8 +2404,6 @@ AC_CHECK_LIB(c, wcslen, [ dnl check for vprintf/vsprintf() which are GNU extensions AC_FUNC_VPRINTF -AC_LANG_SAVE -AC_LANG_CPLUSPLUS 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 @@ -2377,6 +2417,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, [ @@ -2399,14 +2447,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, [ @@ -2427,18 +2501,41 @@ 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 ]) ]) -AC_LANG_RESTORE +if test "$wx_cv_func_vsscanf" = yes; then + AC_DEFINE(HAVE_VSSCANF) +fi dnl the following tests are for Unix(like) systems only if test "$TOOLKIT" != "MSW"; then +dnl check for available version of iconv() + +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +AC_CACHE_CHECK([if iconv() takes char**], wx_cv_iconv_takes_char, +[ + AC_TRY_COMPILE([#include ], + [ + char **inbuf, **outbuf; + iconv_t cd; + size_t insz, outsz; + iconv(cd, inbuf, &insz, outbuf, &outsz); + ], + wx_cv_iconv_takes_char=yes, + wx_cv_iconv_takes_char=no) +]) +AC_LANG_RESTORE +if test "$wx_cv_iconv_takes_char" = yes ; then + AC_DEFINE(WX_ICONV_TAKES_CHAR) +fi + + dnl check for POSIX signals if we need them if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then AC_CHECK_FUNCS(sigaction) @@ -2476,10 +2573,21 @@ fi dnl check for vfork() (even if it's the same as fork() in modern Unices) AC_CHECK_FUNCS(vfork) +dnl check for fcntl() or at least flock() needed by Unix implementation of +dnl wxSingleInstanceChecker +if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then + AC_CHECK_FUNCS(fcntl flock, break) + + if test "$ac_cv_func_fcntl" != "yes" -a "$ac_cv_func_flock" != "yes"; then + AC_MSG_WARN(wxSingleInstanceChecker not available) + wxUSE_SNGLINST_CHECKER=no + fi +fi + dnl check for timegm() used by datetime.cpp AC_CHECK_FUNCS(timegm) -dnl look for a functiopn to modify the environment +dnl look for a function to modify the environment AC_CHECK_FUNCS(putenv setenv, break) HAVE_SOME_SLEEP_FUNC=0 @@ -2510,9 +2618,9 @@ if test "$HAVE_SOME_SLEEP_FUNC" != 1; then ], [ AC_CHECK_FUNCS(usleep, - AC_DEFINE(HAVE_USLEEP), - ) - AC_MSG_WARN([wxSleep() function will not work]) + AC_DEFINE(HAVE_USLEEP), + AC_MSG_WARN([wxSleep() function will not work]) + ) ] ) ] @@ -2615,15 +2723,9 @@ if test "$wxUSE_THREADS" = "yes" ; then THREADS_OBJ="threadpsx.lo" THREADS_LINK="c_r" ], [ - 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" - ]) + dnl VZ: SGI threads are not supported currently + AC_CHECK_HEADER(sys/prctl.h, [ + THREADS_OBJ="threadsgi.lo" ]) ]) ]) @@ -2702,12 +2804,63 @@ 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 + + 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 @@ -2725,9 +2878,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 @@ -2763,8 +2918,17 @@ if test "$WXWINE" = 1 ; then fi if test "$wxUSE_MAC" = 1 ; then - TOOLKIT_DEF="${TOOLKIT_DEF} -D__UNIX__ -DTARGET_CARBON" - TOOLKIT_INCLUDE="${TOOLKIT_INCLUDE}" + TOOLKIT_DEF="${TOOLKIT_DEF} -D__UNIX__ -D__POWERPC__ -DTARGET_CARBON" + CFLAGS="${CFLAGS} -fno-common -fpascal-strings" + CPPFLAGS="${CPPFLAGS} -fno-common -fpascal-strings" + AC_CHECK_PROG(REZ, Rez, Rez, /Developer/Tools/Rez) + AC_CHECK_PROG(DEREZ, Derez, Derez, /Developer/Tools/Derez) + RESCOMP=${REZ} + REZFLAGS="-d __UNIX__ -useDF" + DEREZFLAGS="Carbon.r -useDF" + RESFLAGS="Carbon.r -t APPL" + LIBWXMACRES="\$(LIBWX_MACRES)" + LIBWXMACRESCOMP="\$(LIBWX_MACRESCOMP)" fi if test "$wxUSE_CYGWIN" = 1 ; then @@ -2810,12 +2974,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" @@ -2906,7 +3071,7 @@ fi TIFF_INCLUDE= if test "$wxUSE_LIBTIFF" = "yes" -o "$wxUSE_LIBTIFF" = "sys" ; then AC_DEFINE(wxUSE_LIBTIFF) - if test "$wxUSE_LIBTIFF" = "yes" ; then + if test "$wxUSE_LIBTIFF" = "yes" ; then TIFF_INCLUDE="-I\${top_srcdir}/src/tiff" else TIFF_LINK= @@ -3019,6 +3184,10 @@ if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then AC_DEFINE(wxUSE_ON_FATAL_EXCEPTION) fi +if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then + AC_DEFINE(wxUSE_SNGLINST_CHECKER) +fi + if test "$wxUSE_BUSYINFO" = "yes"; then AC_DEFINE(wxUSE_BUSYINFO) fi @@ -3151,13 +3320,16 @@ if test "$wxUSE_TIMEDATE" = "yes"; then ], [ wx_cv_struct_tm_has_gmtoff=yes - AC_DEFINE(WX_GMTOFF_IN_TM) ], wx_cv_struct_tm_has_gmtoff=no ) ]) fi + if test "$wx_cv_struct_tm_has_gmtoff" = "yes"; then + AC_DEFINE(WX_GMTOFF_IN_TM) + fi + dnl check for gettimeofday (SVr4, BSD 4.3) and ftime (V7, BSD 4.3) for the dnl function to be used for high resolution timers AC_CHECK_FUNCS(gettimeofday ftime, break) @@ -3226,8 +3398,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 @@ -3283,6 +3456,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" @@ -3426,9 +3602,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 ---------------------------------------------------------------- @@ -3525,11 +3698,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 @@ -3679,6 +3877,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" @@ -3729,10 +3931,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) @@ -3781,6 +3979,10 @@ if test "$wxUSE_VALIDATORS" = "yes"; then SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS validate" fi +if test "$wxUSE_IMAGE" = "yes" ; then + AC_DEFINE(wxUSE_IMAGE) +fi + if test "$wxUSE_GIF" = "yes" ; then AC_DEFINE(wxUSE_GIF) fi @@ -3793,6 +3995,10 @@ if test "$wxUSE_PNM" = "yes" ; then AC_DEFINE(wxUSE_PNM) fi +if test "$wxUSE_XPM" = "yes" ; then + AC_DEFINE(wxUSE_XPM) +fi + dnl --------------------------------------------------------------------------- dnl get the string with OS info - used by wxGetOsDescription() dnl --------------------------------------------------------------------------- @@ -3819,12 +4025,9 @@ dnl all additional libraries (except wxWindows itself) we link with dnl dnl note that we always link with -lm except for Mac OS X dnl extended.c uses floor() and is always linked in +EXTRA_LIBS="$LIBS $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK $ZLIB_LINK -lm" if test "$USE_MAC" = 1 ; then - EXTRA_LIBS="$LIBS $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK $ZLIB_LINK -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" + EXTRA_LIBS="$EXTRA_LIBS -framework Carbon -framework System" fi if test "$wxUSE_GUI" = "yes"; then EXTRA_LIBS="$GUILIBS $PNG_LINK $JPEG_LINK $TIFF_LINK $FREETYPE_LINK $EXTRA_LIBS" @@ -3920,6 +4123,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) @@ -3939,16 +4143,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) @@ -3981,6 +4175,13 @@ AC_SUBST(RCOUTPUTSWITCH) AC_SUBST(RESPROGRAM) AC_SUBST(RESCOMP) AC_SUBST(RESFLAGS) +dnl additional for Mac OS X +AC_SUBST(REZ) +AC_SUBST(REZFLAGS) +AC_SUBST(DEREZ) +AC_SUBST(DEREZFLAGS) +AC_SUBST(LIBWXMACRES) +AC_SUBST(LIBWXMACRESCOMP) dnl These seam to be missing AC_SUBST(DLLTOOL) @@ -4000,12 +4201,12 @@ if test -d include; then if test -d include/wx; then if test -d include/wx/${TOOLKIT_DIR}; then if test -f include/wx/${TOOLKIT_DIR}/setup.h; then - mv -f include/wx/${TOOLKIT_DIR}/setup.h setup.h + mv -f include/wx/${TOOLKIT_DIR}/setup.h setup.h fi fi fi fi - + AC_CONFIG_HEADER(setup.h:setup.h.in) dnl some more GUI only things @@ -4035,10 +4236,10 @@ AC_OUTPUT([ chmod +x wx-config mv wx-config wx${TOOLKIT_NAME}-config ${LN_S} wx${TOOLKIT_NAME}-config wx-config - + 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 @@ -4055,7 +4256,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 @@ -4070,9 +4271,9 @@ 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 - + ], [ TOOLKIT_DIR="${TOOLKIT_DIR}" @@ -4081,3 +4282,4 @@ AC_OUTPUT([ ] ) +dnl vi: set et ts=4 sw=4 list: