dnl $Id$
dnl ////////////////////////////////////////////////////////////////////////
+
dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
dnl
exit(1);
}
- if (gtk_minor_version > 0) return FALSE;
+ if (gtk_minor_version == 1) return FALSE;
return !((gtk_major_version > major) ||
((gtk_major_version == major) && (gtk_minor_version > minor)) ||
fi
AC_SUBST(GTK_JOYSTICK)
+dnl some systems (AIX) define some of string function in strings.h
+AC_CHECK_HEADERS(strings.h)
+
+dnl #######################
+dnl # check for functions #
+dnl #######################
+
dnl check for vprintf/vsprintf() which are GNU extensions
AC_FUNC_VPRINTF
-dnl check for several standard functions we use if they are available
-AC_CHECK_FUNCS(vsnprintf vfork)
+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 vfork() (even if it's the same as fork() in modern Unices)
+AC_CHECK_FUNCS(vfork)
POSIX4_LINK=
-dnl check for usleep() and nanosleep() which is better in MT programs
-dnl AC_CHECK_FUNCS(nanosleep, AC_DEFINE(HAVE_NANOSLEEP),
-dnl [
-dnl AC_CHECK_LIB(posix4, nanosleep,
-dnl AC_DEFINE(HAVE_NANOSLEEP),
-dnl AC_CHECK_FUNCS(usleep))
-dnl ]
-dnl )
-AC_CHECK_FUNCS(nanosleep, AC_DEFINE(HAVE_NANOSLEEP),
-[AC_CHECK_LIB(posix4, nanosleep, [
- AC_DEFINE(HAVE_NANOSLEEP)
- POSIX4_LINK="-lposix4" ],
- [AC_CHECK_FUNCS(usleep, AC_DEFINE(HAVE_USLEEP),
- AC_MSG_WARN(Sleep() function will not work)
- )]
- )]
-)
+AC_CHECK_FUNCS(nanosleep, AC_DEFINE(HAVE_NANOSLEEP), [
+ AC_CHECK_LIB(posix4, nanosleep, [
+ AC_DEFINE(HAVE_NANOSLEEP)
+ POSIX4_LINK="-lposix4"
+ ], [
+ AC_CHECK_FUNCS(usleep,
+ AC_DEFINE(HAVE_USLEEP),
+ AC_MSG_WARN(Sleep() function will not work))
+ ])
+])
dnl check for uname (POSIX) and gethostname (BSD)
AC_CHECK_FUNCS(uname gethostname, break)
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-AC_CHECK_HEADERS(iostream)
-if test "x$HAVE_IOSTREAM" = "x" ; then
- AC_DEFINE(wxUSE_IOSTREAMH)
-fi
-AC_LANG_RESTORE
-
-dnl defines HAVE_IOSTREAM
dnl ###################
dnl # checks typedefs #
dnl ###################
dnl ###################################
dnl # checks compiler characteristics #
dnl ###################################
-dnl AC_C_CROSS
AC_C_CONST
dnl defines const to be empty if c-compiler does not support const fully
AC_C_BIGENDIAN
dnl defines WORDS_BIGENDIAN if system is big endian
-AC_CHECK_SIZEOF(int *)
-AC_CHECK_SIZEOF(int)
-AC_CHECK_SIZEOF(long)
-AC_CHECK_SIZEOF(long long)
-dnl defines the size of certain types of variables in SIZEOF_???
+dnl give some default values for cross-compiling
+AC_CHECK_SIZEOF(int *, 4)
+AC_CHECK_SIZEOF(int, 4)
+AC_CHECK_SIZEOF(long, 4)
+AC_CHECK_SIZEOF(long long, 0)
+dnl defines the size of certain types of variables in SIZEOF_<TYPE>
+
+dnl ######################
+dnl # check C++ features #
+dnl ######################
+
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+
+dnl check for iostream (as opposed to iostream.h) standard header
+AC_CHECK_HEADERS(iostream)
+if test "x$HAVE_IOSTREAM" = "x" ; then
+ AC_DEFINE(wxUSE_IOSTREAMH)
+fi
+
+dnl Check for existence of builtin 'bool' data type
+dnl
+dnl do nothing for cross-compilation - assume bool is not defined
+AC_MSG_CHECKING(if C++ compiler supports bool)
+AC_TRY_RUN([
+
+int main()
+{
+ bool b = true;
+
+ return 0;
+}
+ ],
+ AC_DEFINE(HAVE_BOOL) AC_MSG_RESULT(yes),
+ AC_MSG_RESULT(no),
+ AC_MSG_RESULT(no assumed for cross-compilation))
+
+dnl Check whether overloading on size_t/int parameter works
+AC_MSG_CHECKING(if size_t and int are different types)
+AC_TRY_RUN([
+#include <stdlib.h>
+
+void wxFoo(int i) { }
+void wxFoo(size_t n) { }
+
+int main()
+{
+ int i;
+ size_t n;
+ wxFoo(0);
+ wxFoo(1);
+ wxFoo(0u);
+ wxFoo(i);
+ wxFoo(n);
+
+ return 0;
+}
+
+ ],
+ AC_DEFINE(wxUSE_SIZE_T_STRING_OPERATOR) AC_MSG_RESULT(yes),
+ AC_MSG_RESULT(no),
+ AC_MSG_RESULT(no assumed for cross-compilation))
+
+AC_LANG_RESTORE
dnl ############################
dnl # checks library functions #
DEFAULT_wxUSE_RPC=0
DEFAULT_wxUSE_HELP=1
-DEFAULT_wxUSE_UNICODE=1
+DEFAULT_wxUSE_UNICODE=0
DEFAULT_wxUSE_WCSRTOMBS=0
dnl ----------------------------------------------------------------
MAKEINCLUDE=
if test "$wxUSE_GTK" = 1; then
- AM_PATH_GTK(1.0.4, [
+ AM_PATH_GTK(1.0.0, [
GUI_TK_INCLUDE="$GTK_CFLAGS"
GUI_TK_LIBRARY="$GTK_LIBS"
- ], AC_MSG_ERROR(Is gtk-config in path and GTK+ is version 1.0.4 up-to 1.0.6?))
+ ], AC_MSG_ERROR(Is gtk-config in path and GTK+ is version 1.2.X or 1.0.X?))
TOOLKIT=GTK
TOOLKIT_DEF=__WXGTK__
WX_LINK=-lwx_gtk2
fi
if test "$wxUSE_MOTIF" = 1; then
- AC_MSG_CHECKING(for Motif/Lesstif includes)
- AC_PATH_FIND_INCLUDES($SEARCH_INCLUDE,Xm/Xm.h)
- if test "$ac_find_includes" != "" ; then
- AC_MSG_RESULT(found $ac_find_includes)
- AC_MSG_CHECKING(for Motif/Lesstif library)
- AC_PATH_FIND_LIBRARIES($SEARCH_LIB,Xm)
- if test "$ac_find_libraries" != "" ; then
- AC_INCLUDE_PATH_EXIST($ac_find_includes,$CHECK_INCLUDE)
- AC_LINK_PATH_EXIST($ac_find_libraries,$CHECK_LIB)
- CHECK_LINK="$CHECK_LIB $ac_path_to_link"
- CHECK_INCLUDE="$CHECK_INCLUDE $ac_path_to_include"
- AC_MSG_RESULT(found at $ac_find_libraries)
- AC_MSG_CHECKING(for Xt library)
- AC_PATH_FIND_LIBRARIES($SEARCH_LIB,Xt)
- if test "$ac_find_libraries" != "" ; then
- AC_LINK_PATH_EXIST($ac_find_libraries,$CHECK_LIB)
- CHECK_LINK="$CHECK_LIB $ac_path_to_link"
- AC_MSG_RESULT(found at $ac_find_libraries)
- AC_MSG_CHECKING(for Xpm library)
- AC_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
- if test "$ac_find_libraries" != "" ; then
- AC_LINK_PATH_EXIST($ac_find_libraries,$CHECK_LIB)
- CHECK_LINK="$CHECK_LIB $ac_path_to_link"
- AC_MSG_RESULT(found at $ac_find_libraries)
- else
- AC_MSG_ERROR(no)
- fi
- else
- AC_MSG_ERROR(no)
- fi
- else
- AC_MSG_ERROR(no)
- fi
- else
- AC_MSG_ERROR(no)
- fi
+ AC_MSG_CHECKING(for Motif/Lesstif includes)
+ AC_PATH_FIND_INCLUDES($SEARCH_INCLUDE, Xm/Xm.h)
+ if test "$ac_find_includes" != "" ; then
+ AC_MSG_RESULT(found $ac_find_includes)
+ else
+ AC_MSG_RESULT(no)
+ AC_MSG_ERROR(please set CFLAGS to contain the location of Xm/Xm.h)
+ fi
+
+ AC_MSG_CHECKING(for Motif/Lesstif library)
+ AC_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm)
+ if test "$ac_find_libraries" != "" ; then
+ AC_INCLUDE_PATH_EXIST($ac_find_includes, $CHECK_INCLUDE)
+ AC_LINK_PATH_EXIST($ac_find_libraries, $CHECK_LIB)
- GUI_TK_LINK="-lXm -lXpm -lXmu -lXt -lX11 -lm"
- GUI_TK_LIBRARY="$CHECK_LIB $GUI_TK_LINK"
- TOOLKIT=MOTIF
- TOOLKIT_DEF=__WXMOTIF__
- WX_LINK=-lwx_motif2
- MAKEINCLUDE=../motif.inc
+ CHECK_LINK="$CHECK_LIB $ac_path_to_link"
+ CHECK_INCLUDE="$CHECK_INCLUDE $ac_path_to_include"
+ AC_MSG_RESULT(found at $ac_find_libraries)
+ else
+ AC_MSG_RESULT(no)
+ AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm)
+ fi
+
+ AC_MSG_CHECKING(for Xt library)
+ AC_PATH_FIND_LIBRARIES($SEARCH_LIB,Xt)
+ if test "$ac_find_libraries" != "" ; then
+ AC_LINK_PATH_EXIST($ac_find_libraries,$CHECK_LIB)
+ CHECK_LINK="$CHECK_LIB $ac_path_to_link"
+ AC_MSG_RESULT(found at $ac_find_libraries)
+ else
+ AC_MSG_RESULT(no)
+ AC_MSG_ERROR(please set LDFLAGS to contain the location of libXt)
+ fi
+
+ XPM_LINK=""
+ AC_MSG_CHECKING(for Xpm library)
+ AC_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
+ if test "$ac_find_libraries" != "" ; then
+ AC_LINK_PATH_EXIST($ac_find_libraries,$CHECK_LIB)
+ CHECK_LINK="$CHECK_LIB $ac_path_to_link"
+ XPM_LINK="-lXpm "
+ AC_DEFINE(wxHAVE_LIB_XPM)
+ AC_MSG_RESULT(found at $ac_find_libraries)
+ else
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN(library will be compiled without support for images in XPM format)
+ fi
+
+ GUI_TK_LINK="-lXm $(XPM_LINK)-lXmu -lXt -lX11 -lm"
+ GUI_TK_LIBRARY="$CHECK_LIB $GUI_TK_LINK"
+ TOOLKIT=MOTIF
+ TOOLKIT_DEF=__WXMOTIF__
+ WX_LINK=-lwx_motif2
+ MAKEINCLUDE=../motif.inc
fi
if test "$TOOLKIT" = ""; then
AC_DEFINE_UNQUOTED(wxUSE_SERIAL,$wxUSE_SERIAL)
fi
+dnl ------------------------------------------------------------------------
+dnl wxSocket
+dnl ------------------------------------------------------------------------
+
+if test "$wxUSE_SOCKETS" = "1"; then
+ dnl determine the type of third argument for getsockname
+ AC_MSG_CHECKING(the type of the third argument of getsockname)
+ AC_TRY_COMPILE(
+ [#include <sys/socket.h>],
+ [size_t len; getsockname(0, NULL, &len);],
+ AC_DEFINE(SOCKLEN_T, size_t) AC_MSG_RESULT(size_t),
+ AC_TRY_COMPILE(
+ [#include <sys/socket.h>],
+ [int len; getsockname(0, NULL, &len);],
+ AC_DEFINE(SOCKLEN_T, int) AC_MSG_RESULT(int),
+ AC_MSG_RESULT(unknown)
+ )
+ )
+fi
+
dnl ------------------------------------------------------------------------
dnl wxLibrary class
dnl ------------------------------------------------------------------------
fi
if test "$wxUSE_TOOLTIPS" = 1 ; then
- AC_DEFINE_UNQUOTED(wxUSE_TOOLTIPS,$wxUSE_TOOLTIPS)
+ if test "$wxUSE_MOTIF" = 1; then
+ AC_MSG_WARN(tooltips are not supported yet under Motif, sorry)
+ wxUSE_TOOLTIPS=0
+ fi
+
+ AC_DEFINE_UNQUOTED(wxUSE_TOOLTIPS,$wxUSE_TOOLTIPS)
fi
if test "$wxUSE_DRAG_AND_DROP" = 1 ; then
if test "$wxUSE_THREADS" = "1"; then
dnl find if POSIX threads are available
- dnl For glibc 2 users who have the old libc 5 too check pthread-0.7 first
- AC_CHECK_LIB(pthread-0.7, pthread_create, [
- UNIX_THREAD="unix/threadpsx.cpp"
- THREADS_LINK="pthread-0.7"
- ],[
- dnl standard lib name is pthread
- AC_CHECK_LIB(pthread, pthread_create, [
+ 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, [
UNIX_THREAD="unix/threadpsx.cpp"
THREADS_LINK="pthread"
], [
])
])
])
- ])
-
if test "$THREADS_LINK" != ""; then
AC_DEFINE(wxUSE_THREADS)
else
dnl do other tests only if we are using threads
if test "$wxUSE_THREADS" = "1"; then
+ 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_CHECK_LIB($THREADS_LINK, sched_get_priority_min,
+ dnl VZ: we should be checking for all of the following functions instead:
+ dnl 1. pthread_attr_getschedpolicy
+ dnl 2. sched_get_priority_min and sched_get_priority_max
+ 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?)
+ AC_CHECK_LIB($THREADS_LINK, pthread_attr_getschedpolicy,
AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS),
- [AC_CHECK_LIB("posix4", sched_get_priority_min,
+ [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)
)]
if test "$GCC" != "yes" ; then
PICFLAGS="-bM\:SRE"
else
- PICFLAGS="-fPIC"
+ PICFLAGS="-fPIC -D__SYSV__"
fi
CREATE_SHARED=sharedAIX
AC_DEFINE(SYSV)
dnl add OS to list of configured
echo $OS >> system.list
-AC_CONFIG_HEADER(./include/wx/gtk/setup.h:./setup/setup.hin)
+TOOLKIT_DIR=`echo ${TOOLKIT} | tr "A-Z" "a-z"`
+AC_CONFIG_HEADER(./include/wx/${TOOLKIT_DIR}/setup.h:./setup/setup.hin)
+
AC_OUTPUT(./setup/substit ./wx-config:./wx-config.in,./setup/general/createall)
AC_OVERRIDES_DONE