X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/68be9f090f422450d333385cf62c9b4d350674be..27316302a4389d5f7f282364efcb5181826b55e6:/configure.in diff --git a/configure.in b/configure.in index faa58f106f..51dc45d4ea 100644 --- a/configure.in +++ b/configure.in @@ -51,6 +51,7 @@ dnl #include #include #include +#include int main () @@ -288,6 +289,52 @@ AC_DEFUN(WX_ARG_CACHE_FLUSH, 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', or 'sys' +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' + else + AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no or sys]) + 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) + else + AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no or sys]) + 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, @@ -395,6 +442,7 @@ dnl --------------------------------------------------------------------------- dnl the file passed to AC_INIT should be specific to our package AC_INIT(wx-config.in) +dnl sets build, host, target variables and the same with _alias AC_CANONICAL_SYSTEM dnl When making releases do: @@ -408,11 +456,11 @@ dnl dnl WX_INTERFACE_AGE = 0 WX_MAJOR_VERSION_NUMBER=2 -WX_MINOR_VERSION_NUMBER=1 -WX_RELEASE_NUMBER=14 +WX_MINOR_VERSION_NUMBER=3 +WX_RELEASE_NUMBER=0 WX_INTERFACE_AGE=0 -WX_BINARY_AGE=0 +WX_BINARY_AGE=1 WX_VERSION=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER.$WX_RELEASE_NUMBER @@ -444,6 +492,7 @@ USE_ALPHA= USE_OSF= USE_BSD= USE_FREEBSD= +USE_NETBSD= USE_VMS= USE_ULTRIX= USE_CYGWIN= @@ -524,19 +573,27 @@ case "${host}" in AC_DEFINE(__BSD__) DEFAULT_DEFAULT_wxUSE_MOTIF=1 ;; - *-*-freebsd* | *-*-netbsd*) + *-*-freebsd*) USE_BSD=1 USE_FREEBSD=1 AC_DEFINE(__FREEBSD__) AC_DEFINE(__BSD__) DEFAULT_DEFAULT_wxUSE_GTK=1 ;; + *-*-netbsd*) + USE_BSD=1 + USE_NETBSD=1 + AC_DEFINE(__FREEBSD__) + AC_DEFINE(__NETBSD__) + DEFAULT_DEFAULT_wxUSE_GTK=1 + ;; *-*-osf* ) USE_ALPHA=1 USE_OSF=1 AC_DEFINE(__ALPHA__) AC_DEFINE(__OSF__) DEFAULT_DEFAULT_wxUSE_MOTIF=1 + NEEDS_D_REENTRANT_FOR_R_FUNCS=1 ;; *-*-dgux5* ) USE_ALPHA=1 @@ -652,7 +709,9 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_LIBJPEG=no DEFAULT_wxUSE_LIBTIFF=no DEFAULT_wxUSE_ODBC=no + DEFAULT_wxUSE_OPENGL=no + DEFAULT_wxUSE_ON_FATAL_EXCEPTION=no DEFAULT_wxUSE_STD_IOSTREAM=no DEFAULT_wxUSE_FILE=no DEFAULT_wxUSE_TEXTFILE=no @@ -771,7 +830,9 @@ else DEFAULT_wxUSE_LIBJPEG=yes DEFAULT_wxUSE_LIBTIFF=yes DEFAULT_wxUSE_ODBC=no + DEFAULT_wxUSE_OPENGL=no + DEFAULT_wxUSE_ON_FATAL_EXCEPTION=yes DEFAULT_wxUSE_STD_IOSTREAM=no DEFAULT_wxUSE_FILE=yes DEFAULT_wxUSE_TEXTFILE=yes @@ -907,16 +968,16 @@ AC_ARG_WITH(gtk-prefix, [ --with-gtk-prefix=PFX Prefix where GTK is instal AC_ARG_WITH(gtk-exec-prefix, [ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed], gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="") -WX_ARG_WITH(libpng, [ --with-libpng use libpng (PNG image format)], wxUSE_LIBPNG) -WX_ARG_WITH(libjpeg, [ --with-libjpeg use libjpeg (JPEG file format)], wxUSE_LIBJPEG) -WX_ARG_WITH(libtiff, [ --with-libtiff use libtiff (TIFF file format)], wxUSE_LIBTIFF) +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_WITH(opengl, [ --with-opengl use OpenGL (or Mesa)], wxUSE_OPENGL) fi dnl for GUI only WX_ARG_WITH(dmalloc, [ --with-dmalloc use dmalloc library (www.letters.com/dmalloc)], wxUSE_DMALLOC) -WX_ARG_WITH(zlib, [ --with-zlib use zlib for LZW compression], wxUSE_ZLIB) +WX_ARG_SYS_WITH(zlib, [ --with-zlib use zlib for LZW compression], wxUSE_ZLIB) WX_ARG_WITH(odbc, [ --with-odbc use the IODBC and wxODBC classes], wxUSE_ODBC) dnl ==================== @@ -958,15 +1019,11 @@ 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) -dnl can't use sockets without GUI so far -if test "$wxUSE_GUI" = "yes"; then WX_ARG_ENABLE(sockets, [ --enable-sockets use socket/network classes], wxUSE_SOCKETS) -else -wxUSE_SOCKETS=no -fi -WX_ARG_ENABLE(dialupman, [ --enable-dialupman use dialup network classes], wxUSE_DIALUP_MANAGER) WX_ARG_ENABLE(ipc, [ --enable-ipc use interprocess communication (wxSocket etc.)], wxUSE_IPC) + +WX_ARG_ENABLE(dialupman, [ --enable-dialupman use dialup network classes], wxUSE_DIALUP_MANAGER) WX_ARG_ENABLE(apple_ieee, [ --enable-apple_ieee use the Apple IEEE codec], wxUSE_APPLE_IEEE) WX_ARG_ENABLE(timedate, [ --enable-timedate use date/time classes], wxUSE_TIMEDATE) WX_ARG_ENABLE(wave, [ --enable-wave use wxWave class], wxUSE_WAVE) @@ -980,13 +1037,14 @@ WX_ARG_ENABLE(textfile, [ --enable-textfile use wxTextFile classes], WX_ARG_ENABLE(unicode, [ --enable-unicode compile wxString with Unicode support], wxUSE_UNICODE) WX_ARG_ENABLE(wcsrtombs, [ --enable-wcsrtombs use wcsrtombs instead of buggy (GNU libc1/Linux libc5) wcstombs], wxUSE_WCSRTOMBS) WX_ARG_ENABLE(wxprintfv, [ --enable-wxprintfv use wxWindows implementation of vprintf()], wxUSE_EXPERIMENTAL_PRINTF) -WX_ARG_ENABLE(joystick, [ --enable-joystick compile in joystick support (Linux only)], wxUSE_JOYSTICK) 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) WX_ARG_ENABLE(fs_inet, [ --enable-fs_inet use virtual HTTP/FTP filesystems], wxUSE_FS_INET) WX_ARG_ENABLE(fs_zip, [ --enable-fs_zip use virtual ZIP filesystems], wxUSE_FS_ZIP) 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) + dnl --------------------------------------------------------------------------- dnl "big" options (i.e. those which change a lot of things throughout the library) dnl --------------------------------------------------------------------------- @@ -1158,6 +1216,7 @@ WX_ARG_ENABLE(splines, [ --enable-splines use spline drawing code], WX_ARG_ENABLE(validators, [ --enable-validators use wxValidator and derived classes], wxUSE_VALIDATORS) WX_ARG_ENABLE(busyinfo, [ --enable-busyinfo use wxBusyInfo], wxUSE_BUSYINFO) WX_ARG_ENABLE(plot, [ --enable-plot use wxPlot], wxUSE_PLOT) +WX_ARG_ENABLE(joystick, [ --enable-joystick compile in joystick support (Linux only)], wxUSE_JOYSTICK) dnl --------------------------------------------------------------------------- dnl support for image formats that do not rely on external library @@ -1263,17 +1322,16 @@ 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 eval "test $host != $build"; then - if eval "test $host_alias != NONE"; then +if test "$build" != "$host" ; then CC=$host_alias-gcc CXX=$host_alias-c++ AR=$host_alias-ar RANLIB=$host_alias-ranlib DLLTOOL=$host_alias-dlltool + RESCOMP=$host_alias-windres LD=$host_alias-ld NM=$host_alias-nm STRIP=$host_alias-strip - fi fi dnl C-compiler checks @@ -1340,7 +1398,7 @@ if test ! -d sub ; then mkdir sub fi echo dummy > sub/file -${MAKE-make} -f confMake VPATH=sub 2> config.log > /dev/null +${MAKE-make} -f confMake VPATH=sub 2>&5 > /dev/null RESULT=$? rm -f sub/file check final_file confMake rmdir sub @@ -1482,13 +1540,15 @@ GUI_TK_LIBRARY= GUI_TK_LINK= WXGTK12= -WXGTK13= +WXGTK127= +WXGTK20= WXWINE= if test "$wxUSE_CYGWIN" = 1 || test "$wxUSE_MINGW" = 1 ; then if test "$cross_compiling" = "yes" ; then - AC_MSG_WARN(Cross compiling --- skipping windows.h check) + dnl mingw32 will find them even if they're not in one of standard paths + AC_MSG_WARN(skipping windows.h check for cross-compilation) else AC_MSG_CHECKING(for Windows headers) WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, windows.h) @@ -1506,6 +1566,11 @@ if test "$wxUSE_CYGWIN" = 1 || test "$wxUSE_MINGW" = 1 ; then dnl --- This will bloat the executable, but it'll work for now... LIBS="$LIBS -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lctl3d32 -lcrtdll -ladvapi32 -lwsock32" + dnl add extra odbc libs if we have compiled in odbc + if test "$wxUSE_ODBC" = "yes" ; then + LIBS="$LIBS -lodbc32 -lole32 -loleaut32" + fi + dnl -mwindows is needed to avoid that spawning of a console window if test "$wxUSE_MINGW" = 1; then LDFLAGS="$LDFLAGS -mwindows" @@ -1519,14 +1584,29 @@ if test "$wxUSE_CYGWIN" = 1 || test "$wxUSE_MINGW" = 1 ; then GENERICOBJS="\$(MSW_GENERICOBJS)" UNIXOBJS= GUIDIST=MSW_DIST + + dnl we should calculate these + RCINCSWITCH="--include-dir" + RCDEFSWITCH="--define" + RCPREPROCESSOR="--preprocessor \"\$(CC) -c -E -xc-header -DRC_INVOKED\"" + RCINPUTSWITCH="-i" + RCOUTPUTSWITCH="-o" + RESFLAGS="$RCPREPROCESSOR $RCINCSWITCH \$(top_srcdir)/include $RCINCSWITCH \$(top_srcdir)/\$(program_dir) $RCDEFSWITCH __WIN32__ $RCDEFSWITCH __WIN95__ $RCDEFSWITCH __GNUWIN32__" + + dnl set optinal RES_PROGRAM_OPT to RES_PROGRAM + RESPROGRAM="\$(RES_PROGRAM)" + fi if test "$wxUSE_GTK" = 1; then dnl avoid calling AM_PATH_GTK twice, so check first for the newer version dnl and only then, if it wasn't found, for an older one - AM_PATH_GTK(1.2.3, WXGTK12=1) + AM_PATH_GTK_2_0(1.3.1, WXGTK20=1,[ + AM_PATH_GTK(1.2.7, WXGTK127=1) + AM_PATH_GTK(1.2.3, WXGTK12=1) + ], gthread) - if test "$WXGTK12" != 1; then + if test "$WXGTK12" != 1 -a "$WXGTK20" != 1; then AC_MSG_ERROR([ Please check that gtk-config is in path, the directory where GTK+ libraries are installed (returned by @@ -1535,15 +1615,6 @@ if test "$wxUSE_GTK" = 1; then ]) fi -dnl it doesn't really work with 1.3.0 now... -dnl AM_PATH_GTK(1.3.0, -dnl WXGTK13=1, -dnl AM_PATH_GTK(1.2.1, -dnl WXGTK12=1, -dnl AC_MSG_ERROR(Is gtk-config in path and GTK+ is version 1.2.1 or above?) -dnl ) -dnl ) - TOOLKIT_INCLUDE="$GTK_CFLAGS" dnl Appending gthreads as it was done here is not portable, instead @@ -1613,7 +1684,7 @@ if test "$wxUSE_WINE" = 1; then AC_MSG_ERROR(no) fi - GUI_TK_LINK="-lwine $MESA_LINK $XPM_LINK -lXxf86dga -lXxf86vm -lSM -lICE -lXext -lXmu -lX11 -lncurses -lm" + GUI_TK_LINK="-lwine $MESA_LINK $XPM_LINK -lXxf86dga -lXxf86vm -lSM -lICE -lXext -lXmu -lX11 -lncurses" GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GUI_TK_LINK" WXWINE=1 TOOLKIT=MSW @@ -1630,13 +1701,18 @@ if test "$wxUSE_WINE" = 1; then GUIDIST=MSW_DIST fi -if test "$wxUSE_MOTIF" = 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 +dnl use standard macros to check for X headers/libs, this brings support +dnl for the standard configure options --x-includes and --x-libraries; +dnl the path to the X headers/libs is not only needed for motif, but also +dnl by the OpenGL and XKBlib.h checks further down + +AC_PATH_XTRA +CPPFLAGS="$CPPFLAGS $X_CFLAGS" +LDFLAGS="$LDFLAGS $X_LIBS" +if test "$wxUSE_MOTIF" = 1; then if test "$no_x" = "yes"; then - AC_MSG_ERROR(X11 not found, please use --x-includes and/or --x-libraries options) + AC_MSG_ERROR(X11 not found, please use --x-includes and/or --x-libraries options) fi GUI_TK_LIBRARY="$X_LIBS" @@ -1783,8 +1859,8 @@ if test "$wxUSE_MOTIF" = 1; then version = XpmLibraryVersion(); ], [ - XPM_LINK="-lXpm " - AC_DEFINE(wxHAVE_LIB_XPM) + XPM_LINK="-lXpm " + AC_DEFINE(wxHAVE_LIB_XPM) AC_MSG_RESULT(found in default search path) COMPILED_X_PROGRAM=0 ], @@ -1795,7 +1871,7 @@ if test "$wxUSE_MOTIF" = 1; then ) fi - GUI_TK_LINK="-lXm $XPM_LINK -lXmu -lXext -lXt -lX11 -lm" + GUI_TK_LINK="-lXm $XPM_LINK -lXmu -lXext -lXt -lX11" GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GUI_TK_LINK" TOOLKIT=MOTIF @@ -1833,14 +1909,21 @@ else TOOLKIT_DIR="os2" fi + dnl the (base) name of the library and support files for this toolkit + if test "$wxUSE_DEBUG_FLAG" = "yes"; then + TOOLKIT_NAME="${TOOLKIT_DIR}d" + else + TOOLKIT_NAME="${TOOLKIT_DIR}" + fi + dnl the symbol which allows conditional compilation for the given toolkit TOOLKIT_DEF="-D__WX${TOOLKIT}__" dnl the name of the (libtool) library - WX_LIBRARY="wx_${TOOLKIT_DIR}" + WX_LIBRARY="wx_${TOOLKIT_NAME}" dnl the sources, their dependenices and the headers - ALL_OBJECTS="\$(GUIOBJS) \$(COMMONOBJS) \$(GENERICOBJS) \$(UNIXOBJS) \$(HTMLOBJS)" + ALL_OBJECTS="\$(GUIOBJS) \$(COMMONOBJS) \$(GENERICOBJS) \$(UNIXOBJS) \$(HTMLOBJS) \$(OGLOBJS)" dnl ODBC objects are Unix only if test "$TOOLKIT" != "MSW"; then @@ -1861,7 +1944,7 @@ fi if test "$wxUSE_ZLIB" = "yes" ; then ALL_OBJECTS="${ALL_OBJECTS} \$(ZLIBOBJS)" fi - ALL_DEPFILES="\$(GUIDEPS) \$(COMMONDEPS) \$(GENERICDEPS) \$(UNIXDEPS) \$(HTMLDEPS)" + ALL_DEPFILES="\$(GUIDEPS) \$(COMMONDEPS) \$(GENERICDEPS) \$(UNIXDEPS) \$(HTMLDEPS) \$(OGLDEPS)" PORT_FILES="src/\$(TOOLKITDIR)/files.lst" RPM_FILES="src/\$(TOOLKITDIR)/rpmfiles.lst" @@ -1873,15 +1956,28 @@ fi else USE_GUI=0 + dnl this may be (almost) unneccesary for wxBase now we use TOOLKIT_NAME TOOLKIT_DIR="base" + + dnl the base name of the library and wxXXX-config files + if test "$wxUSE_DEBUG_FLAG" = "yes"; then + TOOLKIT_NAME="${TOOLKIT_DIR}d" + else + TOOLKIT_NAME="${TOOLKIT_DIR}" + fi + TOOLKIT_DEF="-D__WXBASE__" dnl the sources, their dependenices and the headers ALL_OBJECTS="\$(BASE_OBJS) \${BASE_UNIX_OBJS}" ALL_DEPFILES="\${BASE_DEPS} \${BASE_UNIX_DEPS}" + if test "$wxUSE_ZLIB" = "yes" ; then + ALL_OBJECTS="${ALL_OBJECTS} \$(ZLIBOBJS)" + fi + dnl building wxBase only - WX_LIBRARY="wxbase" + WX_LIBRARY="wx_${TOOLKIT_NAME}" PORT_FILES="src/files.lst" RPM_FILES="src/rpmfiles.lst" @@ -1894,17 +1990,23 @@ fi dnl the name of the (libtool) library WX_LIBRARY_NAME="lib${WX_LIBRARY}.la" +WX_LIBRARY_NAME_GL="lib${WX_LIBRARY}_gl.la" dnl the name of the static library WX_LIBRARY_NAME_STATIC="lib${WX_LIBRARY}.a" +WX_LIBRARY_NAME_STATIC_GL="lib${WX_LIBRARY}_gl.a" dnl the name of the shared library WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}-${WX_RELEASE}.so.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}" +WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.so.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}" dnl the name of the links to the shared library WX_LIBRARY_LINK1="lib${WX_LIBRARY}-${WX_RELEASE}.so.${WX_CURRENT}" WX_LIBRARY_LINK2="lib${WX_LIBRARY}-${WX_RELEASE}.so" WX_LIBRARY_LINK3="lib${WX_LIBRARY}.so" +WX_LIBRARY_LINK1_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.so.${WX_CURRENT}" +WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.so" +WX_LIBRARY_LINK3_GL="lib${WX_LIBRARY}_gl.so" dnl shared library settings SHARED_LD= @@ -1912,6 +2014,7 @@ PIC_FLAG= WX_ALL= WX_ALL_INSTALLED= BURNT_LIBRARY_NAME= +WX_TARGET_LIBRARY_SONAME= dnl --- the marker for quick search, leave it here: SHARED_LIB_SETUP --- @@ -1922,21 +2025,38 @@ if test "$wxUSE_SHARED" = "yes"; then SHARED_LD="${CC} -shared -fPIC -o" PIC_FLAG="-fPIC" else + dnl no idea why it wants it, but it does + LDFLAGS="-L/usr/lib" + SHARED_LD="${CXX} -b -o" PIC_FLAG="+Z" fi - WX_LIBRARY_NAME_SHARED="libwx_${TOOLKIT_DIR}.sl" - WX_ALL=${WX_LIBRARY_NAME_SHARED} + WX_LIBRARY_NAME_SHARED="libwx_${TOOLKIT_NAME}.sl" + WX_LIBRARY_NAME_SHARED_GL="libwx_${TOOLKIT_NAME}_gl.sl" + if test "$wxUSE_OPENGL" = "yes"; then + WX_ALL_INSTALLED="preinstall_gl" + WX_ALL="${WX_LIBRARY_NAME_SHARED} ${WX_LIBRARY_NAME_SHARED_GL}" + else + WX_ALL="${WX_LIBRARY_NAME_SHARED}" + fi ;; dnl in fact, these settings are for any platform using gcc *-*-linux* ) SHARED_LD="${CC} -shared -o" PIC_FLAG="-fPIC" - WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS" - WX_ALL="CREATE_LINKS" if test "$wxUSE_BURNT_NAME" = "yes" ; then BURNT_LIBRARY_NAME="-Wl,-soname,${WX_LIBRARY_LINK1}" + BURNT_LIBRARY_NAME_GL="-Wl,-soname,${WX_LIBRARY_LINK1_GL}" + dnl substitute this in makelib.env for the contrib libs + WX_TARGET_LIBRARY_SONAME="-Wl,-soname,\$(TARGETLIB_LINK1)" + fi + if test "$wxUSE_OPENGL" = "yes"; then + WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL" + WX_ALL="CREATE_LINKS CREATE_LINKS_GL" + else + WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS" + WX_ALL="CREATE_LINKS" fi ;; *-*-irix5* | *-*-irix6* ) @@ -1946,19 +2066,33 @@ if test "$wxUSE_SHARED" = "yes"; then else SHARED_LD="${CXX} -shared -o" fi - WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS" - WX_ALL="CREATE_LINKS" + if test "$wxUSE_OPENGL" = "yes"; then + WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL" + WX_ALL="CREATE_LINKS CREATE_LINKS_GL" + else + WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS" + WX_ALL="CREATE_LINKS" + fi ;; *-*-solaris2* ) if test "$GCC" = yes ; then SHARED_LD="${CC} -shared -o" PIC_FLAG="-fPIC" + + dnl newer versions of gcc need -isystem to compile X headers on + dnl Solaris (which use old style C syntax) + CPPFLAGS="$CPPFLAGS -isystem /usr/openwin/include" else SHARED_LD="${CXX} -G -o" PIC_FLAG="-KPIC" fi - WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS" - WX_ALL="CREATE_LINKS" + if test "$wxUSE_OPENGL" = "yes"; then + WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL" + WX_ALL="CREATE_LINKS CREATE_LINKS_GL" + else + WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS" + WX_ALL="CREATE_LINKS" + fi ;; *-*-sunos4* ) SHARED_LD="${CC} -shared -o" @@ -1969,8 +2103,13 @@ if test "$wxUSE_SHARED" = "yes"; then *-*-freebsd* | *-*-netbsd*) SHARED_LD="${CC} -shared -o" PIC_FLAG="-fPIC" - WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS" - WX_ALL="CREATE_LINKS" + if test "$wxUSE_OPENGL" = "yes"; then + WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL" + WX_ALL="CREATE_LINKS CREATE_LINKS_GL" + else + WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS" + WX_ALL="CREATE_LINKS" + fi ;; *-*-osf* ) SHARED_LD="${CXX} -shared -o" @@ -1997,12 +2136,24 @@ if test "$wxUSE_SHARED" = "yes"; then *-*-cygwin32* ) dnl only static for now WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}" - WX_ALL="${WX_LIBRARY_NAME_STATIC}" + WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}" + if test "$wxUSE_OPENGL" = "yes"; then + WX_ALL_INSTALLED="preinstall_gl" + WX_ALL="${WX_LIBRARY_NAME_STATIC} ${WX_LIBRARY_NAME_STATIC_GL}" + else + WX_ALL="${WX_LIBRARY_NAME_STATIC}" + fi ;; *-*-mingw32* ) dnl only static for now WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}" - WX_ALL="${WX_LIBRARY_NAME_STATIC}" + WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}" + if test "$wxUSE_OPENGL" = "yes"; then + WX_ALL_INSTALLED="preinstall_gl" + WX_ALL="${WX_LIBRARY_NAME_STATIC} ${WX_LIBRARY_NAME_STATIC_GL}" + else + WX_ALL="${WX_LIBRARY_NAME_STATIC}" + fi ;; *-pc-os2_emx ) dnl only static for now @@ -2024,11 +2175,29 @@ if test "$wxUSE_SHARED" = "yes"; then dnl set target to shared if not explicitly chose static before if test "x$WX_TARGET_LIBRARY" = "x"; then WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_SHARED}" + WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_SHARED_GL}" fi + dnl do not alter the LIBRARY_TYPE strings "so" and "a", they are magic + WX_TARGET_LIBRARY_TYPE="so" else dnl set target to static WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}" - WX_ALL="${WX_LIBRARY_NAME_STATIC}" + WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}" + + if test "$wxUSE_OPENGL" = "yes"; then + WX_ALL_INSTALLED="preinstall_gl" + WX_ALL="${WX_LIBRARY_NAME_STATIC} ${WX_LIBRARY_NAME_STATIC_GL}" + else + WX_ALL="${WX_LIBRARY_NAME_STATIC}" + fi + + dnl give static wxBase build a working install target + if test "$wxUSE_GUI" = "no"; then + dnl we're here because WX_ALL_INSTALLED is empty, but play safe anyway + WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall" + fi + + WX_TARGET_LIBRARY_TYPE="a" fi dnl ------------------------------------------------------------------------ @@ -2045,10 +2214,16 @@ dnl defines HAVE_WCSTR_H AC_CHECK_HEADERS(wcstr.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) +dnl defines HAVE_LANGINFO_H (GNU libc locale parameters) +AC_CHECK_HEADERS(langinfo.h) if test "$wxUSE_GUI" = "yes"; then - dnl defines HAVE_X11_XKBLIB_H - AC_CHECK_HEADERS(X11/XKBlib.h) + if test "$wxUSE_UNIX" = "yes"; then + dnl defines HAVE_X11_XKBLIB_H + AC_CHECK_HEADERS(X11/XKBlib.h) + fi fi dnl --------------------------------------------------------------------------- @@ -2081,7 +2256,6 @@ AC_CACHE_CHECK([for pw_gecos in struct passwd], wx_cv_struct_pw_gecos, ], [ wx_cv_struct_pw_gecos=yes - AC_DEFINE(HAVE_PW_GECOS) ], [ wx_cv_struct_pw_gecos=no @@ -2090,6 +2264,10 @@ AC_CACHE_CHECK([for pw_gecos in struct passwd], wx_cv_struct_pw_gecos, ] ) +if test "$wx_cv_struct_pw_gecos" = "yes"; then + AC_DEFINE(HAVE_PW_GECOS) +fi + dnl --------------------------------------------------------------------------- dnl Checks for compiler characteristics dnl --------------------------------------------------------------------------- @@ -2103,6 +2281,7 @@ 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) @@ -2139,55 +2318,117 @@ AC_CHECK_LIB(c, wcslen, [ dnl check for vprintf/vsprintf() which are GNU extensions AC_FUNC_VPRINTF -dnl check for vsnprintf() - a safe version of vsprintf() -AC_CHECK_FUNCS(vsnprintf, - AC_DEFINE(HAVE_VSNPRINTF), - AC_MSG_WARN(unsafe function sprintf will be used instead of snprintf) - ) - -dnl check for vsscanf() - on some platforms (Linux, glibc 2.1.1) it's -dnl available in the library but the prototype is missing, so we can't use -dnl AC_CHECK_FUNCS here, do it manually AC_LANG_SAVE AC_LANG_CPLUSPLUS -AC_CACHE_CHECK([for vsscanf], wx_cv_func_vsscanf, +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 +dnl library but the prototype is missing, so we can't use AC_CHECK_FUNCS here, +dnl do it manually + +dnl we use AC_TRY_COMPILE() here instead of AC_TRY_RUN() to make the checks +dnl work for cross-compilation, but AC_TRY_COMPILE() normally only compiles +dnl one function while we need at least 2 - hence the ugly hack below. To +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 check for vsnprintf() - a safe version of vsprintf() +AC_CACHE_CHECK([for vsnprintf], wx_cv_func_vsnprintf, [ - AC_TRY_RUN( - [ - #include - #include + AC_TRY_COMPILE([ + #include + #include + ], [ + int wx_test_vsnprintf(const char *, ...); - int try_vsscanf(const char *format, ...) - { - va_list ap; - va_start(ap, format); + wx_test_vsnprintf("%s"); + return 0; + } - vsscanf("17", format, ap); + int wx_test_vsnprintf(const char *fmt, ...) + { + char *s; - va_end(ap); + va_list argp; + va_start(argp, fmt); + 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 + ]) +]) + +dnl check for vsscanf() +AC_CACHE_CHECK([for vsscanf], wx_cv_func_vsscanf, +[ + AC_TRY_COMPILE([ + #include + #include + ], [ + int wx_test_vsscanf(const char *, ...); + + wx_test_vsscanf("%d"); + return 0; } - int main() + int wx_test_vsscanf(const char *fmt, ...) { - int i; - try_vsscanf("%d", &i); - return i == 17 ? 0 : 1; - } - ], [ - AC_DEFINE(HAVE_VSSCANF) - wx_cv_func_vsscanf=yes - ], - wx_cv_func_vsscanf=no, - wx_cv_func_vsscanf=no - ) + va_list argp; + va_start(argp, fmt); + vsscanf("42", fmt, argp); + va_end(argp); + ], [ + AC_DEFINE(HAVE_VSSCANF) + wx_cv_func_vsscanf=yes + ], [ + wx_cv_func_vsscanf=no + ]) ]) AC_LANG_RESTORE -dnl under MSW we always have Sleep() +dnl the following tests are for Unix(like) systems only if test "$TOOLKIT" != "MSW"; then +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) + + if test "$ac_cv_func_sigaction" = "no"; then + AC_MSG_WARN([No POSIX signal functions on this system, wxApp::OnFatalException will not be called]) + wxUSE_ON_FATAL_EXCEPTION=no + fi + + if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + + AC_CACHE_CHECK([for sa_handler type], wx_cv_type_sa_handler, + [ + AC_TRY_COMPILE([#include ], + [ + extern void testSigHandler(int); + + struct sigaction sa; + sa.sa_handler = testSigHandler; + ], [ + wx_cv_type_sa_handler=int + ], [ + wx_cv_type_sa_handler=void + ]) + ]) + + AC_LANG_RESTORE + + AC_DEFINE_UNQUOTED(wxTYPE_SA_HANDLER, $wx_cv_type_sa_handler) + fi +fi + dnl check for vfork() (even if it's the same as fork() in modern Unices) AC_CHECK_FUNCS(vfork) @@ -2225,9 +2466,15 @@ fi dnl check for uname (POSIX) and gethostname (BSD) AC_CHECK_FUNCS(uname gethostname, break) -dnl check for MT-safe version of strtok +dnl check for MT-safe version of strtok (on DEC Alpha, it's ok for C compiler +dnl but not for C++ one - hence change language) +AC_LANG_SAVE +AC_LANG_CPLUSPLUS + 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) INET_LINK= @@ -2293,12 +2540,19 @@ fi if test "$wxUSE_THREADS" = "yes" ; then dnl find if POSIX threads are available + dnl AIX calls the library libpthreads - thanks IBM! + if test "$wxUSE_AIX" = 1; then + THREADS_LIB=pthreads + else + THREADS_LIB=pthread + fi + 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(pthread, pthread_create, [ + AC_CHECK_LIB($THREADS_LIB, pthread_create, [ THREADS_OBJ="threadpsx.lo" - THREADS_LINK="pthread" + THREADS_LINK=$THREADS_LIB ], [ dnl thread functions are in libc_r under FreeBSD AC_CHECK_LIB(c_r, pthread_create, [ @@ -2347,21 +2601,33 @@ if test "$wxUSE_THREADS" = "yes" ; then )] ) - dnl VZ: we should be checking for all of the following functions instead: + dnl to be able to set the thread priority, we need to have all of the + dnl following functions: dnl 1. pthread_attr_getschedpolicy dnl 2. sched_get_priority_min and sched_get_priority_max + dnl (this one can be in either libpthread or libposix4 (under Solaris)) dnl 3. pthread_attr_getschedparam and pthread_attr_setschedparam - dnl but it seems that if the first one is there, the other ones are too (of - dnl course the proper solution would be to implement AC_FUNC_THREAD above - dnl and do test for them all - anyone?) + HAVE_PRIOR_FUNCS=0 AC_CHECK_LIB($THREADS_LINK, pthread_attr_getschedpolicy, - AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS), - [AC_CHECK_LIB("posix4", pthread_attr_getschedpolicy, - [AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS) POSIX4_LINK="-lposix4"], - AC_MSG_WARN(Setting thread priority will not work) - )] + AC_CHECK_LIB($THREADS_LINK, pthread_attr_setschedparam, + AC_CHECK_LIB($THREADS_LINK, sched_get_priority_max, + HAVE_PRIOR_FUNCS=1, + AC_CHECK_LIB("posix4", sched_get_priority_max, + [ + HAVE_PRIOR_FUNCS=1 + POSIX4_LINK="-lposix4" + ], + ) + ) + ) ) + if test "$HAVE_PRIOR_FUNCS" = 1; then + AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS) + else + 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])) @@ -2409,8 +2675,8 @@ else fi fi -if test "$WXGTK13" = 1 ; then - AC_DEFINE_UNQUOTED(__WXGTK13__,$WXGTK13) +if test "$WXGTK20" = 1 ; then + AC_DEFINE_UNQUOTED(__WXGTK20__,$WXGTK20) WXGTK12=1 fi @@ -2418,6 +2684,10 @@ if test "$WXGTK12" = 1 ; then AC_DEFINE_UNQUOTED(__WXGTK12__,$WXGTK12) fi +if test "$WXGTK127" = 1 ; then + AC_DEFINE_UNQUOTED(__WXGTK127__,$WXGTK127) +fi + if test "$WXWINE" = 1 ; then TOOLKIT_DEF="${TOOLKIT_DEF} -D__WXWINE__" fi @@ -2503,43 +2773,89 @@ dnl Optional libraries dnl --------------------------------------------------------------------------- ZLIB_INCLUDE= -if test "$wxUSE_ZLIB" = "yes" ; then +if test "$wxUSE_ZLIB" = "yes" -o "$wxUSE_ZLIB" = "sys" ; then AC_DEFINE(wxUSE_ZLIB) - ZLIB_INCLUDE="-I\${top_srcdir}/src/zlib" + if test "$wxUSE_ZLIB" = "yes" ; then + ZLIB_INCLUDE="-I\${top_srcdir}/src/zlib" + else + ZLIB_LINK= + AC_CHECK_HEADER(zlib.h, AC_CHECK_LIB(z, deflate, ZLIB_LINK="-lz")) + if test "x$ZLIB_LINK" = "x" ; then + AC_MSG_ERROR(system zlib compression library not found! Use --with-zlib=yes to use built-in zlib) + fi + fi fi PNG_INCLUDE= -if test "$wxUSE_LIBPNG" = "yes" ; then +if test "$wxUSE_LIBPNG" = "yes" -o "$wxUSE_LIBPNG" = "sys" ; then AC_DEFINE(wxUSE_LIBPNG) - PNG_INCLUDE="-I\${top_srcdir}/src/png" + 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 + AC_MSG_WARN([--with-libpng=sys doesn't work without --with-zlib=sys, will compile the built-in libpng instead]) + wxUSE_LIBPNG=yes + fi + + if test "$wxUSE_LIBPNG" = "yes" ; then + PNG_INCLUDE="-I\${top_srcdir}/src/png" + else + PNG_LINK= + AC_CHECK_HEADER(png.h, + AC_CHECK_LIB(png, png_check_sig, + PNG_LINK="-lpng", + , + [-lz -lm]) + ) + if test "x$PNG_LINK" = "x" ; then + AC_MSG_ERROR(system png library not found! Use --with-libpng=yes to use the built-in libpng) + fi + fi + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS png" fi JPEG_INCLUDE= -if test "$wxUSE_LIBJPEG" = "yes" ; then +if test "$wxUSE_LIBJPEG" = "yes" -o "$wxUSE_LIBJPEG" = "sys" ; then AC_DEFINE(wxUSE_LIBJPEG) - JPEG_INCLUDE="-I\${top_srcdir}/src/jpeg" + if test "$wxUSE_LIBJPEG" = "yes" ; then + JPEG_INCLUDE="-I\${top_srcdir}/src/jpeg" + else + JPEG_LINK= + AC_CHECK_HEADER(jpeglib.h, AC_CHECK_LIB(jpeg, jpeg_read_header, JPEG_LINK="-ljpeg")) + if test "x$JPEG_LINK" = "x" ; then + AC_MSG_ERROR(system jpeg library not found! Use --with-libjpeg=yes to use the built-in one) + fi + fi fi TIFF_INCLUDE= -if test "$wxUSE_LIBTIFF" = "yes" ; then +if test "$wxUSE_LIBTIFF" = "yes" -o "$wxUSE_LIBTIFF" = "sys" ; then AC_DEFINE(wxUSE_LIBTIFF) - TIFF_INCLUDE="-I\${top_srcdir}/src/tiff" + if test "$wxUSE_LIBTIFF" = "yes" ; then + TIFF_INCLUDE="-I\${top_srcdir}/src/tiff" + else + TIFF_LINK= + AC_CHECK_HEADER(tiffio.h, AC_CHECK_LIB(tiff, TIFFError, + TIFF_LINK="-ltiff", + , + -lm)) + if test "x$TIFF_LINK" = "x" ; then + AC_MSG_ERROR(system tiff library not found! Use --with-libtiff=yes to use the built-in one) + fi + fi fi if test "$wxUSE_OPENGL" = "yes"; then AC_CHECK_HEADER(GL/gl.h, [ - AC_CHECK_LIB(GL, glInitNames, [ - OPENGL_LINK="-lGL" - AC_DEFINE(wxUSE_OPENGL) - UTILS_SUBDIRS="$UTILS_SUBDIRS glcanvas/src" + AC_DEFINE(wxUSE_OPENGL) + AC_DEFINE(wxUSE_GLCANVAS) + AC_CHECK_LIB(GL, glFlush, [ + OPENGL_LINK="-lGL -lGLU" ],[ - AC_CHECK_LIB(MesaGL, glInitNames, [ - OPENGL_LINK="-lMesaGL" - AC_DEFINE(wxUSE_OPENGL) - UTILS_SUBDIRS="$UTILS_SUBDIRS glcanvas/src" - ],wxUSE_OPENGL=0) - ],wxUSE_OPENGL=0) + AC_CHECK_LIB(MesaGL, glFlush, [ + OPENGL_LINK="-lMesaGL -lMesaGLU" + ],) + ],) ],wxUSE_OPENGL=0) fi @@ -2605,6 +2921,10 @@ if test "$wxUSE_ZIPSTREAM" = "yes"; then AC_DEFINE(wxUSE_ZIPSTREAM) fi +if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then + AC_DEFINE(wxUSE_ON_FATAL_EXCEPTION) +fi + if test "$wxUSE_BUSYINFO" = "yes"; then AC_DEFINE(wxUSE_BUSYINFO) fi @@ -2636,6 +2956,7 @@ if test "$wxUSE_INTL" = "yes" ; then else AC_DEFINE(wxUSE_INTL) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS internat" + GUIDIST="$GUIDIST INTL_DIST" fi fi @@ -2878,26 +3199,31 @@ dnl --------------------------------------------------------------------------- dnl Joystick support dnl --------------------------------------------------------------------------- +if test "$wxUSE_GUI" = "yes"; then + dnl under MSW we always have joystick support if test "$TOOLKIT" != "MSW"; then -if test "$wxUSE_JOYSTICK" = 1; then +if test "$wxUSE_JOYSTICK" = "yes"; then dnl joystick support is only for Linux 2.1.x or greater AC_CHECK_HEADERS(linux/joystick.h) if test "$ac_cv_header_linux_joystick_h" != "yes"; then - wxUSE_JOYSTICK=0 - AC_MSG_WARN(Joystick not supported yb this system, disabled) + wxUSE_JOYSTICK=no + AC_MSG_WARN(Joystick not supported by this system, disabled) fi fi fi dnl if !MSW -if test "$wxUSE_JOYSTICK" = 1; then +if test "$wxUSE_JOYSTICK" = "yes"; then AC_DEFINE(wxUSE_JOYSTICK) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest" fi +fi +dnl if wxUSE_GUI + dnl ------------------------------------------------------------------------ dnl DLL support dnl ------------------------------------------------------------------------ @@ -2928,10 +3254,24 @@ if test "$wxUSE_DYNLIB_CLASS" = "yes"; then [ AC_DEFINE(HAVE_SHL_LOAD) HAVE_SHL_FUNCS=1 + ], + [ + AC_CHECK_LIB(shl_load, dld, + [ + HAVE_SHL_FUNCS=1 + LIBS="$LIBS -ldld" + ]) ]) ]) ]) + dnl check also for dlerror() + if test "$HAVE_DL_FUNCS" = 1; then + AC_CHECK_FUNCS(dlerror, + AC_DEFINE(HAVE_DLERROR), + AC_CHECK_LIB(dl, dlerror, AC_DEFINE(HAVE_DLERROR))) + fi + if test "$HAVE_DL_FUNCS" = 0; then if test "$HAVE_SHL_FUNCS" = 0; then if test "$USE_UNIX" = 1; then @@ -3062,6 +3402,10 @@ dnl IPC: IPC, Drag'n'Drop, Clipboard, ... dnl --------------------------------------------------------------------------- if test "$wxUSE_IPC" = "yes"; then + if test "$wxUSE_SOCKETS" != "yes"; then + AC_MSG_WARN(wxWindows IPC classes require sockets, disabled) + fi + AC_DEFINE(wxUSE_IPC) fi @@ -3354,20 +3698,31 @@ dnl --------------------------------------------------------------------------- dnl get the string with OS info - used by wxGetOsDescription() dnl --------------------------------------------------------------------------- -OSINFO=`uname -s -r -m` -OSINFO="\"$OSINFO\"" +if test "$cross_compiling" = "yes"; then + dnl Use best guess from host as we can't use uname when cross compiling + OSINFO="\"$host\"" +else + dnl attualy work out OS version + OSINFO=`uname -s -r -m` + OSINFO="\"$OSINFO\"" +fi + AC_DEFINE_UNQUOTED(WXWIN_OS_DESCRIPTION, $OSINFO) dnl --------------------------------------------------------------------------- dnl Output the makefiles and such from the results found above dnl --------------------------------------------------------------------------- -GUILIBS="$GUI_TK_LIBRARY $OPENGL_LINK $LIBPNG_LINK $ZLIB_LINK $TOOLKIT_LINK" +GUILIBS="$GUI_TK_LIBRARY $TOOLKIT_LINK" +OPENGL_LIBS="$OPENGL_LINK" dnl all additional libraries (except wxWindows itself) we link with -EXTRA_LIBS="$LIBS $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK" +dnl +dnl note that we always link with -lm - extended.c uses floor() and is always +dnl linked in +EXTRA_LIBS="$LIBS $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK $ZLIB_LINK -lm" if test "$wxUSE_GUI" = "yes"; then - EXTRA_LIBS="$EXTRA_LIBS $GUILIBS" + EXTRA_LIBS="$GUILIBS $PNG_LINK $JPEG_LINK $TIFF_LINK $EXTRA_LIBS" fi dnl all the libraries needed to link wxWindows programs when using the @@ -3377,6 +3732,13 @@ LD_LIBS="\${top_builddir}/lib/${WX_LIBRARY_NAME_STATIC} $EXTRA_LIBS" dnl all -I options we must pass to the compiler INCLUDES="-I. -I\${top_builddir}/include -I\${top_srcdir}/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 + WXCONFIG_INCLUDE="" +else + WXCONFIG_INCLUDE="$TOOLKIT_INCLUDE" +fi + dnl C/C++ compiler options used to compile wxWindows if test "$GXX" = yes ; then dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror" @@ -3386,7 +3748,7 @@ if test "$GXX" = yes ; then fi EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE $INCLUDES" -CFLAGS=`echo $CFLAGS $EXTRA_CFLAGS | sed 's/ \\+/ /g'` +CFLAGS=`echo $CFLAGS $EXTRA_CFLAGS $CXXWARNINGS | sed 's/ \\+/ /g'` CXXFLAGS=`echo $CXXFLAGS $EXTRA_CFLAGS $CXXWARNINGS | sed 's/ \+/ /g'` LDFLAGS="$LDFLAGS $PROFILE" @@ -3398,7 +3760,7 @@ if test "$wxUSE_GUI" = "yes"; then dnl TODO some samples are never built so far: dnl ipc, mfc, nativdlg, oleauto, ownerdrw, proplist SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS controls dialogs dragimag drawing dynamic \ - font fractal image minimal richedit" + font fractal image menu minimal richedit" dnl this is needed to be able to find AFM files CPPFLAGS="$CPPFLAGS \$(EXTRADEFS) \$(APPEXTRADEFS)" @@ -3434,6 +3796,16 @@ AC_SUBST(WX_LIBRARY_LINK2) AC_SUBST(WX_LIBRARY_LINK3) AC_SUBST(PROGRAM_EXT) +dnl global gl options +AC_SUBST(WX_LIBRARY_NAME_GL) +AC_SUBST(WX_LIBRARY_NAME_STATIC_GL) +AC_SUBST(WX_LIBRARY_NAME_SHARED_GL) +AC_SUBST(WX_LIBRARY_GL) +AC_SUBST(WX_TARGET_LIBRARY_GL) +AC_SUBST(WX_LIBRARY_LINK1_GL) +AC_SUBST(WX_LIBRARY_LINK2_GL) +AC_SUBST(WX_LIBRARY_LINK3_GL) + dnl are we supposed to create the links? AC_SUBST(WX_ALL) AC_SUBST(WX_ALL_INSTALLED) @@ -3443,6 +3815,9 @@ AC_SUBST(PIC_FLAG) AC_SUBST(DEP_INFO_FLAGS) AC_SUBST(CODE_GEN_FLAGS) AC_SUBST(BURNT_LIBRARY_NAME) +AC_SUBST(BURNT_LIBRARY_NAME_GL) +AC_SUBST(WX_TARGET_LIBRARY_SONAME) +AC_SUBST(WX_TARGET_LIBRARY_TYPE) dnl debugging options AC_SUBST(WXDEBUG_DEFINE) @@ -3453,7 +3828,9 @@ AC_SUBST(AFMINSTALL) AC_SUBST(TOOLKIT) AC_SUBST(TOOLKIT_DEF) AC_SUBST(TOOLKIT_DIR) +AC_SUBST(TOOLKIT_NAME) AC_SUBST(TOOLKIT_INCLUDE) +AC_SUBST(WXCONFIG_INCLUDE) dnl what to compile AC_SUBST(GUIHEADERS) @@ -3487,10 +3864,26 @@ AC_SUBST(USER_SUBDIRS) dnl additional libraries and linker settings AC_SUBST(LDFLAGS) AC_SUBST(EXTRA_LIBS) +AC_SUBST(OPENGL_LIBS) AC_SUBST(EXTRADEFS) AC_SUBST(LIBS) AC_SUBST(LD_LIBS) +dnl additional resurces settings +AC_SUBST(RCINPUTSWITCH) +AC_SUBST(RCOUTPUTSWITCH) +AC_SUBST(RESPROGRAM) +AC_SUBST(RESCOMP) +AC_SUBST(RESFLAGS) + +dnl These seam to be missing +AC_SUBST(DLLTOOL) +AC_SUBST(AS) +AC_SUBST(NM) +AC_SUBST(LD) +AC_SUBST(MAKEINFO) + + dnl MAKE_SET will be replaced with "MAKE=..." or nothing if make sets MAKE dnl itself (this is macro is required if SUBDIRS variable is used in Makefile.am dnl - and we do use it) @@ -3511,25 +3904,14 @@ AC_CONFIG_HEADER(setup.h:setup.h.in) dnl some more GUI only things if test "$wxUSE_GUI" = "yes"; then - AC_CACHE_CHECK([glcanvas subdirectory to use], wx_cv_path_glcanvas, - [ - dnl Duh! glcanvas/$(TOOLKIT_DIR) doesn't work for msw because some - dnl genius called it "win" - if test "${TOOLKIT_DIR}" = "msw" ; then - wx_cv_path_glcanvas="win" - else - wx_cv_path_glcanvas="${TOOLKIT_DIR}" - fi - ]) - - dnl It's needed in glcanvas/Makefile.in so we even have to subst this hack! - GL_TOOLKIT_DIR=$wx_cv_path_glcanvas - AC_SUBST(GL_TOOLKIT_DIR) - - dnl another hack: we need to pass SAMPLES_SUBDIRS to the configure in + 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 - AC_CONFIG_SUBDIRS(demos samples utils) + wx_cv_path_ifs=$PATH_IFS + wx_cv_program_ext=$PROGRAM_EXT + wx_cv_target_library=$WX_TARGET_LIBRARY + wx_cv_target_libtype=$WX_TARGET_LIBRARY_TYPE + AC_CONFIG_SUBDIRS(demos samples utils contrib) fi dnl from wxUSE_GUI @@ -3545,11 +3927,11 @@ AC_OUTPUT([ ], [ chmod +x wx-config - mv wx-config wx${TOOLKIT_DIR}-config - ${LN_S} wx${TOOLKIT_DIR}-config wx-config + mv wx-config wx${TOOLKIT_NAME}-config + ${LN_S} wx${TOOLKIT_NAME}-config wx-config - dnl the debian installer wants setup.h to be in the lib subdir - dnl so we *copy* it there + 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 @@ -3563,11 +3945,11 @@ AC_OUTPUT([ if test ! -d lib/wx/include/wx; then mkdir lib/wx/include/wx fi - if test ! -d lib/wx/include/wx/${TOOLKIT_DIR}; then - mkdir lib/wx/include/wx/${TOOLKIT_DIR} + if test ! -d lib/wx/include/wx/${TOOLKIT_NAME}; then + mkdir lib/wx/include/wx/${TOOLKIT_NAME} fi if test -f setup.h; then - cp -f setup.h lib/wx/include/wx/${TOOLKIT_DIR}/setup.h + cp -f setup.h lib/wx/include/wx/${TOOLKIT_NAME}/setup.h fi dnl *move* setup.h to its final place @@ -3588,6 +3970,7 @@ AC_OUTPUT([ ], [ TOOLKIT_DIR="${TOOLKIT_DIR}" + TOOLKIT_NAME="${TOOLKIT_NAME}" LN_S="${LN_S}" ] )