X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3283290881daec2a6d81caaa36ecae1064a67051..f3412ea74858605b2d52c97a2c916ffca8d55c98:/configure.in diff --git a/configure.in b/configure.in index b2fd48107e..1d3f5e5ab3 100644 --- a/configure.in +++ b/configure.in @@ -442,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: @@ -455,8 +456,8 @@ 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 @@ -491,6 +492,7 @@ USE_ALPHA= USE_OSF= USE_BSD= USE_FREEBSD= +USE_NETBSD= USE_VMS= USE_ULTRIX= USE_CYGWIN= @@ -503,13 +505,14 @@ dnl than checking it during run-time NEEDS_D_REENTRANT_FOR_R_FUNCS=0 dnl the list of all available toolkits -ALL_TOOLKITS="CYGWIN GTK MINGW MOTIF WINE PM" +ALL_TOOLKITS="CYGWIN GTK MINGW MOTIF MAC WINE PM" dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones dnl which are either yes or no DEFAULT_wxUSE_GTK=0 DEFAULT_wxUSE_MOTIF=0 DEFAULT_wxUSE_MSW=0 +DEFAULT_wxUSE_MAC=0 DEFAULT_wxUSE_WINE=0 DEFAULT_wxUSE_PM=0 @@ -519,6 +522,7 @@ dnl nothing was found in the cache DEFAULT_DEFAULT_wxUSE_GTK=0 DEFAULT_DEFAULT_wxUSE_MOTIF=0 DEFAULT_DEFAULT_wxUSE_MSW=0 +DEFAULT_DEFAULT_wxUSE_MAC=0 DEFAULT_DEFAULT_wxUSE_WINE=0 DEFAULT_DEFAULT_wxUSE_PM=0 @@ -571,19 +575,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 @@ -628,6 +640,15 @@ case "${host}" in DEFAULT_DEFAULT_wxUSE_PM=1 ;; + *-*-darwin* ) + USE_BSD=1 + USE_MAC=1 + AC_DEFINE(__MAC__) + AC_DEFINE(__BSD__) + AC_DEFINE(__UNIX__) + DEFAULT_DEFAULT_wxUSE_MAC=1 + ;; + *-*-beos* ) dnl leave USE_UNIX on - BeOS is sufficiently Unix-like for this USE_BEOS=1 @@ -699,8 +720,10 @@ 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 DEFAULT_wxUSE_STD_IOSTREAM=no DEFAULT_wxUSE_FILE=no DEFAULT_wxUSE_TEXTFILE=no @@ -715,6 +738,7 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_JOYSTICK=no DEFAULT_wxUSE_DYNLIB_CLASS=no DEFAULT_wxUSE_LONGLONG=no + DEFAULT_wxUSE_GEOMETRY=no DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=no DEFAULT_wxUSE_NORMALIZED_PS_FONTS=no @@ -766,7 +790,6 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_LISTBOX=no DEFAULT_wxUSE_LISTCTRL=no DEFAULT_wxUSE_NOTEBOOK=no - DEFAULT_wxUSE_PLOT=no DEFAULT_wxUSE_RADIOBOX=no DEFAULT_wxUSE_RADIOBTN=no DEFAULT_wxUSE_SASH=no @@ -780,6 +803,7 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_STATLINE=no DEFAULT_wxUSE_STATUSBAR=yes DEFAULT_wxUSE_TABDIALOG=no + DEFAULT_wxUSE_TOGGLEBTN=no DEFAULT_wxUSE_TOOLBAR=no DEFAULT_wxUSE_TOOLBAR_NATIVE=no DEFAULT_wxUSE_TOOLBAR_SIMPLE=no @@ -819,8 +843,10 @@ 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 DEFAULT_wxUSE_STD_IOSTREAM=no DEFAULT_wxUSE_FILE=yes DEFAULT_wxUSE_TEXTFILE=yes @@ -835,6 +861,7 @@ else DEFAULT_wxUSE_JOYSTICK=yes DEFAULT_wxUSE_DYNLIB_CLASS=yes DEFAULT_wxUSE_LONGLONG=yes + DEFAULT_wxUSE_GEOMETRY=yes DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=yes DEFAULT_wxUSE_NORMALIZED_PS_FONTS=yes @@ -886,7 +913,6 @@ else DEFAULT_wxUSE_LISTBOX=yes DEFAULT_wxUSE_LISTCTRL=yes DEFAULT_wxUSE_NOTEBOOK=yes - DEFAULT_wxUSE_PLOT=yes DEFAULT_wxUSE_RADIOBOX=yes DEFAULT_wxUSE_RADIOBTN=yes DEFAULT_wxUSE_SASH=yes @@ -900,6 +926,7 @@ else DEFAULT_wxUSE_STATLINE=yes DEFAULT_wxUSE_STATUSBAR=yes DEFAULT_wxUSE_TABDIALOG=no + DEFAULT_wxUSE_TOGGLEBTN=yes DEFAULT_wxUSE_TOOLBAR=yes DEFAULT_wxUSE_TOOLBAR_NATIVE=yes DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes @@ -946,6 +973,7 @@ if test "$wxUSE_GUI" = "yes"; then AC_ARG_WITH(gtk, [ --with-gtk use GTK+], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1]) AC_ARG_WITH(motif, [ --with-motif use Motif/Lesstif], [wxUSE_MOTIF="$withval" CACHE_MOTIF=1 TOOLKIT_GIVEN=1]) +AC_ARG_WITH(mac, [ --with-mac use Mac OS X], [wxUSE_MAC="$withval" TOOLKIT_GIVEN=1]) AC_ARG_WITH(wine, [ --with-wine use WINE], [wxUSE_WINE="$withval" CACHE_WINE=1 TOOLKIT_GIVEN=1]) AC_ARG_WITH(cygwin, [ --with-cygwin use Cygwin for MS-Windows], [wxUSE_CYGWIN="$withval" CACHE_CYGWIN=1 TOOLKIT_GIVEN=1]) AC_ARG_WITH(mingw, [ --with-mingw use GCC Minimal MS-Windows], [wxUSE_MINGW="$withval" CACHE_MINGW=1 TOOLKIT_GIVEN=1]) @@ -959,6 +987,7 @@ AC_ARG_WITH(gtk-exec-prefix, [ --with-gtk-exec-prefix=PFX Exec prefix where GT 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 @@ -1007,21 +1036,18 @@ 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) WX_ARG_ENABLE(fraction, [ --enable-fraction use wxFraction class], wxUSE_FRACTION) WX_ARG_ENABLE(dynlib, [ --enable-dynlib use wxLibrary class for DLL loading], wxUSE_DYNLIB_CLASS) WX_ARG_ENABLE(longlong, [ --enable-longlong use wxLongLong class], wxUSE_LONGLONG) +WX_ARG_ENABLE(geometry, [ --enable-geometry use geometry class], wxUSE_GEOMETRY) WX_ARG_ENABLE(log, [ --enable-log use logging system], wxUSE_LOG) WX_ARG_ENABLE(streams, [ --enable-streams use wxStream etc classes], wxUSE_STREAMS) WX_ARG_ENABLE(file, [ --enable-file use wxFile classes], wxUSE_FILE) @@ -1029,13 +1055,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 --------------------------------------------------------------------------- @@ -1078,6 +1105,7 @@ dnl --------------------------------------------------------------------------- WX_ARG_ENABLE(clipboard, [ --enable-clipboard use wxClipboard classes], wxUSE_CLIPBOARD) WX_ARG_ENABLE(dnd, [ --enable-dnd use Drag'n'Drop classes], wxUSE_DRAG_AND_DROP) +WX_ARG_ENABLE(metafile, [ --enable-metafile use win32 metafiles], wxUSE_METAFILE) dnl TODO: doesn't work yet WX_ARG_ENABLE(wxtree, [ --enable-wxtree make wxTree library], wxUSE_WXTREE) @@ -1119,6 +1147,7 @@ if test "$wxUSE_CONTROLS" = "yes"; then DEFAULT_wxUSE_STATLINE=yes DEFAULT_wxUSE_STATUSBAR=yes DEFAULT_wxUSE_TAB_DIALOG=yes + DEFAULT_wxUSE_TOGGLEBTN=yes DEFAULT_wxUSE_TOOLBAR=yes DEFAULT_wxUSE_TOOLBAR_NATIVE=yes DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes @@ -1152,6 +1181,7 @@ elif test "$wxUSE_CONTROLS" = "no"; then DEFAULT_wxUSE_STATLINE=no DEFAULT_wxUSE_STATUSBAR=no DEFAULT_wxUSE_TAB_DIALOG=no + DEFAULT_wxUSE_TOGGLEBTN=no DEFAULT_wxUSE_TOOLBAR=no DEFAULT_wxUSE_TOOLBAR_NATIVE=no DEFAULT_wxUSE_TOOLBAR_SIMPLE=no @@ -1186,6 +1216,7 @@ WX_ARG_ENABLE(statbox, [ --enable-statbox use wxStaticBox class], wx WX_ARG_ENABLE(statline, [ --enable-statline use wxStaticLine class], wxUSE_STATLINE) WX_ARG_ENABLE(statusbar, [ --enable-statusbar use wxStatusBar class], wxUSE_STATUSBAR) WX_ARG_ENABLE(tabdialog, [ --enable-tabdialog use wxTabControl class], wxUSE_TABDIALOG) +WX_ARG_ENABLE(togglebtn, [ --enable-togglebtn use wxToggleButton class], wxUSE_TOGGLEBTN) WX_ARG_ENABLE(toolbar, [ --enable-toolbar use wxToolBar class], wxUSE_TOOLBAR) WX_ARG_ENABLE(tbarnative, [ --enable-tbarnative use native wxToolBar class], wxUSE_TOOLBAR_NATIVE) WX_ARG_ENABLE(tbarsmpl, [ --enable-tbarsmpl use wxToolBarSimple class], wxUSE_TOOLBAR_SIMPLE) @@ -1206,7 +1237,7 @@ WX_ARG_ENABLE(tooltips, [ --enable-tooltips use wxToolTip class], wxUS WX_ARG_ENABLE(splines, [ --enable-splines use spline drawing code], wxUSE_SPLINES) WX_ARG_ENABLE(validators, [ --enable-validators use wxValidator and derived classes], wxUSE_VALIDATORS) WX_ARG_ENABLE(busyinfo, [ --enable-busyinfo use wxBusyInfo], wxUSE_BUSYINFO) -WX_ARG_ENABLE(plot, [ --enable-plot use wxPlot], wxUSE_PLOT) +WX_ARG_ENABLE(joystick, [ --enable-joystick compile in joystick support (Linux only)], wxUSE_JOYSTICK) dnl --------------------------------------------------------------------------- dnl support for image formats that do not rely on external library @@ -1253,7 +1284,7 @@ else fi dnl we suppose that expr exists... -NUM_TOOLKITS=`expr ${wxUSE_GTK:-0} + ${wxUSE_MOTIF:-0} + ${wxUSE_WINE:-0} + ${wxUSE_MINGW:-0} + ${wxUSE_CYGWIN:-0}` +NUM_TOOLKITS=`expr ${wxUSE_GTK:-0} + ${wxUSE_MOTIF:-0} + ${wxUSE_MAC:-0} + ${wxUSE_WINE:-0} + ${wxUSE_MINGW:-0} + ${wxUSE_CYGWIN:-0}` dnl Allow wxUSE_PM only for OS/2 with EMX. dnl Path separator; ':' for unix. @@ -1312,8 +1343,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 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 @@ -1323,7 +1353,6 @@ if eval "test $host != $build"; then LD=$host_alias-ld NM=$host_alias-nm STRIP=$host_alias-strip - fi fi dnl C-compiler checks @@ -1390,7 +1419,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 @@ -1524,21 +1553,19 @@ USE_GUI=1 TOOLKIT= TOOLKIT_INCLUDE= -GUIOBJS= -COMMONOBJS= -GENERICOBJS= - 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) @@ -1556,23 +1583,17 @@ 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 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" fi TOOLKIT=MSW - - GUIOBJS="\$(MSW_GUIOBJS)" - GUIHEADERS="\$(MSW_HEADERS)" - COMMONOBJS="\$(MSW_COMMONOBJS)" - GENERICOBJS="\$(MSW_GENERICOBJS)" - UNIXOBJS= GUIDIST=MSW_DIST dnl we should calculate these @@ -1591,9 +1612,12 @@ 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 @@ -1602,15 +1626,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 @@ -1626,19 +1641,9 @@ dnl GUI_TK_LIBRARY="$GTK_LIBS -gthread12" dnl else dnl GUI_TK_LIBRARY="$GTK_LIBS -lgthread" dnl fi - TOOLKIT=GTK AFMINSTALL=afminstall - - GUIOBJS="\$(GTK_GUIOBJS)" - GUIHEADERS="\$(GTK_HEADERS)" - COMMONOBJS="\$(GTK_COMMONOBJS)" - GENERICOBJS="\$(GTK_GENERICOBJS)" - GUIDEPS="\$(GTK_GUIDEPS)" - COMMONDEPS="\$(GTK_COMMONDEPS)" - GENERICDEPS="\$(GTK_GENERICDEPS)" - UNIXOBJS="\$(UNIX_OBJS)" - UNIXDEPS="\$(UNIX_DEPS)" + TOOLKIT=GTK GUIDIST=GTK_DIST dnl test for XIM support in libgdk @@ -1680,30 +1685,25 @@ 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 - - GUIHEADERS="\$(MSW_HEADERS)" - GUIOBJS="\$(MSW_GUIOBJS)" - COMMONOBJS="\$(MSW_COMMONOBJS)" - GENERICOBJS="\$(MSW_GENERICOBJS)" - GUIDEPS="\$(MSW_GUIDEPS)" - COMMONDEPS="\$(MSW_COMMONDEPS)" - GENERICDEPS="\$(MSW_GENERICDEPS)" - UNIXOBJS="\$(UNIX_OBJS)" - UNIXDEPS="\$(UNIX_DEPS)" GUIDIST=MSW_DIST fi -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" @@ -1850,8 +1850,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 ], @@ -1862,34 +1862,20 @@ 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 - - GUIHEADERS="\$(MOTIF_HEADERS)" - GUIOBJS="\$(MOTIF_GUIOBJS)" - COMMONOBJS="\$(MOTIF_COMMONOBJS)" - GENERICOBJS="\$(MOTIF_GENERICOBJS)" - GUIDEPS="\$(MOTIF_GUIDEPS)" - COMMONDEPS="\$(MOTIF_COMMONDEPS)" - GENERICDEPS="\$(MOTIF_GENERICDEPS)" - UNIXOBJS="\$(UNIX_OBJS)" - UNIXDEPS="\$(UNIX_DEPS)" GUIDIST=MOTIF_DIST fi +if test "$wxUSE_MAC" = 1; then + TOOLKIT=MAC + dnl we can't call this MAC_DIST or autoconf thinks its a macro + GUIDIST=MACX_DIST +fi + if test "$wxUSE_PM" = 1; then TOOLKIT=PM - - GUIOBJS="\$(PM_GUIOBJS)" - GUIHEADERS="\$(PM_HEADERS)" - COMMONOBJS="\$(PM_COMMONOBJS)" - GENERICOBJS="\$(PM_GENERICOBJS)" - GUIDEPS="\$(PM_GUIDEPS)" - COMMONDEPS="\$(PM_COMMONDEPS)" - GENERICDEPS="\$(PM_GENERICDEPS)" - UNIXOBJS= - UNIXDEPS= GUIDIST=GTK_DIST fi @@ -1900,20 +1886,25 @@ 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) \$(OGLOBJS)" dnl ODBC objects are Unix only - if test "$TOOLKIT" != "MSW"; then - if test "$wxUSE_ODBC" = "yes" ; then - ALL_OBJECTS="${ALL_OBJECTS} \$(IODBCOBJS)" - fi + if test "$TOOLKIT" != "MSW" -a "$wxUSE_ODBC" = "yes" ; then + ALL_OBJECTS="${ALL_OBJECTS} \$(IODBCOBJS)" fi if test "$wxUSE_LIBJPEG" = "yes" ; then @@ -1928,6 +1919,9 @@ fi if test "$wxUSE_ZLIB" = "yes" ; then ALL_OBJECTS="${ALL_OBJECTS} \$(ZLIBOBJS)" fi + if test "$wxUSE_FREETYPE" = "yes" ; then + ALL_OBJECTS="${ALL_OBJECTS} \$(FREETYPEOBJS)" + fi ALL_DEPFILES="\$(GUIDEPS) \$(COMMONDEPS) \$(GENERICDEPS) \$(UNIXDEPS) \$(HTMLDEPS) \$(OGLDEPS)" PORT_FILES="src/\$(TOOLKITDIR)/files.lst" @@ -1940,15 +1934,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}" + 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" @@ -1985,6 +1992,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 --- @@ -1995,12 +2003,16 @@ 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_LIBRARY_NAME_SHARED_GL="libwx_${TOOLKIT_DIR}_gl.sl" + 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}" @@ -2014,6 +2026,8 @@ if test "$wxUSE_SHARED" = "yes"; then 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" @@ -2042,6 +2056,10 @@ if test "$wxUSE_SHARED" = "yes"; then 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" @@ -2060,11 +2078,27 @@ if test "$wxUSE_SHARED" = "yes"; then WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS" WX_ALL="CREATE_LINKS" ;; - *-*-freebsd* | *-*-netbsd*) + *-*-freebsd* | *-*-netbsd* ) SHARED_LD="${CC} -shared -o" PIC_FLAG="-fPIC" - 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 + ;; + *-*-darwin* ) + SHARED_LD="libtool -dynamic -o" + PIC_FLAG="-fPIC" + if test "$wxUSE_OPENGL" = "yes"; then + WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL" + WX_ALL="CREATE_LINKS CREATE_LINKS_GL" + else + WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS" + WX_ALL="CREATE_LINKS" + fi ;; *-*-osf* ) SHARED_LD="${CXX} -shared -o" @@ -2092,13 +2126,23 @@ if test "$wxUSE_SHARED" = "yes"; then dnl only static for now WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}" WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}" - WX_ALL="${WX_LIBRARY_NAME_STATIC}" + 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_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}" - WX_ALL="${WX_LIBRARY_NAME_STATIC}" + 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 @@ -2122,11 +2166,27 @@ if test "$wxUSE_SHARED" = "yes"; 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_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}" - WX_ALL="${WX_LIBRARY_NAME_STATIC}" + + 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 ------------------------------------------------------------------------ @@ -2137,16 +2197,24 @@ dnl defines HAVE_STRINGS_H (where some string functions live on AIX for example) AC_CHECK_HEADERS(strings.h) dnl defines HAVE_UNISTD_H AC_CHECK_HEADERS(unistd.h) +dnl defines HAVE_FCNTL_H +AC_CHECK_HEADERS(fcntl.h) dnl defines HAVE_WCHAR_H AC_CHECK_HEADERS(wchar.h) dnl defines HAVE_WCSTR_H 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 --------------------------------------------------------------------------- @@ -2179,7 +2247,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 @@ -2188,6 +2255,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 --------------------------------------------------------------------------- @@ -2201,6 +2272,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) @@ -2237,61 +2309,163 @@ 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 if we fail to find vsnprintf, also try for _vsnprintf as that is what +dnl we'll find under MSW if it exists. + +dnl final note: AC_TRY_COMPILE will only be executed if there is nothing in +dnl the cache so we have to do AC_DEFINE(HAVE_VSNPRINTF) below and not inside +dnl it or the symbol wouldn't be defined for the 2nd and subsequent configure +dnl runs + +dnl check for vsnprintf() - a safe version of vsprintf() +AC_CACHE_CHECK([for vsnprintf], wx_cv_func_vsnprintf, [ - 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; + } + + int wx_test_vsnprintf(const char *fmt, ...) + { + char *s; + + va_list argp; + va_start(argp, fmt); + vsnprintf(s, 42, fmt, argp); + va_end(argp); + ], [ + wx_cv_func_vsnprintf=yes + ], [ + AC_TRY_COMPILE([ + #include + #include + ], [ + int wx_test_vsnprintf(const char *, ...); + + wx_test_vsnprintf("%s"); + return 0; + } + + int wx_test_vsnprintf(const char *fmt, ...) + { + char *s; + + va_list argp; + va_start(argp, fmt); + _vsnprintf(s, 42, fmt, argp); + va_end(argp); + ], [ + wx_cv_func_vsnprintf=yes + ], [ + wx_cv_func_vsnprintf=no + ]) + ]) +]) - vsscanf("17", format, ap); +if test "$wx_cv_func_vsnprintf" = yes; then + AC_DEFINE(HAVE_VSNPRINTF) +else + AC_MSG_WARN(unsafe function sprintf will be used instead of snprintf) +fi - va_end(ap); +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); + ], [ + wx_cv_func_vsscanf=yes + ], [ + wx_cv_func_vsscanf=no + ]) ]) +if test "$wx_cv_func_vsscanf" = yes; then + AC_DEFINE(HAVE_VSSCANF) +fi + AC_LANG_RESTORE -dnl 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) dnl check for timegm() used by datetime.cpp AC_CHECK_FUNCS(timegm) +dnl look for a functiopn to modify the environment +AC_CHECK_FUNCS(putenv setenv, break) + HAVE_SOME_SLEEP_FUNC=0 if test "$USE_BEOS" = 1; then dnl BeOS has its own (wonder where did they get it from) sleep() function @@ -2300,6 +2474,13 @@ if test "$USE_BEOS" = 1; then HAVE_SOME_SLEEP_FUNC=1 fi +if test "$USE_MAC" = 1; then + dnl Mac OS X has both nanosleep and usleep + dnl but only usleep is defined in unistd.h + AC_DEFINE(HAVE_USLEEP) + HAVE_SOME_SLEEP_FUNC=1 +fi + if test "$HAVE_SOME_SLEEP_FUNC" != 1; then dnl try nanosleep() in libc and libposix4, if this fails - usleep() POSIX4_LINK= @@ -2312,7 +2493,9 @@ if test "$HAVE_SOME_SLEEP_FUNC" != 1; then POSIX4_LINK="-lposix4" ], [ - AC_CHECK_FUNCS(usleep) + AC_CHECK_FUNCS(usleep, + AC_DEFINE(HAVE_USLEEP), + ) AC_MSG_WARN([wxSleep() function will not work]) ] ) @@ -2323,9 +2506,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= @@ -2391,21 +2580,34 @@ fi if test "$wxUSE_THREADS" = "yes" ; then dnl find if POSIX threads are available + dnl AIX calls the library libpthreads - thanks IBM! + if test "$USE_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, [ THREADS_OBJ="threadpsx.lo" THREADS_LINK="c_r" ], [ - dnl VZ: SGI threads are not supported currently - AC_CHECK_HEADER(sys/prctl.h, [ - THREADS_OBJ="threadsgi.lo" + dnl thread functions are in libcc_dynamic under Mac OS X/Darwin + AC_CHECK_LIB(cc_dynamic, pthread_create, [ + THREADS_OBJ="threadpsx.lo" + THREADS_LINK="cc_dynamic" + ], [ + dnl VZ: SGI threads are not supported currently + AC_CHECK_HEADER(sys/prctl.h, [ + THREADS_OBJ="threadsgi.lo" + ]) ]) ]) ]) @@ -2445,21 +2647,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])) @@ -2479,6 +2693,14 @@ if test "$wxUSE_THREADS" = "yes" ; then ]) THREADS_LINK="-l$THREADS_LINK" + + dnl building MT programs under Solaris with the native compiler requires -mt + dnl switch + if test "$USE_SOLARIS" = "yes" -a "$GCC" != "yes"; then + CFLAGS="${CFLAGS} -mt" + CXXFLAGS="${CXXFLAGS} -mt" + LDFLAGS="${LDFLAGS} -mt" + fi fi dnl from if !MSW @@ -2507,8 +2729,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 @@ -2516,10 +2738,19 @@ 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 +if test "$wxUSE_MAC" = 1 ; then + TOOLKIT_DEF="${TOOLKIT_DEF} -D__UNIX__ -DTARGET_CARBON" + TOOLKIT_INCLUDE="${TOOLKIT_INCLUDE}" +fi + if test "$wxUSE_CYGWIN" = 1 ; then TOOLKIT_DEF="${TOOLKIT_DEF} -D__WIN95__" fi @@ -2563,12 +2794,13 @@ fi DEP_INFO_FLAGS= CODE_GEN_FLAGS= +CODE_GEN_FLAGS_CXX= if test "$GCC" = yes ; then if test "$wxUSE_NO_RTTI" = "yes" ; then - CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fno-rtti" + CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS -fno-rtti" fi if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then - CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fno-exceptions" + CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS -fno-exceptions" fi if test "$wxUSE_PERMISSIVE" = "yes" ; then CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fpermissive" @@ -2673,15 +2905,34 @@ if test "$wxUSE_LIBTIFF" = "yes" -o "$wxUSE_LIBTIFF" = "sys" ; then fi fi +FREETYPE_INCLUDE= +if test "$wxUSE_FREETYPE" = "yes" -o "$wxUSE_FREETYPE" = "sys" ; then + AC_DEFINE(wxUSE_FREETYPE) + if test "$wxUSE_FREETYPE" = "yes" ; then + FREETYPE_INCLUDE="-I\${top_srcdir}/src/freetype" + else + FREETYPE_LINK= + AC_CHECK_HEADER(freetype.h, + AC_CHECK_LIB(freetype, FT_Render_Glyph, + FREETYPE_LINK="-lfreetype", + , + [-lm]) + ) + if test "x$FREETYPE_LINK" = "x" ; then + AC_MSG_ERROR(system freetype library not found! Use --with-freetype=yes to use the built-in freetype) + fi + fi +fi + if test "$wxUSE_OPENGL" = "yes"; then AC_CHECK_HEADER(GL/gl.h, [ AC_DEFINE(wxUSE_OPENGL) AC_DEFINE(wxUSE_GLCANVAS) AC_CHECK_LIB(GL, glFlush, [ - OPENGL_LINK="-lGL" + OPENGL_LINK="-lGL -lGLU" ],[ AC_CHECK_LIB(MesaGL, glFlush, [ - OPENGL_LINK="-lMesaGL" + OPENGL_LINK="-lMesaGL -lMesaGLU" ],) ],) ],wxUSE_OPENGL=0) @@ -2749,6 +3000,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 @@ -2780,6 +3035,7 @@ if test "$wxUSE_INTL" = "yes" ; then else AC_DEFINE(wxUSE_INTL) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS internat" + GUIDIST="$GUIDIST INTL_DIST" fi fi @@ -2791,8 +3047,8 @@ if test "$wxUSE_LONGLONG" = "yes"; then AC_DEFINE(wxUSE_LONGLONG) fi -if test "$wxUSE_PLOT" = "yes"; then - AC_DEFINE(wxUSE_PLOT) +if test "$wxUSE_GEOMETRY" = "yes"; then + AC_DEFINE(wxUSE_GEOMETRY) fi if test "$wxUSE_DIALUP_MANAGER" = "yes" ; then @@ -2955,8 +3211,9 @@ if test "$wxUSE_SOCKETS" = "yes"; then ) fi -fi -dnl if !MSW +dnl this test may be appropriate if building under cygwin +dnl right now I'm assuming it also uses the winsock stuff +dnl like mingw does.. -- RL if test "$wxUSE_SOCKETS" = "yes" ; then dnl determine the type of third argument for getsockname @@ -3012,6 +3269,9 @@ if test "$wxUSE_SOCKETS" = "yes" ; then fi fi +fi +dnl if !MSW + if test "$wxUSE_SOCKETS" = "yes" ; then AC_DEFINE(wxUSE_SOCKETS) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sockets" @@ -3022,26 +3282,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 ------------------------------------------------------------------------ @@ -3052,10 +3317,14 @@ if test "$TOOLKIT" != "MSW"; then HAVE_DL_FUNCS=0 HAVE_SHL_FUNCS=0 if test "$wxUSE_DYNLIB_CLASS" = "yes"; then - dnl the test is a bit complicated because we check for dlopen() both with - dnl and without -ldl and we also try to find shl_load() if there is no - dnl dlopen() on this system - AC_CHECK_FUNCS(dlopen, + if test "$USE_MAC" = 1; then + dnl Mac OS X needs dl_macosx.c to be compiled in to fake dlopen/dlerror + HAVE_DL_FUNCS=1 + else + dnl the test is a bit complicated because we check for dlopen() both with + dnl and without -ldl and we also try to find shl_load() if there is no + dnl dlopen() on this system + AC_CHECK_FUNCS(dlopen, [ AC_DEFINE(HAVE_DLOPEN) HAVE_DL_FUNCS=1 @@ -3072,10 +3341,25 @@ 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 + fi + if test "$HAVE_DL_FUNCS" = 0; then if test "$HAVE_SHL_FUNCS" = 0; then if test "$USE_UNIX" = 1; then @@ -3131,9 +3415,6 @@ if test "$wxUSE_ODBC" = "yes" ; then AC_DEFINE(wxUSE_ODBC) WXODBCFLAG="-D_IODBC_" SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db" - IODBCOBJS="\$(IODBC_OBJS)" -else - IODBCOBJS= fi dnl ---------------------------------------------------------------- @@ -3206,6 +3487,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 @@ -3229,8 +3514,28 @@ if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then if test "$USE_WIN32" = 1; then dnl check for ole headers and disable DnD if not present (earlier dnl versions of mingw32 don't have them) + AC_CHECK_HEADERS(ole2.h) - if test "x$HAVE_OLE2_H" = x ; then + + dnl for some reason this test always fails here?? + dnl if test "x$HAVE_OLE2_H" != x ; then + dnl this one does the right thing though + if test "$ac_cv_header_ole2_h" = "yes" ; then + if test "$GCC" = yes ; then + ALL_OBJECTS="$ALL_OBJECTS \$(OLEOBJS)" + ALL_DEPFILES="$ALL_DEPFILES \$(OLEDEPS)" + CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fvtable-thunks" + LIBS="$LIBS -lole32 -luuid" + + dnl metafiles need the ole code, right?? if not this + dnl doesn't need to be in here. + if test "$wxUSE_METAFILE" = "yes"; then + AC_DEFINE(wxUSE_METAFILE) + dnl this one should probably be made separately configurable + AC_DEFINE(wxUSE_ENH_METAFILE) + fi + fi + else AC_MSG_WARN(Drag and drop disabled because OLE headers not found) wxUSE_DRAG_AND_DROP=no fi @@ -3380,6 +3685,10 @@ if test "$wxUSE_TABDIALOG" = "yes"; then SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS tab" fi +if test "$wxUSE_TOGGLEBTN" = "yes"; then + AC_DEFINE(wxUSE_TOGGLEBTN) +fi + if test "$wxUSE_TOOLBAR_SIMPLE" = "yes"; then AC_DEFINE(wxUSE_TOOLBAR_SIMPLE) wxUSE_TOOLBAR="yes" @@ -3430,10 +3739,6 @@ dnl if test "$wxUSE_WXTREE" = "yes"; then dnl AC_DEFINE(wxUSE_WXTREE) dnl fi -if test "$wxUSE_METAFILE" = "yes"; then - AC_DEFINE(wxUSE_METAFILE) -fi - if test "$wxUSE_DIRDLG" = "yes"; then if test "$wxUSE_CONSTRAINTS" != "yes"; then AC_MSG_WARN(wxDirDialog requires constraints so it won't be compiled without them) @@ -3513,12 +3818,22 @@ dnl --------------------------------------------------------------------------- dnl Output the makefiles and such from the results found above dnl --------------------------------------------------------------------------- -GUILIBS="$GUI_TK_LIBRARY $OPENGL_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 $ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK" +dnl +dnl note that we always link with -lm except for Mac OS X +dnl extended.c uses floor() and is always linked in +if test "$USE_MAC" = 1 ; then + EXTRA_LIBS="$LIBS $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK $ZLIB_LINK -framework System" + CFLAGS="${CFLAGS} -fpascal-strings" + CPPFLAGS="${CPPFLAGS} -fpascal-strings" +else + EXTRA_LIBS="$LIBS $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK $ZLIB_LINK -lm" +fi if test "$wxUSE_GUI" = "yes"; then - EXTRA_LIBS="$EXTRA_LIBS $GUILIBS $PNG_LINK $JPEG_LINK $TIFF_LINK" + EXTRA_LIBS="$GUILIBS $PNG_LINK $JPEG_LINK $TIFF_LINK $FREETYPE_LINK $EXTRA_LIBS" fi dnl all the libraries needed to link wxWindows programs when using the @@ -3526,7 +3841,14 @@ dnl makefile system without libtool 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 -I\${top_srcdir}/contrib/include $ZLIB_INCLUDE $PNG_INCLUDE $JPEG_INCLUDE $TIFF_INCLUDE $TOOLKIT_INCLUDE" +INCLUDES="-I. -I\${top_builddir}/include -I\${top_srcdir}/include $ZLIB_INCLUDE $PNG_INCLUDE $JPEG_INCLUDE $TIFF_INCLUDE $FREETYPE_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 @@ -3537,7 +3859,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" @@ -3548,8 +3870,9 @@ if test "$wxUSE_GUI" = "yes"; then dnl TODO some samples are never built so far: dnl ipc, mfc, nativdlg, oleauto, ownerdrw, proplist - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS controls dialogs dragimag drawing dynamic \ - font fractal image menu minimal richedit" + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS controls dialogs dragimag \ + drawing dynamic event font fractal image menu \ + minimal richedit" dnl this is needed to be able to find AFM files CPPFLAGS="$CPPFLAGS \$(EXTRADEFS) \$(APPEXTRADEFS)" @@ -3603,8 +3926,11 @@ AC_SUBST(SHARED_LD) AC_SUBST(PIC_FLAG) AC_SUBST(DEP_INFO_FLAGS) AC_SUBST(CODE_GEN_FLAGS) +AC_SUBST(CODE_GEN_FLAGS_CXX) AC_SUBST(BURNT_LIBRARY_NAME) AC_SUBST(BURNT_LIBRARY_NAME_GL) +AC_SUBST(WX_TARGET_LIBRARY_SONAME) +AC_SUBST(WX_TARGET_LIBRARY_TYPE) dnl debugging options AC_SUBST(WXDEBUG_DEFINE) @@ -3615,19 +3941,11 @@ 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) -AC_SUBST(GUIOBJS) -AC_SUBST(COMMONOBJS) -AC_SUBST(GENERICOBJS) -AC_SUBST(GUIDEPS) -AC_SUBST(COMMONDEPS) -AC_SUBST(GENERICDEPS) -AC_SUBST(IODBCOBJS) -AC_SUBST(UNIXOBJS) -AC_SUBST(UNIXDEPS) AC_SUBST(ALL_OBJECTS) AC_SUBST(ALL_DEPFILES) @@ -3649,6 +3967,7 @@ 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) @@ -3694,6 +4013,7 @@ if test "$wxUSE_GUI" = "yes"; then 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 @@ -3710,11 +4030,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 @@ -3728,11 +4048,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 -fp setup.h lib/wx/include/wx/${TOOLKIT_NAME}/setup.h fi dnl *move* setup.h to its final place @@ -3747,12 +4067,13 @@ AC_OUTPUT([ mkdir include/wx/${TOOLKIT_DIR} fi if test -f setup.h; then - mv -f setup.h include/wx/${TOOLKIT_DIR}/setup.h + cp -fp setup.h include/wx/${TOOLKIT_DIR}/setup.h fi ], [ TOOLKIT_DIR="${TOOLKIT_DIR}" + TOOLKIT_NAME="${TOOLKIT_NAME}" LN_S="${LN_S}" ] )