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
AC_PROG_AWK
dnl defines AWK with the appropriate command
+dnl strip command
+dnl =============
+AC_CHECK_PROG(STRIP, strip, strip, true)
+dnl defines STRIP as strip or nothing if not found
+
dnl ###############
dnl # make checks #
dnl ###############
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 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),
- [AC_CHECK_FUNCS(usleep, AC_DEFINE(HAVE_USLEEP),
- AC_MSG_WARN(Sleep() function will not work)
- )]
- )]
-)
+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=
+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 #
wxUSE_SERIAL)
AC_OVERRIDES(sockets,sockets,
-**--with-sockets use wxSocket etc classes,
+**--with-sockets use wxSocket etc classes,
wxUSE_SOCKETS)
dnl ----------------------------------------------------------------
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)
+
+ 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 -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
+ 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
WXDEBUG=
if test "$wxUSE_DEBUG_GDB" = 1 ; then
- wxUSE_DEBUG_INFO=1
- WXDEBUG="-ggdb"
- wxUSE_OPTIMISE=0
-else
- if test "$wxUSE_DEBUG_INFO" = 1 ; then
+ wxUSE_DEBUG_INFO=1
+ WXDEBUG="-ggdb"
+fi
+
+if test "$wxUSE_DEBUG_INFO" = 1 ; then
WXDEBUG="-g"
wxUSE_OPTIMISE=0
- else
- EXTRA_LINK="-s $EXTRA_LINK"
- fi
fi
+
AC_SUBST(WXDEBUG)
if test "$wxUSE_DEBUG_FLAG" = 1 ; then
JPEG_LINK=""
if test "$wxUSE_LIBJPEG" = 1 ; then
AC_DEFINE_UNQUOTED(wxUSE_LIBJPEG,$wxUSE_LIBJPEG)
- AC_CHECK_LIB(jpeg)
+ AC_CHECK_LIB(jpeg,main,,AC_MSG_ERROR("libjpeg is not available."))
JPEG_LINK="-ljpeg"
fi
AC_SUBST(JPEG_LINK)
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
UNIX_THREAD=""
if test "$wxUSE_THREADS" = "1"; then
- dnl For glibc 2 users who have the old libc 5 too
-
- AC_CHECK_LIB(pthread-0.7, pthread_create, [
- UNIX_THREAD="unix/threadpsx.cpp"
- THREADS_LINK="pthread-0.7"
- ],[
- AC_CHECK_HEADER(sys/prctl.h, [
- UNIX_THREAD="gtk/threadsgi.cpp"
- ])
-
- dnl pthread_create is always available in pthread but it seems not to be
- dnl the case for pthread_setcanceltype.
-
- AC_CHECK_LIB(pthread, pthread_setcanceltype, [
- UNIX_THREAD="unix/threadpsx.cpp"
- THREADS_LINK="pthread"
- ])
+ 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, [
+ UNIX_THREAD="unix/threadpsx.cpp"
+ THREADS_LINK="pthread"
+ ], [
+ dnl thread functions are in libc_r under FreeBSD
+ AC_CHECK_LIB(c_r, pthread_create, [
+ UNIX_THREAD="unix/threadpsx.cpp"
+ THREADS_LINK="c_r"
+ ], [
+ dnl VZ: SGI threads are not supported currently
+ AC_CHECK_HEADER(sys/prctl.h, [
+ UNIX_THREAD="gtk/threadsgi.cpp"
+ ])
+ ])
+ ])
])
- if test "x$THREADS_LINK" = "x"; then
- dnl thread functions are in libc_r under FreeBSD
- AC_CHECK_LIB(c_r, pthread_create,
- [
- UNIX_THREAD="unix/threadpsx.cpp"
- THREADS_LINK="c_r"
- ])
- fi
-
if test "$THREADS_LINK" != ""; then
- AC_DEFINE(wxUSE_THREADS)
+ AC_DEFINE(wxUSE_THREADS)
+ else
+ AC_MSG_WARN(No thread support on this system)
fi
fi
dnl do other tests only if we are using threads
if test "$wxUSE_THREADS" = "1"; then
- THREADS_LINK2=""
+
+ 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) THREADS_LINK2="-lposix4"],
+ [AC_DEFINE(HAVE_SCHED_YIELD) POSIX4_LINK="-lposix4"],
AC_MSG_WARN(wxThread::Yield() will not work properly)
)]
)
- 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_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS) THREADS_LINK2="-lposix4"],
+ [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_DEFINE(HAVE_PTHREAD_CANCEL),
AC_MSG_WARN(wxThread::Kill() will not work properly))
- THREADS_LINK="-l$THREADS_LINK $THREADS_LINK2"
+ THREADS_LINK="-l$THREADS_LINK"
fi
AC_SUBST(UNIX_THREAD)
AC_SUBST(THREADS_LINK)
+AC_SUBST(POSIX4_LINK)
dnl ------------------------------------------------------------------------
dnl compiler options for shared libs
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