#include <gtk/gtk.h>
#include <gtk/gtkfeatures.h>
#include <stdio.h>
+#include <stdlib.h>
int
main ()
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,
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:
dnl
dnl WX_RELEASE_NUMBER += 1
-dnl WX_INTERFACE_AGE += 1
-dnl WX_BINARY_AGE += 1
dnl
-dnl if any functions have been added, do:
+dnl ..and update WX_CURRENT, WX_RELEASE and WX_AGE according to the
+dnl following rules:
+dnl
+dnl If any changes have been made to the public interface, that is if any
+dnl exported class, method, global or global type has been added, removed
+dnl or changed in any way, then do: WX_CURRENT += 1
dnl
-dnl WX_INTERFACE_AGE = 0
+dnl If source changes have been made that *do not* alter the public
+dnl interface then do: WX_REVISION += 1
+dnl If WX_CURRENT was incremented (as above) instead do: WX_REVISION = 0
+dnl
+dnl If any public interface was added, do: WX_AGE += 1
+dnl If any public interface was removed (or altered in a way effectively
+dnl removing the previous definition), instead do: WX_AGE = 0
+dnl
+dnl When the major or minor version numbers are incremented, all the above
+dnl variables should be reset to 0.
+dnl
+dnl The resulting library name will be of the form:
+dnl libwx_$(TOOLKIT)-$(WX_RELEASE).so.$(WX_CURRENT).$(WX_REVISION).$(WX_AGE)
WX_MAJOR_VERSION_NUMBER=2
-WX_MINOR_VERSION_NUMBER=1
-WX_RELEASE_NUMBER=14
-
-WX_INTERFACE_AGE=0
-WX_BINARY_AGE=0
+WX_MINOR_VERSION_NUMBER=3
+WX_RELEASE_NUMBER=0
WX_VERSION=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER.$WX_RELEASE_NUMBER
-
-dnl wxWindows shared library versioning
WX_RELEASE=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER
-WX_CURRENT=`expr $WX_RELEASE_NUMBER - $WX_INTERFACE_AGE`
-WX_REVISION=$WX_INTERFACE_AGE
-WX_AGE=`expr $WX_BINARY_AGE - $WX_INTERFACE_AGE`
+
+WX_CURRENT=0
+WX_REVISION=0
+WX_AGE=0
+
dnl ------------------------------------------------------------------------
dnl Check platform (host system)
USE_OSF=
USE_BSD=
USE_FREEBSD=
+USE_NETBSD=
USE_VMS=
USE_ULTRIX=
USE_CYGWIN=
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
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
+PROGRAM_EXT=
+
dnl to support a new system, you need to add its canonical name (as determined
dnl by config.sub or specified by the configure command line) to this "case"
dnl and also define the shared library flags below - search for
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
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
DEFAULT_wxUSE_THREADS=yes
DEFAULT_wxUSE_SHARED=yes
+ DEFAULT_wxUSE_BURNT_NAME=no
DEFAULT_wxUSE_OPTIMISE=yes
DEFAULT_wxUSE_PROFILE=no
DEFAULT_wxUSE_NO_DEPS=no
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
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
DEFAULT_wxUSE_PROGRESSDLG=no
DEFAULT_wxUSE_MINIFRAME=no
DEFAULT_wxUSE_HTML=no
+ DEFAULT_wxUSE_FILESYSTEM=no
DEFAULT_wxUSE_FS_INET=no
DEFAULT_wxUSE_FS_ZIP=no
DEFAULT_wxUSE_BUSYINFO=no
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
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
DEFAULT_wxUSE_THREADS=yes
DEFAULT_wxUSE_SHARED=yes
+ DEFAULT_wxUSE_BURNT_NAME=no
DEFAULT_wxUSE_OPTIMISE=yes
DEFAULT_wxUSE_PROFILE=no
DEFAULT_wxUSE_NO_DEPS=no
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
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
DEFAULT_wxUSE_PROGRESSDLG=yes
DEFAULT_wxUSE_MINIFRAME=yes
DEFAULT_wxUSE_HTML=yes
+ DEFAULT_wxUSE_FILESYSTEM=yes
DEFAULT_wxUSE_FS_INET=yes
DEFAULT_wxUSE_FS_ZIP=yes
DEFAULT_wxUSE_BUSYINFO=yes
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
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
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])
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_SYS_WITH(freetype, [ --with-freetype use freetype (font rasterizer)], wxUSE_FREETYPE)
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 ====================
dnl ---------------------------------------------------------------------------
WX_ARG_ENABLE(shared, [ --enable-shared create shared library code], wxUSE_SHARED)
+WX_ARG_ENABLE(burnt_name, [ --enable-burnt_name create set name in shared library ], wxUSE_BURNT_NAME)
WX_ARG_ENABLE(optimise, [ --enable-optimise create optimised code], wxUSE_OPTIMISE)
WX_ARG_ENABLE(debug, [ --enable-debug same as debug_flag and debug_info], wxUSE_DEBUG)
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)
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 ---------------------------------------------------------------------------
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)
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
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
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)
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
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.
*)
PATH_IFS=':'
LEX_STEM="lex.yy"
- PROGRAM_EXT=
;;
esac
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
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
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)
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"
fi
TOOLKIT=MSW
-
- GUIOBJS="\$(MSW_GUIOBJS)"
- GUIHEADERS="\$(MSW_HEADERS)"
- COMMONOBJS="\$(MSW_COMMONOBJS)"
- 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
])
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
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
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"
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
],
)
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
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
- 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
if test "$wxUSE_ZLIB" = "yes" ; then
ALL_OBJECTS="${ALL_OBJECTS} \$(ZLIBOBJS)"
fi
- ALL_DEPFILES="\$(GUIDEPS) \$(COMMONDEPS) \$(GENERICDEPS) \$(UNIXDEPS) \$(HTMLDEPS)"
+ 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"
RPM_FILES="src/\$(TOOLKITDIR)/rpmfiles.lst"
GUIDIST="${GUIDIST} SAMPLES_DIST DEMOS_DIST UTILS_DIST MISC_DIST"
DISTDIR="wx\$(TOOLKIT)"
else
- dnl leave all TOOLKIT_XXX vars empty
-
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"
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=
WX_ALL=
WX_ALL_INSTALLED=
BURNT_LIBRARY_NAME=
+WX_TARGET_LIBRARY_SONAME=
dnl --- the marker for quick search, leave it here: SHARED_LIB_SETUP ---
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"
- dnl BURNT_LIBRARY_NAME="-Wl,-soname -Wl,${WX_LIBRARY_NAME_SHARED}"
+ 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* )
if test "$GCC" = 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"
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="${CXX} -dynamiclib -o"
+ PIC_FLAG="-dynamic -fPIC"
+ if test "$wxUSE_OPENGL" = "yes"; then
+ WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
+ WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
+ else
+ WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
+ WX_ALL="CREATE_LINKS"
+ fi
+ dnl the name of the shared library
+ WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}-${WX_RELEASE}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}.dylib"
+ WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}.dylib"
+ dnl the name of the links to the shared library
+ WX_LIBRARY_LINK1="lib${WX_LIBRARY}-${WX_RELEASE}.${WX_CURRENT}.dylib"
+ WX_LIBRARY_LINK2="lib${WX_LIBRARY}-${WX_RELEASE}.dylib"
+ WX_LIBRARY_LINK3="lib${WX_LIBRARY}.dylib"
+ WX_LIBRARY_LINK1_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.${WX_CURRENT}.dylib"
+ WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.dylib"
+ WX_LIBRARY_LINK3_GL="lib${WX_LIBRARY}_gl.dylib"
;;
*-*-osf* )
SHARED_LD="${CXX} -shared -o"
*-*-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
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 ------------------------------------------------------------------------
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 ---------------------------------------------------------------------------
],
[
wx_cv_struct_pw_gecos=yes
- AC_DEFINE(HAVE_PW_GECOS)
],
[
wx_cv_struct_pw_gecos=no
]
)
+if test "$wx_cv_struct_pw_gecos" = "yes"; then
+ AC_DEFINE(HAVE_PW_GECOS)
+fi
+
dnl ---------------------------------------------------------------------------
dnl Checks for compiler characteristics
dnl ---------------------------------------------------------------------------
dnl cross-compiling)
dnl defines the size of certain types of variables in SIZEOF_<TYPE>
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)
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 <stdio.h>
- #include <stdarg.h>
+ AC_TRY_COMPILE([
+ #include <stdio.h>
+ #include <stdarg.h>
+ ], [
+ 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);
+ ], [
+ wx_cv_func_vsnprintf=yes
+ ], [
+ AC_TRY_COMPILE([
+ #include <stdio.h>
+ #include <stdarg.h>
+ ], [
+ int wx_test_vsnprintf(const char *, ...);
+
+ wx_test_vsnprintf("%s");
+ return 0;
+ }
+
+ int wx_test_vsnprintf(const char *fmt, ...)
+ {
+ char *s;
+
+ va_list argp;
+ va_start(argp, fmt);
+ _vsnprintf(s, 42, fmt, argp);
+ va_end(argp);
+ ], [
+ wx_cv_func_vsnprintf=yes
+ ], [
+ wx_cv_func_vsnprintf=no
+ ])
+ ])
+])
+
+if test "$wx_cv_func_vsnprintf" = yes; then
+ AC_DEFINE(HAVE_VSNPRINTF)
+else
+ AC_MSG_WARN(unsafe function sprintf will be used instead of snprintf)
+fi
+
+dnl check for vsscanf()
+AC_CACHE_CHECK([for vsscanf], wx_cv_func_vsscanf,
+[
+ AC_TRY_COMPILE([
+ #include <stdio.h>
+ #include <stdarg.h>
+ ], [
+ 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 <signal.h>],
+ [
+ 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
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=
POSIX4_LINK="-lposix4"
],
[
- AC_CHECK_FUNCS(usleep)
+ AC_CHECK_FUNCS(usleep,
+ AC_DEFINE(HAVE_USLEEP),
+ )
AC_MSG_WARN([wxSleep() function will not work])
]
)
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=
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
+ elif test "$USE_MAC" = 1; then
+ THREADS_LIB=cc_dynamic
+ 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"
+ ])
])
])
])
)]
)
- 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]))
pthread_cleanup_pop(0);
], [
wx_cv_func_pthread_cleanup_push=yes
- AC_DEFINE(HAVE_THREAD_CLEANUP_FUNCTIONS)
], [
wx_cv_func_pthread_cleanup_push=no
])
])
+ if test "$wx_cv_func_pthread_cleanup_push" = "yes"; then
+ AC_DEFINE(HAVE_THREAD_CLEANUP_FUNCTIONS)
+ fi
+
+ dnl mutexattr_t initialization is done in quite different ways on different
+ dnl platforms, so check for a few things:
+ dnl
+ dnl HAVE_MUTEX_RECURSIVE means that we can create recursive mutexes
+ dnl HAVE_MUTEXATTR_SETTYPE means that we do it using
+ dnl pthread_mutexattr_settype(PTHREAD_MUTEX_RECURSIVE) and if it is not
+ dnl defined, we do it by directly assigned
+ dnl PTHREAD_MUTEX_RECURSIVE_MUTEX_INITIALIZER_NP to attr
+
+#ifdef HAVE_PTHREAD_MUTEXATTR_T
+#elif defined(HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER)
+
+ AC_CACHE_CHECK([for pthread_mutexattr_t], wx_cv_type_pthread_mutexattr_t,
+ [
+ AC_TRY_COMPILE([#include <pthread.h>],
+ [
+ pthread_mutexattr_t attr;
+ pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
+ ], [
+ wx_cv_type_pthread_mutexattr_t=yes
+ ], [
+ wx_cv_type_pthread_mutexattr_t=no
+ ]
+ )
+ ])
+
+ if test "$wx_cv_type_pthread_mutexattr_t" = "yes"; then
+ AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_T)
+ else
+ dnl don't despair, there may be another way to do it
+ AC_CACHE_CHECK([for PTHREAD_RECURSIVE_MUTEX_INITIALIZER],
+ wx_cv_type_pthread_rec_mutex_init,
+ [
+ AC_TRY_COMPILE([#include <pthread.h>],
+ [
+ pthread_mutex_t attr = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
+ ], [
+ wx_cv_type_pthread_rec_mutex_init=yes
+ ], [
+ wx_cv_type_pthread_rec_mutex_init=no
+ ]
+ )
+ ])
+ if test "$wx_cv_type_pthread_rec_mutex_init"="yes"; then
+ AC_DEFINE(HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER)
+ else
+ dnl this may break code working elsewhere, so at least warn about it
+ AC_MSG_WARN([wxMutex won't be recursive on this platform])
+ fi
+ fi
+
THREADS_LINK="-l$THREADS_LINK"
+
+ dnl building MT programs under Solaris with the native compiler requires -mt
+ 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
if test "$wxUSE_THREADS" = "yes"; then
AC_DEFINE(wxUSE_THREADS)
- dnl must define _REENTRANT for multithreaded code
- CFLAGS="${CFLAGS} -D_REENTRANT"
- CXXFLAGS="${CXXFLAGS} -D_REENTRANT"
+ dnl must define _REENTRANT for multithreaded code except for Mac OS X
+ if test "$wxUSE_MAC" = "0"; then
+ CFLAGS="${CFLAGS} -D_REENTRANT"
+ CXXFLAGS="${CXXFLAGS} -D_REENTRANT"
+ fi
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS thread"
else
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
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__ -D__POWERPC__ -DTARGET_CARBON"
+ CFLAGS="${CFLAGS} -fno-common -fpascal-strings"
+ CPPFLAGS="${CPPFLAGS} -fno-common -fpascal-strings"
+fi
+
if test "$wxUSE_CYGWIN" = 1 ; then
TOOLKIT_DEF="${TOOLKIT_DEF} -D__WIN95__"
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"
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
+
+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_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
AC_DEFINE(wxUSE_FILE)
fi
+if test "$wxUSE_FILESYSTEM" = "yes"; then
+ AC_DEFINE(wxUSE_FILESYSTEM)
+fi
+
if test "$wxUSE_FS_INET" = "yes"; then
AC_DEFINE(wxUSE_FS_INET)
fi
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
else
AC_DEFINE(wxUSE_INTL)
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS internat"
+ GUIDIST="$GUIDIST INTL_DIST"
fi
fi
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
)
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
fi
fi
+fi
+dnl if !MSW
+
if test "$wxUSE_SOCKETS" = "yes" ; then
AC_DEFINE(wxUSE_SOCKETS)
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sockets"
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 ------------------------------------------------------------------------
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
[
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
AC_DEFINE(wxUSE_ODBC)
WXODBCFLAG="-D_IODBC_"
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db"
- IODBCOBJS="\$(IODBC_OBJS)"
-else
- IODBCOBJS=
fi
dnl ----------------------------------------------------------------
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
wxUSE_DRAG_AND_DROP=no
fi
+ if test "$wxUSE_MAC" = 1; then
+ AC_MSG_WARN([Drag and drop is not yet supported under Mac OS X])
+ wxUSE_DRAG_AND_DROP=no
+ fi
+
if test "$USE_WIN32" = 1; then
dnl check for ole headers and disable DnD if not present (earlier
dnl versions of mingw32 don't have them)
+
AC_CHECK_HEADERS(ole2.h)
- if test "x$HAVE_OLE2_H" = x ; then
+
+ dnl for some reason this test always fails here??
+ dnl if test "x$HAVE_OLE2_H" != x ; then
+ dnl this one does the right thing though
+ if test "$ac_cv_header_ole2_h" = "yes" ; then
+ if test "$GCC" = yes ; then
+ ALL_OBJECTS="$ALL_OBJECTS \$(OLEOBJS)"
+ ALL_DEPFILES="$ALL_DEPFILES \$(OLEDEPS)"
+ CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fvtable-thunks"
+ LIBS="$LIBS -lole32 -luuid"
+
+ dnl metafiles need the ole code, right?? if not this
+ dnl doesn't need to be in here.
+ if test "$wxUSE_METAFILE" = "yes"; then
+ AC_DEFINE(wxUSE_METAFILE)
+ dnl this one should probably be made separately configurable
+ AC_DEFINE(wxUSE_ENH_METAFILE)
+ fi
+ fi
+ else
AC_MSG_WARN(Drag and drop disabled because OLE headers not found)
wxUSE_DRAG_AND_DROP=no
fi
AC_DEFINE(wxUSE_GAUGE)
fi
-if test "$wxUSE_GRID" = "yes"; then
- AC_DEFINE(wxUSE_GRID)
- SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS grid"
-fi
-
if test "$wxUSE_NEW_GRID" = "yes"; then
+ wxUSE_GRID="yes"
AC_DEFINE(wxUSE_NEW_GRID)
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS newgrid"
fi
+if test "$wxUSE_GRID" = "yes"; then
+ AC_DEFINE(wxUSE_GRID)
+ SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS grid"
+fi
+
if test "$wxUSE_IMAGLIST" = "yes"; then
AC_DEFINE(wxUSE_IMAGLIST)
fi
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"
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)
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 except for Mac OS X
+dnl extended.c uses floor() and is always linked in
+EXTRA_LIBS="$LIBS $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK $ZLIB_LINK -lm"
+if test "$USE_MAC" = 1 ; then
+ EXTRA_LIBS="$EXTRA_LIBS -framework Carbon -framework System"
+fi
if test "$wxUSE_GUI" = "yes"; then
- EXTRA_LIBS="$EXTRA_LIBS $GUILIBS"
+ 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
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"
+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
dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
CXXWARNINGS="-Wall"
- dnl FIXME: there is one weird warning in docview.h:71 which prevents me from
- dnl doing this... (VZ)
+ dnl should enable this one day...
dnl CXXWARNINGS="-Wall -Werror"
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"
dnl TODO some samples are never built so far:
dnl ipc, mfc, nativdlg, oleauto, ownerdrw, proplist
- SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS controls dialogs drawing dynamic \
- font fractal image 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)"
+ CPPFLAGS="$CPPFLAGS \$(EXTRADEFS) \$(APPEXTRADEFS)"
else
SAMPLES_SUBDIRS=""
fi
dnl
dnl FIXME For some mysterious reasons, sometimes the directories are duplicated
dnl in this list - hence uniq. But normally, this shouldn't be needed!
-dnl Unfortunately, there is a bug in OS/2's tr, such that
+dnl
+dnl Unfortunately, there is a bug in OS/2's tr, such that
dnl tr ' ' '\n' introduces DOS-like line breaks, whereas tr '\n' ' '
dnl only removes the Unix-like part of the introduced line break.
SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq | tr '\n' ' '| tr -d '\r'`"
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)
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)
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)
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)
AC_PROG_MAKE_SET
+dnl move setup.h back if available
+if test -d include; then
+ if test -d include/wx; then
+ if test -d include/wx/${TOOLKIT_DIR}; then
+ if test -f include/wx/${TOOLKIT_DIR}/setup.h; then
+ mv -f include/wx/${TOOLKIT_DIR}/setup.h setup.h
+ fi
+ fi
+ fi
+fi
+
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
],
[
chmod +x wx-config
+ mv wx-config wx${TOOLKIT_NAME}-config
+ ${LN_S} wx${TOOLKIT_NAME}-config wx-config
+
+ dnl the debian build process wants setup.h in the lib subdir so we
+ dnl can pretend wxWin is already installed, so we *copy* it there
+
+ if test ! -d lib; then
+ mkdir lib
+ fi
+ if test ! -d lib/wx; then
+ mkdir lib/wx
+ fi
+ if test ! -d lib/wx/include; then
+ mkdir lib/wx/include
+ fi
+ if test ! -d lib/wx/include/wx; then
+ mkdir lib/wx/include/wx
+ fi
+ 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 -fp setup.h lib/wx/include/wx/${TOOLKIT_NAME}/setup.h
+ fi
+
+ dnl *move* setup.h to its final place
+
if test ! -d include; then
mkdir include
fi
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}"
]
)