WX_ARG_ENABLE(gui, [ --enable-gui use GUI classes], wxUSE_GUI)
WX_ARG_ENABLE(monolithic, [ --enable-monolithic build wxWidgets as single library], wxUSE_MONOLITHIC)
WX_ARG_ENABLE(plugins, [ --enable-plugins build parts of wxWidgets as loadable components], wxUSE_PLUGINS)
+WX_ARG_WITH(subdirs, [ --without-subdirs don't generate makefiles for samples/demos/...], wxWITH_SUBDIRS, without)
if test "$wxUSE_GUI" = "yes"; then
CXXFLAGS="$CXXFLAGS -qunique"
fi
-
dnl This case is for PowerPC OS X vs. everything else
case "${host}" in
powerpc-*-darwin* )
dnl detect GTK2
wx_cv_lib_gtk=
- if test "x$wxGTK_VERSION" != "x1"; then
+ if test "x$wxGTK_VERSION" != "x1"
+ then
+ dnl The gthread.pc that ships with solaris returns '-mt',
+ dnl it's correct for Sun CC, but gcc requires '-pthreads'.
+ dnl So disable the compile check and remove the -mt below.
+ case "${host}" in
+ *-*-solaris2* )
+ if test "$wxUSE_THREADS" = "yes" -a "$GCC" = yes; then
+ enable_gtktest=no
+ fi
+ esac
+
AM_PATH_GTK_2_0(2.0.0, wx_cv_lib_gtk=2.0, , $GTK_MODULES)
+
+ dnl Remove the '-mt' for gcc on solaris
+ case "${host}" in
+ *-*-solaris2* )
+ if test "$wxUSE_THREADS" = "yes" -a "$GCC" = yes; then
+ GTK_CFLAGS=`echo $GTK_CFLAGS | sed 's/-mt//'`
+ GTK_LIBS=`echo $GTK_LIBS | sed 's/-mt//'`
+ fi
+ dnl solaris also requires -lX11 for static lib
+ if test "$wxUSE_SHARED" != "yes"; then
+ GTK_LIBS="$GTK_LIBS -lX11"
+ fi
+ esac
fi
dnl detect GTK1.x
[
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
- ]
+ ],
+ 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)
+
+ dnl check if we already have the declaration we need, it is not
+ dnl present in some systems' headers
+ AC_CACHE_CHECK([for pthread_mutexattr_settype declaration],
+ wx_cv_func_pthread_mutexattr_settype_decl, [
+ AC_TRY_COMPILE([#include <pthread.h>],
+ [
+ pthread_mutexattr_t attr;
+ pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
+ ],
+ wx_cv_func_pthread_mutexattr_settype_decl=yes,
+ wx_cv_func_pthread_mutexattr_settype_decl=no
+ )
+ ])
+ if test "$wx_cv_func_pthread_mutexattr_settype_decl" = "yes"; then
+ AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_SETTYPE_DECL)
+ fi
else
dnl don't despair, there may be another way to do it
AC_CACHE_CHECK([for PTHREAD_RECURSIVE_MUTEX_INITIALIZER],
dnl ---------------------------------------------------------------------------
dnl time/date functions
-dnl ------------------------------------------------------------------------
+dnl ---------------------------------------------------------------------------
if test "$wxUSE_DATETIME" = "yes"; then
- dnl check for strptime
+ dnl check for strptime and for its declaration as some systems lack it
AC_CHECK_FUNCS(strptime)
+ if test "$ac_cv_func_strptime" = "yes"; then
+ AC_CACHE_CHECK([for strptime declaration], wx_cv_func_strptime_decl,
+ [
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_TRY_COMPILE(
+ [
+ #include <time.h>
+ ],
+ [
+ struct tm t;
+ strptime("foo", "bar", &t);
+ ],
+ wx_cv_func_strptime_decl=yes,
+ wx_cv_func_strptime_decl=no
+ )
+ AC_LANG_RESTORE
+ ]
+ )
+ fi
+ if test "$wx_cv_func_strptime_decl" = "yes"; then
+ AC_DEFINE(HAVE_STRPTIME_DECL)
+ fi
dnl check for timezone variable
dnl doesn't exist under Darwin / Mac OS X which uses tm_gmtoff instead
dnl converting between incompatible pointer types, so
dnl try to use it to get the correct behaviour at
dnl least with gcc (otherwise we'd always use size_t)
- CFLAGS_OLD="$CFLAGS"
+ CXXFLAGS_OLD="$CXXFLAGS"
if test "$GCC" = yes ; then
- CFLAGS="$CFLAGS -Werror"
+ CXXFLAGS="$CXXFLAGS -Werror"
fi
AC_TRY_COMPILE(
)
)
- CFLAGS="$CFLAGS_OLD"
+ CXXFLAGS="$CXXFLAGS_OLD"
]
)
])
dnl converting between incompatible pointer types, so
dnl try to use it to get the correct behaviour at
dnl least with gcc (otherwise we'd always use size_t)
- CFLAGS_OLD="$CFLAGS"
+ CXXFLAGS_OLD="$CXXFLAGS"
if test "$GCC" = yes ; then
- CFLAGS="$CFLAGS -Werror"
+ CXXFLAGS="$CXXFLAGS -Werror"
fi
AC_TRY_COMPILE(
)
)
- CFLAGS="$CFLAGS_OLD"
+ CXXFLAGS="$CXXFLAGS_OLD"
]
)
])
-I\${top_srcdir}/include $TOOLKIT_INCLUDE"
dnl C/C++ compiler options used to compile wxWidgets
-if test "$GXX" = yes ; then
- dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
+dnl
+dnl check for icc before gcc as icc is also recognized as gcc
+if test "x$INTELCC" = "xyes" ; then
+ dnl Warnings which can't be easily suppressed in C code are disabled:
+ dnl
+ dnl remark #810: conversion from "x" to "y" may lose significant bits
+ dnl remark #869: parameter "foo" was never referenced
+ dnl remark #1572: floating-point equality and inequality comparisons
+ dnl are unreliable
+ dnl remark #1684: conversion from pointer to same-sized integral type
+ dnl
+ dnl (for others see below)
+ CWARNINGS="-Wall -wd810,869,981,1418,1572,1684"
+elif test "$GCC" = yes ; then
CWARNINGS="-Wall -Wundef"
- CXXWARNINGS="$CWARNINGS -Wno-ctor-dtor-privacy"
+fi
+
+if test "x$INTELCXX" = "xyes" ; then
+ dnl Intel compiler gives some warnings which simply can't be worked
+ dnl around or of which we have too many (810, 869) so it's impractical to
+ dnl keep them enabled even if in theory it would be nice and some others
+ dnl (279) are generated for standard macros and so there is nothing we can
+ dnl do about them
+ dnl
+ dnl remark #279: controlling expression is constant
+ dnl remark #383: value copied to temporary, reference to temporary used
+ dnl remark #444: destructor for base class "xxx" is not virtual
+ dnl remark #810: conversion from "x" to "y" may lose significant bits
+ dnl remark #869: parameter "foo" was never referenced
+ dnl remark #981: operands are evaluated in unspecified order
+ dnl remark #1418: external definition with no prior declaration
+ dnl remark #1419: external declaration in primary source file
+ CXXWARNINGS="-Wall -wd279,383,444,810,869,981,1418,1419"
+elif test "$GXX" = yes ; then
+ dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
+ CXXWARNINGS="-Wall -Wundef -Wno-ctor-dtor-privacy"
fi
EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE"
esac
fi
-dnl According to Vaclav, if NO_GCC_PRAGMA is used for any reason it needs to
-dnl be in wx-config output. Not doing so could result in link problems.
-GCC_PRAGMA_FLAGS=""
-PCH_FLAGS=""
-
-dnl Find out if we have to define WX_PRECOMP (and thus NO_GCC_PRAGMA)
+dnl find out if the compiler supports PCH
+dnl
+dnl TODO: this should be in bakefile
if test $GCC_PCH = 1 ; then
- PCH_FLAGS="-DWX_PRECOMP"
- GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA"
-else
- dnl Find out if we have to define NO_GCC_PRAGMA
- if test "$GCC" = yes; then
- AC_MSG_CHECKING([if this GCC version is >= 4.0 and needs -DNO_GCC_PRAGMA])
- AC_TRY_COMPILE([],
- [#if (__GNUC__ < 4)
- Not GCC 4.0 or greater
- #endif
- ],
- [GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA"
- AC_MSG_RESULT([yes])],
- [AC_MSG_RESULT([no])
- case "${host}" in
- *-*-darwin* )
- dnl Some Apple's GCC version are broken and can't handle the
- dnl pragmas:
- GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA"
- ;;
- *-*-mingw32* )
- dnl MinGW GCC versions > 3.2 have problems with
- dnl static member of classes derived from templates
- dnl in combination with #pragma interface/implementation
- dnl (the test case uses 4 files)
- dnl ... and with exceptions handling (undefined symbols needed
- dnl to correctly calls dtors when unwinding) as well
- if test "$wxUSE_STL" = "yes" -o \
- "$wxUSE_NO_EXCEPTIONS" != "yes" -o \
- "$wxUSE_NO_RTTI" != "yes"; then
- AC_MSG_CHECKING([if this MinGW version needs -DNO_GCC_PRAGMA])
- AC_TRY_COMPILE([],
- [#if !(__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2))
- Not GCC 3.2 or greater
- #endif
- ],
- [GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA"
- AC_MSG_RESULT([yes])],
- [AC_MSG_RESULT([no])])
- fi
- ;;
- *-pc-os2_emx | *-pc-os2-emx )
- dnl GCC versions ported to OS/2 have similar problems with
- dnl static member of classes in combination with STL and
- dnl pragma interface/implementation
- if test "$wxUSE_STL" = "yes"; then
- AC_MSG_CHECKING([if this gcc version needs -DNO_GCC_PRAGMA])
- AC_TRY_COMPILE([],
- [#if !(__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2))
- Not GCC 3.2 or greater
- #endif
- ],
- [GCC_PRAGMA_FLAGS="-DNO_GCC_PRAGMA"
- AC_MSG_RESULT([yes])],
- [AC_MSG_RESULT([no])])
- fi
- ;;
- esac
-dnl closing bracket of if GCC < 4.0
- ] )
- fi
+ CPPFLAGS="-DWX_PRECOMP $CPPFLAGS"
fi
-CPPFLAGS="$PCH_FLAGS $GCC_PRAGMA_FLAGS $CPPFLAGS"
dnl for convenience, sort the samples in alphabetical order
dnl AC_CONFIG_LINKS([ include/wx-$WX_RELEASE$WX_FLAVOUR:include ])
dnl AC_CONFIG_LINKS([ contrib/include ])
-
+if test "$wxWITH_SUBDIRS" != "no"; then
dnl Configure samples, contrib etc. directories, but only if they are present:
if test "$wxUSE_GUI" = "yes"; then
SUBDIRS="samples demos utils contrib"
done
fi
done
-
+fi dnl wxWITH_SUBDIRS
AC_OUTPUT