dnl than checking it during run-time
NEEDS_D_REENTRANT_FOR_R_FUNCS=0
-dnl the additional define needed for MT programs
-CPP_MT_FLAG=-D_REENTRANT
-
dnl the list of all available toolkits
dnl
dnl update NUM_TOOLKITS calculation below when adding a new toolkit here!
-ALL_TOOLKITS="GTK MAC MGL MICROWIN MOTIF MSW PM WINE"
+ALL_TOOLKITS="GTK MAC MGL MICROWIN MOTIF MSW PM WINE X11"
dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones
dnl which are either yes or no
DEFAULT_wxUSE_MSW=0
DEFAULT_wxUSE_PM=0
DEFAULT_wxUSE_WINE=0
+DEFAULT_wxUSE_X11=0
dnl these are the values which are really default for the given platform -
dnl they're not cached and are only used if no --with-toolkit was given *and*
DEFAULT_DEFAULT_wxUSE_MSW=0
DEFAULT_DEFAULT_wxUSE_PM=0
DEFAULT_DEFAULT_wxUSE_WINE=0
+DEFAULT_DEFAULT_wxUSE_X11=0
PROGRAM_EXT=
SO_SUFFIX=so
*-*-freebsd*)
USE_BSD=1
USE_FREEBSD=1
- CPP_MT_FLAG=-D_THREAD_SAFE
AC_DEFINE(__FREEBSD__)
AC_DEFINE(__BSD__)
DEFAULT_DEFAULT_wxUSE_GTK=1
AC_DEFINE(__DOS__)
PROGRAM_EXT=".exe"
DEFAULT_DEFAULT_wxUSE_MGL=1
- DEFAULT_DEFAULT_wxUSE_SHARED=0
;;
*-pc-os2_emx | *-pc-os2-emx )
AC_DEFINE(__EMX__)
PROGRAM_EXT=".exe"
DEFAULT_DEFAULT_wxUSE_PM=1
+ LIBS="$LIBS -lstdcpp"
;;
powerpc-*-darwin* )
dnl PowerPC Darwin based distributions (including Mac OS X)
USE_BSD=1
USE_DARWIN=1
- CPP_MT_FLAG=
SO_SUFFIX=dylib
AC_DEFINE(__BSD__)
AC_DEFINE(__DARWIN__)
AC_DEFINE(__UNIX__)
fi
-dnl check for glibc version
-if test "$USE_LINUX" = 1; then
- AC_CACHE_CHECK([for glibc 2.1 or later], wx_lib_glibc21,[
- AC_TRY_COMPILE([#include <features.h>],
- [
- #if !__GLIBC_PREREQ(2, 1)
- #error not glibc2.1
- #endif
- ],
- [
- wx_lib_glibc21=yes
- ],
- [
- wx_lib_glibc21=no
- ]
- )
- ])
- if test "$wx_lib_glibc21" = "yes"; then
- AC_DEFINE(wxHAVE_GLIBC2)
- fi
-fi
-
dnl ---------------------------------------------------------------------------
dnl command line options for configure
dnl ---------------------------------------------------------------------------
if test $DEBUG_CONFIGURE = 1; then
DEFAULT_wxUSE_UNIVERSAL=no
+ DEFAULT_wxUSE_NANOX=no
+
DEFAULT_wxUSE_THREADS=yes
DEFAULT_wxUSE_SHARED=yes
DEFAULT_wxUSE_OPTIMISE=no
DEFAULT_wxUSE_PROFILE=no
DEFAULT_wxUSE_NO_DEPS=no
- DEFAULT_wxUSE_NO_RTTI=yes
- DEFAULT_wxUSE_NO_EXCEPTIONS=yes
+ DEFAULT_wxUSE_NO_RTTI=no
+ DEFAULT_wxUSE_NO_EXCEPTIONS=no
DEFAULT_wxUSE_PERMISSIVE=no
DEFAULT_wxUSE_DEBUG_FLAG=yes
DEFAULT_wxUSE_DEBUG_INFO=yes
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
else
DEFAULT_wxUSE_UNIVERSAL=no
+ DEFAULT_wxUSE_NANOX=no
+
DEFAULT_wxUSE_THREADS=yes
DEFAULT_wxUSE_SHARED=yes
DEFAULT_wxUSE_OPTIMISE=yes
DEFAULT_wxUSE_PROFILE=no
DEFAULT_wxUSE_NO_DEPS=no
- DEFAULT_wxUSE_NO_RTTI=yes
- DEFAULT_wxUSE_NO_EXCEPTIONS=yes
+ DEFAULT_wxUSE_NO_RTTI=no
+ DEFAULT_wxUSE_NO_EXCEPTIONS=no
DEFAULT_wxUSE_PERMISSIVE=no
DEFAULT_wxUSE_DEBUG_FLAG=no
DEFAULT_wxUSE_DEBUG_INFO=no
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_DIALUP_MANAGER=yes
DEFAULT_wxUSE_JOYSTICK=yes
DEFAULT_wxUSE_DYNLIB_CLASS=yes
- DEFAULT_wxUSE_DYNAMIC_LOADER=no
+ DEFAULT_wxUSE_DYNAMIC_LOADER=yes
DEFAULT_wxUSE_LONGLONG=yes
DEFAULT_wxUSE_GEOMETRY=yes
AC_ARG_WITH(motif, [ --with-motif use Motif/Lesstif], [wxUSE_MOTIF="$withval" CACHE_MOTIF=1 TOOLKIT_GIVEN=1])
AC_ARG_WITH(mac, [ --with-mac use Mac OS X], [wxUSE_MAC="$withval" TOOLKIT_GIVEN=1])
AC_ARG_WITH(wine, [ --with-wine use WINE], [wxUSE_WINE="$withval" CACHE_WINE=1 TOOLKIT_GIVEN=1])
-AC_ARG_WITH(msw, [ --with-msw use MS-Windows], [wxUSE_MSW="$withval" CACHE_MSW TOOLKIT_GIVEN=1])
+AC_ARG_WITH(msw, [ --with-msw use MS-Windows], [wxUSE_MSW="$withval" CACHE_MSW=1 TOOLKIT_GIVEN=1])
AC_ARG_WITH(pm, [ --with-pm use OS/2 Presentation Manager], [wxUSE_PM="$withval" CACHE_PM=1 TOOLKIT_GIVEN=1])
AC_ARG_WITH(mgl, [ --with-mgl use SciTech MGL], [wxUSE_MGL="$withval" CACHE_MGL=1 TOOLKIT_GIVEN=1])
AC_ARG_WITH(microwin, [ --with-microwin use MicroWindows], [wxUSE_MICROWIN="$withval" CACHE_MICROWIN=1 TOOLKIT_GIVEN=1])
+AC_ARG_WITH(x11, [ --with-x11 use X11], [wxUSE_X11="$withval" wxUSE_UNIVERSAL="yes" CACHE_X11=1 TOOLKIT_GIVEN=1])
+WX_ARG_ENABLE(nanox, [ --enable-nanox use NanoX], wxUSE_NANOX)
-AC_ARG_ENABLE(gtk2, [ --enable-gtk2 use GTK+ 2.0 if available (EXPERIMENTAL)],wxUSE_GTK2=1,wxUSE_GTK2=0)
+AC_ARG_ENABLE(gtk2, [ --enable-gtk2 use GTK+ 2.0 if available (EXPERIMENTAL)],wxUSE_GTK2="yes",wxUSE_GTK2="no")
WX_ARG_SYS_WITH(libpng, [ --with-libpng use libpng (PNG image format)], wxUSE_LIBPNG)
WX_ARG_SYS_WITH(libjpeg, [ --with-libjpeg use libjpeg (JPEG file format)], wxUSE_LIBJPEG)
WX_ARG_SYS_WITH(libtiff, [ --with-libtiff use libtiff (TIFF file format)], wxUSE_LIBTIFF)
-WX_ARG_SYS_WITH(freetype, [ --with-freetype use freetype (font rasterizer)], wxUSE_FREETYPE)
WX_ARG_WITH(opengl, [ --with-opengl use OpenGL (or Mesa)], wxUSE_OPENGL)
fi
WX_ARG_ENABLE(no_deps, [ --enable-no_deps create code without dependency information], wxUSE_NO_DEPS)
WX_ARG_ENABLE(compat20, [ --enable-compat20 enable wxWindows 2.0 compatibility], WXWIN_COMPATIBILITY_2)
-WX_ARG_ENABLE(compat22, [ --enable-compat22 enable wxWindows 2.2 compatibility], WXWIN_COMPATIBILITY_2_2)
+WX_ARG_ENABLE(compat22, [ --disable-compat22 disable wxWindows 2.2 compatibility], WXWIN_COMPATIBILITY_2_2)
dnl ---------------------------------------------------------------------------
dnl (small) optional non GUI classes
WX_ARG_ENABLE(ico_cur, [ --enable-icocur use Windows ICO and CUR formats], wxUSE_ICO_CUR)
fi
+
+dnl General settings (needed for GUI and non-GUI compilations alike).
+dnl Path separator; ':' for unix, ';' for OS/2
+dnl Stem for flex output; lexyy for OS/2, lex.yy otherwise
+case "${host}" in
+ *-pc-os2_emx | *-pc-os2-emx )
+ dnl PATH_IFS is autodetected by OS/2's configure (usually ';')
+ LEX_STEM="lexyy"
+ ;;
+ *)
+ PATH_IFS=':'
+ LEX_STEM="lex.yy"
+ ;;
+esac
+
dnl for GUI only
dnl cache the options values before (may be) aborting below
dnl we suppose that expr is available (maybe there is a better way to do
dnl this? what about using ALL_TOOLKITS? TODO)
NUM_TOOLKITS=`expr ${wxUSE_GTK:-0} + ${wxUSE_MOTIF:-0} + ${wxUSE_MAC:-0} \
- + ${wxUSE_WINE:-0} + ${wxUSE_MSW:-0} + ${wxUSE_MGL:-0} + ${wxUSE_MICROWIN:-0}`
+ + ${wxUSE_WINE:-0} + ${wxUSE_MSW:-0} + ${wxUSE_MGL:-0} + ${wxUSE_MICROWIN:-0} + ${wxUSE_X11:-0}`
dnl Allow wxUSE_PM only for OS/2 with EMX.
- dnl Path separator; ':' for unix.
- dnl Stem for flex output; lexyy for OS/2, lex.yy otherwise
case "${host}" in
*-pc-os2_emx | *-pc-os2-emx )
- # PATH_IFS is autodetected by OS/2's configure (usually ';')
NUM_TOOLKITS=`expr ${NUM_TOOLKITS} + ${wxUSE_PM:-0}`
- LEX_STEM="lexyy"
- ;;
- *)
- PATH_IFS=':'
- LEX_STEM="lex.yy"
- ;;
esac
case "$NUM_TOOLKITS" in
fi
done
else
- PATH_IFS=':'
AC_MSG_RESULT(base ($host_alias hosted) only)
fi
dnl cross-compiling support: we're cross compiling if the build system is
dnl different from the target one (assume host and target be always the same)
if test "$build" != "$host" ; then
- if test "$USE_WIN32" = 1 -o "$USE_DOS" = 1 ; then
+ if test "$USE_WIN32" = 1 -o "$USE_DOS" = 1 -o "$USE_UNIX"; then
CC=$host_alias-gcc
CXX=$host_alias-c++
AR=$host_alias-ar
dnl defines GCC with yes if using gcc
dnl defines GCC empty if not using gcc
dnl defines CFLAGS
+dnl
+dnl this magic incantation is needed to prevent AC_PROG_CC from setting the
+dnl default CFLAGS (something like "-g -O2") - we don't need this as add
+dnl -g and -O flags ourselves below
+CFLAGS=${CFLAGS:=}
AC_PROG_CC
-CFLAGS=`echo "$CFLAGS" | sed 's/-g//g'`
-
dnl is -traditional needed for correct compilations
dnl adds -traditional for gcc if needed
AC_PROG_GCC_TRADITIONAL
dnl defines GXX with yes if using gxx
dnl defines GXX empty if not using gxx
dnl defines CXXFLAGS
+dnl
+dnl see CFLAGS line above
+CXXFLAGS=${CXXFLAGS:=}
AC_PROG_CXX
-CXXFLAGS=`echo "$CXXFLAGS" | sed 's/-g//g'`
-
AC_LANG_RESTORE
dnl ranlib command
dnl defines STRIP as strip or nothing if not found
AC_CHECK_PROG(STRIP, strip, strip, true)
+dnl does make support "-include" (only GNU make does AFAIK)?
+AC_CACHE_CHECK([if make is GNU make], wx_cv_prog_makeisgnu,
+[
+ if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null |
+ egrep -s GNU > /dev/null); then
+ wx_cv_prog_makeisgnu="yes"
+ else
+ wx_cv_prog_makeisgnu="no"
+ fi
+])
+
+if test "x$wx_cv_prog_makeisgnu" = "xyes"; then
+ IF_GNU_MAKE=""
+else
+ IF_GNU_MAKE="#"
+fi
+
+AC_SUBST(IF_GNU_MAKE)
+
+dnl we don't need to check for VPATH support in GNU make - it does have it
+if test "x$wx_cv_prog_makeisgnu" != "xyes"; then
dnl check if VPATH works
AC_CACHE_CHECK([if make supports VPATH], wx_cv_prog_makevpath, [
dnl create Makefile
Also please do remember to use gmake in this case every time
you are trying to compile.
])
-fi
-
-dnl does make support "-include" (only GNU make does AFAIK)?
-AC_CACHE_CHECK([if make is GNU make], wx_cv_prog_makeisgnu,
-[
- if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null |
- grep GNU 2>&1 > /dev/null); then
- wx_cv_prog_makeisgnu="yes"
- else
- wx_cv_prog_makeisgnu="no"
- fi
-])
-
-if test "x$wx_cv_prog_makeisgnu" = "xyes"; then
- IF_GNU_MAKE=""
-else
- IF_GNU_MAKE="#"
-fi
-
-AC_SUBST(IF_GNU_MAKE)
+fi dnl make without VPATH
+fi dnl not GNU make
dnl YACC checks
dnl defines YACC with the appropriate command
dnl flush the cache because checking for libraries below might abort
AC_CACHE_SAVE
+dnl check for glibc version
+if test "$USE_LINUX" = 1; then
+ AC_CACHE_CHECK([for glibc 2.1 or later], wx_cv_lib_glibc21,[
+ AC_TRY_COMPILE([#include <features.h>],
+ [
+ #if !__GLIBC_PREREQ(2, 1)
+ #error not glibc2.1
+ #endif
+ ],
+ [
+ wx_cv_lib_glibc21=yes
+ ],
+ [
+ wx_cv_lib_glibc21=no
+ ]
+ )
+ ])
+ if test "$wx_cv_lib_glibc21" = "yes"; then
+ AC_DEFINE(wxHAVE_GLIBC2)
+ fi
+fi
+
dnl ---------------------------------------------------------------------------
dnl Optional libraries
dnl
PNG_LINK=
if test "$wxUSE_LIBPNG" != "no" ; then
AC_DEFINE(wxUSE_LIBPNG)
+
+ if test "$wxUSE_MGL" = 1 -a "$wxUSE_LIBPNG" = "builtin" ; then
+ AC_MSG_WARN([wxMGL doesn't work with builtin png library, will use MGL one instead])
+ wxUSE_LIBPNG=sys
+ fi
dnl for the check below to have a chance to succeed, we must already have
- dnl libz somewhere
- if test "$wxUSE_LIBPNG" = "sys" -a "$wxUSE_ZLIB" != "sys" ; then
+ dnl libz somewhere (don't do this when bulding wxMGL since its libpng
+ dnl doesn't depend on zlib)
+ if test "$wxUSE_MGL" != 1 -a "$wxUSE_LIBPNG" = "sys" -a "$wxUSE_ZLIB" != "sys" ; then
AC_MSG_WARN([system png library doesn't work without system zlib, will use built-in instead])
wxUSE_LIBPNG=builtin
fi
- if test "$wxUSE_LIBPNG" = "sys" -o "$wxUSE_LIBPNG" = "yes" ; then
- AC_CHECK_HEADER(png.h,
- AC_CHECK_LIB(png, png_check_sig,
- PNG_LINK=" -lpng",
- ,
- [-lz -lm])
- )
+ if test "$wxUSE_MGL" != 1 ; then
+ dnl Don't check for libpng when building wxMGL, libmgl contains it
+ if test "$wxUSE_LIBPNG" = "sys" -o "$wxUSE_LIBPNG" = "yes" ; then
+ AC_CHECK_HEADER(png.h,
+ AC_CHECK_LIB(png, png_check_sig,
+ PNG_LINK=" -lpng",
+ ,
+ [-lz -lm])
+ )
- if test "x$PNG_LINK" = "x" ; then
- if test "$wxUSE_LIBPNG" = "sys" ; then
- AC_MSG_ERROR([system png library not found! Use --with-libpng=builtin to use built-in version])
+ if test "x$PNG_LINK" = "x" ; then
+ if test "$wxUSE_LIBPNG" = "sys" ; then
+ AC_MSG_ERROR([system png library not found! Use --with-libpng=builtin to use built-in version])
+ else
+ AC_MSG_WARN([system png library not found, will use built-in instead])
+ wxUSE_LIBPNG=builtin
+ fi
else
- AC_MSG_WARN([system png library not found, will use built-in instead])
- wxUSE_LIBPNG=builtin
+ dnl we are using the system library
+ wxUSE_LIBPNG=yes
fi
- else
- dnl we are using the system library
- wxUSE_LIBPNG=yes
fi
fi
if test "$wxUSE_LIBJPEG" != "no" ; then
AC_DEFINE(wxUSE_LIBJPEG)
- if test "$wxUSE_LIBJPEG" = "sys" -o "$wxUSE_LIBJPEG" = "yes" ; then
- dnl can't use AC_CHECK_HEADER as jconfig.h defines things like
- dnl HAVE_STDLIB_H which are already defined and this provokes
- dnl a compiler warning which configure considers as an error...
- AC_MSG_CHECKING(for jpeglib.h)
- AC_CACHE_VAL(ac_cv_header_jpeglib_h,
- AC_TRY_COMPILE(
- [
- #undef HAVE_STDLIB_H
- #include <stdio.h>
- #include <jpeglib.h>
- ],
- [
- ],
- ac_cv_header_jpeglib_h=yes,
- ac_cv_header_jpeglib_h=no
+ if test "$wxUSE_MGL" = 1 -a "$wxUSE_LIBJPEG" = "builtin" ; then
+ AC_MSG_WARN([wxMGL doesn't work with builtin jpeg library, will use MGL one instead])
+ wxUSE_LIBJPEG=sys
+ fi
+
+ if test "$wxUSE_MGL" != 1 ; then
+ dnl Don't check for libjpeg when building wxMGL, libmgl contains it
+ if test "$wxUSE_LIBJPEG" = "sys" -o "$wxUSE_LIBJPEG" = "yes" ; then
+ dnl can't use AC_CHECK_HEADER as jconfig.h defines things like
+ dnl HAVE_STDLIB_H which are already defined and this provokes
+ dnl a compiler warning which configure considers as an error...
+ AC_MSG_CHECKING(for jpeglib.h)
+ AC_CACHE_VAL(ac_cv_header_jpeglib_h,
+ AC_TRY_COMPILE(
+ [
+ #undef HAVE_STDLIB_H
+ #include <stdio.h>
+ #include <jpeglib.h>
+ ],
+ [
+ ],
+ ac_cv_header_jpeglib_h=yes,
+ ac_cv_header_jpeglib_h=no
+ )
)
- )
- AC_MSG_RESULT($ac_cv_header_jpeglib_h)
+ AC_MSG_RESULT($ac_cv_header_jpeglib_h)
- if test "$ac_cv_header_jpeglib_h" = "yes"; then
- AC_CHECK_LIB(jpeg, jpeg_read_header, JPEG_LINK=" -ljpeg")
- fi
+ if test "$ac_cv_header_jpeglib_h" = "yes"; then
+ AC_CHECK_LIB(jpeg, jpeg_read_header, JPEG_LINK=" -ljpeg")
+ fi
- if test "x$JPEG_LINK" = "x" ; then
- if test "$wxUSE_LIBJPEG" = "sys" ; then
- AC_MSG_ERROR([system jpeg library not found! Use --with-libjpeg=builtin to use built-in version])
+ if test "x$JPEG_LINK" = "x" ; then
+ if test "$wxUSE_LIBJPEG" = "sys" ; then
+ AC_MSG_ERROR([system jpeg library not found! Use --with-libjpeg=builtin to use built-in version])
+ else
+ AC_MSG_WARN([system jpeg library not found, will use built-in instead])
+ wxUSE_LIBJPEG=builtin
+ fi
else
- AC_MSG_WARN([system jpeg library not found, will use built-in instead])
- wxUSE_LIBJPEG=builtin
+ dnl we are using the system library
+ wxUSE_LIBJPEG=sys
fi
- else
- dnl we are using the system library
- wxUSE_LIBJPEG=sys
fi
fi
fi
fi
-dnl ------------------------------------------------------------------------
-dnl Check for freetype library
-dnl ------------------------------------------------------------------------
-
-FREETYPE_INCLUDE=
-FREETYPE_LINK=
-if test "$wxUSE_FREETYPE" != "no" ; then
- AC_DEFINE(wxUSE_FREETYPE)
-
- if test "$wxUSE_FREETYPE" = "sys" -o "$wxUSE_FREETYPE" = "yes" ; then
- AC_CHECK_HEADER(freetype.h,
- AC_CHECK_LIB(freetype, FT_Render_Glyph,
- FREETYPE_LINK=" -lfreetype",
- ,
- [-lm])
- )
-
- if test "x$FREETYPE_LINK" = "x" ; then
- if test "$wxUSE_FREETYPE" = "sys" ; then
- AC_MSG_ERROR([system freetype library not found! Use --with-freetype=builtin to use built-in version])
- else
- AC_MSG_WARN([system freetype library not found, will use built-in instead])
- wxUSE_FREETYPE=builtin
- fi
- else
- dnl we are using the system library
- wxUSE_FREETYPE=sys
- fi
- fi
-
- if test "$wxUSE_FREETYPE" = "builtin" ; then
- FREETYPE_INCLUDE="-I\${top_srcdir}/src/freetype"
- fi
-fi
-
dnl ----------------------------------------------------------------
dnl search for toolkit (widget sets)
dnl ----------------------------------------------------------------
wx_cv_lib_gtk=
if test "x$wxUSE_GTK2" = "xyes"; then
- AM_PATH_GTK_2_0(1.3.1, wx_cv_lib_gtk=2.0, , $GTK_MODULES)
+ AM_PATH_GTK_2_0(2.0.0, wx_cv_lib_gtk=2.0, , $GTK_MODULES)
fi
if test -z "$wx_cv_lib_gtk"; then
TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXUNIVERSAL__ -D__WXMSW__ -D__WIN95__ -D__WIN32__ -DMWIN -DMICROWIN_NOCONTROLS -DMICROWIN_TODO=1"
fi
+ if test "$wxUSE_X11" = 1; then
+ dnl use standard macros to check for X headers/libs, this brings support
+ dnl for the standard configure options --x-includes and --x-libraries
+ AC_PATH_XTRA
+
+ if test "$no_x" = "yes"; then
+ AC_MSG_ERROR(X11 not found, please use --x-includes and/or --x-libraries options)
+ fi
+
+ GUI_TK_LIBRARY="$X_LIBS"
+ TOOLKIT_INCLUDE="$X_CFLAGS"
+ AFMINSTALL=afminstall
+ COMPILED_X_PROGRAM=0
+
+ if test "$wxUSE_NANOX" = "yes"; then
+ AC_MSG_CHECKING(for MicroWindows/NanoX distribution)
+ if test "x$MICROWIN" = x ; then
+ AC_MSG_RESULT(not found)
+ AC_MSG_ERROR([Cannot find MicroWindows library. Make sure MICROWIN is set.])
+ else
+ AC_MSG_RESULT($MICROWIN)
+ AC_DEFINE(wxUSE_NANOX)
+ fi
+ fi
+
+ xpm_link=
+ AC_MSG_CHECKING(for Xpm library)
+ WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
+ if test "$ac_find_libraries" != "" ; then
+ WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
+ GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
+ xpm_link=" -lXpm"
+ AC_DEFINE(wxHAVE_LIB_XPM)
+ AC_MSG_RESULT(found at $ac_find_libraries)
+ else
+ AC_TRY_COMPILE(
+ [
+ #include <X11/xpm.h>
+ ],
+ [
+ int version;
+ version = XpmLibraryVersion();
+ ],
+ [
+ xpm_link=" -lXpm"
+ AC_DEFINE(wxHAVE_LIB_XPM)
+ AC_MSG_RESULT(found in default search path)
+ COMPILED_X_PROGRAM=0
+ ],
+ [
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN(library will be compiled without support for images in XPM format)
+ ]
+ )
+ fi
+
+ if test "$wxUSE_NANOX" = "yes"; then
+ TOOLKIT_INCLUDE="-I\$(top_srcdir)/include/wx/x11/nanox -I\$(MICROWIN)/src/include $TOOLKIT_INCLUDE"
+ TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__NANOX__ -DMWPIXEL_FORMAT=MWPF_TRUECOLOR0888 -DHAVE_FILEIO -DHAVE_BMP_SUPPORT=1 -DHAVE_GIF_SUPPORT=1 -DHAVE_PNM_SUPPORT=1 -DHAVE_XPM_SUPPORT=1 -DLINUX=1 -DUNIX=1 -DUSE_EXPOSURE -DSCREEN_HEIGHT=480 -DSCREEN_WIDTH=640 -DSCREEN_DEPTH=4 -DX11=1"
+ GUI_TK_LIBRARY="$GUI_TK_LIBRARY \$(MICROWIN)/src/lib/libnano-X.a"
+ else
+ GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lX11$xpm_link"
+ fi
+
+ TOOLKIT_VPATH="\${top_srcdir}/src/x11"
+ TOOLKIT=X11
+ GUIDIST=X11_DIST
+ fi
+
if test "$wxUSE_WINE" = 1; then
AC_CHECK_HEADER(windows.h, [],
[
if test "$wxUSE_UNIVERSAL" = "yes"; then
ALL_OBJECTS="\$(GUI_LOWLEVEL_OBJS) \${UNIVOBJS}"
+
+ dnl ALL_SOURCES and ALL_HEADERS shouldn't include really all sources
+ dnl and headers as some/most are not needed for wxUniv but I don't
+ dnl have time to add GUI_LOWLEVEL_SOURCES/HEADERS stuff now (TODO!)
+ ALL_SOURCES="\$(ALL_SOURCES) \${UNIV_SOURCES}"
+ ALL_HEADERS="\$(ALL_HEADERS) \${UNIV_HEADERS}"
+
PORT_FILES="${PORT_FILES} \${top_srcdir}/src/univ/files.lst"
- TOOLKIT_VPATH="\${top_srcdir}/src/univ${PATH_IFS}\${top_srcdir}/src/univ/themes${PATH_IFS}\${top_srcdir}/src/${TOOLKIT_DIR}"
+ if test "$wxUSE_X11" = 1; then
+ TOOLKIT_VPATH="\${top_srcdir}/src/${TOOLKIT_DIR}${PATH_IFS}\${top_srcdir}/src/univ${PATH_IFS}\${top_srcdir}/src/univ/themes"
+ else
+ TOOLKIT_VPATH="\${top_srcdir}/src/univ${PATH_IFS}\${top_srcdir}/src/univ/themes${PATH_IFS}\${top_srcdir}/src/${TOOLKIT_DIR}"
+ fi
TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXUNIVERSAL__"
WIDGET_SET=univ
else
ALL_OBJECTS="\$(GUIOBJS)"
+ ALL_SOURCES="\$(ALL_SOURCES)"
+ ALL_HEADERS="\$(ALL_HEADERS)"
fi
ALL_OBJECTS="${ALL_OBJECTS} \$(COMMONOBJS) \$(GENERICOBJS)"
ALL_OBJECTS="${ALL_OBJECTS} \$(HTMLOBJS)"
fi
- dnl ODBC objects are Unix only
- if test "$TOOLKIT" != "MSW" -a "$wxUSE_ODBC" = "yes" ; then
- ALL_OBJECTS="${ALL_OBJECTS} \$(IODBCOBJS)"
- fi
if test "$wxUSE_LIBJPEG" = "builtin" ; then
ALL_OBJECTS="${ALL_OBJECTS} \$(JPEGOBJS)"
fi
if test "$wxUSE_LIBPNG" = "builtin" ; then
ALL_OBJECTS="${ALL_OBJECTS} \$(PNGOBJS)"
fi
- if test "$wxUSE_FREETYPE" = "builtin" ; then
- ALL_OBJECTS="${ALL_OBJECTS} \$(FREETYPEOBJS)"
- fi
dnl distribute samples/demos/utils with GUI versions
GUIDIST="${GUIDIST} SAMPLES_DIST DEMOS_DIST UTILS_DIST MISC_DIST"
TOOLKIT_VPATH="\${top_srcdir}/src/unix"
fi
+ ALL_SOURCES="\$(ALL_SOURCES)"
+ ALL_HEADERS="\$(ALL_HEADERS)"
+
PORT_FILES="\${top_srcdir}/src/files.lst"
dnl distribute only wxBase sources/headers
dnl ---------------------------------------------------------------------------
dnl Optional libraries included when system library is not used
dnl ---------------------------------------------------------------------------
+
+dnl ODBC objects are Unix only
+if test "$TOOLKIT" != "MSW" -a "$wxUSE_ODBC" = "yes" ; then
+ ALL_OBJECTS="${ALL_OBJECTS} \$(IODBCOBJS)"
+fi
+
if test "$wxUSE_REGEX" = "builtin" ; then
ALL_OBJECTS="${ALL_OBJECTS} \$(REGEXOBJS)"
fi
dnl ---------------------------------------------------------------------------
dnl OpenGL libraries
dnl ---------------------------------------------------------------------------
+
if test "$wxUSE_OPENGL" = "yes"; then
if test "$wxUSE_MAC" = 1; then
OPENGL_LIBS="-framework OpenGL -framework AGL"
+ elif test "$wxUSE_MSW" = 1; then
+ OPENGL_LIBS="-lopengl32 -lglu32"
else
-
AC_CHECK_HEADER(GL/gl.h,
[
AC_MSG_CHECKING([for -lGL])
fi
])
- dnl check for OpenGL libs availability first
- dnl -lGL requires -lm with soem OpenGL versions
-
-# AC_CHECK_HEADER(GL/gl.h,
-# [
-# AC_CHECK_LIB(GL, glFlush,
-# [
-# OPENGL_LIBS="-lGL -lGLU"
-# ],
-# [
-# AC_CHECK_LIB(MesaGL, glFlush,
-# [
-# OPENGL_LIBS="-lMesaGL -lMesaGLU"
-# ],
-# [],
-# [-lm])
-# ],
-# [-lm])
-# ])
-
if test "x$OPENGL_LIBS" = "x"; then
dnl it should be an error and not a warning because OpenGL is not on
dnl by default and so if it had been explicitely requested, we
WX_LIBRARY_LINK1_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}.${WX_CURRENT}"
WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}"
-dnl the name of the resources file for wxMac
-WX_RESOURCES_MACOSX="lib${WX_LIBRARY}.rsrc"
-WX_RESOURCES_MACOSX_COMPILED="lib${WX_LIBRARY}.r"
-
case "${host}" in
*-*-cygwin* | *-*-mingw32* )
WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${SO_SUFFIX}"
WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}"
fi
+ ;;
+ *-*-darwin* )
+ dnl Under Mac OS X, we should build real frameworks instead of simple
+ dnl dynamic shared libraries (in order to embed the resources)
+ if test "$wxUSE_MAC" = 1; then
+ dnl the name of the resources file for wxMac
+ WX_RESOURCES_MACOSX_ASCII="lib${WX_LIBRARY}.r"
+ WX_RESOURCES_MACOSX_DATA="lib${WX_LIBRARY}.rsrc"
+ fi
+ ;;
esac
dnl the name of the static library
dnl --- the marker for quick search, leave it here: SHARED_LIB_SETUP ---
+if test "$wxUSE_SHARED" = "yes"; then
+ case "${host}" in
+ *-pc-os2_emx | *-pc-os2-emx | \
+ *-pc-msdosdjgpp )
+ dnl only static for now
+ wxUSE_SHARED=no
+ AC_MSG_WARN([Host system doesn't support shared libraries, disabling])
+ ;;
+ esac
+fi
+
if test "$wxUSE_SHARED" = "yes"; then
dnl install targets
;;
*-*-darwin* )
- CFLAGS="$CFLAGS -fno-common -DDYLIB_INIT"
- CXXFLAGS="$CXXFLAGS -fno-common -DDYLIB_INIT"
- SHARED_LD="$CXX -dynamiclib -init _wxWindowsDylibInit -o"
+ dnl For Unix to MacOS X porting instructions, see:
+ dnl http://fink.sourceforge.net/doc/porting/porting.html
+ CFLAGS="$CFLAGS -fno-common -DWXMAKINGDLL"
+ CXXFLAGS="$CXXFLAGS -fno-common -DWXMAKINGDLL"
+ dnl wxWindows must be fully binded (lazy binding breaks RTTI classinfo)
+ dnl this can be done either with the exe linker flag -Wl,-bind_at_load
+ dnl or with a double stage link in order to create a single module
+ dnl "-init _wxWindowsDylibInit" not useful with lazy linking solved
+ SHARED_LD="\${top_srcdir}/distrib/mac/shared-ld-sh -undefined suppress -flat_namespace -o"
PIC_FLAG="-dynamic -fPIC"
+ SONAME_FLAGS="-compatibility_version ${WX_RELEASE} -current_version ${WX_VERSION}"
+ SONAME_FLAGS_GL=${SONAME_FLAGS}
;;
*-*-aix* )
fi
;;
- *-pc-os2_emx | *-pc-os2-emx )
- dnl only static for now
- wxUSE_SHARED=no
- ;;
-
*-*-beos* )
dnl can't use gcc under BeOS for shared library creation because it
dnl complains about missing 'main'
if test "$wxUSE_MAC" = 1; then
dnl add the resources target for wxMac
- WX_ALL="${WX_ALL} \$(build_libdir)/lib${WX_LIBRARY}.r"
+ LIBWXMACRES="\$(top_builddir)/lib/${WX_RESOURCES_MACOSX_ASCII}"
+ WX_ALL="${WX_ALL} ${LIBWXMACRES}"
WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall_res"
AC_CHECK_PROG(RESCOMP, Rez, Rez, /Developer/Tools/Rez)
AC_CHECK_PROG(DEREZ, DeRez, DeRez, /Developer/Tools/DeRez)
- LIBWXMACRES="\$(top_builddir)/lib/lib${WX_LIBRARY}.r"
- LIBWXMACRESCOMP="\$(RESCOMP) Carbon.r -t APPL ${LIBWXMACRES} -o \$(BIN_PROGRAM)"
- LIBWXMACRESWXCONFIG="${RESCOMP} Carbon.r -t APPL \${prefix}/lib/${WX_RESOURCES_MACOSX_COMPILED} -o"
+ MACOSX_BUNDLE="bundle"
+ if test "$wxUSE_SHARED" = "yes"; then
+ dnl resources are bundled with shared library, not with applications
+ LIBWXMACRESCOMP="\$(RESCOMP) -t APPL Carbon.r -o \$(BIN_PROGRAM)"
+ LIBWXMACRESWXCONFIG="${RESCOMP} -t APPL Carbon.r -o"
+ else
+ dnl resources are bundled with applications, not with static library
+ LIBWXMACRESCOMP="\$(RESCOMP) -t APPL Carbon.r ${LIBWXMACRES} -o \$(BIN_PROGRAM)"
+ LIBWXMACRESWXCONFIG="${RESCOMP} -t APPL Carbon.r \${prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o"
+ fi
+else
+ if test "$wxUSE_PM" = 1; then
+ LIBWXMACRESCOMP="emxbind -ep \$(BIN_PROGRAM)"
+ fi
fi
dnl ------------------------------------------------------------------------
dnl Check for headers
dnl ------------------------------------------------------------------------
-dnl do not check for strings.h for wxMac
-dnl it exists but is only a simple redirection to string.h
-dnl it is in conflict with Strings.h in FlatCarbon headers
+dnl test for strings.h needed under AIX, but do not check for it wxMac as
+dnl it exists but is only a simple redirection to string.h and it is in
+dnl conflict with Strings.h in FlatCarbon headers
if test "$wxUSE_MAC" != 1; then
- dnl defines HAVE_STRINGS_H (where some string functions live on AIX for example)
+ dnl defines HAVE_STRINGS_H
AC_CHECK_HEADERS(strings.h)
fi
AC_CHECK_HEADERS(unistd.h)
dnl defines HAVE_WCHAR_H
AC_CHECK_HEADERS(wchar.h)
-dnl defines HAVE_WCSTR_H
-AC_CHECK_HEADERS(wcstr.h)
-dnl defined HAVE_WCTYPE_H
-AC_CHECK_HEADERS(wctype.h)
+
+dnl maybe wchar_t is in wcstr.h if we don't have wchar.h?
+if test "$ac_cv_header_wchar_h" != "yes"; then
+ dnl defines HAVE_WCSTR_H
+ AC_CHECK_HEADERS(wcstr.h)
+fi
+
+dnl checking for wctype.h is useless as we need wcslen(), not just wchar_t and
+dnl this function is never provided by it
+dnl AC_CHECK_HEADERS(wctype.h)
+
dnl defines HAVE_FNMATCH_H
AC_CHECK_HEADERS(fnmatch.h)
+
+if test "x$ac_cv_header_fnmatch_h" = "xyes"; then
+ AC_CHECK_FUNCS(fnmatch)
+fi
+
dnl defines HAVE_LANGINFO_H (GNU libc locale parameters)
AC_CHECK_HEADERS(langinfo.h)
dnl defines uid_t and gid_t if not already defined
AC_TYPE_UID_T
-dnl check for wchar_t
-dnl Mac OS X does not provide wchar.h and wchar_t is defined by stdlib.h (GD)
-dnl on Cygwin wchar.h needs stddef.h to be #included by hand
-AC_CACHE_CHECK([for wchar_t], wx_cv_type_wchar_t,
-[
- AC_TRY_COMPILE(
- [
- #ifdef HAVE_WCHAR_H
- # ifdef __CYGWIN__
- # include <stddef.h>
- # endif
- # include <wchar.h>
- #endif
- #ifdef HAVE_STDLIB_H
- # include <stdlib.h>
- #endif
- ],
- [
- wchar_t wc, *ws;
- wc = L'a';
- ws = L"Hello, world!";
- ],
- wx_cv_type_wchar_t=yes,
- wx_cv_type_wchar_t=no
- )
-])
-
-if test "$wx_cv_type_wchar_t" = "yes"; then
- AC_DEFINE(wxUSE_WCHAR_T)
-fi
-
dnl check what exactly size_t is on this machine - this is necessary to avoid
dnl ambiguos overloads in several places, notably wx/string.h and wx/array.h
AC_LANG_SAVE
dnl defines the size of certain types of variables in SIZEOF_<TYPE>
AC_CHECK_SIZEOF(char, 1)
AC_CHECK_SIZEOF(short, 2)
-AC_CHECK_SIZEOF(int *, 4)
+AC_CHECK_SIZEOF(void *, 4)
AC_CHECK_SIZEOF(int, 4)
AC_CHECK_SIZEOF(long, 4)
-AC_CHECK_SIZEOF(long long, 0)
+
+case "${host}" in
+ arm-*-linux* )
+ AC_CHECK_SIZEOF(long long, 8)
+ ;;
+ * )
+ AC_CHECK_SIZEOF(long long, 0)
+esac
+
dnl we have to do it ourselves because SGI/Irix's stdio.h does not include
dnl wchar_t and AC_CHECK_SIZEOF only includes stdio.h
dnl Check for functions
dnl ---------------------------------------------------------------------------
-dnl check for wcslen
-AC_CHECK_LIB(c, wcslen, [
- AC_DEFINE(HAVE_WCSLEN)
- WCHAR_LINK=
- ], [
- AC_CHECK_LIB(w, wcslen, [
+dnl don't check for wchar_t functions if we haven't got wchar_t itself
+WCHAR_OK=0
+if test "$wx_cv_sizeof_wchar_t" != "0"; then
+ dnl check for wcslen
+ WCHAR_LINK=
+ AC_CHECK_LIB(c, wcslen, [
AC_DEFINE(HAVE_WCSLEN)
- WCHAR_LINK=" -lw"
+ WCHAR_OK=1
], [
- AC_CHECK_LIB(msvcrt, wcslen, [
+ AC_CHECK_LIB(w, wcslen, [
AC_DEFINE(HAVE_WCSLEN)
- WCHAR_LINK=
+ WCHAR_LINK=" -lw"
+ WCHAR_OK=1
])
])
+
+ if test "$TOOLKIT" = "MSW" -a "$WCHAR_OK" = 0; then
+ AC_CHECK_LIB(msvcrt, wcslen, [
+ AC_DEFINE(HAVE_WCSLEN)
+ WCHAR_OK=1
])
+ fi
+fi
-dnl use wcsrtombs instead of wcstombs which is buggy in old GNU libc versions
-dnl if possible
-AC_CHECK_FUNCS(wcsrtombs)
+dnl we need at least the definition of wchar_t itself and wcslen() to compile
+dnl with wchar_t support -- turn it off if we don't have this
+if test "$WCHAR_OK" = 1; then
+ AC_DEFINE(wxUSE_WCHAR_T)
+
+ dnl also try to use wcsrtombs instead of wcstombs which is buggy in old GNU
+ dnl libc versions if possible
+ AC_CHECK_FUNCS(wcsrtombs)
+else
+ AC_MSG_WARN([Wide character support is unavailable])
+fi
dnl check for vprintf/vsprintf() which are GNU extensions
AC_FUNC_VPRINTF
AC_LANG_RESTORE
dnl check for inet_addr and inet_aton (these may live either in libc, or in
-dnl libnsl or libresolv)
+dnl libnsl or libresolv or libsocket)
INET_LINK=
AC_CHECK_FUNCS(inet_addr,
AC_DEFINE(HAVE_INET_ADDR),
AC_CHECK_LIB(nsl, inet_addr,
INET_LINK="nsl",
AC_CHECK_LIB(resolv, inet_addr,
- INET_LINK="resolv"
+ INET_LINK="resolv",
+ AC_CHECK_LIB(socket, inet_addr,
+ INET_LINK="socket"
+ )
)
)
]
dnl ---------------------------------------------------------------------------
dnl under MSW we always have thread support
+CPP_MT_FLAG=
if test "$TOOLKIT" != "MSW"; then
dnl the code below:
- dnl defines THREADS_OBJ which contains the object files to build
- dnl defines THREADS_LINK which contains the thread library to link with
- dnl defines wxUSE_THREADS=1 if thread support is activated
+ dnl
+ dnl defines THREADS_LINK and THREADS_CFLAGS which are the options
+ dnl necessary to build the MT programs for the linker and compiler
+ dnl respectively
+ dnl
+ dnl sets wxUSE_THREADS=1 if thread support is activated
THREADS_LINK=
- THREADS_OBJ=
- CODE_GEN_FLAGS=
- CODE_GEN_FLAGS_CXX=
+ THREADS_CFLAGS=
if test "$wxUSE_THREADS" = "yes" ; then
if test "$wxUSE_WINE" = 1 ; then
if test "$wxUSE_THREADS" = "yes" ; then
dnl find if POSIX threads are available
+ dnl
+ dnl the tests here are based on ACX_PTHREAD macro from autoconf macro
+ dnl archive from http://ac-archive.sourceforge.net/
+ dnl
+ dnl thanks to Steven G. Johnson <stevenj@alum.mit.edu> and Alejandro
+ dnl Forero Cuervo <bachue@bachue.com> for the original code
+
+ dnl TODO: cache the result
+
+ dnl define the list of the thread options to try in the loop below
+ dnl with the convention that anything starting with '-' is a cpp flag
+ dnl while anything else is a library (i.e. there is an implicit "-l")
+ THREAD_OPTS="-pthread"
+ case "${host}" in
+ *-*-solaris2* | *-*-sunos4* )
+ if test "x$GCC" = "xyes"; then
+ dnl Solaris/gcc combination use this one for some reason
+ THREAD_OPTS="-pthreads $THREAD_OPTS"
+ else
+ THREAD_OPTS="-mt $THREAD_OPTS"
+ fi
+ ;;
+ *-*-freebsd*)
+ dnl look, in order, for the kernel threads, then Linux threads
+ dnl and finally the userland threads
+ THREAD_OPTS="-kthread lthread $THREAD_OPTS c_r"
+ ;;
+ *-*-darwin*)
+ dnl Darwin / Mac OS X just uses -lpthread tested below
+ THREAD_OPTS=""
+ ;;
+ *-*-aix*)
+ dnl AIX calls the library libpthreads - thanks IBM!
+ THREAD_OPTS="pthreads"
+ ;;
+ esac
- dnl AIX calls the library libpthreads - thanks IBM!
- if test "$USE_AIX" = 1; then
- THREADS_LIB=pthreads
- else
- THREADS_LIB=pthread
- fi
+ dnl simply linking with libpthread should make the test below work but
+ dnl it's far from certain that the threaded programs compiled without
+ dnl any special switches actually work, so try it after all the others
+ THREAD_OPTS="$THREAD_OPTS pthread none"
+
+ dnl now test for all possibilities
+ THREADS_OK=no
+ for flag in $THREAD_OPTS; do
+ case $flag in
+ none)
+ AC_MSG_CHECKING([whether pthreads work without any flags])
+ ;;
- dnl standard lib name is pthread
- dnl We no longer test for pthread-0.7 as it breaks compilation on some
- dnl glibc2 systems, especially for static linkage.
- AC_CHECK_LIB($THREADS_LIB, pthread_create, [
- THREADS_OBJ="threadpsx.lo"
- THREADS_LINK=$THREADS_LIB
- ], [
- dnl thread functions are in libc_r under FreeBSD
- AC_CHECK_LIB(c_r, pthread_create, [
- THREADS_OBJ="threadpsx.lo"
- THREADS_LINK="c_r"
- ], [
- dnl VZ: SGI threads are not supported currently
- AC_CHECK_HEADER(sys/prctl.h, [
- THREADS_OBJ="threadsgi.lo"
- ])
- ])
- ])
+ -*)
+ AC_MSG_CHECKING([whether pthreads work with $flag])
+ THREADS_CFLAGS="$flag"
+ ;;
- if test -z "$THREADS_OBJ" ; then
- wxUSE_THREADS=no
- AC_MSG_WARN([No thread support on this system... disabled])
- fi
+ *)
+ AC_MSG_CHECKING([for the pthreads library -l$flag])
+ THREADS_LINK="-l$flag"
+ ;;
+ esac
+
+ save_LIBS="$LIBS"
+ save_CFLAGS="$CFLAGS"
+ LIBS="$THREADS_LINK $LIBS"
+ CFLAGS="$THREADS_CFLAGS $CFLAGS"
+
+ AC_TRY_LINK([#include <pthread.h>],
+ [pthread_create(0,0,0,0);],
+ THREADS_OK=yes)
+
+ LIBS="$save_LIBS"
+ CFLAGS="$save_CFLAGS"
+
+ AC_MSG_RESULT($THREADS_OK)
+ if test "x$THREADS_OK" = "xyes"; then
+ break;
+ fi
+
+ THREADS_LINK=""
+ THREADS_CFLAGS=""
+ done
+
+ if test "x$THREADS_OK" != "xyes"; then
+ wxUSE_THREADS=no
+ AC_MSG_WARN([No thread support on this system... disabled])
+ else
+ dnl yes, these special compiler flags should be used with the
+ dnl linker as well
+ LIBS="$THREADS_LINK $THREADS_CFLAGS $LIBS"
+
+ AC_MSG_CHECKING([if more special flags are required for pthreads])
+ flag=no
+ case "${host}" in
+ *-aix* | *-freebsd*)
+ flag="-D_THREAD_SAFE"
+ ;;
+ *solaris* | alpha*-osf*)
+ flag="-D_REENTRANT"
+ ;;
+ esac
+ AC_MSG_RESULT(${flag})
+ if test "x$flag" != xno; then
+ THREADS_CFLAGS="$THREADS_CFLAGS $flag"
+ fi
+
+ if test "x$THREADS_CFLAGS" != "x"; then
+ dnl don't add these options to CPPFLAGS as cpp might not know them
+ CFLAGS="$CFLAGS $THREADS_CFLAGS"
+ CXXFLAGS="$CXXFLAGS $THREADS_CFLAGS"
+ fi
+ fi
fi
dnl do other tests only if we are using threads
if test "$wxUSE_THREADS" = "yes" ; then
AC_CHECK_FUNCS(thr_setconcurrency)
- dnl define autoconf macro to check for given function in both pthread and
- dnl posix4 libraries
- dnl usage: AC_FUNC_THREAD(FUNCTION_NAME)
- dnl VZ: TODO
- dnl AC_DEFUN(AC_FUNC_THREAD,
- dnl [
- dnl AC_CHECK_LIB($THREADS_LINK, $1,
- dnl AC_DEFINE(HAVE_`'translit($1, `A-Z', 'a-z'),
- dnl [AC_CHECK_LIB([posix4], $1,
- dnl [AC_DEFINE(HAVE_`'translit($1, `A-Z', 'a-z'))
- dnl POSIX4_LINK=" -lposix4"
- dnl ])
- dnl ])
- dnl ])
-
AC_CHECK_HEADERS(sched.h)
-
- AC_CHECK_LIB($THREADS_LINK, sched_yield,
- AC_DEFINE(HAVE_SCHED_YIELD),
- [AC_CHECK_LIB([posix4], sched_yield,
- [AC_DEFINE(HAVE_SCHED_YIELD) POSIX4_LINK=" -lposix4"],
- AC_MSG_WARN(wxThread::Yield will not work properly)
- )]
- )
+ if test "$ac_cv_header_sched_h" = "yes"; then
+ AC_CHECK_FUNC(sched_yield,
+ AC_DEFINE(HAVE_SCHED_YIELD),
+ [
+ AC_CHECK_LIB(posix4,
+ sched_yield,
+ [AC_DEFINE(HAVE_SCHED_YIELD) POSIX4_LINK=" -lposix4"],
+ AC_MSG_WARN(wxThread::Yield will not work properly)
+ )
+ ]
+ )
+ fi
dnl to be able to set the thread priority, we need to have all of the
dnl following functions:
dnl (this one can be in either libpthread or libposix4 (under Solaris))
dnl 3. pthread_attr_getschedparam and pthread_attr_setschedparam
HAVE_PRIOR_FUNCS=0
- AC_CHECK_LIB($THREADS_LINK, pthread_attr_getschedpolicy,
- AC_CHECK_LIB($THREADS_LINK, pthread_attr_setschedparam,
- AC_CHECK_LIB($THREADS_LINK, sched_get_priority_max,
+ AC_CHECK_FUNC(pthread_attr_getschedpolicy,
+ AC_CHECK_FUNC(pthread_attr_setschedparam,
+ AC_CHECK_FUNC(sched_get_priority_max,
HAVE_PRIOR_FUNCS=1,
AC_CHECK_LIB([posix4], sched_get_priority_max,
[
AC_MSG_WARN(Setting thread priority will not work)
fi
- AC_CHECK_LIB($THREADS_LINK, pthread_cancel,
- AC_DEFINE(HAVE_PTHREAD_CANCEL),
- AC_MSG_WARN([wxThread::Kill() will not work properly]))
+ AC_CHECK_FUNC(pthread_cancel,
+ AC_DEFINE(HAVE_PTHREAD_CANCEL),
+ AC_MSG_WARN([wxThread::Kill() will not work properly]))
AC_CACHE_CHECK([for pthread_cleanup_push/pop], wx_cv_func_pthread_cleanup_push,
[
dnl (strictly speaking we only need _XOPEN_SOURCE=500 but just defining
dnl this disables _BSD_SOURCE which breaks libtiff compilation, so it is
dnl simpler to just define _GNU_SOURCE to get everything)
- if test "x$wx_lib_glibc21" = "xyes"; then
+ if test "x$wx_cv_lib_glibc21" = "xyes"; then
CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
fi
AC_MSG_WARN([wxMutex won't be recursive on this platform])
fi
fi
-
- THREADS_LINK=" -l$THREADS_LINK"
-
- dnl building MT programs under Solaris with the native compiler requires -mt
- dnl switch
- if test "$USE_SOLARIS" = "yes" -a "$GCC" != "yes"; then
- CPPFLAGS="$CFLAGS -mt"
- CXXFLAGS="$CXXFLAGS -mt"
- LDFLAGS="$LDFLAGS -mt"
- fi
fi
dnl from if !MSW
if test "$wxUSE_THREADS" = "yes"; then
AC_DEFINE(wxUSE_THREADS)
- dnl we must define _REENTRANT or something along these lines for MT code
- TOOLCHAIN_DEFS="$TOOLCHAIN_DEFS $CPP_MT_FLAG"
-
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS thread"
else
dnl on some systems, _REENTRANT should be defined if we want to use any _r()
PROFILE=" -pg"
fi
+CODE_GEN_FLAGS=
+CODE_GEN_FLAGS_CXX=
if test "$GCC" = "yes" ; then
if test "$wxUSE_NO_RTTI" = "yes" ; then
CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fno-rtti"
fi
fi
-
-CXXFLAGS=`echo "${CXXFLAGS}" | sed "s/\-O.//g" `
-CFLAGS=`echo "${CFLAGS}" | sed "s/\-O.//g" `
if test "$wxUSE_OPTIMISE" = "no" ; then
OPTIMISE=
else
WXWIN_COMPATIBILITY_2_2="yes"
fi
-if test "$WXWIN_COMPATIBILITY_2_2" = "yes"; then
+if test "x$WXWIN_COMPATIBILITY_2_2" != "xno"; then
AC_DEFINE(WXWIN_COMPATIBILITY_2_2)
fi
dnl wxSocket
dnl ------------------------------------------------------------------------
-dnl under MSW we always have sockets
-if test "$TOOLKIT" != "MSW"; then
+dnl VZ: the GUI hooks wxSocket needs are not implemented yet in wxX11
+if test "$wxUSE_SOCKETS" = "yes"; then
+ if test "$TOOLKIT" = "X11"; then
+ AC_MSG_WARN([wxSocket not yet supported under X11... disabled])
+ wxUSE_SOCKETS="no"
+ fi
+fi
- if test "$wxUSE_SOCKETS" = "yes"; then
- dnl under Solaris, socket functions live in -lsocket
+if test "$wxUSE_SOCKETS" = "yes"; then
+ dnl under MSW we always have sockets
+ if test "$TOOLKIT" != "MSW"; then
+ dnl under Solaris and OS/2, socket functions live in -lsocket
AC_CHECK_FUNC(socket,,
AC_CHECK_LIB(socket, socket,
- INET_LINK="$INET_LINK -lsocket",
+ if test "$INET_LINK" != " -lsocket"; then
+ INET_LINK="$INET_LINK -lsocket"
+ fi,
[
AC_MSG_WARN([socket library not found - sockets will be disabled])
wxUSE_SOCKETS=no
)
)
fi
+fi
+if test "$wxUSE_SOCKETS" = "yes" ; then
dnl this test may be appropriate if building under cygwin
dnl right now I'm assuming it also uses the winsock stuff
dnl like mingw does.. -- RL
-
- if test "$wxUSE_SOCKETS" = "yes" ; then
+ if test "$TOOLKIT" != "MSW"; then
dnl determine the type of third argument for getsockname
AC_CACHE_CHECK([what is the type of the third argument of getsockname],
wx_cv_type_getsockname3,
fi
fi
fi
-dnl if !MSW
if test "$wxUSE_SOCKETS" = "yes" ; then
AC_DEFINE(wxUSE_SOCKETS)
AC_MSG_WARN([Joystick not yet supported under Motif... disabled])
wxUSE_JOYSTICK=no
fi
+ if test "$TOOLKIT" = "X11"; then
+ AC_MSG_WARN([Joystick not yet supported under X11... disabled])
+ wxUSE_JOYSTICK=no
+ fi
dnl under MSW we always have joystick support
if test "$TOOLKIT" != "MSW"; then
if test "$wxUSE_UNICODE" = "yes" ; then
AC_DEFINE(wxUSE_UNICODE)
+
+ if test "$wxUSE_MSW" != 1; then
+ wxUSE_UNICODE_MSLU=no
+ fi
if test "$wxUSE_MSW" = 1 -a "$wxUSE_UNICODE_MSLU" = "yes"; then
AC_CHECK_LIB(unicows,main,
if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
if test "$wxUSE_UNIVERSAL" = "yes"; then
- AC_MSG_WARN(MDI not yet supported for wxUNIVERSAL... disabled)
+ AC_MSG_WARN(MDI not yet supported for wxUniversal... disabled)
wxUSE_MDI_ARCHITECTURE=no
fi
if test "$wxUSE_MSW" = 1; then
if test "$wxUSE_MS_HTML_HELP" = "yes"; then
- AC_CHECK_HEADER(htmlhelp.h,
- [
- AC_DEFINE(wxUSE_MS_HTML_HELP)
- ],
- [
- AC_MSG_WARN([MS HTML Help cannot be used without htmlhelp.h... disabled])
- wxUSE_MS_HTML_HELP=no
- ])
+ AC_DEFINE(wxUSE_MS_HTML_HELP)
fi
fi
fi
if test "$wxUSE_RESOURCES" = "yes" ; then
- AC_DEFINE(wxUSE_RESOURCES)
- SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS resource"
+ if test "$wxUSE_NANOX" = "yes"; then
+ AC_MSG_WARN([Cannot use resource database functions in NanoX])
+ else
+ AC_DEFINE(wxUSE_RESOURCES)
+ SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS resource"
+ fi
fi
if test "$wxUSE_X_RESOURCES" = "yes"; then
wxUSE_DRAG_AND_DROP=no
fi
+ if test "$wxUSE_X11" = 1; then
+ AC_MSG_WARN([Drag and drop not yet supported under X11... disabled])
+ wxUSE_DRAG_AND_DROP=no
+ fi
+
if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
AC_DEFINE(wxUSE_DRAG_AND_DROP)
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd"
wxUSE_TOGGLEBTN=no
fi
if test "$wxUSE_UNIVERSAL" = "yes"; then
- AC_MSG_WARN([Toggle button not yet supported under wxUNIVERSAL... disabled])
+ AC_MSG_WARN([Toggle button not yet supported under wxUniversal... disabled])
wxUSE_TOGGLEBTN=no
fi
AC_MSG_WARN([wxTooltip not supported under WINE... disabled])
else
if test "$wxUSE_UNIVERSAL" = "yes"; then
- AC_MSG_WARN([wxTooltip not supported yet in wxUNIVERSAL... disabled])
+ AC_MSG_WARN([wxTooltip not supported yet in wxUniversal... disabled])
else
AC_DEFINE(wxUSE_TOOLTIPS)
fi
if test "$wxUSE_MOTIF" = 1; then
AC_MSG_WARN([wxPopupWindow not yet supported under Motif... disabled])
else
- AC_DEFINE(wxUSE_POPUPWIN)
+ if test "$wxUSE_PM" = 1; then
+ AC_MSG_WARN([wxPopupWindow not yet supported under PM... disabled])
+ else
+ AC_DEFINE(wxUSE_POPUPWIN)
- USES_CONTROLS=1
+ USES_CONTROLS=1
+ fi
fi
fi
fi
if test "$wxUSE_TIPWINDOW" = "yes"; then
- AC_DEFINE(wxUSE_TIPWINDOW)
+ if test "$wxUSE_PM" = 1; then
+ AC_MSG_WARN([wxTipWindow not yet supported under PM... disabled])
+ else
+ AC_DEFINE(wxUSE_TIPWINDOW)
+ fi
fi
if test "$USES_CONTROLS" = 1; then
fi
if test "$wxUSE_DIRDLG" = "yes"; then
- if test "$wxUSE_CONSTRAINTS" != "yes"; then
- AC_MSG_WARN(wxDirDialog requires constraints so it won't be compiled without them)
+ if test "$wxUSE_TREECTRL" != "yes"; then
+ AC_MSG_WARN(wxDirDialog requires wxTreeCtrl so it won't be compiled without it)
else
- if test "$wxUSE_TREECTRL" != "yes"; then
- AC_MSG_WARN(wxDirDialog requires wxTreeCtrl so it won't be compiled without it)
- else
- AC_DEFINE(wxUSE_DIRDLG)
- fi
+ AC_DEFINE(wxUSE_DIRDLG)
fi
fi
dnl given the -lm comment there? Or should that comment (and
dnl this one) be removed.. [ 7 Nov 2001 ]
-LIBS="$ZLIB_LINK$POSIX4_LINK$INET_LINK$WCHAR_LINK$THREADS_LINK$DL_LINK -lm$LIBS"
+LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK -lm $LIBS"
if test "$wxUSE_GUI" = "yes"; then
- LIBS=" $GUI_TK_LIBRARY$PNG_LINK$JPEG_LINK$TIFF_LINK$FREETYPE_LINK$LIBS"
+ LIBS="$GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK $LIBS"
dnl TODO add checks that these samples will really compile (i.e. all the
dnl library features they need are present)
dnl TODO some samples are never built so far:
dnl ipc, mfc, nativdlg, oleauto, ownerdrw
- SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS controls dialogs \
+ SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS artprov controls dialogs \
drawing dynamic erase event exec font image \
minimal richedit rotate widgets"
dnl all -I options we must pass to the compiler
INCLUDES="-I\${top_builddir}/lib/wx/include/${TOOLCHAIN_NAME} -I\${top_srcdir}/include \
-$REGEX_INCLUDE $ZLIB_INCLUDE $PNG_INCLUDE $JPEG_INCLUDE $TIFF_INCLUDE \
-$FREETYPE_INCLUDE $TOOLKIT_INCLUDE"
+$REGEX_INCLUDE $ZLIB_INCLUDE $PNG_INCLUDE $JPEG_INCLUDE $TIFF_INCLUDE $TOOLKIT_INCLUDE"
dnl wxGTK does not need TOOLKIT includes in wx-config
if test "$wxUSE_GTK" = 1; then
EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE $INCLUDES"
+dnl remove the extra white space from the cc/c++/ld options
CFLAGS=`echo $CFLAGS $EXTRA_CFLAGS $CXXWARNINGS | sed 's/ \\+/ /g'`
CXXFLAGS=`echo $CXXFLAGS $EXTRA_CFLAGS $CXXWARNINGS | sed 's/ \+/ /g'`
+LIBS=`echo $LIBS | sed 's/ \+/ /g'`
-LDFLAGS="$LDFLAGS$PROFILE"
+LDFLAGS="$LDFLAGS $PROFILE"
dnl for convenience, sort the samples in alphabetical order
dnl
AC_SUBST(WXCONFIG_LIBS_STATIC_GL)
AC_SUBST(WXCONFIG_INCLUDE)
-dnl what to compile
+dnl the list of files to compile/install
AC_SUBST(ALL_OBJECTS)
+AC_SUBST(ALL_HEADERS)
+AC_SUBST(ALL_SOURCES)
dnl distribution vars
AC_SUBST(GUIDIST)
dnl additional libraries and linker settings
AC_SUBST(LDFLAGS)
AC_SUBST(LDFLAGS_GL)
+AC_SUBST(LDFLAGS_EXE)
AC_SUBST(OPENGL_LIBS)
AC_SUBST(DMALLOC_LIBS)
AC_SUBST(EXTRADEFS)
AC_SUBST(RESCOMP)
AC_SUBST(RESFLAGS)
AC_SUBST(RESPROGRAMOBJ)
-AC_SUBST(WX_RESOURCES_MACOSX)
-AC_SUBST(WX_RESOURCES_MACOSX_COMPILED)
+AC_SUBST(WX_RESOURCES_MACOSX_ASCII)
+AC_SUBST(WX_RESOURCES_MACOSX_DATA)
dnl additional for Mac OS X
AC_SUBST(DEREZ)
+AC_SUBST(MACOSX_BUNDLE)
AC_SUBST(LIBWXMACRES)
AC_SUBST(LIBWXMACRESCOMP)
AC_SUBST(LIBWXMACRESWXCONFIG)
dnl we need to pass SAMPLES_SUBDIRS (and some other) to the configure in
dnl samples and the only way to do it is, again, use the cache
wx_cv_path_samplesubdirs=$SAMPLES_SUBDIRS
+ wx_cv_if_gnu_make=$IF_GNU_MAKE
wx_cv_path_ifs=$PATH_IFS
wx_cv_program_ext=$PROGRAM_EXT
wx_cv_target_library=$WX_TARGET_LIBRARY
wx_cv_target_libtype=$WX_TARGET_LIBRARY_TYPE
dnl we need to export them because passing them through cache won't
dnl work when cache=/dev/null (which is default for autoconf 2.50)
- export wx_cv_path_samplesubdirs wx_cv_path_ifs wx_cv_program_ext \
+ export wx_cv_path_samplesubdirs wx_cv_if_gnu_make \
+ wx_cv_path_ifs wx_cv_program_ext \
wx_cv_target_library wx_cv_target_library_gl wx_cv_target_libtype
AC_CONFIG_SUBDIRS(demos samples utils contrib)
fi