X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bb9e79c05e26cbb3cdf3799910e69cea359efef3..11a9b49de9f487938312e63645c371d01fff25d0:/configure.in diff --git a/configure.in b/configure.in index a404ddd280..18d624fbd9 100644 --- a/configure.in +++ b/configure.in @@ -44,6 +44,11 @@ WX_SUBVERSION=$WX_VERSION.$wx_subrelease_number WX_MSW_VERSION=$wx_major_version_number$wx_minor_version_number$wx_release_number +dnl Autoconf-2.60 changed the meaning of top_builddir variable, so we have +dnl to use our own replacement that will work with both 2.5x and 2.60+: +wx_top_builddir="`pwd`" +AC_SUBST(wx_top_builddir) + dnl ------------------------------------------------------------------------ dnl Check platform (host system) @@ -1027,7 +1032,7 @@ WX_ARG_ENABLE(loggui, [ --enable-loggui use standard GUI logger], WX_ARG_ENABLE(logwin, [ --enable-logwin use wxLogWindow], wxUSE_LOGWINDOW) WX_ARG_ENABLE(logdialog, [ --enable-logdialog use wxLogDialog], wxUSE_LOGDIALOG) WX_ARG_ENABLE(webkit, [ --enable-webkit use wxWebKitCtrl (Mac)], wxUSE_WEBKIT) -WX_ARG_ENABLE(html, [ --enable-richtext use wxRichTextCtrl], wxUSE_RICHTEXT) +WX_ARG_ENABLE(richtext, [ --enable-richtext use wxRichTextCtrl], wxUSE_RICHTEXT) WX_ARG_ENABLE(graphics_ctx, [ --enable-graphics_ctx use graphics context 2D drawing API], wxUSE_GRAPHICS_CONTEXT) dnl --------------------------------------------------------------------------- @@ -1416,61 +1421,6 @@ else fi fi -dnl --------------------------------------------------------------------------- -dnl When we are using Cygwin with Motif/GTK+, we want it to appear like -dnl 'just' a POSIX platform, so the Win32 API must not be available -dnl --------------------------------------------------------------------------- -dnl (Windows-only piece) -wants_win32=0 -doesnt_want_win32=0 -case "${host}" in - *-*-cygwin*) - if test "$wxUSE_MSW" = 1 ; then - wants_win32=1 - BAKEFILE_FORCE_PLATFORM=win32 - else - doesnt_want_win32=1 - fi - ;; - *-*-mingw*) - wants_win32=1 - ;; -esac - -dnl --------------------------------------------------------------------------- -dnl Wine is a virtual platform, we need to patch things up a bit -dnl --------------------------------------------------------------------------- -if test "$wxUSE_WINE" = "yes"; then - wants_win32=1 - dnl FIXME: we should do a better job of testing for these - CC=winegcc - CXX=wineg++ - LDFLAGS_GUI="-mwindows" -fi - -dnl NB: The two tests bellow are *NOT* mutually exclusive! They should only -dnl take effect on Cygwin/Mingw and not other platforms. -if test "$wants_win32" = 1 ; then - USE_UNIX=0 - USE_WIN32=1 - AC_DEFINE(__WIN32__) - AC_DEFINE(__WIN95__) - AC_DEFINE(__WINDOWS__) - AC_DEFINE(__GNUWIN32__) - AC_DEFINE(STRICT) - AC_DEFINE(WINVER, 0x0400) -fi -if test "$doesnt_want_win32" = 1 ; then - USE_UNIX=1 - USE_WIN32=0 -fi -dnl (end of Windows-only piece) - -if test "$USE_UNIX" = 1 ; then - wxUSE_UNIX=yes - AC_DEFINE(__UNIX__) -fi - dnl --------------------------------------------------------------------------- dnl Checks for programs dnl --------------------------------------------------------------------------- @@ -1494,12 +1444,6 @@ dnl is -traditional needed for correct compilations dnl adds -traditional for gcc if needed AC_PROG_GCC_TRADITIONAL -dnl do all checks from now on using the C++ compiler: this saves us a lot of -dnl problems with various functions which may be available in libc but not -dnl declared in the header and various pointer conversions which compile with -dnl the C compiler but not in C++ -AC_LANG_PUSH(C++) - dnl C++-compiler checks dnl defines CXX with the compiler to use dnl defines GXX with yes if using gxx @@ -1683,6 +1627,77 @@ case "${host}" in ;; esac +dnl Determine whether we want to use Cygwin as Windows or POSIX platform: the +dnl latter makes more sense for wxGTK/Motif/X11 ports +wants_win32=0 +doesnt_want_win32=0 +case "${host}" in + *-*-cygwin*) + if test "$wxUSE_MSW" = 1 ; then + wants_win32=1 + else + dnl when we use cygwin compiler with -mno-cygwin option it uses mingw32 + dnl headers and libraries, so it's Windows-like in this case + AC_CACHE_CHECK([if -mno-cygwin is in effect], wx_cv_nocygwin, + [ + AC_TRY_COMPILE( + [], + [ + #ifdef __MINGW32__ + choke me + #endif + ], + wx_cv_nocygwin=no, + wx_cv_nocygwin=yes + ) + ] + ) + + if test "$wx_cv_nocygwin" = "yes"; then + wants_win32=1 + else + doesnt_want_win32=1 + fi + fi + if test "$wants_win32" = 1 ; then + BAKEFILE_FORCE_PLATFORM=win32 + fi + ;; + *-*-mingw*) + wants_win32=1 + ;; +esac + +if test "$wxUSE_WINE" = "yes"; then + wants_win32=1 + dnl FIXME: we should do a better job of testing for these + CC=winegcc + CXX=wineg++ + LDFLAGS_GUI="-mwindows" +fi + +dnl NB: The two tests bellow are *NOT* mutually exclusive! They should only +dnl take effect on Cygwin/Mingw and not other platforms. +if test "$wants_win32" = 1 ; then + USE_UNIX=0 + USE_WIN32=1 + AC_DEFINE(__WIN32__) + AC_DEFINE(__WIN95__) + AC_DEFINE(__WINDOWS__) + AC_DEFINE(__GNUWIN32__) + AC_DEFINE(STRICT) +fi +if test "$doesnt_want_win32" = 1 ; then + USE_UNIX=1 + USE_WIN32=0 +fi +dnl (end of Windows-only piece) + +if test "$USE_UNIX" = 1 ; then + wxUSE_UNIX=yes + AC_DEFINE(__UNIX__) +fi + dnl This case is for OS/2 vs. everything else case "${host}" in *-pc-os2_emx | *-pc-os2-emx ) @@ -1694,7 +1709,6 @@ case "${host}" in dnl not "g++/c++". dnl --------------------------------------------------------------------- dnl (OS/2-only piece) - AC_LANG_PUSH(C) if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_GTK" = 1 -o "$wxUSE_X11" = 1; then dnl More complete Unix emulation for unix-like ports dnl by linking in POSIX/2's cExt (if available). @@ -1738,7 +1752,6 @@ case "${host}" in wx_cv_gccversion="EMX2" ) ]) - AC_LANG_POP if test "$wx_cv_gccversion" = "EMX2"; then LIBS="$LIBS -lstdcpp" LDFLAGS="$LDFLAGS -Zsysv-signals" @@ -1807,27 +1820,13 @@ dnl ------------------------------------------------------------------------ dnl Check for headers dnl ------------------------------------------------------------------------ -dnl defines HAVE_STDLIB_H -AC_CHECK_HEADERS(stdlib.h) -dnl defines HAVE_MALLOC_H -AC_CHECK_HEADERS(malloc.h) -dnl defines HAVE_UNISTD_H -AC_CHECK_HEADERS(unistd.h) -dnl defines HAVE_WCHAR_H -AC_CHECK_HEADERS(wchar.h) +AC_CHECK_HEADERS(stdlib.h fnmatch.h langinfo.h malloc.h unistd.h wchar.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 defines HAVE_FNMATCH_H -AC_CHECK_HEADERS(fnmatch.h) - -dnl defines HAVE_LANGINFO_H (GNU libc locale parameters) -AC_CHECK_HEADERS(langinfo.h) - case "${host}" in *-pc-os2_emx | *-pc-os2-emx ) dnl Explicitly link -lintl if langinfo.h is available @@ -2474,9 +2473,9 @@ fi dnl check for C99 string to long long conversion functions, assume that if we dnl have the unsigned variants, then we have the signed ones as well if test "wxUSE_UNICODE" = "yes"; then - AC_CHECK_FUNCS(wcstoull) + WX_CHECK_FUNCS(wcstoull) else - AC_CHECK_FUNCS(strtoull) + WX_CHECK_FUNCS(strtoull) fi dnl --------------------------------------------------------------------------- @@ -2951,8 +2950,6 @@ if test "$wxUSE_GUI" = "yes"; then if test "$wxUSE_GTK" = 1; then dnl GTK+ test program must be compiled with C compiler - AC_LANG_PUSH(C) - AC_MSG_CHECKING([for GTK+ version]) gtk_version_cached=1 @@ -3116,8 +3113,6 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config AC_CHECK_LIB(gdk, gdk_im_open, AC_DEFINE(HAVE_XIM)) fi - AC_LANG_POP - dnl we need poll() in src/gtk/app.cpp (we know that Darwin doesn't dnl have it but we do the check for the others) if test "$USE_DARWIN" != 1; then @@ -3854,25 +3849,26 @@ if test "$wxUSE_OPENGL" = "yes"; then elif test "$wxUSE_MSW" = 1; then OPENGL_LIBS="-lopengl32 -lglu32" else - dnl David Elliott: Without this snippet AC_CHECK_HEADER fails to find - dnl GL/gl.h on Mac OS X where it is located in - dnl /usr/X11R6/include/GL/gl.h: - - WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, GL/gl.h) + dnl adjust CPPFLAGS to include GL/gl.h location if necessary + dnl (/opt/graphics/OpenGL is for HP-UX systems, bug 925307) + AC_MSG_CHECKING([for OpenGL headers]) + WX_PATH_FIND_INCLUDES([$SEARCH_INCLUDE /opt/graphics/OpenGL/include], GL/gl.h) if test "$ac_find_includes" != "" ; then AC_MSG_RESULT(found in $ac_find_includes) WX_INCLUDE_PATH_EXIST($ac_find_includes, $CPPFLAGS) CPPFLAGS="$ac_path_to_include $CPPFLAGS" + else + AC_MSG_RESULT([not found]) fi - AC_CHECK_HEADER(GL/gl.h, - [ + AC_CHECK_HEADER(GL/gl.h, [ + AC_CHECK_HEADER(GL/glu.h, [ found_gl=0 AC_MSG_CHECKING([for -lGL]) - WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GL) + WX_PATH_FIND_LIBRARIES([$SEARCH_LIB /opt/graphics/OpenGL/lib],GL) if test "$ac_find_libraries" != "" ; then - AC_MSG_RESULT([yes]) + AC_MSG_RESULT([found in $ac_find_libraries]) WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS]) if test "$ac_path_to_link" != " -L/usr/lib" ; then @@ -3914,6 +3910,7 @@ if test "$wxUSE_OPENGL" = "yes"; then fi fi ]) + ]) if test "x$OPENGL_LIBS" = "x"; then dnl it should be an error and not a warning because OpenGL is not on @@ -3953,11 +3950,11 @@ fi if test "$wxUSE_SHARED" = "yes"; then dnl use versioned symbols if available on the platform - WX_VERSIONED_SYMBOLS([\$(top_builddir)version-script]) + WX_VERSIONED_SYMBOLS([\$(wx_top_builddir)/version-script]) case "${host}" in *-*-linux* | *-*-gnu* ) - SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib" + SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(wx_top_builddir)/lib" WXCONFIG_RPATH="-Wl,-rpath,\$libdir" ;; @@ -3976,7 +3973,7 @@ if test "$wxUSE_SHARED" = "yes"; then [],[], [ AC_MSG_RESULT([yes]) - SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib" + SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(wx_top_builddir)/lib" WXCONFIG_RPATH="-Wl,-rpath,\$libdir" ],[ AC_MSG_RESULT([no]) @@ -3986,7 +3983,7 @@ if test "$wxUSE_SHARED" = "yes"; then [],[], [ AC_MSG_RESULT([yes]) - SAMPLES_RPATH_FLAG="-Wl,-R,\$(top_builddir)lib" + SAMPLES_RPATH_FLAG="-Wl,-R,\$(wx_top_builddir)/lib" WXCONFIG_RPATH="-Wl,-R,\$libdir" ],[ AC_MSG_RESULT([no]) @@ -3994,7 +3991,7 @@ if test "$wxUSE_SHARED" = "yes"; then ]) LDFLAGS="$saveLdflags" else - SAMPLES_RPATH_FLAG="-R\$(top_builddir)lib" + SAMPLES_RPATH_FLAG="-R\$(wx_top_builddir)/lib" WXCONFIG_RPATH="-R\$libdir" fi ;; @@ -4002,7 +3999,7 @@ if test "$wxUSE_SHARED" = "yes"; then *-*-darwin* ) install_name_tool=`which install_name_tool` if test "$install_name_tool" -a -x "$install_name_tool"; then - SAMPLES_RPATH_POSTLINK="\$(top_builddir)change-install-names \$(LIBDIRNAME) \$(prefix) \$@" + SAMPLES_RPATH_POSTLINK="\$(wx_top_builddir)/change-install-names \$(LIBDIRNAME) \$(prefix) \$@" cat <change-install-names #!/bin/sh libnames=\`cd \${1} ; ls -1 | grep '\.[[0-9]][[0-9]]*\.dylib\$'\` @@ -4023,7 +4020,7 @@ EOF ;; *-*-hpux* ) - SAMPLES_RPATH_FLAG="-Wl,+b,\$(top_builddir)lib" + SAMPLES_RPATH_FLAG="-Wl,+b,\$(wx_top_builddir)/lib" WXCONFIG_RPATH="-Wl,+b,\$libdir" ;; @@ -4131,7 +4128,7 @@ if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1; then WX_RESOURCES_MACOSX_DATA="libwx_${TOOLCHAIN_NAME}.${wx_release_number}.rsrc" dnl add the resources target for wxMac - LIBWXMACRES="\$(top_builddir)lib/${WX_RESOURCES_MACOSX_ASCII}" + LIBWXMACRES="\$(wx_top_builddir)/lib/${WX_RESOURCES_MACOSX_ASCII}" AC_CHECK_PROG(REZ, Rez, Rez, /Developer/Tools/Rez) AC_CHECK_PROG(DEREZ, DeRez, DeRez, /Developer/Tools/DeRez) @@ -4316,6 +4313,8 @@ dnl stupidly, provides a dummy function declaration inside its extension) dnl succeeds, even with C++ compiler, but the compilation of wxWidgets fails dnl dnl so we first check if the function is in the library +dnl +dnl FIXME: replace this mess with WX_CHECK_FUNCS() AC_CHECK_FUNCS(snprintf vsnprintf) if test "$ac_cv_func_vsnprintf" = "yes"; then @@ -4517,8 +4516,21 @@ if test "$wxUSE_UNICODE" = yes; then fi fi - dnl also look if we have wide char IO functions - AC_CHECK_FUNCS(wputc wputchar putws fputws wprintf vswprintf) + dnl also look if we have wide char IO functions, notice that [f]putws are + dnl declared in special widec.h under Solaris + wchar_headers="#include +#include " + case "${host}" in + *-*-solaris2* ) + AC_CHECK_HEADERS(widec.h) + if test "$ac_cv_header_widec_h" = "yes"; then + wchar_headers="$wchar_headers +#include " + fi + esac + + WX_CHECK_FUNCS(wputc wputchar putws fputws wprintf vswprintf,,, + [$wchar_headers]) dnl MinGW has a vswprintf with a different prototype, and dnl a _vsnwprintf with the correct prototype, but AC_CHECK_FUNCS @@ -4532,18 +4544,14 @@ if test "$wxUSE_UNICODE" = yes; then fi if test "x$ac_cv_header_fnmatch_h" = "xyes"; then - AC_CHECK_FUNCS(fnmatch) + WX_CHECK_FUNCS(fnmatch) fi if test "$wxUSE_FILE" = "yes"; then - AC_CHECK_FUNCS(fsync) -fi - -AC_CHECK_FUNCS(round) -if test "$ac_cv_func_round" = yes; then - AC_CHECK_DECLS(round,,,[#include ]) + WX_CHECK_FUNCS(fsync) fi +WX_CHECK_FUNCS(round,,,[#include ]) dnl the following tests are for Unix(like) systems only if test "$TOOLKIT" != "MSW"; then @@ -4801,9 +4809,8 @@ if test "$HAVE_SOME_SLEEP_FUNC" != 1; then POSIX4_LINK=" -lposix4" ], [ - AC_CHECK_FUNCS(usleep, - AC_DEFINE(HAVE_USLEEP), - AC_MSG_WARN([wxSleep() function will not work]) + WX_CHECK_FUNCS(usleep,, + AC_MSG_WARN([wxSleep() function will not work]) ) ] ) @@ -4812,7 +4819,7 @@ if test "$HAVE_SOME_SLEEP_FUNC" != 1; then fi dnl check for uname (POSIX) and gethostname (BSD) -AC_CHECK_FUNCS(uname gethostname, break) +WX_CHECK_FUNCS(uname gethostname, break) WX_CHECK_FUNCS(strtok_r, [], [], [#define _REENTRANT]) @@ -5639,20 +5646,29 @@ if test "$wxUSE_SOUND" = "yes"; then WITH_PLUGIN_SDL=1 fi fi + else + dnl wxMGL doesn't support sound under DOS, only under Unix + if test "$wxUSE_MGL" = 1; then + AC_MSG_WARN([wxSound not supported in MGL under DOS... disabled]) + wxUSE_SOUND="no" + fi fi +fi +if test "$wxUSE_SOUND" = "yes"; then AC_DEFINE(wxUSE_SOUND) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sound" fi if test "$WXGTK20" = 1; then + PKG_PROG_PKG_CONFIG() + if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then if test "$wxUSE_LIBGNOMEPRINT" = "yes" ; then PKG_CHECK_MODULES(LIBGNOMEPRINTUI, [libgnomeprintui-2.2 >= 2.8], [ -dnl EXTRALIBS_GNOMEPRINT="$LIBGNOMEPRINTUI_LIBS" CXXFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CXXFLAGS" AC_DEFINE(wxUSE_LIBGNOMEPRINT) ], @@ -5663,16 +5679,13 @@ dnl EXTRALIBS_GNOMEPRINT="$LIBGNOMEPRINTUI_LIBS" ) fi fi -fi -if test "$WXGTK20" = 1; then if test "$wxUSE_MIMETYPE" = "yes" ; then if test "$wxUSE_LIBGNOMEVFS" = "yes" ; then PKG_CHECK_MODULES(GNOMEVFS, [gnome-vfs-2.0 >= 2.0], [ -dnl EXTRALIBS_GNOMEVFS="$LIBGNOMEVFS_LIBS" CXXFLAGS="$GNOMEVFS_CFLAGS $CXXFLAGS" AC_DEFINE(wxUSE_LIBGNOMEVFS) ], @@ -5683,9 +5696,7 @@ dnl EXTRALIBS_GNOMEVFS="$LIBGNOMEVFS_LIBS" ) fi fi -fi -if test "$WXGTK20" = 1; then if test "$wxUSE_LIBHILDON" = "yes" ; then PKG_CHECK_MODULES(HILDON, [hildon-lgpl >= 0.9], @@ -6286,7 +6297,10 @@ if test "$wxUSE_GUI" = "yes" -a "$wxUSE_JOYSTICK" = "yes"; then dnl joystick support is only for Linux 2.1.x or greater else - AC_CHECK_HEADERS(linux/joystick.h, wxUSE_JOYSTICK=yes) + dnl wxJoystick not supported by wxMGL at all + if test "$wxUSE_MGL" != "1"; then + AC_CHECK_HEADERS(linux/joystick.h, wxUSE_JOYSTICK=yes) + fi fi if test "$wxUSE_JOYSTICK" = "yes"; then @@ -6877,8 +6891,8 @@ if test "$wxUSE_POPUPWIN" = "yes"; then fi if test "$wxUSE_DIALUP_MANAGER" = "yes"; then - if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then - AC_MSG_WARN([Dialup manager not yet supported under Mac OS X... disabled]) + if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 -o "$wxUSE_MGL" = 1; then + AC_MSG_WARN([Dialup manager not supported on this platform... disabled]) else AC_DEFINE(wxUSE_DIALUP_MANAGER) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dialup" @@ -7298,9 +7312,6 @@ dnl --------------------------------------------------------------------------- dnl Output the makefiles and such from the results found above dnl --------------------------------------------------------------------------- -dnl no more tests from here -AC_LANG_POP - dnl all additional libraries (except wxWidgets itself) we link with if test "$wxUSE_MAC" = 1 ; then @@ -7409,7 +7420,7 @@ dnl come first and the one with setup.h should be before $(top_srcdir)/include dnl in case the latter contains setup.h used by non-autoconf makefiles (e.g. dnl CodeWarrior): CPPFLAGS=`echo $WXCONFIG_CPPFLAGS \ - -I\\${top_builddir}lib/wx/include/${TOOLCHAIN_FULLNAME} \ + -I\\${wx_top_builddir}/lib/wx/include/${TOOLCHAIN_FULLNAME} \ -I\\${top_srcdir}/include $TOOLKIT_INCLUDE \ $CPPFLAGS ` @@ -7874,7 +7885,10 @@ AC_CONFIG_FILES([ lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}:wx-config-inplace. [ chmod +x lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} ], [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ]) -AC_CONFIG_FILES([ version-script Makefile ]) +if test "$wx_cv_version_script" = "yes"; then + AC_CONFIG_FILES(version-script) +fi +AC_CONFIG_FILES(Makefile) AC_CONFIG_COMMANDS([wx-config], [ rm -f wx-config @@ -7902,6 +7916,10 @@ fi dnl Add tests to the list of subdirs if cppunit 1.8.0+ is detected AM_PATH_CPPUNIT(1.8.0, [SUBDIRS="$SUBDIRS tests"]) +if test "$USE_UNIX" != "1" -a "$USE_WIN32" != "1"; then + DISABLED_CONTRIB="$DISABLED_CONTRIB net" +fi + for subdir in `echo $SUBDIRS`; do if test -d ${srcdir}/${subdir} ; then if test "$wxUSE_GUI" = "yes"; then