X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/466367bedca04b0269953782186fa779037470e3..5b3610dab2f75e518fefa8a9ad3076b6366b054a:/configure.in diff --git a/configure.in b/configure.in index b094d68e6d..518986efdf 100644 --- a/configure.in +++ b/configure.in @@ -11,329 +11,12 @@ dnl dnl Version: $Id$ dnl --------------------------------------------------------------------------- -dnl =========================================================================== -dnl macros to find the a file in the list of include/lib paths -dnl =========================================================================== - -dnl --------------------------------------------------------------------------- -dnl call WX_PATH_FIND_INCLUDES(search path, header name), sets ac_find_includes -dnl to the full name of the file that was found or leaves it empty if not found -dnl --------------------------------------------------------------------------- -AC_DEFUN(WX_PATH_FIND_INCLUDES, -[ -ac_find_includes= -for ac_dir in $1; - do - if test -f "$ac_dir/$2"; then - ac_find_includes=$ac_dir - break - fi - done -]) - -dnl --------------------------------------------------------------------------- -dnl call WX_PATH_FIND_LIBRARIES(search path, header name), sets ac_find_libraries -dnl to the full name of the file that was found or leaves it empty if not found -dnl --------------------------------------------------------------------------- -AC_DEFUN(WX_PATH_FIND_LIBRARIES, -[ -ac_find_libraries= -for ac_dir in $1; - do - for ac_extension in a so sl dylib; do - if test -f "$ac_dir/lib$2.$ac_extension"; then - ac_find_libraries=$ac_dir - break 2 - fi - done - done -]) - -dnl --------------------------------------------------------------------------- -dnl Path to include, already defined -dnl --------------------------------------------------------------------------- -AC_DEFUN(WX_INCLUDE_PATH_EXIST, -[ - ac_path_to_include=$1 - echo "$2" | grep "\-I$1" > /dev/null - result=$? - if test $result = 0; then - ac_path_to_include="" - else - ac_path_to_include=" -I$1" - fi -]) - -dnl --------------------------------------------------------------------------- -dnl Path to link, already defined -dnl --------------------------------------------------------------------------- -AC_DEFUN(WX_LINK_PATH_EXIST, -[ - echo "$2" | grep "\-L$1" > /dev/null - result=$? - if test $result = 0; then - ac_path_to_link="" - else - ac_path_to_link=" -L$1" - fi -]) - -dnl =========================================================================== -dnl C++ features test -dnl =========================================================================== - -dnl --------------------------------------------------------------------------- -dnl WX_CPP_NEW_HEADERS checks whether the compiler has "new" header -dnl or only the old one - it may be generally assumed that if -dnl exists, the other "new" headers (without .h) exist too. -dnl -dnl call WX_CPP_NEW_HEADERS(actiof-if-true, action-if-false-or-cross-compiling) -dnl --------------------------------------------------------------------------- - -AC_DEFUN(WX_CPP_NEW_HEADERS, -[ - if test "$cross_compiling" = "yes"; then - ifelse([$2], , :, [$2]) - else - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - - AC_CHECK_HEADERS(iostream) - - if test "$ac_cv_header_iostream" = "yes" ; then - ifelse([$1], , :, [$1]) - else - ifelse([$2], , :, [$2]) - fi - - AC_LANG_RESTORE - fi -]) - -dnl --------------------------------------------------------------------------- -dnl WX_CPP_BOOL checks whether the C++ compiler has a built in bool type -dnl -dnl call WX_CPP_BOOL - will define HAVE_BOOL if the compiler supports bool -dnl --------------------------------------------------------------------------- - -AC_DEFUN(WX_CPP_BOOL, -[ - AC_CACHE_CHECK([if C++ compiler supports bool], wx_cv_cpp_bool, - [ - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - - AC_TRY_COMPILE( - [ - ], - [ - bool b = true; - - return 0; - ], - [ - wx_cv_cpp_bool=yes - ], - [ - wx_cv_cpp_bool=no - ] - ) - - AC_LANG_RESTORE - ]) - - if test "$wx_cv_cpp_bool" = "yes"; then - AC_DEFINE(HAVE_BOOL) - fi -]) - -dnl --------------------------------------------------------------------------- -dnl a slightly better AC_C_BIGENDIAN macro which allows cross-compiling -dnl --------------------------------------------------------------------------- - -AC_DEFUN(WX_C_BIGENDIAN, -[AC_CACHE_CHECK(whether byte ordering is bigendian, ac_cv_c_bigendian, -[ac_cv_c_bigendian=unknown -# See if sys/param.h defines the BYTE_ORDER macro. -AC_TRY_COMPILE([#include -#include ], [ -#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN - bogus endian macros -#endif], [# It does; now see whether it defined to BIG_ENDIAN or not. -AC_TRY_COMPILE([#include -#include ], [ -#if BYTE_ORDER != BIG_ENDIAN - not big endian -#endif], ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)]) -if test $ac_cv_c_bigendian = unknown; then -AC_TRY_RUN([main () { - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long l; - char c[sizeof (long)]; - } u; - u.l = 1; - exit (u.c[sizeof (long) - 1] == 1); -}], ac_cv_c_bigendian=no, ac_cv_c_bigendian=yes, ac_cv_c_bigendian=unknown) -fi]) -if test $ac_cv_c_bigendian = unknown; then - AC_MSG_WARN([Assuming little-endian target machine - this may be overriden by adding the line "ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}" to config.cache file]) -fi -if test $ac_cv_c_bigendian = yes; then - AC_DEFINE(WORDS_BIGENDIAN) -fi -]) - -dnl --------------------------------------------------------------------------- -dnl override AC_ARG_ENABLE/WITH to cache the results in .cache file -dnl --------------------------------------------------------------------------- - -AC_DEFUN(WX_ARG_CACHE_INIT, - [ - wx_arg_cache_file="configarg.cache" - echo "loading argument cache $wx_arg_cache_file" - rm -f ${wx_arg_cache_file}.tmp - touch ${wx_arg_cache_file}.tmp - touch ${wx_arg_cache_file} - ]) - -AC_DEFUN(WX_ARG_CACHE_FLUSH, - [ - echo "saving argument cache $wx_arg_cache_file" - mv ${wx_arg_cache_file}.tmp ${wx_arg_cache_file} - ]) - -dnl this macro checks for a three-valued command line --with argument: -dnl possible arguments are 'yes', 'no', 'sys', or 'builtin' -dnl usage: WX_ARG_SYS_WITH(option, helpmessage, variable-name) -AC_DEFUN(WX_ARG_SYS_WITH, - [ - AC_MSG_CHECKING([for --with-$1]) - no_cache=0 - AC_ARG_WITH($1, [$2], - [ - if test "$withval" = yes; then - ac_cv_use_$1='$3=yes' - elif test "$withval" = no; then - ac_cv_use_$1='$3=no' - elif test "$withval" = sys; then - ac_cv_use_$1='$3=sys' - elif test "$withval" = builtin; then - ac_cv_use_$1='$3=builtin' - else - AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no, sys, or builtin]) - fi - ], - [ - LINE=`grep "$3" ${wx_arg_cache_file}` - if test "x$LINE" != x ; then - eval "DEFAULT_$LINE" - else - no_cache=1 - fi - - ac_cv_use_$1='$3='$DEFAULT_$3 - ]) - - eval "$ac_cv_use_$1" - if test "$no_cache" != 1; then - echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp - fi - - if test "$$3" = yes; then - AC_MSG_RESULT(yes) - elif test "$$3" = no; then - AC_MSG_RESULT(no) - elif test "$$3" = sys; then - AC_MSG_RESULT(system version) - elif test "$$3" = builtin; then - AC_MSG_RESULT(builtin version) - else - AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no, sys, or builtin]) - fi - ]) - -dnl this macro checks for a command line argument and caches the result -dnl usage: WX_ARG_WITH(option, helpmessage, variable-name) -AC_DEFUN(WX_ARG_WITH, - [ - AC_MSG_CHECKING([for --with-$1]) - no_cache=0 - AC_ARG_WITH($1, [$2], - [ - if test "$withval" = yes; then - ac_cv_use_$1='$3=yes' - else - ac_cv_use_$1='$3=no' - fi - ], - [ - LINE=`grep "$3" ${wx_arg_cache_file}` - if test "x$LINE" != x ; then - eval "DEFAULT_$LINE" - else - no_cache=1 - fi - - ac_cv_use_$1='$3='$DEFAULT_$3 - ]) - - eval "$ac_cv_use_$1" - if test "$no_cache" != 1; then - echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp - fi - - if test "$$3" = yes; then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - fi - ]) - -dnl like WX_ARG_WITH but uses AC_ARG_ENABLE instead of AC_ARG_WITH -dnl usage: WX_ARG_ENABLE(option, helpmessage, variable-name) -AC_DEFUN(WX_ARG_ENABLE, - [ - AC_MSG_CHECKING([for --enable-$1]) - no_cache=0 - AC_ARG_ENABLE($1, [$2], - [ - if test "$enableval" = yes; then - ac_cv_use_$1='$3=yes' - else - ac_cv_use_$1='$3=no' - fi - ], - [ - LINE=`grep "$3" ${wx_arg_cache_file}` - if test "x$LINE" != x ; then - eval "DEFAULT_$LINE" - else - no_cache=1 - fi - - ac_cv_use_$1='$3='$DEFAULT_$3 - ]) - - eval "$ac_cv_use_$1" - if test "$no_cache" != 1; then - echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp - fi - - if test "$$3" = yes; then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - fi - ]) - dnl --------------------------------------------------------------------------- dnl initialization dnl --------------------------------------------------------------------------- dnl the file passed to AC_INIT should be specific to our package -AC_INIT(wx-config.in) +AC_INIT([wx-config.in]) dnl sets build, host, target variables and the same with _alias AC_CANONICAL_SYSTEM @@ -413,23 +96,22 @@ dnl _REENTRANT" and it's easier to just define this symbol for these platforms dnl than checking it during run-time NEEDS_D_REENTRANT_FOR_R_FUNCS=0 -dnl the additional define needed for MT programs -CPP_MT_FLAG=-D_REENTRANT - 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 MOTIF MSW PM WINE" +ALL_TOOLKITS="GTK MAC MGL MICROWIN MOTIF MSW PM WINE 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_GTK=0 DEFAULT_wxUSE_MAC=0 DEFAULT_wxUSE_MGL=0 +DEFAULT_wxUSE_MICROWIN=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* @@ -437,10 +119,12 @@ dnl nothing was found in the cache DEFAULT_DEFAULT_wxUSE_GTK=0 DEFAULT_DEFAULT_wxUSE_MAC=0 DEFAULT_DEFAULT_wxUSE_MGL=0 +DEFAULT_DEFAULT_wxUSE_MICROWIN=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= SO_SUFFIX=so @@ -496,7 +180,6 @@ case "${host}" in *-*-freebsd*) USE_BSD=1 USE_FREEBSD=1 - CPP_MT_FLAG=-D_THREAD_SAFE AC_DEFINE(__FREEBSD__) AC_DEFINE(__BSD__) DEFAULT_DEFAULT_wxUSE_GTK=1 @@ -568,20 +251,19 @@ case "${host}" in AC_DEFINE(__DOS__) PROGRAM_EXT=".exe" DEFAULT_DEFAULT_wxUSE_MGL=1 - DEFAULT_DEFAULT_wxUSE_SHARED=0 ;; *-pc-os2_emx | *-pc-os2-emx ) AC_DEFINE(__EMX__) PROGRAM_EXT=".exe" DEFAULT_DEFAULT_wxUSE_PM=1 + LIBS="$LIBS -lstdcpp" ;; powerpc-*-darwin* ) dnl PowerPC Darwin based distributions (including Mac OS X) USE_BSD=1 USE_DARWIN=1 - CPP_MT_FLAG= SO_SUFFIX=dylib AC_DEFINE(__BSD__) AC_DEFINE(__DARWIN__) @@ -604,28 +286,6 @@ if test "$USE_UNIX" = 1 ; then AC_DEFINE(__UNIX__) fi -dnl check for glibc version -if test "$USE_LINUX" = 1; then - AC_CACHE_CHECK([for glibc 2.1 or later], wx_lib_glibc21, - AC_TRY_COMPILE([#include ], - [ - #if !__GLIBC_PREREQ(2, 1) - #error not glibc2.1 - #endif - ], - [ - wx_lib_glibc21=yes - ], - [ - wx_lib_glibc21=no - ] - ) - ) - if test "$wx_lib_glibc21" = "yes"; then - AC_DEFINE(wxHAVE_GLIBC2) - fi -fi - dnl --------------------------------------------------------------------------- dnl command line options for configure dnl --------------------------------------------------------------------------- @@ -644,6 +304,8 @@ DEBUG_CONFIGURE=0 if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_UNIVERSAL=no + DEFAULT_wxUSE_NANOX=no + DEFAULT_wxUSE_THREADS=yes DEFAULT_wxUSE_SHARED=yes @@ -651,8 +313,8 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_OPTIMISE=no DEFAULT_wxUSE_PROFILE=no DEFAULT_wxUSE_NO_DEPS=no - DEFAULT_wxUSE_NO_RTTI=yes - DEFAULT_wxUSE_NO_EXCEPTIONS=yes + DEFAULT_wxUSE_NO_RTTI=no + DEFAULT_wxUSE_NO_EXCEPTIONS=no DEFAULT_wxUSE_PERMISSIVE=no DEFAULT_wxUSE_DEBUG_FLAG=yes DEFAULT_wxUSE_DEBUG_INFO=yes @@ -660,7 +322,7 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_MEM_TRACING=no DEFAULT_wxUSE_DEBUG_CONTEXT=no DEFAULT_wxUSE_DMALLOC=no - DEFAULT_wxUSE_PRECOMP=yes + DEFAULT_wxUSE_PRECOMP=no DEFAULT_wxUSE_APPLE_IEEE=no DEFAULT_wxUSE_LOG=yes @@ -677,7 +339,6 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_LIBJPEG=no DEFAULT_wxUSE_LIBTIFF=no DEFAULT_wxUSE_ODBC=no - DEFAULT_wxUSE_FREETYPE=no DEFAULT_wxUSE_OPENGL=no DEFAULT_wxUSE_ON_FATAL_EXCEPTION=no @@ -700,7 +361,7 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_SOCKETS=no DEFAULT_wxUSE_DIALUP_MANAGER=no DEFAULT_wxUSE_JOYSTICK=no - DEFAULT_wxUSE_DYNLIB_CLASS=yes + DEFAULT_wxUSE_DYNLIB_CLASS=no DEFAULT_wxUSE_DYNAMIC_LOADER=no DEFAULT_wxUSE_LONGLONG=no DEFAULT_wxUSE_GEOMETRY=no @@ -730,8 +391,13 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_TREELAYOUT=no DEFAULT_wxUSE_METAFILE=no DEFAULT_wxUSE_MIMETYPE=no - DEFAULT_wxUSE_SYSTEM_OPTIONS=yes - + DEFAULT_wxUSE_SYSTEM_OPTIONS=no + DEFAULT_wxUSE_PROTOCOL=no + DEFAULT_wxUSE_PROTOCOL_HTTP=no + DEFAULT_wxUSE_PROTOCOL_FTP=no + DEFAULT_wxUSE_PROTOCOL_FILE=no + DEFAULT_wxUSE_URL=no + DEFAULT_wxUSE_COMMONDLGS=no DEFAULT_wxUSE_CHOICEDLG=no DEFAULT_wxUSE_COLOURDLG=no @@ -798,6 +464,7 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_TIPWINDOW=no DEFAULT_wxUSE_UNICODE=no + DEFAULT_wxUSE_UNICODE_MSLU=no DEFAULT_wxUSE_WCSRTOMBS=no DEFAULT_wxUSE_PALETTE=no @@ -805,10 +472,14 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_GIF=no DEFAULT_wxUSE_PCX=no DEFAULT_wxUSE_PNM=no + DEFAULT_wxUSE_IFF=no DEFAULT_wxUSE_XPM=no + DEFAULT_wxUSE_ICO_CUR=no else DEFAULT_wxUSE_UNIVERSAL=no + DEFAULT_wxUSE_NANOX=no + DEFAULT_wxUSE_THREADS=yes DEFAULT_wxUSE_SHARED=yes @@ -816,8 +487,8 @@ else DEFAULT_wxUSE_OPTIMISE=yes DEFAULT_wxUSE_PROFILE=no DEFAULT_wxUSE_NO_DEPS=no - DEFAULT_wxUSE_NO_RTTI=yes - DEFAULT_wxUSE_NO_EXCEPTIONS=yes + DEFAULT_wxUSE_NO_RTTI=no + DEFAULT_wxUSE_NO_EXCEPTIONS=no DEFAULT_wxUSE_PERMISSIVE=no DEFAULT_wxUSE_DEBUG_FLAG=no DEFAULT_wxUSE_DEBUG_INFO=no @@ -825,7 +496,7 @@ else DEFAULT_wxUSE_MEM_TRACING=no DEFAULT_wxUSE_DEBUG_CONTEXT=no DEFAULT_wxUSE_DMALLOC=no - DEFAULT_wxUSE_PRECOMP=yes + DEFAULT_wxUSE_PRECOMP=no DEFAULT_wxUSE_APPLE_IEEE=yes DEFAULT_wxUSE_LOG=yes @@ -841,7 +512,6 @@ else DEFAULT_wxUSE_LIBJPEG=yes DEFAULT_wxUSE_LIBTIFF=yes DEFAULT_wxUSE_ODBC=no - DEFAULT_wxUSE_FREETYPE=no DEFAULT_wxUSE_OPENGL=no DEFAULT_wxUSE_ON_FATAL_EXCEPTION=yes @@ -864,8 +534,8 @@ else DEFAULT_wxUSE_SOCKETS=yes DEFAULT_wxUSE_DIALUP_MANAGER=yes DEFAULT_wxUSE_JOYSTICK=yes - DEFAULT_wxUSE_DYNLIB_CLASS=no - DEFAULT_wxUSE_DYNAMIC_LOADER=no + DEFAULT_wxUSE_DYNLIB_CLASS=yes + DEFAULT_wxUSE_DYNAMIC_LOADER=yes DEFAULT_wxUSE_LONGLONG=yes DEFAULT_wxUSE_GEOMETRY=yes @@ -895,6 +565,11 @@ else DEFAULT_wxUSE_METAFILE=yes DEFAULT_wxUSE_MIMETYPE=yes DEFAULT_wxUSE_SYSTEM_OPTIONS=yes + DEFAULT_wxUSE_PROTOCOL=yes + DEFAULT_wxUSE_PROTOCOL_HTTP=yes + DEFAULT_wxUSE_PROTOCOL_FTP=yes + DEFAULT_wxUSE_PROTOCOL_FILE=yes + DEFAULT_wxUSE_URL=yes DEFAULT_wxUSE_COMMONDLGS=yes DEFAULT_wxUSE_CHOICEDLG=yes @@ -962,14 +637,17 @@ else DEFAULT_wxUSE_TIPWINDOW=yes DEFAULT_wxUSE_UNICODE=no + DEFAULT_wxUSE_UNICODE_MSLU=yes DEFAULT_wxUSE_WCSRTOMBS=no DEFAULT_wxUSE_PALETTE=yes DEFAULT_wxUSE_IMAGE=yes DEFAULT_wxUSE_GIF=yes DEFAULT_wxUSE_PCX=yes + DEFAULT_wxUSE_IFF=no DEFAULT_wxUSE_PNM=yes DEFAULT_wxUSE_XPM=yes + DEFAULT_wxUSE_ICO_CUR=yes fi dnl WX_ARG_WITH should be used to select whether an external package will be @@ -1008,16 +686,18 @@ AC_ARG_WITH(gtk, [ --with-gtk use GTK+], [wxUSE_GTK="$wi 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(msw, [ --with-msw use MS-Windows], [wxUSE_MSW="$withval" CACHE_MSW TOOLKIT_GIVEN=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" CACHE_MGL=1 TOOLKIT_GIVEN=1]) +AC_ARG_WITH(microwin, [ --with-microwin use MicroWindows], [wxUSE_MICROWIN="$withval" CACHE_MICROWIN=1 TOOLKIT_GIVEN=1]) +AC_ARG_WITH(x11, [ --with-x11 use X11], [wxUSE_X11="$withval" wxUSE_UNIVERSAL="yes" CACHE_X11=1 TOOLKIT_GIVEN=1]) +WX_ARG_ENABLE(nanox, [ --enable-nanox use NanoX], wxUSE_NANOX) -AC_ARG_ENABLE(gtk2, [ --enable-gtk2 use GTK+ 2.0 if available (EXPERIMENTAL)],wxUSE_GTK2=1,wxUSE_GTK2=0) +AC_ARG_ENABLE(gtk2, [ --enable-gtk2 use GTK+ 2.0 if available (EXPERIMENTAL)],wxUSE_GTK2="yes",wxUSE_GTK2="no") WX_ARG_SYS_WITH(libpng, [ --with-libpng use libpng (PNG image format)], wxUSE_LIBPNG) WX_ARG_SYS_WITH(libjpeg, [ --with-libjpeg use libjpeg (JPEG file format)], wxUSE_LIBJPEG) WX_ARG_SYS_WITH(libtiff, [ --with-libtiff use libtiff (TIFF file format)], wxUSE_LIBTIFF) -WX_ARG_SYS_WITH(freetype, [ --with-freetype use freetype (font rasterizer)], wxUSE_FREETYPE) WX_ARG_WITH(opengl, [ --with-opengl use OpenGL (or Mesa)], wxUSE_OPENGL) fi @@ -1060,7 +740,7 @@ WX_ARG_ENABLE(permissive, [ --enable-permissive compile code disregardin 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, [ --enable-compat22 enable wxWindows 2.2 compatibility], WXWIN_COMPATIBILITY_2_2) +WX_ARG_ENABLE(compat22, [ --disable-compat22 disable wxWindows 2.2 compatibility], WXWIN_COMPATIBILITY_2_2) dnl --------------------------------------------------------------------------- dnl (small) optional non GUI classes @@ -1069,6 +749,10 @@ dnl --------------------------------------------------------------------------- WX_ARG_ENABLE(intl, [ --enable-intl use internationalization system], wxUSE_INTL) WX_ARG_ENABLE(config, [ --enable-config use wxConfig (and derived) classes], wxUSE_CONFIG) +WX_ARG_ENABLE(protocols, [ --enable-protocols use wxProtocol and derived classes], wxUSE_PROTOCOL) +WX_ARG_ENABLE(ftp, [ --enable-ftp use wxFTP (requires wxProtocol], wxUSE_PROTOCOL_FTP) +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(ipc, [ --enable-ipc use interprocess communication (wxSocket etc.)], wxUSE_IPC) @@ -1094,6 +778,7 @@ WX_ARG_ENABLE(textbuf, [ --enable-textbuf use wxTextBuffer class], WX_ARG_ENABLE(textfile, [ --enable-textfile use wxTextFile class], wxUSE_TEXTFILE) WX_ARG_ENABLE(fontmap, [ --enable-fontmap use font encodings conversion classes], wxUSE_FONTMAP) WX_ARG_ENABLE(unicode, [ --enable-unicode compile wxString with Unicode support], wxUSE_UNICODE) +WX_ARG_ENABLE(mslu, [ --enable-mslu use MS Layer for Unicode on Windows 9x (win32 only)], wxUSE_UNICODE_MSLU) WX_ARG_ENABLE(wxprintfv, [ --enable-wxprintfv use wxWindows implementation of vprintf()], wxUSE_EXPERIMENTAL_PRINTF) WX_ARG_ENABLE(std_iostreams, [ --enable-std_iostreams use standard C++ stream classes], wxUSE_STD_IOSTREAM) WX_ARG_ENABLE(filesystem, [ --enable-filesystem use virtual file systems classes], wxUSE_FILESYSTEM) @@ -1107,6 +792,13 @@ WX_ARG_ENABLE(snglinst, [ --enable-snglinst use wxSingleInstanceChec WX_ARG_ENABLE(mimetype, [ --enable-mimetype use wxMimeTypesManager], wxUSE_MIMETYPE) WX_ARG_ENABLE(system_options,[ --enable-sysoptions use wxSystemOptions], wxUSE_SYSTEM_OPTIONS) +WX_ARG_ENABLE(url, [ --enable-url use wxURL class], wxUSE_URL) +WX_ARG_ENABLE(protocol, [ --enable-protocol use wxProtocol class], wxUSE_PROTOCOL) +WX_ARG_ENABLE(protocol_http, [ --enable-protocol-http HTTP support in wxProtocol], wxUSE_PROTOCOL_HTTP) +WX_ARG_ENABLE(protocol_ftp, [ --enable-protocol-ftp FTP support in wxProtocol], wxUSE_PROTOCOL_FTP) +WX_ARG_ENABLE(protocol_file, [ --enable-protocol-file FILE support in wxProtocol], wxUSE_PROTOCOL_FILE) + + dnl --------------------------------------------------------------------------- dnl "big" options (i.e. those which change a lot of things throughout the library) dnl --------------------------------------------------------------------------- @@ -1329,10 +1021,27 @@ WX_ARG_ENABLE(palette, [ --enable-palette use wxPalette class], wxUS 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(iff, [ --enable-iff use iff images (IFF file format)], wxUSE_IFF) WX_ARG_ENABLE(pnm, [ --enable-pnm use pnm images (PNM file format)], wxUSE_PNM) WX_ARG_ENABLE(xpm, [ --enable-xpm use xpm images (XPM file format)], wxUSE_XPM) +WX_ARG_ENABLE(ico_cur, [ --enable-icocur use Windows ICO and CUR formats], wxUSE_ICO_CUR) fi + +dnl General settings (needed for GUI and non-GUI compilations alike). +dnl Path separator; ':' for unix, ';' for OS/2 +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 ';') + LEX_STEM="lexyy" + ;; + *) + PATH_IFS=':' + LEX_STEM="lex.yy" + ;; +esac + dnl for GUI only dnl cache the options values before (may be) aborting below @@ -1371,21 +1080,12 @@ if test "$wxUSE_GUI" = "yes"; 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_WINE:-0} + ${wxUSE_MSW:-0} + ${wxUSE_MGL:-0} + ${wxUSE_MICROWIN:-0} + ${wxUSE_X11:-0}` dnl Allow wxUSE_PM only for OS/2 with EMX. - dnl Path separator; ':' for unix. - dnl Stem for flex output; lexyy for OS/2, lex.yy otherwise case "${host}" in *-pc-os2_emx | *-pc-os2-emx ) - # PATH_IFS is autodetected by OS/2's configure (usually ';') NUM_TOOLKITS=`expr ${NUM_TOOLKITS} + ${wxUSE_PM:-0}` - LEX_STEM="lexyy" - ;; - *) - PATH_IFS=':' - LEX_STEM="lex.yy" - ;; esac case "$NUM_TOOLKITS" in @@ -1415,7 +1115,6 @@ if test "$wxUSE_GUI" = "yes"; then fi done else - PATH_IFS=':' AC_MSG_RESULT(base ($host_alias hosted) only) fi @@ -1429,7 +1128,7 @@ AC_CACHE_SAVE dnl cross-compiling support: we're cross compiling if the build system is dnl different from the target one (assume host and target be always the same) if test "$build" != "$host" ; then - if test "$USE_WIN32" = 1 -o "$USE_DOS" = 1 ; then + if test "$USE_WIN32" = 1 -o "$USE_DOS" = 1 -o "$USE_UNIX"; then CC=$host_alias-gcc CXX=$host_alias-c++ AR=$host_alias-ar @@ -1449,10 +1148,13 @@ dnl defines CC with the compiler to use dnl defines GCC with yes if using gcc dnl defines GCC empty if not using gcc 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 -g and -O flags ourselves below +CFLAGS=${CFLAGS:=} AC_PROG_CC -CFLAGS=`echo "$CFLAGS" | sed 's/-g//g'` - dnl is -traditional needed for correct compilations dnl adds -traditional for gcc if needed AC_PROG_GCC_TRADITIONAL @@ -1465,10 +1167,11 @@ dnl defines CXX with the compiler to use dnl defines GXX with yes if using gxx dnl defines GXX empty if not using gxx dnl defines CXXFLAGS +dnl +dnl see CFLAGS line above +CXXFLAGS=${CXXFLAGS:=} AC_PROG_CXX -CXXFLAGS=`echo "$CXXFLAGS" | sed 's/-g//g'` - AC_LANG_RESTORE dnl ranlib command @@ -1499,8 +1202,29 @@ dnl strip command dnl defines STRIP as strip or nothing if not found AC_CHECK_PROG(STRIP, strip, strip, true) +dnl does make support "-include" (only GNU make does AFAIK)? +AC_CACHE_CHECK([if make is GNU make], wx_cv_prog_makeisgnu, +[ + if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null | + egrep -s GNU > /dev/null); then + wx_cv_prog_makeisgnu="yes" + else + wx_cv_prog_makeisgnu="no" + fi +]) + +if test "x$wx_cv_prog_makeisgnu" = "xyes"; then + IF_GNU_MAKE="" +else + IF_GNU_MAKE="#" +fi + +AC_SUBST(IF_GNU_MAKE) + +dnl we don't need to check for VPATH support in GNU make - it does have it +if test "x$wx_cv_prog_makeisgnu" != "xyes"; then dnl check if VPATH works -AC_MSG_CHECKING(make for VPATH support) +AC_CACHE_CHECK([if make supports VPATH], wx_cv_prog_makevpath, [ dnl create Makefile cat - << EOF > confMake check : file @@ -1517,10 +1241,14 @@ RESULT=$? rm -f sub/file check final_file confMake rmdir sub if test "$RESULT" = 0; then - AC_MSG_RESULT(yes) + wx_cv_prog_makevpath="yes" else - AC_MSG_RESULT(no) - AC_MSG_ERROR([ + wx_cv_prog_makevpath="no" +fi +]) + +if test "x$wx_cv_prog_makevpath" != "xyes"; then +AC_MSG_ERROR([ You need a make-utility that is able to use the variable VPATH correctly. If your version of make does not support VPATH correctly, @@ -1531,7 +1259,8 @@ setenv MAKE gmake; ./configure for csh-type shells Also please do remember to use gmake in this case every time you are trying to compile. ]) -fi +fi dnl make without VPATH +fi dnl not GNU make dnl YACC checks dnl defines YACC with the appropriate command @@ -1633,6 +1362,28 @@ dnl ------------------------------------------------------------------------ dnl flush the cache because checking for libraries below might abort AC_CACHE_SAVE +dnl check for glibc version +if test "$USE_LINUX" = 1; then + AC_CACHE_CHECK([for glibc 2.1 or later], wx_cv_lib_glibc21,[ + AC_TRY_COMPILE([#include ], + [ + #if !__GLIBC_PREREQ(2, 1) + #error not glibc2.1 + #endif + ], + [ + wx_cv_lib_glibc21=yes + ], + [ + wx_cv_lib_glibc21=no + ] + ) + ]) + if test "$wx_cv_lib_glibc21" = "yes"; then + AC_DEFINE(wxHAVE_GLIBC2) + fi +fi + dnl --------------------------------------------------------------------------- dnl Optional libraries dnl @@ -1722,32 +1473,41 @@ PNG_INCLUDE= PNG_LINK= if test "$wxUSE_LIBPNG" != "no" ; then AC_DEFINE(wxUSE_LIBPNG) + + if test "$wxUSE_MGL" = 1 -a "$wxUSE_LIBPNG" = "builtin" ; then + AC_MSG_WARN([wxMGL doesn't work with builtin png library, will use MGL one instead]) + wxUSE_LIBPNG=sys + fi dnl for the check below to have a chance to succeed, we must already have - dnl libz somewhere - if test "$wxUSE_LIBPNG" = "sys" -a "$wxUSE_ZLIB" != "sys" ; then + dnl libz somewhere (don't do this when bulding wxMGL since its libpng + dnl doesn't depend on zlib) + if test "$wxUSE_MGL" != 1 -a "$wxUSE_LIBPNG" = "sys" -a "$wxUSE_ZLIB" != "sys" ; then AC_MSG_WARN([system png library doesn't work without system zlib, will use built-in instead]) wxUSE_LIBPNG=builtin fi - 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]) - ) + 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]) + ) - 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]) + 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]) + else + AC_MSG_WARN([system png library not found, will use built-in instead]) + wxUSE_LIBPNG=builtin + fi else - AC_MSG_WARN([system png library not found, will use built-in instead]) - wxUSE_LIBPNG=builtin + dnl we are using the system library + wxUSE_LIBPNG=yes fi - else - dnl we are using the system library - wxUSE_LIBPNG=yes fi fi @@ -1767,40 +1527,48 @@ JPEG_LINK= if test "$wxUSE_LIBJPEG" != "no" ; then AC_DEFINE(wxUSE_LIBJPEG) - if test "$wxUSE_LIBJPEG" = "sys" -o "$wxUSE_LIBJPEG" = "yes" ; then - dnl can't use AC_CHECK_HEADER as jconfig.h defines things like - dnl HAVE_STDLIB_H which are already defined and this provokes - dnl a compiler warning which configure considers as an error... - AC_MSG_CHECKING(for jpeglib.h) - AC_CACHE_VAL(ac_cv_header_jpeglib_h, - AC_TRY_COMPILE( - [ - #undef HAVE_STDLIB_H - #include - #include - ], - [ - ], - ac_cv_header_jpeglib_h=yes, - ac_cv_header_jpeglib_h=no + if test "$wxUSE_MGL" = 1 -a "$wxUSE_LIBJPEG" = "builtin" ; then + AC_MSG_WARN([wxMGL doesn't work with builtin jpeg library, will use MGL one instead]) + wxUSE_LIBJPEG=sys + fi + + if test "$wxUSE_MGL" != 1 ; then + dnl Don't check for libjpeg when building wxMGL, libmgl contains it + if test "$wxUSE_LIBJPEG" = "sys" -o "$wxUSE_LIBJPEG" = "yes" ; then + dnl can't use AC_CHECK_HEADER as jconfig.h defines things like + dnl HAVE_STDLIB_H which are already defined and this provokes + dnl a compiler warning which configure considers as an error... + AC_MSG_CHECKING(for jpeglib.h) + AC_CACHE_VAL(ac_cv_header_jpeglib_h, + AC_TRY_COMPILE( + [ + #undef HAVE_STDLIB_H + #include + #include + ], + [ + ], + ac_cv_header_jpeglib_h=yes, + ac_cv_header_jpeglib_h=no + ) ) - ) - AC_MSG_RESULT($ac_cv_header_jpeglib_h) + AC_MSG_RESULT($ac_cv_header_jpeglib_h) - if test "$ac_cv_header_jpeglib_h" = "yes"; then - AC_CHECK_LIB(jpeg, jpeg_read_header, JPEG_LINK=" -ljpeg") - fi + if test "$ac_cv_header_jpeglib_h" = "yes"; then + AC_CHECK_LIB(jpeg, jpeg_read_header, JPEG_LINK=" -ljpeg") + fi - if test "x$JPEG_LINK" = "x" ; then - if test "$wxUSE_LIBJPEG" = "sys" ; then - AC_MSG_ERROR([system jpeg library not found! Use --with-libjpeg=builtin to use built-in version]) + if test "x$JPEG_LINK" = "x" ; then + if test "$wxUSE_LIBJPEG" = "sys" ; then + AC_MSG_ERROR([system jpeg library not found! Use --with-libjpeg=builtin to use built-in version]) + else + AC_MSG_WARN([system jpeg library not found, will use built-in instead]) + wxUSE_LIBJPEG=builtin + fi else - AC_MSG_WARN([system jpeg library not found, will use built-in instead]) - wxUSE_LIBJPEG=builtin + dnl we are using the system library + wxUSE_LIBJPEG=sys fi - else - dnl we are using the system library - wxUSE_LIBJPEG=sys fi fi @@ -1844,41 +1612,6 @@ if test "$wxUSE_LIBTIFF" != "no" ; then fi fi -dnl ------------------------------------------------------------------------ -dnl Check for freetype library -dnl ------------------------------------------------------------------------ - -FREETYPE_INCLUDE= -FREETYPE_LINK= -if test "$wxUSE_FREETYPE" != "no" ; then - AC_DEFINE(wxUSE_FREETYPE) - - if test "$wxUSE_FREETYPE" = "sys" -o "$wxUSE_FREETYPE" = "yes" ; then - AC_CHECK_HEADER(freetype.h, - AC_CHECK_LIB(freetype, FT_Render_Glyph, - FREETYPE_LINK=" -lfreetype", - , - [-lm]) - ) - - if test "x$FREETYPE_LINK" = "x" ; then - if test "$wxUSE_FREETYPE" = "sys" ; then - AC_MSG_ERROR([system freetype library not found! Use --with-freetype=builtin to use built-in version]) - else - AC_MSG_WARN([system freetype library not found, will use built-in instead]) - wxUSE_FREETYPE=builtin - fi - else - dnl we are using the system library - wxUSE_FREETYPE=sys - fi - fi - - if test "$wxUSE_FREETYPE" = "builtin" ; then - FREETYPE_INCLUDE="-I\${top_srcdir}/src/freetype" - fi -fi - dnl ---------------------------------------------------------------- dnl search for toolkit (widget sets) dnl ---------------------------------------------------------------- @@ -1934,7 +1667,7 @@ if test "$USE_WIN32" = 1 ; then dnl add extra odbc libs if we have compiled in odbc if test "$wxUSE_ODBC" = "yes" ; then - LIBS=" -lodbc32 -lole32 -loleaut32$LIBS" + LIBS=" -lodbc32 -lole32 -loleaut32 $LIBS" fi RESFLAGS="--include-dir \$(top_srcdir)/include --include-dir \$(top_srcdir)/\$(program_dir) --define __WIN32__ --define __WIN95__ --define __GNUWIN32__" @@ -1983,7 +1716,7 @@ if test "$wxUSE_GUI" = "yes"; then wx_cv_lib_gtk= if test "x$wxUSE_GTK2" = "xyes"; then - AM_PATH_GTK_2_0(1.3.1, wx_cv_lib_gtk=2.0, , $GTK_MODULES) + 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 @@ -2087,6 +1820,100 @@ equivalent variable and GTK+ is version 1.2.3 or above. GUIDIST=MGL_DIST fi + if test "$wxUSE_MICROWIN" = 1; then + AC_MSG_CHECKING(for MicroWindows) + if test "x$MICROWINDOWS" = x ; then + AC_MSG_RESULT(not found) + AC_MSG_ERROR([Cannot find MicroWindows library. Make sure MICROWINDOWS is set.]) + else + AC_MSG_RESULT($MICROWINDOWS) + fi + + if test -f $MICROWINDOWS/lib/libmwin.a; then + AC_MSG_RESULT(MicroWindows' libraries found.) + else + AC_MSG_ERROR([Cannot find MicroWindows libraries, make sure they are compiled.]) + fi + + TOOLKIT_INCLUDE="-I$MICROWINDOWS/include" + GUI_TK_LIBRARY="-L$MICROWINDOWS/lib -lmwin -lmwengine -mwfonts -mwdrivers -mwinlib" + + AFMINSTALL=afminstall + TOOLKIT=MICROWIN + GUIDIST=MICROWIN_DIST + + TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXUNIVERSAL__ -D__WXMSW__ -D__WIN95__ -D__WIN32__ -DMWIN -DMICROWIN_NOCONTROLS -DMICROWIN_TODO=1" + fi + + if test "$wxUSE_X11" = 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_PATH_XTRA + + if test "$no_x" = "yes"; then + 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" + AFMINSTALL=afminstall + COMPILED_X_PROGRAM=0 + + if test "$wxUSE_NANOX" = "yes"; then + AC_MSG_CHECKING(for MicroWindows/NanoX distribution) + if test "x$MICROWIN" = x ; then + AC_MSG_RESULT(not found) + AC_MSG_ERROR([Cannot find MicroWindows library. Make sure MICROWIN is set.]) + else + AC_MSG_RESULT($MICROWIN) + AC_DEFINE(wxUSE_NANOX) + fi + fi + + xpm_link= + AC_MSG_CHECKING(for Xpm library) + WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm) + if test "$ac_find_libraries" != "" ; then + WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY) + GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link" + xpm_link=" -lXpm" + AC_DEFINE(wxHAVE_LIB_XPM) + AC_MSG_RESULT(found at $ac_find_libraries) + else + AC_TRY_COMPILE( + [ + #include + ], + [ + int version; + version = XpmLibraryVersion(); + ], + [ + xpm_link=" -lXpm" + AC_DEFINE(wxHAVE_LIB_XPM) + AC_MSG_RESULT(found in default search path) + COMPILED_X_PROGRAM=0 + ], + [ + AC_MSG_RESULT(no) + AC_MSG_WARN(library will be compiled without support for images in XPM format) + ] + ) + fi + + if test "$wxUSE_NANOX" = "yes"; then + TOOLKIT_INCLUDE="-I\$(top_srcdir)/include/wx/x11/nanox -I\$(MICROWIN)/src/include $TOOLKIT_INCLUDE" + TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__NANOX__ -DMWPIXEL_FORMAT=MWPF_TRUECOLOR0888 -DHAVE_FILEIO -DHAVE_BMP_SUPPORT=1 -DHAVE_GIF_SUPPORT=1 -DHAVE_PNM_SUPPORT=1 -DHAVE_XPM_SUPPORT=1 -DLINUX=1 -DUNIX=1 -DUSE_EXPOSURE -DSCREEN_HEIGHT=480 -DSCREEN_WIDTH=640 -DSCREEN_DEPTH=4 -DX11=1" + GUI_TK_LIBRARY="$GUI_TK_LIBRARY \$(MICROWIN)/src/lib/libnano-X.a" + else + GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lX11$xpm_link" + fi + + TOOLKIT_VPATH="\${top_srcdir}/src/x11" + TOOLKIT=X11 + GUIDIST=X11_DIST + fi + if test "$wxUSE_WINE" = 1; then AC_CHECK_HEADER(windows.h, [], [ @@ -2239,7 +2066,6 @@ equivalent variable and GTK+ is version 1.2.3 or above. CPPFLAGS="$CPPFLAGS -I/Developer/Headers/FlatCarbon -I\${top_srcdir}/src/mac/morefile" CFLAGS="$CFLAGS -fpascal-strings" CXXFLAGS="$CXXFLAGS -fpascal-strings" - TOOLCHAIN_DEFS="$TOOLCHAIN_DEFS -DTARGET_CARBON" TOOLKIT_VPATH="\${top_srcdir}/src/mac${PATH_IFS}\${top_srcdir}/src/mac/morefile" TOOLKIT=MAC @@ -2264,12 +2090,25 @@ equivalent variable and GTK+ is version 1.2.3 or above. if test "$wxUSE_UNIVERSAL" = "yes"; then ALL_OBJECTS="\$(GUI_LOWLEVEL_OBJS) \${UNIVOBJS}" + + dnl ALL_SOURCES and ALL_HEADERS shouldn't include really all sources + dnl and headers as some/most are not needed for wxUniv but I don't + dnl have time to add GUI_LOWLEVEL_SOURCES/HEADERS stuff now (TODO!) + ALL_SOURCES="\$(ALL_SOURCES) \${UNIV_SOURCES}" + ALL_HEADERS="\$(ALL_HEADERS) \${UNIV_HEADERS}" + PORT_FILES="${PORT_FILES} \${top_srcdir}/src/univ/files.lst" - TOOLKIT_VPATH="\${top_srcdir}/src/univ${PATH_IFS}\${top_srcdir}/src/univ/themes${PATH_IFS}\${top_srcdir}/src/${TOOLKIT_DIR}" + if test "$wxUSE_X11" = 1; then + TOOLKIT_VPATH="\${top_srcdir}/src/${TOOLKIT_DIR}${PATH_IFS}\${top_srcdir}/src/univ${PATH_IFS}\${top_srcdir}/src/univ/themes" + else + TOOLKIT_VPATH="\${top_srcdir}/src/univ${PATH_IFS}\${top_srcdir}/src/univ/themes${PATH_IFS}\${top_srcdir}/src/${TOOLKIT_DIR}" + fi TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXUNIVERSAL__" WIDGET_SET=univ else ALL_OBJECTS="\$(GUIOBJS)" + ALL_SOURCES="\$(ALL_SOURCES)" + ALL_HEADERS="\$(ALL_HEADERS)" fi ALL_OBJECTS="${ALL_OBJECTS} \$(COMMONOBJS) \$(GENERICOBJS)" @@ -2282,10 +2121,6 @@ equivalent variable and GTK+ is version 1.2.3 or above. ALL_OBJECTS="${ALL_OBJECTS} \$(HTMLOBJS)" fi - dnl ODBC objects are Unix only - if test "$TOOLKIT" != "MSW" -a "$wxUSE_ODBC" = "yes" ; then - ALL_OBJECTS="${ALL_OBJECTS} \$(IODBCOBJS)" - fi if test "$wxUSE_LIBJPEG" = "builtin" ; then ALL_OBJECTS="${ALL_OBJECTS} \$(JPEGOBJS)" fi @@ -2295,9 +2130,6 @@ equivalent variable and GTK+ is version 1.2.3 or above. if test "$wxUSE_LIBPNG" = "builtin" ; then ALL_OBJECTS="${ALL_OBJECTS} \$(PNGOBJS)" fi - if test "$wxUSE_FREETYPE" = "builtin" ; then - ALL_OBJECTS="${ALL_OBJECTS} \$(FREETYPEOBJS)" - fi dnl distribute samples/demos/utils with GUI versions GUIDIST="${GUIDIST} SAMPLES_DIST DEMOS_DIST UTILS_DIST MISC_DIST" @@ -2322,6 +2154,9 @@ else TOOLKIT_VPATH="\${top_srcdir}/src/unix" fi + ALL_SOURCES="\$(ALL_SOURCES)" + ALL_HEADERS="\$(ALL_HEADERS)" + PORT_FILES="\${top_srcdir}/src/files.lst" dnl distribute only wxBase sources/headers @@ -2332,6 +2167,12 @@ fi dnl --------------------------------------------------------------------------- dnl Optional libraries included when system library is not used dnl --------------------------------------------------------------------------- + +dnl ODBC objects are Unix only +if test "$TOOLKIT" != "MSW" -a "$wxUSE_ODBC" = "yes" ; then + ALL_OBJECTS="${ALL_OBJECTS} \$(IODBCOBJS)" +fi + if test "$wxUSE_REGEX" = "builtin" ; then ALL_OBJECTS="${ALL_OBJECTS} \$(REGEXOBJS)" fi @@ -2342,18 +2183,24 @@ fi dnl --------------------------------------------------------------------------- dnl OpenGL libraries dnl --------------------------------------------------------------------------- + if test "$wxUSE_OPENGL" = "yes"; then if test "$wxUSE_MAC" = 1; then OPENGL_LIBS="-framework OpenGL -framework AGL" + elif test "$wxUSE_MSW" = 1; then + OPENGL_LIBS="-lopengl32 -lglu32" else - AC_CHECK_HEADER(GL/gl.h, [ AC_MSG_CHECKING([for -lGL]) WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],[GL]) if test "$ac_find_libraries" != "" ; then WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS]) - LDFLAGS_GL="$LDFLAGS$ac_path_to_link" + if test "$ac_path_to_link" = " -L/usr/lib" ; then + LDFLAGS_GL="$LDFLAGS" + else + LDFLAGS_GL="$LDFLAGS$ac_path_to_link" + fi OPENGL_LIBS="-lGL -lGLU" AC_MSG_RESULT([yes]) else @@ -2371,26 +2218,6 @@ if test "$wxUSE_OPENGL" = "yes"; then fi ]) - dnl check for OpenGL libs availability first - dnl -lGL requires -lm with soem OpenGL versions - -# AC_CHECK_HEADER(GL/gl.h, -# [ -# AC_CHECK_LIB(GL, glFlush, -# [ -# OPENGL_LIBS="-lGL -lGLU" -# ], -# [ -# AC_CHECK_LIB(MesaGL, glFlush, -# [ -# OPENGL_LIBS="-lMesaGL -lMesaGLU" -# ], -# [], -# [-lm]) -# ], -# [-lm]) -# ]) - if test "x$OPENGL_LIBS" = "x"; then dnl it should be an error and not a warning because OpenGL is not on dnl by default and so if it had been explicitely requested, we @@ -2447,10 +2274,6 @@ WX_LIBRARY_LINK2="lib${WX_LIBRARY}.${SO_SUFFIX}" WX_LIBRARY_LINK1_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}.${WX_CURRENT}" WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}" -dnl the name of the resources file for wxMac -WX_RESOURCES_MACOSX="lib${WX_LIBRARY}.rsrc" -WX_RESOURCES_MACOSX_COMPILED="lib${WX_LIBRARY}.r" - case "${host}" in *-*-cygwin* | *-*-mingw32* ) @@ -2469,7 +2292,17 @@ case "${host}" in WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${SO_SUFFIX}" WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}" fi + ;; + *-*-darwin* ) + 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" + fi + ;; esac dnl the name of the static library @@ -2488,6 +2321,17 @@ fi dnl --- the marker for quick search, leave it here: SHARED_LIB_SETUP --- +if test "$wxUSE_SHARED" = "yes"; then + case "${host}" in + *-pc-os2_emx | *-pc-os2-emx | \ + *-pc-msdosdjgpp ) + dnl only static for now + wxUSE_SHARED=no + AC_MSG_WARN([Host system doesn't support shared libraries, disabling]) + ;; + esac +fi + if test "$wxUSE_SHARED" = "yes"; then dnl install targets @@ -2511,7 +2355,9 @@ if test "$wxUSE_SHARED" = "yes"; then case "${host}" in *-hp-hpux* ) dnl default settings are good for gcc but not for the native HP-UX - if test "$GCC" != "yes"; then + if test "$GCC" == "yes"; then + SHARED_LD="${SHARED_LD} ${PIC_FLAG}" + else dnl no idea why it wants it, but it does LDFLAGS="$LDFLAGS -L/usr/lib" @@ -2564,15 +2410,23 @@ if test "$wxUSE_SHARED" = "yes"; then SHARED_LD="${CXX} -G -o" PIC_FLAG="-KPIC" SONAME_FLAGS="-h ${WX_LIBRARY_NAME_SHARED}" - SONAME_FLAGS_GL="-h ${WX_LIBRARY_NAME_SHARED}" + SONAME_FLAGS_GL="-h ${WX_LIBRARY_NAME_SHARED_GL}" fi ;; *-*-darwin* ) - CFLAGS="$CFLAGS -fno-common -DDYLIB_INIT" - CXXFLAGS="$CXXFLAGS -fno-common -DDYLIB_INIT" - SHARED_LD="$CXX -dynamiclib -init _wxWindowsDylibInit -o" + 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" + 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} ;; *-*-aix* ) @@ -2597,11 +2451,6 @@ if test "$wxUSE_SHARED" = "yes"; then fi ;; - *-pc-os2_emx | *-pc-os2-emx ) - dnl only static for now - wxUSE_SHARED=no - ;; - *-*-beos* ) dnl can't use gcc under BeOS for shared library creation because it dnl complains about missing 'main' @@ -2661,24 +2510,36 @@ fi if test "$wxUSE_MAC" = 1; then dnl add the resources target for wxMac - WX_ALL="${WX_ALL} \$(build_libdir)/lib${WX_LIBRARY}.r" + LIBWXMACRES="\$(top_builddir)/lib/${WX_RESOURCES_MACOSX_ASCII}" + WX_ALL="${WX_ALL} ${LIBWXMACRES}" 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) - LIBWXMACRES="\$(top_builddir)/lib/lib${WX_LIBRARY}.r" - LIBWXMACRESCOMP="\$(RESCOMP) Carbon.r -t APPL ${LIBWXMACRES} -o \$(BIN_PROGRAM)" - LIBWXMACRESWXCONFIG="${RESCOMP} Carbon.r -t APPL \${prefix}/lib/${WX_RESOURCES_MACOSX_COMPILED} -o" + 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 +else + if test "$wxUSE_PM" = 1; then + LIBWXMACRESCOMP="emxbind -ep \$(BIN_PROGRAM)" + fi fi dnl ------------------------------------------------------------------------ dnl Check for headers dnl ------------------------------------------------------------------------ -dnl do not check for strings.h for wxMac -dnl it exists but is only a simple redirection to string.h -dnl it is in conflict with Strings.h in FlatCarbon headers +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 - dnl defines HAVE_STRINGS_H (where some string functions live on AIX for example) + dnl defines HAVE_STRINGS_H AC_CHECK_HEADERS(strings.h) fi @@ -2690,14 +2551,24 @@ dnl defines HAVE_UNISTD_H AC_CHECK_HEADERS(unistd.h) dnl defines HAVE_WCHAR_H AC_CHECK_HEADERS(wchar.h) -dnl defines HAVE_WCSTR_H -AC_CHECK_HEADERS(wcstr.h) -dnl defined HAVE_WCTYPE_H -AC_CHECK_HEADERS(wctype.h) + +dnl maybe wchar_t is in wcstr.h if we don't have wchar.h? +if test "$ac_cv_header_wchar_h" != "yes"; then + dnl defines HAVE_WCSTR_H + AC_CHECK_HEADERS(wcstr.h) +fi + +dnl checking for wctype.h is useless as we need wcslen(), not just wchar_t and +dnl this function is never provided by it +dnl AC_CHECK_HEADERS(wctype.h) + dnl defines HAVE_FNMATCH_H AC_CHECK_HEADERS(fnmatch.h) -dnl defines HAVE_ICONV_H (Unix98 encoding conversion routines) -AC_CHECK_HEADERS(iconv.h) + +if test "x$ac_cv_header_fnmatch_h" = "xyes"; then + AC_CHECK_FUNCS(fnmatch) +fi + dnl defines HAVE_LANGINFO_H (GNU libc locale parameters) AC_CHECK_HEADERS(langinfo.h) @@ -2723,37 +2594,6 @@ AC_TYPE_SIZE_T dnl defines uid_t and gid_t if not already defined AC_TYPE_UID_T -dnl check for wchar_t -dnl Mac OS X does not provide wchar.h and wchar_t is defined by stdlib.h (GD) -dnl on Cygwin wchar.h needs stddef.h to be #included by hand -AC_CACHE_CHECK([for wchar_t], wx_cv_type_wchar_t, -[ - AC_TRY_COMPILE( - [ - #ifdef HAVE_WCHAR_H - # ifdef __CYGWIN__ - # include - # endif - # include - #endif - #ifdef HAVE_STDLIB_H - # include - #endif - ], - [ - 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 check what exactly size_t is on this machine - this is necessary to avoid dnl ambiguos overloads in several places, notably wx/string.h and wx/array.h AC_LANG_SAVE @@ -2845,10 +2685,18 @@ dnl cross-compiling) dnl defines the size of certain types of variables in SIZEOF_ AC_CHECK_SIZEOF(char, 1) AC_CHECK_SIZEOF(short, 2) -AC_CHECK_SIZEOF(int *, 4) +AC_CHECK_SIZEOF(void *, 4) AC_CHECK_SIZEOF(int, 4) AC_CHECK_SIZEOF(long, 4) -AC_CHECK_SIZEOF(long long, 0) + +case "${host}" in + arm-*-linux* ) + AC_CHECK_SIZEOF(long long, 8) + ;; + * ) + AC_CHECK_SIZEOF(long long, 0) +esac + dnl we have to do it ourselves because SGI/Irix's stdio.h does not include dnl wchar_t and AC_CHECK_SIZEOF only includes stdio.h @@ -2896,25 +2744,41 @@ dnl --------------------------------------------------------------------------- dnl Check for functions dnl --------------------------------------------------------------------------- -dnl check for wcslen -AC_CHECK_LIB(c, wcslen, [ - AC_DEFINE(HAVE_WCSLEN) - WCHAR_LINK= - ], [ - AC_CHECK_LIB(w, wcslen, [ +dnl don't check for wchar_t functions if we haven't got wchar_t itself +WCHAR_OK=0 +if test "$wx_cv_sizeof_wchar_t" != "0"; then + dnl check for wcslen + WCHAR_LINK= + AC_CHECK_LIB(c, wcslen, [ AC_DEFINE(HAVE_WCSLEN) - WCHAR_LINK=" -lw" + WCHAR_OK=1 ], [ - AC_CHECK_LIB(msvcrt, wcslen, [ + AC_CHECK_LIB(w, wcslen, [ AC_DEFINE(HAVE_WCSLEN) - WCHAR_LINK= + WCHAR_LINK=" -lw" + WCHAR_OK=1 ]) ]) + + if test "$TOOLKIT" = "MSW" -a "$WCHAR_OK" = 0; then + AC_CHECK_LIB(msvcrt, wcslen, [ + AC_DEFINE(HAVE_WCSLEN) + WCHAR_OK=1 ]) + fi +fi + +dnl we need at least the definition of wchar_t itself and wcslen() to compile +dnl with wchar_t support -- turn it off if we don't have this +if test "$WCHAR_OK" = 1; then + AC_DEFINE(wxUSE_WCHAR_T) -dnl use wcsrtombs instead of wcstombs which is buggy in old GNU libc versions -dnl if possible -AC_CHECK_FUNCS(wcsrtombs) + dnl also try to use wcsrtombs instead of wcstombs which is buggy in old GNU + dnl libc versions if possible + AC_CHECK_FUNCS(wcsrtombs) +else + AC_MSG_WARN([Wide character support is unavailable]) +fi dnl check for vprintf/vsprintf() which are GNU extensions AC_FUNC_VPRINTF @@ -3033,23 +2897,9 @@ 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) -]) +AM_ICONV +LIBS="$LIBICONV $LIBS" 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 @@ -3219,7 +3069,7 @@ AC_CHECK_FUNCS(strtok_r) AC_LANG_RESTORE dnl check for inet_addr and inet_aton (these may live either in libc, or in -dnl libnsl or libresolv) +dnl libnsl or libresolv or libsocket) INET_LINK= AC_CHECK_FUNCS(inet_addr, AC_DEFINE(HAVE_INET_ADDR), @@ -3227,7 +3077,10 @@ AC_CHECK_FUNCS(inet_addr, AC_CHECK_LIB(nsl, inet_addr, INET_LINK="nsl", AC_CHECK_LIB(resolv, inet_addr, - INET_LINK="resolv" + INET_LINK="resolv", + AC_CHECK_LIB(socket, inet_addr, + INET_LINK="socket" + ) ) ) ] @@ -3260,17 +3113,19 @@ dnl thread support for Unix (always available under Win32) dnl --------------------------------------------------------------------------- dnl under MSW we always have thread support +CPP_MT_FLAG= if test "$TOOLKIT" != "MSW"; then dnl the code below: - dnl defines THREADS_OBJ which contains the object files to build - dnl defines THREADS_LINK which contains the thread library to link with - dnl defines wxUSE_THREADS=1 if thread support is activated + dnl + dnl defines THREADS_LINK and THREADS_CFLAGS which are the options + dnl necessary to build the MT programs for the linker and compiler + dnl respectively + dnl + dnl sets wxUSE_THREADS=1 if thread support is activated THREADS_LINK= - THREADS_OBJ= - CODE_GEN_FLAGS= - CODE_GEN_FLAGS_CXX= + THREADS_CFLAGS= if test "$wxUSE_THREADS" = "yes" ; then if test "$wxUSE_WINE" = 1 ; then @@ -3284,67 +3139,136 @@ if test "$TOOLKIT" != "MSW"; then if test "$wxUSE_THREADS" = "yes" ; then dnl find if POSIX threads are available + dnl + dnl the tests here are based on ACX_PTHREAD macro from autoconf macro + dnl archive from http://ac-archive.sourceforge.net/ + dnl + dnl thanks to Steven G. Johnson and Alejandro + dnl Forero Cuervo for the original code + + dnl TODO: cache the result + + dnl define the list of the thread options to try in the loop below + dnl with the convention that anything starting with '-' is a cpp flag + dnl while anything else is a library (i.e. there is an implicit "-l") + THREAD_OPTS="-pthread" + case "${host}" in + *-*-solaris2* | *-*-sunos4* ) + if test "x$GCC" = "xyes"; then + dnl Solaris/gcc combination use this one for some reason + THREAD_OPTS="-pthreads $THREAD_OPTS" + else + THREAD_OPTS="-mt $THREAD_OPTS" + fi + ;; + *-*-freebsd*) + dnl look, in order, for the kernel threads, then Linux threads + dnl and finally the userland threads + THREAD_OPTS="-kthread lthread $THREAD_OPTS c_r" + ;; + *-*-darwin*) + dnl Darwin / Mac OS X just uses -lpthread tested below + THREAD_OPTS="" + ;; + *-*-aix*) + dnl AIX calls the library libpthreads - thanks IBM! + THREAD_OPTS="pthreads" + ;; + esac - dnl AIX calls the library libpthreads - thanks IBM! - if test "$USE_AIX" = 1; then - THREADS_LIB=pthreads - else - THREADS_LIB=pthread - fi + dnl simply linking with libpthread should make the test below work but + dnl it's far from certain that the threaded programs compiled without + dnl any special switches actually work, so try it after all the others + THREAD_OPTS="$THREAD_OPTS pthread none" + + dnl now test for all possibilities + THREADS_OK=no + for flag in $THREAD_OPTS; do + case $flag in + none) + AC_MSG_CHECKING([whether pthreads work without any flags]) + ;; - dnl standard lib name is pthread - dnl We no longer test for pthread-0.7 as it breaks compilation on some - dnl glibc2 systems, especially for static linkage. - AC_CHECK_LIB($THREADS_LIB, pthread_create, [ - THREADS_OBJ="threadpsx.lo" - THREADS_LINK=$THREADS_LIB - ], [ - dnl thread functions are in libc_r under FreeBSD - AC_CHECK_LIB(c_r, pthread_create, [ - 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" - ]) - ]) - ]) + -*) + AC_MSG_CHECKING([whether pthreads work with $flag]) + THREADS_CFLAGS="$flag" + ;; - if test -z "$THREADS_OBJ" ; then - wxUSE_THREADS=no - AC_MSG_WARN([No thread support on this system... disabled]) - fi + *) + AC_MSG_CHECKING([for the pthreads library -l$flag]) + THREADS_LINK="-l$flag" + ;; + esac + + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$THREADS_LINK $LIBS" + CFLAGS="$THREADS_CFLAGS $CFLAGS" + + AC_TRY_LINK([#include ], + [pthread_create(0,0,0,0);], + THREADS_OK=yes) + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + AC_MSG_RESULT($THREADS_OK) + if test "x$THREADS_OK" = "xyes"; then + break; + fi + + THREADS_LINK="" + THREADS_CFLAGS="" + done + + if test "x$THREADS_OK" != "xyes"; then + wxUSE_THREADS=no + AC_MSG_WARN([No thread support on this system... disabled]) + else + dnl yes, these special compiler flags should be used with the + dnl linker as well + LIBS="$THREADS_LINK $THREADS_CFLAGS $LIBS" + + AC_MSG_CHECKING([if more special flags are required for pthreads]) + flag=no + case "${host}" in + *-aix* | *-freebsd*) + flag="-D_THREAD_SAFE" + ;; + *solaris* | alpha*-osf*) + flag="-D_REENTRANT" + ;; + esac + AC_MSG_RESULT(${flag}) + if test "x$flag" != xno; then + THREADS_CFLAGS="$THREADS_CFLAGS $flag" + fi + + if test "x$THREADS_CFLAGS" != "x"; then + dnl don't add these options to CPPFLAGS as cpp might not know them + CFLAGS="$CFLAGS $THREADS_CFLAGS" + CXXFLAGS="$CXXFLAGS $THREADS_CFLAGS" + fi + fi fi dnl do other tests only if we are using threads if test "$wxUSE_THREADS" = "yes" ; then AC_CHECK_FUNCS(thr_setconcurrency) - dnl define autoconf macro to check for given function in both pthread and - dnl posix4 libraries - dnl usage: AC_FUNC_THREAD(FUNCTION_NAME) - dnl VZ: TODO - dnl AC_DEFUN(AC_FUNC_THREAD, - dnl [ - dnl AC_CHECK_LIB($THREADS_LINK, $1, - dnl AC_DEFINE(HAVE_`'translit($1, `A-Z', 'a-z'), - dnl [AC_CHECK_LIB([posix4], $1, - dnl [AC_DEFINE(HAVE_`'translit($1, `A-Z', 'a-z')) - dnl POSIX4_LINK=" -lposix4" - dnl ]) - dnl ]) - dnl ]) - AC_CHECK_HEADERS(sched.h) - - AC_CHECK_LIB($THREADS_LINK, sched_yield, - AC_DEFINE(HAVE_SCHED_YIELD), - [AC_CHECK_LIB([posix4], sched_yield, - [AC_DEFINE(HAVE_SCHED_YIELD) POSIX4_LINK=" -lposix4"], - AC_MSG_WARN(wxThread::Yield will not work properly) - )] - ) + if test "$ac_cv_header_sched_h" = "yes"; then + AC_CHECK_FUNC(sched_yield, + AC_DEFINE(HAVE_SCHED_YIELD), + [ + AC_CHECK_LIB(posix4, + sched_yield, + [AC_DEFINE(HAVE_SCHED_YIELD) POSIX4_LINK=" -lposix4"], + AC_MSG_WARN(wxThread::Yield will not work properly) + ) + ] + ) + fi dnl to be able to set the thread priority, we need to have all of the dnl following functions: @@ -3353,9 +3277,9 @@ if test "$TOOLKIT" != "MSW"; then dnl (this one can be in either libpthread or libposix4 (under Solaris)) dnl 3. pthread_attr_getschedparam and pthread_attr_setschedparam HAVE_PRIOR_FUNCS=0 - AC_CHECK_LIB($THREADS_LINK, pthread_attr_getschedpolicy, - AC_CHECK_LIB($THREADS_LINK, pthread_attr_setschedparam, - AC_CHECK_LIB($THREADS_LINK, sched_get_priority_max, + AC_CHECK_FUNC(pthread_attr_getschedpolicy, + AC_CHECK_FUNC(pthread_attr_setschedparam, + AC_CHECK_FUNC(sched_get_priority_max, HAVE_PRIOR_FUNCS=1, AC_CHECK_LIB([posix4], sched_get_priority_max, [ @@ -3373,9 +3297,9 @@ if test "$TOOLKIT" != "MSW"; then AC_MSG_WARN(Setting thread priority will not work) fi - AC_CHECK_LIB($THREADS_LINK, pthread_cancel, - AC_DEFINE(HAVE_PTHREAD_CANCEL), - AC_MSG_WARN([wxThread::Kill() will not work properly])) + AC_CHECK_FUNC(pthread_cancel, + AC_DEFINE(HAVE_PTHREAD_CANCEL), + AC_MSG_WARN([wxThread::Kill() will not work properly])) AC_CACHE_CHECK([for pthread_cleanup_push/pop], wx_cv_func_pthread_cleanup_push, [ @@ -3407,7 +3331,7 @@ if test "$TOOLKIT" != "MSW"; then dnl (strictly speaking we only need _XOPEN_SOURCE=500 but just defining dnl this disables _BSD_SOURCE which breaks libtiff compilation, so it is dnl simpler to just define _GNU_SOURCE to get everything) - if test "x$wx_lib_glibc21" = "xyes"; then + if test "x$wx_cv_lib_glibc21" = "xyes"; then CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" fi @@ -3449,16 +3373,6 @@ if test "$TOOLKIT" != "MSW"; then 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 - CPPFLAGS="$CFLAGS -mt" - CXXFLAGS="$CXXFLAGS -mt" - LDFLAGS="$LDFLAGS -mt" - fi fi dnl from if !MSW @@ -3467,9 +3381,6 @@ fi if test "$wxUSE_THREADS" = "yes"; then AC_DEFINE(wxUSE_THREADS) - dnl we must define _REENTRANT or something along these lines for MT code - TOOLCHAIN_DEFS="$TOOLCHAIN_DEFS $CPP_MT_FLAG" - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS thread" else dnl on some systems, _REENTRANT should be defined if we want to use any _r() @@ -3535,6 +3446,8 @@ if test "$wxUSE_PROFILE" = "yes" ; then PROFILE=" -pg" fi +CODE_GEN_FLAGS= +CODE_GEN_FLAGS_CXX= if test "$GCC" = "yes" ; then if test "$wxUSE_NO_RTTI" = "yes" ; then CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fno-rtti" @@ -3553,9 +3466,6 @@ if test "$GCC" = "yes" ; then fi fi - -CXXFLAGS=`echo "${CXXFLAGS}" | sed "s/\-O.//g" ` -CFLAGS=`echo "${CFLAGS}" | sed "s/\-O.//g" ` if test "$wxUSE_OPTIMISE" = "no" ; then OPTIMISE= else @@ -3577,7 +3487,7 @@ if test "$WXWIN_COMPATIBILITY_2" = "yes"; then WXWIN_COMPATIBILITY_2_2="yes" fi -if test "$WXWIN_COMPATIBILITY_2_2" = "yes"; then +if test "x$WXWIN_COMPATIBILITY_2_2" != "xno"; then AC_DEFINE(WXWIN_COMPATIBILITY_2_2) fi @@ -3893,14 +3803,23 @@ dnl ------------------------------------------------------------------------ dnl wxSocket dnl ------------------------------------------------------------------------ -dnl under MSW we always have sockets -if test "$TOOLKIT" != "MSW"; then +dnl VZ: the GUI hooks wxSocket needs are not implemented yet in wxX11 +if test "$wxUSE_SOCKETS" = "yes"; then + if test "$TOOLKIT" = "X11"; then + AC_MSG_WARN([wxSocket not yet supported under X11... disabled]) + wxUSE_SOCKETS="no" + fi +fi - if test "$wxUSE_SOCKETS" = "yes"; then - dnl under Solaris, socket functions live in -lsocket +if test "$wxUSE_SOCKETS" = "yes"; then + dnl under MSW we always have sockets + if test "$TOOLKIT" != "MSW"; then + dnl under Solaris and OS/2, socket functions live in -lsocket AC_CHECK_FUNC(socket,, AC_CHECK_LIB(socket, socket, - INET_LINK="$INET_LINK -lsocket", + if test "$INET_LINK" != " -lsocket"; then + INET_LINK="$INET_LINK -lsocket" + fi, [ AC_MSG_WARN([socket library not found - sockets will be disabled]) wxUSE_SOCKETS=no @@ -3908,12 +3827,13 @@ if test "$TOOLKIT" != "MSW"; then ) ) fi +fi +if test "$wxUSE_SOCKETS" = "yes" ; then 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 + if test "$TOOLKIT" != "MSW"; then dnl determine the type of third argument for getsockname AC_CACHE_CHECK([what is the type of the third argument of getsockname], wx_cv_type_getsockname3, @@ -3967,7 +3887,6 @@ if test "$TOOLKIT" != "MSW"; then fi fi fi -dnl if !MSW if test "$wxUSE_SOCKETS" = "yes" ; then AC_DEFINE(wxUSE_SOCKETS) @@ -3988,6 +3907,10 @@ if test "$wxUSE_GUI" = "yes"; then AC_MSG_WARN([Joystick not yet supported under Motif... disabled]) wxUSE_JOYSTICK=no fi + if test "$TOOLKIT" = "X11"; then + AC_MSG_WARN([Joystick not yet supported under X11... disabled]) + wxUSE_JOYSTICK=no + fi dnl under MSW we always have joystick support if test "$TOOLKIT" != "MSW"; then @@ -4090,6 +4013,22 @@ fi if test "$wxUSE_UNICODE" = "yes" ; then AC_DEFINE(wxUSE_UNICODE) + + if test "$wxUSE_MSW" != 1; then + wxUSE_UNICODE_MSLU=no + fi + + if test "$wxUSE_MSW" = 1 -a "$wxUSE_UNICODE_MSLU" = "yes"; then + AC_CHECK_LIB(unicows,main, + [ + AC_DEFINE(wxUSE_UNICODE_MSLU) + ], + [ + AC_MSG_WARN([Compiler doesn't support MSLU (libunicows.a), disabled. + Applications will only run on Windows NT/2000/XP!]) + wxUSE_UNICODE_MSLU=no + ]) + fi fi if test "$wxUSE_wxUSE_EXPERIMENTAL_PRINTF" = "yes"; then @@ -4131,7 +4070,7 @@ fi if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then if test "$wxUSE_UNIVERSAL" = "yes"; then - AC_MSG_WARN(MDI not yet supported for wxUNIVERSAL... disabled) + AC_MSG_WARN(MDI not yet supported for wxUniversal... disabled) wxUSE_MDI_ARCHITECTURE=no fi @@ -4155,14 +4094,7 @@ if test "$wxUSE_HELP" = "yes"; then if test "$wxUSE_MSW" = 1; then if test "$wxUSE_MS_HTML_HELP" = "yes"; then - AC_CHECK_HEADER(htmlhelp.h, - [ - AC_DEFINE(wxUSE_MS_HTML_HELP) - ], - [ - AC_MSG_WARN([MS HTML Help cannot be used without htmlhelp.h... disabled]) - wxUSE_MS_HTML_HELP=no - ]) + AC_DEFINE(wxUSE_MS_HTML_HELP) fi fi @@ -4190,8 +4122,12 @@ if test "$wxUSE_PROLOGIO" = "yes" ; then fi if test "$wxUSE_RESOURCES" = "yes" ; then - AC_DEFINE(wxUSE_RESOURCES) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS resource" + 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" + fi fi if test "$wxUSE_X_RESOURCES" = "yes"; then @@ -4264,8 +4200,8 @@ 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 not yet supported under Mac OS X... disabled]) + if test "$wxUSE_X11" = 1; then + AC_MSG_WARN([Drag and drop not yet supported under X11... disabled]) wxUSE_DRAG_AND_DROP=no fi @@ -4475,7 +4411,7 @@ if test "$wxUSE_TOGGLEBTN" = "yes"; then wxUSE_TOGGLEBTN=no fi if test "$wxUSE_UNIVERSAL" = "yes"; then - AC_MSG_WARN([Toggle button not yet supported under wxUNIVERSAL... disabled]) + AC_MSG_WARN([Toggle button not yet supported under wxUniversal... disabled]) wxUSE_TOGGLEBTN=no fi @@ -4516,7 +4452,7 @@ if test "$wxUSE_TOOLTIPS" = "yes"; then AC_MSG_WARN([wxTooltip not supported under WINE... disabled]) else if test "$wxUSE_UNIVERSAL" = "yes"; then - AC_MSG_WARN([wxTooltip not supported yet in wxUNIVERSAL... disabled]) + AC_MSG_WARN([wxTooltip not supported yet in wxUniversal... disabled]) else AC_DEFINE(wxUSE_TOOLTIPS) fi @@ -4541,15 +4477,23 @@ if test "$wxUSE_POPUPWIN" = "yes"; then if test "$wxUSE_MOTIF" = 1; then AC_MSG_WARN([wxPopupWindow not yet supported under Motif... disabled]) else - AC_DEFINE(wxUSE_POPUPWIN) + if test "$wxUSE_PM" = 1; then + AC_MSG_WARN([wxPopupWindow not yet supported under PM... disabled]) + else + AC_DEFINE(wxUSE_POPUPWIN) - USES_CONTROLS=1 + USES_CONTROLS=1 + fi fi fi fi if test "$wxUSE_TIPWINDOW" = "yes"; then - AC_DEFINE(wxUSE_TIPWINDOW) + if test "$wxUSE_PM" = 1; then + AC_MSG_WARN([wxTipWindow not yet supported under PM... disabled]) + else + AC_DEFINE(wxUSE_TIPWINDOW) + fi fi if test "$USES_CONTROLS" = 1; then @@ -4587,6 +4531,37 @@ if test "$wxUSE_SYSTEM_OPTIONS" = "yes"; then AC_DEFINE(wxUSE_SYSTEM_OPTIONS) fi +if test "$wxUSE_PROTOCOL" = "yes"; then + if test "$wxUSE_SOCKETS" != "yes"; then + AC_MSG_WARN(Protocol classes require sockets... disabled) + wxUSE_PROTOCOL=no + fi + + if test "$wxUSE_PROTOCOL" = "yes"; then + AC_DEFINE(wxUSE_PROTOCOL) + + if test "$wxUSE_PROTOCOL_HTTP" = "yes"; then + AC_DEFINE(wxUSE_PROTOCOL_HTTP) + fi + if test "$wxUSE_PROTOCOL_FTP" = "yes"; then + AC_DEFINE(wxUSE_PROTOCOL_FTP) + fi + if test "$wxUSE_PROTOCOL_FILE" = "yes"; then + AC_DEFINE(wxUSE_PROTOCOL_FILE) + fi + fi +fi + +if test "$wxUSE_URL" = "yes"; then + if test "$wxUSE_PROTOCOL" != "yes"; then + AC_MSG_WARN(wxURL class requires wxProtocol... disabled) + wxUSE_URL=no + fi + if test "$wxUSE_URL" = "yes"; then + AC_DEFINE(wxUSE_URL) + fi +fi + if test "$wxUSE_MINIFRAME" = "yes"; then AC_DEFINE(wxUSE_MINIFRAME) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS minifram" @@ -4618,6 +4593,10 @@ if test "$wxUSE_PCX" = "yes" ; then AC_DEFINE(wxUSE_PCX) fi +if test "$wxUSE_IFF" = "yes" ; then + AC_DEFINE(wxUSE_IFF) +fi + if test "$wxUSE_PNM" = "yes" ; then AC_DEFINE(wxUSE_PNM) fi @@ -4626,6 +4605,15 @@ if test "$wxUSE_XPM" = "yes" ; then AC_DEFINE(wxUSE_XPM) fi +if test "$wxUSE_ICO_CUR" = "yes" ; then + AC_DEFINE(wxUSE_ICO_CUR) +fi + +if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_MSLU" = "yes" ; then + dnl Must be done this late because -lunicows must be before all the other libs + LIBS=" -lunicows $LIBS" +fi + dnl --------------------------------------------------------------------------- dnl common dialog dnl --------------------------------------------------------------------------- @@ -4651,14 +4639,10 @@ if test "$wxUSE_FONTDLG" = "yes"; then 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) + if test "$wxUSE_TREECTRL" != "yes"; then + AC_MSG_WARN(wxDirDialog requires wxTreeCtrl so it won't be compiled without it) else - if test "$wxUSE_TREECTRL" != "yes"; then - AC_MSG_WARN(wxDirDialog requires wxTreeCtrl so it won't be compiled without it) - else - AC_DEFINE(wxUSE_DIRDLG) - fi + AC_DEFINE(wxUSE_DIRDLG) fi fi @@ -4743,18 +4727,18 @@ 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$THREADS_LINK$DL_LINK -lm$LIBS" +LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK -lm $LIBS" if test "$wxUSE_GUI" = "yes"; then - LIBS=" $GUI_TK_LIBRARY$PNG_LINK$JPEG_LINK$TIFF_LINK$FREETYPE_LINK$LIBS" + LIBS="$GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK $LIBS" dnl TODO add checks that these samples will really compile (i.e. all the dnl library features they need are present) dnl TODO some samples are never built so far: dnl ipc, mfc, nativdlg, oleauto, ownerdrw - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS controls dialogs \ + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS artprov controls dialogs \ drawing dynamic erase event exec font image \ minimal richedit rotate widgets" @@ -4767,8 +4751,7 @@ fi dnl all -I options we must pass to the compiler INCLUDES="-I\${top_builddir}/lib/wx/include/${TOOLCHAIN_NAME} -I\${top_srcdir}/include \ -$REGEX_INCLUDE $ZLIB_INCLUDE $PNG_INCLUDE $JPEG_INCLUDE $TIFF_INCLUDE \ -$FREETYPE_INCLUDE $TOOLKIT_INCLUDE" +$REGEX_INCLUDE $ZLIB_INCLUDE $PNG_INCLUDE $JPEG_INCLUDE $TIFF_INCLUDE $TOOLKIT_INCLUDE" dnl wxGTK does not need TOOLKIT includes in wx-config if test "$wxUSE_GTK" = 1; then @@ -4792,12 +4775,14 @@ if test "$GXX" = yes ; then fi fi -EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG$PROFILE $OPTIMISE $INCLUDES" +EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE $INCLUDES" +dnl remove the extra white space from the cc/c++/ld options CFLAGS=`echo $CFLAGS $EXTRA_CFLAGS $CXXWARNINGS | sed 's/ \\+/ /g'` CXXFLAGS=`echo $CXXFLAGS $EXTRA_CFLAGS $CXXWARNINGS | sed 's/ \+/ /g'` +LIBS=`echo $LIBS | sed 's/ \+/ /g'` -LDFLAGS="$LDFLAGS$PROFILE" +LDFLAGS="$LDFLAGS $PROFILE" dnl for convenience, sort the samples in alphabetical order dnl @@ -4868,8 +4853,10 @@ AC_SUBST(WXCONFIG_LIBS_STATIC) AC_SUBST(WXCONFIG_LIBS_STATIC_GL) AC_SUBST(WXCONFIG_INCLUDE) -dnl what to compile +dnl the list of files to compile/install AC_SUBST(ALL_OBJECTS) +AC_SUBST(ALL_HEADERS) +AC_SUBST(ALL_SOURCES) dnl distribution vars AC_SUBST(GUIDIST) @@ -4882,6 +4869,7 @@ AC_SUBST(SAMPLES_SUBDIRS) dnl additional libraries and linker settings AC_SUBST(LDFLAGS) AC_SUBST(LDFLAGS_GL) +AC_SUBST(LDFLAGS_EXE) AC_SUBST(OPENGL_LIBS) AC_SUBST(DMALLOC_LIBS) AC_SUBST(EXTRADEFS) @@ -4890,11 +4878,12 @@ dnl additional resurces settings AC_SUBST(RESCOMP) AC_SUBST(RESFLAGS) AC_SUBST(RESPROGRAMOBJ) -AC_SUBST(WX_RESOURCES_MACOSX) -AC_SUBST(WX_RESOURCES_MACOSX_COMPILED) +AC_SUBST(WX_RESOURCES_MACOSX_ASCII) +AC_SUBST(WX_RESOURCES_MACOSX_DATA) dnl additional for Mac OS X AC_SUBST(DEREZ) +AC_SUBST(MACOSX_BUNDLE) AC_SUBST(LIBWXMACRES) AC_SUBST(LIBWXMACRESCOMP) AC_SUBST(LIBWXMACRESWXCONFIG) @@ -4924,6 +4913,7 @@ if test "$wxUSE_GUI" = "yes"; then dnl we need to pass SAMPLES_SUBDIRS (and some other) to the configure in dnl samples and the only way to do it is, again, use the cache wx_cv_path_samplesubdirs=$SAMPLES_SUBDIRS + wx_cv_if_gnu_make=$IF_GNU_MAKE wx_cv_path_ifs=$PATH_IFS wx_cv_program_ext=$PROGRAM_EXT wx_cv_target_library=$WX_TARGET_LIBRARY @@ -4931,7 +4921,8 @@ if test "$wxUSE_GUI" = "yes"; then wx_cv_target_libtype=$WX_TARGET_LIBRARY_TYPE dnl we need to export them because passing them through cache won't dnl work when cache=/dev/null (which is default for autoconf 2.50) - export wx_cv_path_samplesubdirs wx_cv_path_ifs wx_cv_program_ext \ + 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 AC_CONFIG_SUBDIRS(demos samples utils contrib) fi